GFX card profile config file logging moved to debug only

WIP mode of guiSliderCtrl to be a filled rectangle instead of a textured UI
Fixed bug with guiTextEditCtrl losing focus updating history passing malformed strings
Updated WIP options menu
Editor/Project settings WIP
Updated editor theme to be consistent, and feed off the editor settings
Updated popup menus to reference renamed profiles
Added more in-progress modules for examples/stress testing
This commit is contained in:
Areloch 2019-06-17 02:30:45 -05:00
parent 226529fd1b
commit f1777016b8
179 changed files with 10144 additions and 415 deletions

View file

@ -41,17 +41,22 @@ void GFXCardProfiler::loadProfileScript(const char* aScriptName)
void *data = NULL;
U32 dataSize = 0;
Torque::FS::ReadFile( scriptName.c_str(), data, dataSize, true );
if(data == NULL)
{
#if TORQUE_DEBUG
Con::warnf(" - No card profile %s exists", scriptName.c_str());
#endif
return;
}
const char *script = static_cast<const char *>(data);
#if TORQUE_DEBUG
Con::printf(" - Loaded card profile %s", scriptName.c_str());
#endif
Con::evaluate(script, false, NULL);
delete[] script;

View file

@ -89,6 +89,7 @@ IMPLEMENT_CALLBACK( GuiSliderCtrl, onMouseDragged, void, (), (),
GuiSliderCtrl::GuiSliderCtrl()
: mRange( 0., 1.f ),
mTicks( 10 ),
mRenderTicks(true),
mSnap( false ),
mValue( 0.5f ),
mThumbSize( 8, 20 ),
@ -98,7 +99,9 @@ GuiSliderCtrl::GuiSliderCtrl()
mDisplayValue( false ),
mMouseOver( false ),
mDepressed( false ),
mMouseDragged( false )
mMouseDragged( false ),
mUseFillBar(false),
mFillBarColor(ColorI(255,255,255))
{
}
@ -117,6 +120,12 @@ void GuiSliderCtrl::initPersistFields()
addProtectedField( "value", TypeF32, Offset( mValue, GuiSliderCtrl ),
_setValue, defaultProtectedGetFn,
"The value corresponding to the current slider position." );
addField("useFillBar", TypeBool, Offset(mUseFillBar, GuiSliderCtrl),
"Whether to render the tick marks.");
addField("fillBarColor", TypeColorI, Offset(mFillBarColor, GuiSliderCtrl),
"Whether to render the tick marks.");
addField("renderTicks", TypeBool, Offset(mRenderTicks, GuiSliderCtrl),
"Whether to render the tick marks.");
endGroup( "Slider" );
@ -365,9 +374,18 @@ void GuiSliderCtrl::onRender(Point2I offset, const RectI &updateRect)
GFXDrawUtil* drawUtil = GFX->getDrawUtil();
if (mUseFillBar)
{
drawUtil->drawRectFill(RectI(offset.x, offset.y, getWidth() * mValue, getHeight()), mFillBarColor);
renderChildControls(offset, updateRect);
return;
}
if( mHasTexture )
{
if(mTicks > 0)
if(mTicks > 0 && mRenderTicks)
{
// TODO: tick marks should be positioned based on the bitmap dimensions.
Point2I mid(ext.x, ext.y/2);
@ -443,11 +461,14 @@ void GuiSliderCtrl::onRender(Point2I offset, const RectI &updateRect)
PrimBuild::vertex2i( pos.x + mid.x, pos.y + mid.y );
// tick marks
for( U32 t = 0; t <= ( mTicks + 1 ); t++ )
if (mRenderTicks)
{
S32 x = (S32)( F32( mid.x - 1 ) / F32( mTicks + 1 ) * F32( t ) );
PrimBuild::vertex2i( pos.x + x, pos.y + mid.y - mShiftPoint );
PrimBuild::vertex2i( pos.x + x, pos.y + mid.y + mShiftPoint );
for (U32 t = 0; t <= (mTicks + 1); t++)
{
S32 x = (S32)(F32(mid.x - 1) / F32(mTicks + 1) * F32(t));
PrimBuild::vertex2i(pos.x + x, pos.y + mid.y - mShiftPoint);
PrimBuild::vertex2i(pos.x + x, pos.y + mid.y + mShiftPoint);
}
}
PrimBuild::end();
}
@ -462,11 +483,14 @@ void GuiSliderCtrl::onRender(Point2I offset, const RectI &updateRect)
PrimBuild::vertex2i( pos.x + mid.x, pos.y + mid.y );
// tick marks
for( U32 t = 0; t <= ( mTicks + 1 ); t++ )
if (mRenderTicks)
{
S32 y = (S32)( F32( mid.y - 1 ) / F32( mTicks + 1 ) * F32( t ) );
PrimBuild::vertex2i( pos.x + mid.x - mShiftPoint, pos.y + y );
PrimBuild::vertex2i( pos.x + mid.x + mShiftPoint, pos.y + y );
for (U32 t = 0; t <= (mTicks + 1); t++)
{
S32 y = (S32)(F32(mid.y - 1) / F32(mTicks + 1) * F32(t));
PrimBuild::vertex2i(pos.x + mid.x - mShiftPoint, pos.y + y);
PrimBuild::vertex2i(pos.x + mid.x + mShiftPoint, pos.y + y);
}
}
PrimBuild::end();
mDisplayValue = false;

View file

@ -39,6 +39,7 @@ class GuiSliderCtrl : public GuiControl
Point2F mRange;
U32 mTicks;
bool mRenderTicks;
bool mSnap;
F32 mValue;
RectI mThumb;
@ -51,6 +52,8 @@ class GuiSliderCtrl : public GuiControl
bool mMouseOver;
bool mMouseDragged;
bool mHasTexture;
bool mUseFillBar;
ColorI mFillBarColor;
enum
{

View file

@ -1246,7 +1246,7 @@ void GuiTextEditCtrl::onLoseFirstResponder()
//execute the validate command
if( mValidateCommand.isNotEmpty() )
evaluate( mValidateCommand );
evaluate( mValidateCommand.c_str() );
onValidate_callback();

View file

@ -286,7 +286,7 @@ void PopupMenu::showPopup(GuiCanvas *owner, S32 x /* = -1 */, S32 y /* = -1 */)
Sim::findObject("PopUpMenuControl", backgroundCtrl);
GuiControlProfile* profile;
Sim::findObject("GuiMenubarProfile", profile);
Sim::findObject("ToolsGuiMenuBarProfile", profile);
if (!profile)
return;

View file

@ -1703,7 +1703,7 @@ void PostEffect::setShaderConst(const String &name, const F32 &val)
void PostEffect::setShaderConst(const String& name, const int& val)
{
PROFILE_SCOPE(PostEffect_SetShaderConst_Float);
PROFILE_SCOPE(PostEffect_SetShaderConst_Int);
EffectConstTable::Iterator iter = mEffectConsts.find(name);
if (iter == mEffectConsts.end())

View file

@ -27,6 +27,9 @@ function CoreModule::onCreate(%this)
ModuleDatabase.LoadExplicit( "Core_GameObjects" );
ModuleDatabase.LoadExplicit( "Core_ClientServer" );
new Settings(ProjectSettings) { file = "core/settings.xml"; };
ProjectSettings.read();
%prefPath = getPrefpath();
if ( isFile( %prefPath @ "/clientPrefs.cs" ) )
exec( %prefPath @ "/clientPrefs.cs" );

View file

@ -47,18 +47,12 @@ function onActivateAdvancedLM()
// Enable the offscreen target so that AL will work
// with MSAA back buffers and for HDR rendering.
AL_FormatToken.enable();
// Activate Deferred Shading
AL_DeferredShading.enable();
}
function onDeactivateAdvancedLM()
{
// Disable the offscreen render target.
AL_FormatToken.disable();
// Deactivate Deferred Shading
AL_DeferredShading.disable();
}
function setAdvancedLighting()

View file

@ -0,0 +1,162 @@
//-----------------------------------------------------------------------------
// Copyright (c) 2012 GarageGames, LLC
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
#include "../../../gl/hlslCompat.glsl"
#include "shadergen:/autogenConditioners.h"
#include "farFrustumQuad.glsl"
#include "../../../gl/torque.glsl"
#include "../../../gl/lighting.glsl"
#line 27
in vec4 pos;
in vec4 wsEyeDir;
in vec4 ssPos;
in vec4 vsEyeDir;
uniform sampler2D deferredBuffer;
uniform sampler2D colorBuffer;
uniform sampler2D matInfoBuffer;
uniform samplerCube cubeMap;
uniform samplerCube irradianceCubemap;
uniform sampler2D BRDFTexture;
uniform float cubeMips;
uniform vec4 rtParams0;
uniform vec3 probeWSPos;
uniform vec3 probeLSPos;
uniform vec4 vsFarPlane;
uniform float radius;
uniform vec2 attenuation;
uniform mat4 worldToObj;
uniform mat4 cameraToWorld;
uniform vec3 eyePosWorld;
uniform vec3 bbMin;
uniform vec3 bbMax;
uniform float useSphereMode;
// Box Projected IBL Lighting
// Based on: http://www.gamedev.net/topic/568829-box-projected-cubemap-environment-mapping/
// and https://seblagarde.wordpress.com/2012/09/29/image-based-lighting-approaches-and-parallax-corrected-cubemap/
vec3 boxProject(vec3 wsPosition, vec3 reflectDir, vec3 boxWSPos, vec3 boxMin, vec3 boxMax)
{
vec3 nrdir = reflectDir;
vec3 offset = wsPosition;
vec3 plane1vec = (boxMax - offset) / nrdir;
vec3 plane2vec = (boxMin - offset) / nrdir;
vec3 furthestPlane = max(plane1vec, plane2vec);
float dist = min(min(furthestPlane.x, furthestPlane.y), furthestPlane.z);
vec3 posonbox = offset + nrdir * dist;
return posonbox - boxWSPos;
}
vec3 iblBoxSpecular(vec3 normal, vec3 wsPos, float roughness, vec3 surfToEye,
sampler2D brdfTexture,
samplerCube radianceCube,
vec3 boxPos,
vec3 boxMin,
vec3 boxMax)
{
float ndotv = clamp(dot(normal, surfToEye), 0.0, 1.0);
// BRDF
vec2 brdf = textureLod(brdfTexture, vec2(roughness, ndotv),0).xy;
// Radiance (Specular)
float maxmip = pow(cubeMips+1,2);
float lod = roughness*maxmip;
vec3 r = reflect(surfToEye, normal);
vec3 cubeR = normalize(r);
cubeR = boxProject(wsPos, cubeR, boxPos, boxMin, boxMax);
vec3 radiance = textureLod(radianceCube, cubeR, lod).xyz * (brdf.x + brdf.y);
return radiance;
}
float defineBoxSpaceInfluence(vec3 surfPosWS, vec3 probePos, float radius, float atten)
{
vec3 surfPosLS = tMul( worldToObj, vec4(surfPosWS,1.0)).xyz;
vec3 boxMinLS = probePos-(vec3(1,1,1)*radius);
vec3 boxMaxLS = probePos+(vec3(1,1,1)*radius);
float boxOuterRange = length(boxMaxLS - boxMinLS);
float boxInnerRange = boxOuterRange / atten;
vec3 localDir = vec3(abs(surfPosLS.x), abs(surfPosLS.y), abs(surfPosLS.z));
localDir = (localDir - boxInnerRange) / (boxOuterRange - boxInnerRange);
return max(localDir.x, max(localDir.y, localDir.z)) * -1;
}
out vec4 OUT_col;
void main()
{
// Compute scene UV
vec2 uvScene = getUVFromSSPos( ssPos.xyz/ssPos.w, rtParams0 );
//eye ray WS/LS
vec3 vsEyeRay = getDistanceVectorToPlane( -vsFarPlane.w, vsEyeDir.xyz, vsFarPlane );
vec3 wsEyeRay = tMul(cameraToWorld, vec4(vsEyeRay, 0)).xyz;
//unpack normal and linear depth
vec4 normDepth = deferredUncondition(deferredBuffer, uvScene);
//create surface
Surface surface = createSurface( normDepth, colorBuffer, matInfoBuffer,
uvScene, eyePosWorld, wsEyeRay, cameraToWorld);
float blendVal = 1.0;
if(useSphereMode>0)
{
vec3 L = probeWSPos - surface.P;
blendVal = 1.0-length(L)/radius;
clip(blendVal);
}
else
{
float tempAttenVal = 3.5;
blendVal = defineBoxSpaceInfluence(surface.P, probeWSPos, radius, tempAttenVal);
clip(blendVal);
float compression = 0.05;
blendVal=(1.0-compression)+blendVal*compression;
}
//render into the bound space defined above
vec3 surfToEye = normalize(surface.P - eyePosWorld);
vec3 irradiance = textureLod(irradianceCubemap, surface.N,0).xyz;
vec3 specular = iblBoxSpecular(surface.N, surface.P, surface.roughness, surfToEye, BRDFTexture, cubeMap, probeWSPos, bbMin, bbMax);
vec3 F = FresnelSchlickRoughness(surface.NdotV, surface.f0, surface.roughness);
specular *= F;
//energy conservation
vec3 kD = vec3(1.0) - F;
kD *= 1.0 - surface.metalness;
//final diffuse color
vec3 diffuse = kD * irradiance * surface.baseColor.rgb;
OUT_col = vec4(diffuse + specular * surface.ao, blendVal);
}

View file

@ -0,0 +1,32 @@
#include "shadergen:/autogenConditioners.h"
#include "../../torque.hlsl"
// This is the shader input
struct Vert
{
float4 position : POSITION;
float2 uv0 : TEXCOORD0;
float3 wsEyeRay : TEXCOORD1;
};
// This is the shader output data.
struct Conn
{
float4 position : POSITION;
float2 uv0 : TEXCOORD0;
float3 wsEyeRay : TEXCOORD1;
};
// Render Target Paramaters
float4 rtParams0;
Conn main(Vert IN,
uniform float4x4 modelView : register(C0))
{
Conn OUT;
OUT.position = IN.position;
OUT.uv0 = viewportCoordToRenderTarget( IN.uv0, rtParams0 );
OUT.wsEyeRay = IN.wsEyeRay;
return OUT;
}

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<ProjectSettings>
<Group name="AssetManagement">
<Group name="Modules">
<Setting name="coreModulePath">core/</Setting>
</Group>
</Group>
<Group name="Gameplay">
<Group name="GameModes">
<Setting name="defaultModeName">a</Setting>
</Group>
</Group>
</ProjectSettings>

View file

@ -0,0 +1,53 @@
$PostFXManager::Settings::ColorCorrectionRamp = "core/postFX/images/null_color_ramp.png";
$PostFXManager::Settings::DOF::BlurCurveFar = "35.2804";
$PostFXManager::Settings::DOF::BlurCurveNear = "15.3488";
$PostFXManager::Settings::DOF::BlurMax = "0.897196";
$PostFXManager::Settings::DOF::BlurMin = "0.261682";
$PostFXManager::Settings::DOF::EnableAutoFocus = "1";
$PostFXManager::Settings::DOF::EnableDOF = "";
$PostFXManager::Settings::DOF::FocusRangeMax = "200.943";
$PostFXManager::Settings::DOF::FocusRangeMin = "60.7571";
$PostFXManager::Settings::EnableDOF = "1";
$PostFXManager::Settings::EnabledSSAO = "1";
$PostFXManager::Settings::EnableHDR = "1";
$PostFXManager::Settings::EnableLightRays = "0";
$PostFXManager::Settings::EnablePostFX = "1";
$PostFXManager::Settings::EnableSSAO = "1";
$PostFXManager::Settings::EnableVignette = "1";
$PostFXManager::Settings::HDR::adaptRate = "2.08";
$PostFXManager::Settings::HDR::blueShiftColor = "1.05 0.97 1.27";
$PostFXManager::Settings::HDR::brightPassThreshold = "0.842105";
$PostFXManager::Settings::HDR::enableBloom = 1;
$PostFXManager::Settings::HDR::enableBlueShift = 0;
$PostFXManager::Settings::HDR::enableToneMapping = "0";
$PostFXManager::Settings::HDR::gaussMean = "0.378947";
$PostFXManager::Settings::HDR::gaussMultiplier = "0.0529101";
$PostFXManager::Settings::HDR::gaussStdDev = "0.380952";
$PostFXManager::Settings::HDR::keyValue = "0.423469";
$PostFXManager::Settings::HDR::minLuminace = "0.0204082";
$PostFXManager::Settings::HDR::whiteCutoff = "0.30102";
$PostFXManager::Settings::LightRays::brightScalar = 0.75;
$PostFXManager::Settings::LightRays::decay = 1;
$PostFXManager::Settings::LightRays::density = 0.94;
$PostFXManager::Settings::LightRays::numSamples = 40;
$PostFXManager::Settings::LightRays::weight = 5.65;
$PostFXManager::Settings::SSAO::blurDepthTol = 0.001;
$PostFXManager::Settings::SSAO::blurNormalTol = 0.95;
$PostFXManager::Settings::SSAO::lDepthMax = 2;
$PostFXManager::Settings::SSAO::lDepthMin = 0.2;
$PostFXManager::Settings::SSAO::lDepthPow = 0.2;
$PostFXManager::Settings::SSAO::lNormalPow = 2;
$PostFXManager::Settings::SSAO::lNormalTol = -0.5;
$PostFXManager::Settings::SSAO::lRadius = 1;
$PostFXManager::Settings::SSAO::lStrength = 10;
$PostFXManager::Settings::SSAO::overallStrength = 2;
$PostFXManager::Settings::SSAO::quality = "2";
$PostFXManager::Settings::SSAO::sDepthMax = 1;
$PostFXManager::Settings::SSAO::sDepthMin = 0.1;
$PostFXManager::Settings::SSAO::sDepthPow = 1;
$PostFXManager::Settings::SSAO::sNormalPow = 1;
$PostFXManager::Settings::SSAO::sNormalTol = 0;
$PostFXManager::Settings::SSAO::sRadius = 0.1;
$PostFXManager::Settings::SSAO::sStrength = 6;
$PostFXManager::Settings::Vignette::VMax = 0.85391;
$PostFXManager::Settings::Vignette::VMin = 0.2;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 B

View file

@ -89,7 +89,9 @@
isContainer="false"
internalName="slider"
canSave="true"
canSaveDynamicFields="false" />
canSaveDynamicFields="false"
renderTicks="false"
useFillBar="true" />
<GuiTextCtrl
text="5"
maxLength="1024"

View file

@ -66,34 +66,38 @@ function OptionsMenu::onWake(%this)
%array = OptionsSettingStack;
%array.clear();
%controllerMenuBtn = new GuiButtonCtrl(){
%keyboardMenuBtn = new GuiButtonCtrl(){
text = "Keyboard and Mouse";
profile = GuiMenuButtonProfile;
extent = %array.extent.x SPC "35";
};
%displayMenuBtn = new GuiButtonCtrl(){
%controllerMenuBtn = new GuiButtonCtrl(){
text = "Controller";
profile = GuiMenuButtonProfile;
extent = %array.extent.x SPC "35";
command="DisplayMenu::loadSettings();";
};
%keyboardMenuBtn = new GuiButtonCtrl(){
%displayMenuBtn = new GuiButtonCtrl(){
text = "Display";
profile = GuiMenuButtonProfile;
extent = %array.extent.x SPC "35";
command="DisplayMenu::loadSettings();";
};
%graphicsMenuBtn = new GuiButtonCtrl(){
text = "Graphics";
profile = GuiMenuButtonProfile;
extent = %array.extent.x SPC "35";
command="GraphicsMenu::loadSettings();";
};
%audioMenuBtn = new GuiButtonCtrl(){
text = "Audio";
profile = GuiMenuButtonProfile;
extent = %array.extent.x SPC "35";
command="AudioMenu::loadSettings();";
};
%gameplayMenuBtn = new GuiButtonCtrl(){
@ -236,7 +240,7 @@ function OptionsMenu::addSettingOption(%this, %arrayTarget, %optionName, %defaul
return %option;
}
function OptionsMenu::addSliderOption(%this, %arrayTarget, %optionName, %variable, %range, %ticks, %value, %class)
function OptionsMenu::addSliderOption(%this, %arrayTarget, %optionName, %variable, %range, %ticks, %value, %class)
{
%option = TAMLRead("data/ui/scripts/guis/graphicsMenuSettingsSlider.taml");
@ -620,3 +624,63 @@ function AudioMenuSoundDevice::onSelect( %this, %id, %text )
SPC $pref::SFX::device
SPC $pref::SFX::useHardware );
}
//==============================================================================
// DISPLAY MENU
//==============================================================================
function DisplayMenu::loadSettings()
{
OptionsSettingStack.clear();
OptionsMenu.addSettingOption(OptionsSettingStack, "Resolution", "1024 x 768", "", $pref::Video::Resolution);
OptionsMenu.addSettingOption(OptionsSettingStack, "Full Screen", "Off", "", $pref::Video::FullScreen);
OptionsMenu.addSettingOption(OptionsSettingStack, "Refresh Rate", "60", "", $pref::Video::RefreshRate);
OptionsMenu.addSettingOption(OptionsSettingStack, "VSync", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSliderOption(OptionsSettingStack, "Field of View", $pref::Video::FOV, "65 120", 55, 75);
OptionsMenu.addSliderOption(OptionsSettingStack, "Brightness", $pref::Video::Brightness, "0 1", 10, 5);
OptionsMenu.addSliderOption(OptionsSettingStack, "Contrast", $pref::Video::Contrast, "0 1", 10, 5);
}
//==============================================================================
// GRAPHICS MENU
//==============================================================================
function GraphicsMenu::loadSettings()
{
OptionsSettingStack.clear();
OptionsMenu.addSettingOption(OptionsSettingStack, "Shadow Quality", "High", "", $pref::Video::Resolution);
OptionsMenu.addSettingOption(OptionsSettingStack, "Shadow Caching", "Off", "", $pref::Video::FullScreen);
OptionsMenu.addSettingOption(OptionsSettingStack, "Soft Shadows", "60", "", $pref::Video::RefreshRate);
OptionsMenu.addSettingOption(OptionsSettingStack, "Model Detail", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSliderOption(OptionsSettingStack, "Texture Detail", $pref::Video::FOV, "65 120", 55, 75);
OptionsMenu.addSettingOption(OptionsSettingStack, "Terrain Detail", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "Decal Lifetime", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "Ground Clutter Density", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "Material Quality", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "HDR", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "Parallax", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "Ambient Occlusion", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "Light Rays", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "Depth of Field", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "Vignetting", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "Water Reflections", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "Anti Aliasing", "Off", "", $pref::Video::Vsync);
OptionsMenu.addSettingOption(OptionsSettingStack, "Anisotropic Filtering", "Off", "", $pref::Video::Vsync);
}
//==============================================================================
// AUDIO MENU
//==============================================================================
function AudioMenu::loadSettings()
{
OptionsSettingStack.clear();
OptionsMenu.addSliderOption(OptionsSettingStack, "Master Volume", $pref::Video::Brightness, "0 1", 10, 5);
OptionsMenu.addSliderOption(OptionsSettingStack, "Menu Volume", $pref::Video::Brightness, "0 1", 10, 5);
OptionsMenu.addSliderOption(OptionsSettingStack, "Effects Volume", $pref::Video::Brightness, "0 1", 10, 5);
OptionsMenu.addSliderOption(OptionsSettingStack, "Music Volume", $pref::Video::Brightness, "0 1", 10, 5);
}

View file

@ -426,4 +426,11 @@ new GuiControlProfile(GuiMenuScrollProfile)
bitmap = "./images/scrollBar";
hasBitmapArray = true;
category = "Core";
};
singleton GuiControlProfile(SliderBitmapGUIProfile)
{
bitmap = "data/ui/art/optionsMenuSliderBitmapArray.png";
hasBitmapArray = true;
opaque = false;
};

View file

@ -0,0 +1,34 @@
<AssetImportConfigs>
<Config Name="TestConfig">
<Mesh ImportMesh="1" DoUpAxisOverride="0" UpAxisOverride="Z_AXIS" DoScaleOverride="0" ScaleOverride="1" IgnoreNodeScale="0" AdjustCenter="0" AdjustFloor="1" CollapseSubmeshes="0" LODType="TrailingNumber" ImportedNodes="" IgnoreNodes="" ImportMeshes="" IgnoreMeshes="" />
<Materials ImportMaterials="1" IgnoreMaterials="" CreateComposites="1" UseDiffuseSuffixOnOriginImg="1" UseExistingMaterials="1" />
<Animations ImportAnimations="1" SeparateAnimations="1" SeparateAnimationPrefix="" />
<Collisions GenerateCollisions="1" GenCollisionType="CollisionMesh" CollisionMeshPrefix="Col" GenerateLOSCollisions="1" GenLOSCollisionType="CollisionMesh" LOSCollisionMeshPrefix="LOS" />
<Images ImageType="GUI" DiffuseTypeSuffixes="_ALBEDO,_DIFFUSE,_ALB,_DIF,_Base_Color,_COLOR,_COL" NormalTypeSuffixes="_NORMAL,_NORM" SpecularTypeSuffixes="_SPECULAR,_SPEC" MetalnessTypeSuffixes="_METAL,_MET,_METALNESS,_METALLIC" RoughnessTypeSuffixes="_ROUGH,_ROUGHNESS" SmoothnessTypeSuffixes="_SMOOTH,_SMOOTHNESS" AOTypeSuffixes="_AO,_AMBIENT,_AMBIENTOCCLUSION,_Ambient_Occlusion" CompositeTypeSuffixes="_COMP,_COMPOSITE" TextureFilteringMode="Bilinear" UseMips="1" IsHDR="0" Scaling="1" Compressed="0" GenerateMaterialOnImport="1" PopulateMaterialMaps="1" />
<Sounds VolumeAdjust="1" PitchAdjust="1" Compressed="0" />
</Config>
<Config Name="SecondTest">
<Mesh ImportMesh="1" DoUpAxisOverride="0" UpAxisOverride="Z_AXIS" DoScaleOverride="0" ScaleOverride="1" IgnoreNodeScale="0" AdjustCenter="0" AdjustFloor="0" CollapseSubmeshes="0" LODType="TrailingNumber" ImportedNodes="" IgnoreNodes="" ImportMeshes="" IgnoreMeshes="" />
<Materials ImportMaterials="1" IgnoreMaterials="" CreateComposites="1" UseDiffuseSuffixOnOriginImg="" UseExistingMaterials="" />
<Animations ImportAnimations="1" SeparateAnimations="1" SeparateAnimationPrefix="" />
<Collisions GenerateCollisions="1" GenCollisionType="CollisionMesh" CollisionMeshPrefix="Col" GenerateLOSCollisions="1" GenLOSCollisionType="CollisionMesh" LOSCollisionMeshPrefix="LOS" />
<Images ImageType="N/A" DiffuseTypeSuffixes="_ALBEDO,_DIFFUSE,_ALB,_DIF,_COLOR,_COL" NormalTypeSuffixes="_NORMAL,_NORM" SpecularTypeSuffixes="_SPECULAR,_SPEC" MetalnessTypeSuffixes="_METAL,_MET,_METALNESS,_METALLIC" RoughnessTypeSuffixes="_ROUGH,_ROUGHNESS" SmoothnessTypeSuffixes="_SMOOTH,_SMOOTHNESS" AOTypeSuffixes="_AO,_AMBIENT,_AMBIENTOCCLUSION" CompositeTypeSuffixes="_COMP,_COMPOSITE" TextureFilteringMode="Bilinear" UseMips="1" IsHDR="0" Scaling="1" Compressed="0" GenerateMaterialOnImport="" PopulateMaterialMaps="" />
<Sounds VolumeAdjust="1" PitchAdjust="1" Compressed="0" />
</Config>
<Config Name="GUI_Image_Import">
<Mesh ImportMesh="0" DoUpAxisOverride="0" UpAxisOverride="Z_AXIS" DoScaleOverride="0" ScaleOverride="1" IgnoreNodeScale="0" AdjustCenter="0" AdjustFloor="0" CollapseSubmeshes="0" LODType="TrailingNumber" ImportedNodes="" IgnoreNodes="" ImportMeshes="" IgnoreMeshes="" />
<Materials ImportMaterials="0" IgnoreMaterials="" CreateComposites="1" UseDiffuseSuffixOnOriginImg="1" UseExistingMaterials="1" />
<Animations ImportAnimations="0" SeparateAnimations="1" SeparateAnimationPrefix="" />
<Collisions GenerateCollisions="0" GenCollisionType="CollisionMesh" CollisionMeshPrefix="Col" GenerateLOSCollisions="1" GenLOSCollisionType="CollisionMesh" LOSCollisionMeshPrefix="LOS" />
<Images ImageType="GUI" DiffuseTypeSuffixes="_ALBEDO;_DIFFUSE;_ALB;_DIF;_COLOR;_COL;_BASECOLOR;_BASE_COLOR" NormalTypeSuffixes="_NORMAL;_NORM" SpecularTypeSuffixes="_SPECULAR;_SPEC" MetalnessTypeSuffixes="_METAL;_MET;_METALNESS;_METALLIC" RoughnessTypeSuffixes="_ROUGH;_ROUGHNESS" SmoothnessTypeSuffixes="_SMOOTH;_SMOOTHNESS" AOTypeSuffixes="_AO;_AMBIENT;_AMBIENTOCCLUSION" CompositeTypeSuffixes="_COMP;_COMPOSITE" TextureFilteringMode="Bilinear" UseMips="1" IsHDR="0" Scaling="1" Compressed="0" GenerateMaterialOnImport="0" PopulateMaterialMaps="0" />
<Sounds VolumeAdjust="1" PitchAdjust="1" Compressed="0" />
</Config>
<Config Name="CogflictsMesh">
<Mesh ImportMesh="1" DoUpAxisOverride="0" UpAxisOverride="Z_AXIS" DoScaleOverride="0" ScaleOverride="1" IgnoreNodeScale="0" AdjustCenter="0" AdjustFloor="0" CollapseSubmeshes="0" LODType="TrailingNumber" ImportedNodes="" IgnoreNodes="" ImportMeshes="" IgnoreMeshes="" />
<Materials ImportMaterials="1" IgnoreMaterials="ColorEffect*;" CreateComposites="1" UseDiffuseSuffixOnOriginImg="1" UseExistingMaterials="1" />
<Animations ImportAnimations="1" SeparateAnimations="1" SeparateAnimationPrefix="" />
<Collisions GenerateCollisions="1" GenCollisionType="CollisionMesh" CollisionMeshPrefix="Col" GenerateLOSCollisions="1" GenLOSCollisionType="CollisionMesh" LOSCollisionMeshPrefix="LOS" />
<Images ImageType="N/A" DiffuseTypeSuffixes="_ALBEDO;_DIFFUSE;_ALB;_DIF;_COLOR;_COL;_BASECOLOR;_BASE_COLOR;_Al" NormalTypeSuffixes="_NORMAL;_NORM;_N" SpecularTypeSuffixes="_SPECULAR;_SPEC" MetalnessTypeSuffixes="_METAL;_MET;_METALNESS;_METALLIC" RoughnessTypeSuffixes="_ROUGH;_ROUGHNESS" SmoothnessTypeSuffixes="_SMOOTH;_SMOOTHNESS" AOTypeSuffixes="_AO;_AMBIENT;_AMBIENTOCCLUSION" CompositeTypeSuffixes="_COMP;_COMPOSITE;_C" TextureFilteringMode="Bilinear" UseMips="1" IsHDR="0" Scaling="1" Compressed="0" GenerateMaterialOnImport="1" PopulateMaterialMaps="1" />
<Sounds VolumeAdjust="1" PitchAdjust="1" Compressed="0" />
</Config>
</AssetImportConfigs>

View file

@ -323,7 +323,7 @@
minExtent = "64 64";
horizSizing = "relative";
vertSizing = "height";
profile = "GuiDefaultProfile";
profile = "ToolsGuiDefaultProfile";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";
@ -345,7 +345,7 @@
minExtent = "16 16";
horizSizing = "right";
vertSizing = "bottom";
profile = "GuiDefaultProfile";
profile = "ToolsGuiDefaultProfile";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";
@ -414,7 +414,7 @@
minExtent = "8 2";
horizSizing = "right";
vertSizing = "bottom";
profile = "GuiDefaultProfile";
profile = "ToolsGuiDefaultProfile";
visible = "1";
active = "1";
command = "AssetBrowser.showFilterPopup();";
@ -530,7 +530,7 @@
minExtent = "16 16";
horizSizing = "right";
vertSizing = "bottom";
profile = "GuiDefaultProfile";
profile = "ToolsGuiDefaultProfile";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";
@ -657,7 +657,7 @@
minExtent = "8 2";
horizSizing = "right";
vertSizing = "bottom";
profile = "GuiDefaultProfile";
profile = "ToolsGuiDefaultProfile";
visible = "1";
active = "1";
command = "AssetBrowser.toggleTagFilterPopup();";
@ -798,7 +798,7 @@
minExtent = "8 2";
horizSizing = "right";
vertSizing = "bottom";
profile = "GuiDefaultProfile";
profile = "ToolsGuiDefaultProfile";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";

View file

@ -85,7 +85,7 @@
minExtent = "8 2";
horizSizing = "width";
vertSizing = "height";
profile = "GuiScrollProfile";
profile = "ToolsGuiScrollProfile";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";
@ -243,7 +243,7 @@
minExtent = "8 2";
horizSizing = "width";
vertSizing = "height";
profile = "GuiScrollProfile";
profile = "ToolsGuiScrollProfile";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";
@ -574,7 +574,7 @@
minExtent = "8 2";
horizSizing = "width";
vertSizing = "height";
profile = "GuiScrollProfile";
profile = "ToolsGuiScrollProfile";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";

View file

@ -66,7 +66,7 @@
minExtent = "8 2";
horizSizing = "right";
vertSizing = "bottom";
profile = "GuiScrollProfile";
profile = "Tools";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";

View file

@ -66,7 +66,7 @@
minExtent = "8 2";
horizSizing = "right";
vertSizing = "bottom";
profile = "GuiScrollProfile";
profile = "ToolsGuiScrollProfile";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";

View file

@ -196,7 +196,7 @@
minExtent = "8 2";
horizSizing = "right";
vertSizing = "bottom";
profile = "GuiScrollProfile";
profile = "ToolsGuiScrollProfile";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";

View file

@ -22,6 +22,7 @@
if( !isObject( ToolsGuiDefaultNonModalProfile ) )
new GuiControlProfile (ToolsGuiDefaultNonModalProfile : ToolsGuiDefaultProfile)
{
opaque = false;
modal = false;
};

View file

@ -114,7 +114,7 @@
canSaveDynamicFields = "0";
Enabled = "1";
isContainer = "1";
Profile = "menubarProfile";
Profile = "ToolsMenubarProfile";
HorizSizing = "width";
VertSizing = "bottom";
Position = "195 0";

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

After

Width:  |  Height:  |  Size: 6.1 KiB

Before After
Before After

View file

@ -28,7 +28,6 @@ singleton GuiControlProfile (NavPanelProfile)
category = "Editor";
};
singleton GuiControlProfile (NavPanel : NavPanelProfile)
{
bitmap = "./navPanel";
@ -64,53 +63,3 @@ singleton GuiControlProfile (NavPanelYellow : NavPanelProfile)
bitmap = "./navPanel_yellow";
category = "Editor";
};
singleton GuiControlProfile (menubarProfile : NavPanelProfile)
{
bitmap = "./menubar";
category = "Editor";
fillColor = "48 48 48";
fontColor = "215 215 215";
fontColorHL = "150 150 150";
borderColor = "34 34 34";
};
singleton GuiControlProfile (editorMenubarProfile : NavPanelProfile)
{
bitmap = "./editor-menubar";
category = "Editor";
};
singleton GuiControlProfile (editorMenu_wBorderProfile : NavPanelProfile)
{
bitmap = "./menu-fullborder";
category = "Editor";
};
singleton GuiControlProfile (inspectorStyleRolloutProfile : NavPanelProfile)
{
bitmap = "./inspector-style-rollout";
category = "Editor";
};
singleton GuiControlProfile (inspectorStyleRolloutListProfile : NavPanelProfile)
{
bitmap = "./inspector-style-rollout-list";
category = "Editor";
};
singleton GuiControlProfile (inspectorStyleRolloutDarkProfile : NavPanelProfile)
{
bitmap = "./inspector-style-rollout-dark";
category = "Editor";
};
singleton GuiControlProfile (inspectorStyleRolloutInnerProfile : NavPanelProfile)
{
bitmap = "./inspector-style-rollout_inner";
category = "Editor";
};
singleton GuiControlProfile (inspectorStyleRolloutNoHeaderProfile : NavPanelProfile)
{
bitmap = "./inspector-style-rollout-noheader";
category = "Editor";
};
singleton GuiControlProfile (IconDropdownProfile : NavPanelProfile)
{
bitmap = "./icon-dropdownbar";
category = "Editor";
};

View file

@ -22,19 +22,31 @@
function ESettingsWindow::startup( %this )
{
new ArrayObject(EditorSettingsPageList);
new ArrayObject(GameSettingsPageList);
%this.addEditorSettingsPage("Axis", "Axis Gizmo");
%this.addEditorSettingsPage("General", "General Settings");
%this.addEditorSettingsPage("Camera", "Camera Settings");
%this.addEditorSettingsPage("SceneEditor", "Scene Editor");
%this.addEditorSettingsPage("ShapeEditor", "Shape Editor");
%this.addEditorSettingsPage("NavEditor", "Navigation Editor");
%this.addEditorSettingsPage("Theme", "Theme");
%this.addGameSettingsPage("GameGeneral", "General");
%this.addGameSettingsPage("Gameplay", "Gameplay");
%this.addGameSettingsPage("Paths", "Paths");
%this.addGameSettingsPage("UI", "UI");
%this.addGameSettingsPage("LevelDefaults", "Level Defaults");
%this.addGameSettingsPage("GameOptions", "Game Options");
%this.addGameSettingsPage("AssetManagement", "Asset Management");
%this.mode = "Editor";
}
function ESettingsWindow::onWake( %this )
{
new ArrayObject(SettingsPageList);
%this.addSettingsPage("Axis", "Axis Gizmo");
%this.addSettingsPage("General", "General Settings");
%this.addSettingsPage("Camera", "Camera Settings");
%this.addSettingsPage("SceneEditor", "Scene Editor");
%this.addSettingsPage("ShapeEditor", "Shape Editor");
%this.addSettingsPage("NavEditor", "Navigation Editor");
ESettingsWindowList.setSelectedById( 1 );
}
function ESettingsWindow::hideDialog( %this )
@ -47,7 +59,6 @@ function ESettingsWindow::ToggleVisibility()
if ( ESettingsWindow.visible )
{
ESettingsWindow.setVisible(false);
EditorSettings.write();
}
else
{
@ -59,19 +70,50 @@ function ESettingsWindow::ToggleVisibility()
ESettingsWindowList.setSelectedById( 1 );
}
/*function ESettingsWindow::addTabPage( %this, %page )
function ESettingsWindow::toggleProjectSettings(%this)
{
ESettingsWindowTabBook.add( %page );
ESettingsWindowList.addRow( ESettingsWindowTabBook.getSelectedPage(), %page.text );
ESettingsWindowList.sort(0);
}*/
function ESettingsWindow::addSettingsPage(%this, %settingsPageName, %settingsPageText)
{
SettingsPageList.add(%settingsPageName, %settingsPageText);
%this.ToggleVisibility();
ESettingsWindowList.addRow( SettingsPageList.count(), %settingsPageText );
%count = GameSettingsPageList.count();
for(%i=0; %i < %count; %i++)
{
%settingsPageText = GameSettingsPageList.getValue(%i);
ESettingsWindowList.addRow( %i, %settingsPageText );
}
ESettingsWindowList.sort(0);
ESettingsWindowList.setSelectedById( 1 );
%this.mode = "Project";
ESettingsWindow.text = "Game Project Settings";
}
function ESettingsWindow::toggleEditorSettings(%this)
{
%this.ToggleVisibility();
%count = EditorSettingsPageList.count();
for(%i=0; %i < %count; %i++)
{
%settingsPageText = EditorSettingsPageList.getValue(%i);
ESettingsWindowList.addRow( %i, %settingsPageText );
}
ESettingsWindowList.sort(0);
ESettingsWindowList.setSelectedById( 1 );
%this.mode = "Editor";
ESettingsWindow.text = "Editor Settings";
}
function ESettingsWindow::addEditorSettingsPage(%this, %settingsPageName, %settingsPageText)
{
EditorSettingsPageList.add(%settingsPageName, %settingsPageText);
}
function ESettingsWindow::addGameSettingsPage(%this, %settingsPageName, %settingsPageText)
{
GameSettingsPageList.add(%settingsPageName, %settingsPageText);
}
//-----------------------------------------------------------------------------
@ -79,10 +121,49 @@ function ESettingsWindow::addSettingsPage(%this, %settingsPageName, %settingsPag
function ESettingsWindowList::onSelect( %this, %id, %text )
{
SettingsInspector.clearFields();
%pageName = SettingsPageList.getKey(SettingsPageList.getIndexFromValue(%text));
if(ESettingsWindow.mode $= "Editor")
%pageName = EditorSettingsPageList.getKey(EditorSettingsPageList.getIndexFromValue(%text));
else
%pageName = GameSettingsPageList.getKey(GameSettingsPageList.getIndexFromValue(%text));
eval("ESettingsWindow.get" @ %pageName @ "Settings();");
}
//Read/write field functions
function SettingsInspector::addSettingsField(%this, %settingsFieldName, %labelText, %fieldType, %tooltip, %fieldData)
{
%moddedSettingsFieldName = strreplace(%settingsFieldName, "/", "-");
if(ESettingsWindow.mode $= "Editor")
%this.addCallbackField(%moddedSettingsFieldName, %labelText, %fieldType, "", EditorSettings.value(%settingsFieldName), %fieldData, "changeEditorSetting");
else
%this.addCallbackField(%moddedSettingsFieldName, %labelText, %fieldType, "", ProjectSettings.value(%settingsFieldName), %fieldData, "changeEditorSetting");
}
function SettingsInspector::changeEditorSetting(%this, %varName, %value)
{
%varName = strreplace(%varName, "-", "/");
echo("Set " @ %varName @ " to be " @ %value);
if(ESettingsWindow.mode $= "Editor")
EditorSettings.setValue(%varName, %value);
else
ProjectSettings.setValue(%varName, %value);
//%id = ESettingsWindowList.getSelectedRow();
//ESettingsWindowList.setSelectedRow(%id);
if(ESettingsWindow.mode $= "Editor")
%success = EditorSettings.write();
else
%success = ProjectSettings.write();
}
//
// COMMON EDITOR SETTINGS
//
function ESettingsWindow::getAxisSettings(%this)
{
SettingsInspector.startGroup("Gizmo");
@ -182,21 +263,89 @@ function ESettingsWindow::getShapeEditorSettings(%this)
SettingsInspector.endGroup();
}
//Read/write field functions
function SettingsInspector::addSettingsField(%this, %settingsFieldName, %labelText, %fieldType, %tooltip, %fieldData)
function ESettingsWindow::getThemeSettings(%this)
{
%moddedSettingsFieldName = strreplace(%settingsFieldName, "/", "-");
%this.addCallbackField(%moddedSettingsFieldName, %labelText, %fieldType, "", EditorSettings.value(%settingsFieldName), %fieldData, "changeEditorSetting");
}
SettingsInspector.startGroup("Colors");
SettingsInspector.addSettingsField("Theme/headerColor", "Headerbar Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/windowBackgroundColor", "Window Background Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/tabsColor", "Tabs Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/tabsHLColor", "Tabs Highlight Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/tabsSELColor", "Tabs Selected Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/dividerDarkColor", "Divider Dark Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/dividerMidColor", "Divider Mid Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/dividerLightColor", "Divider Light Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/headerTextColor", "Header Text Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/fieldTextColor", "Field Text Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/fieldTextHLColor", "Field Text Highlight Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/fieldTextSELColor", "Field Text Selected Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/fieldBGColor", "Field Background Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/fieldBGHLColor", "Field Background Highlight Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/fieldBGSELColor", "Field Background Selected Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/tooltipBGColor", "Tooltip Background Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/tooltipTextColor", "Tooltip Text Highlight Color", "ColorI", "");
SettingsInspector.addSettingsField("Theme/tooltipDivColor", "Tooltip Divider Color", "ColorI", "");
SettingsInspector.endGroup();
}
//
// COMMON GAME SETTINGS
//
function ESettingsWindow::getGameGeneralSettings(%this)
{
SettingsInspector.startGroup("General");
SettingsInspector.addSettingsField("General/ProjectName", "Project Name", "string", "");
SettingsInspector.endGroup();
}
function SettingsInspector::changeEditorSetting(%this, %varName, %value)
function ESettingsWindow::getPathsSettings(%this)
{
%varName = strreplace(%varName, "-", "/");
SettingsInspector.startGroup("Paths");
SettingsInspector.addSettingsField("Paths/splashImagePath", "Splash Image", "filename", "");
SettingsInspector.addSettingsField("Paths/iconImagePath", "Icon Image", "filename", "");
SettingsInspector.addSettingsField("Paths/missingTexturePath", "Missing Texture Image", "filename", "");
SettingsInspector.addSettingsField("Paths/noMaterialPath", "No Material Image", "filename", "");
SettingsInspector.addSettingsField("Paths/errorMaterialMath", "Error Material Image", "filename", "");
SettingsInspector.endGroup();
}
function ESettingsWindow::getUISettings(%this)
{
SettingsInspector.startGroup("UI");
SettingsInspector.addSettingsField("UI/playGUIName", "Play GUI Name", "string", "");
SettingsInspector.addSettingsField("UI/mainMenuName", "Main Menu GUI Name", "string", "");
SettingsInspector.endGroup();
}
function ESettingsWindow::getAssetManagementSettings(%this)
{
SettingsInspector.startGroup("Modules");
SettingsInspector.addSettingsField("AssetManagement/Modules/coreModulePath", "Core Module Path", "string", "");
SettingsInspector.addSettingsField("AssetManagement/Modules/gameDataModulePath", "Game Data Module Path", "string", "");
SettingsInspector.addSettingsField("AssetManagement/Modules/moduleExtension", "Module Extension", "string", "");
SettingsInspector.endGroup();
echo("Set " @ %varName @ " to be " @ %value);
EditorSettings.setValue(%varName, %value);
%id = ESettingsWindowList.getSelectedRow();
ESettingsWindowList.setSelectedRow(%id);
}
SettingsInspector.startGroup("Assets");
SettingsInspector.addSettingsField("AssetManagement/Assets/assetExtension", "Asset Extension", "string", "");
SettingsInspector.addSettingsField("AssetManagement/Assets/datablockCaching", "Cache Datablocks", "bool", "");
//SettingsInspector.addSettingsField("AssetManagement/Assets/moduleExtension", "Module Extension", "string", "");
SettingsInspector.endGroup();
}
function ESettingsWindow::getGameplaySettings(%this)
{
SettingsInspector.startGroup("Game Modes");
SettingsInspector.addSettingsField("Gameplay/GameModes/defaultModeName", "Default Gamemode Name", "string", "");
SettingsInspector.endGroup();
}
function ESettingsWindow::getGameOptionsSettings(%this)
{
SettingsInspector.startGroup("Game Modes");
SettingsInspector.addSettingsField("Gameplay/GameModes/defaultModeName", "Default Gamemode Name", "string", "");
SettingsInspector.endGroup();
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 B

After

Width:  |  Height:  |  Size: 4 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 861 B

After

Width:  |  Height:  |  Size: 5.2 KiB

Before After
Before After

View file

@ -99,7 +99,7 @@
};
new GuiScrollCtrl(MBOKCancelDetailsScroll) {
canSaveDynamicFields = "0";
Profile = "GuiScrollProfile";
Profile = "ToolsGuiScrollProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = "8 115";

View file

@ -37,27 +37,27 @@ new GuiControlProfile (ToolsGuiDefaultProfile)
mouseOverSelected = false;
// fill color
opaque = false;
fillColor = "50 50 50";
fillColorHL = "91 101 116";
fillColorSEL = "91 101 116";
fillColorNA = "255 0 255 ";
opaque = true;
fillColor = EditorSettings.value("Theme/tabsColor");
fillColorHL = EditorSettings.value("Theme/tabsGLColor");
fillColorSEL = EditorSettings.value("Theme/tabsSELColor");
fillColorNA = EditorSettings.value("Theme/tabsSELColor");
// border color
border = 0;
borderColor = "34 34 34";
borderColorHL = "91 101 116";
borderColorNA = "32 32 32";
borderColor = EditorSettings.value("Theme/dividerDarkColor");
borderColorHL = EditorSettings.value("Theme/dividerMidColor");
borderColorNA = EditorSettings.value("Theme/dividerLightColor");
// font
fontType = "Noto Sans";
fontSize = 14;
fontCharset = ANSI;
fontColor = "215 215 215";
fontColorHL = "215 215 215";
fontColorNA = "215 215 215";
fontColorSEL= "255 255 255";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
fontColorSEL= EditorSettings.value("Theme/fieldTextSELColor");
// bitmap information
bitmap = "";
@ -118,15 +118,15 @@ if( !isObject( ToolsGuiToolTipProfile ) )
new GuiControlProfile (ToolsGuiToolTipProfile)
{
// fill color
fillColor = "255 255 255";
fillColor = EditorSettings.value("Theme/tooltipBGColor");
// border color
borderColor = "0 0 0";
borderColor = EditorSettings.value("Theme/tooltipDivColor");
// font
fontType = "Noto Sans";
fontSize = 14;
fontColor = "24 24 24";
fontColor = EditorSettings.value("Theme/tooltipTextColor");
category = "Tools";
};
@ -141,7 +141,7 @@ new GuiControlProfile( ToolsGuiModelessDialogProfile )
if( !isObject( ToolsGuiFrameSetProfile ) )
new GuiControlProfile (ToolsGuiFrameSetProfile)
{
fillColor = "48 48 48";
fillColor = EditorSettings.value("Theme/windowBackgroundColor");
borderColor = "246 245 244";
border = 1;
opaque = true;
@ -154,11 +154,11 @@ new GuiControlProfile (ToolsGuiWindowProfile)
{
opaque = false;
border = 1;
fillColor = EditorSettings.value("WorldEditor/Theme/windowTitleBGColor");
fillColorHL = EditorSettings.value("WorldEditor/Theme/windowTitleBGHLColor");
fillColorNA = EditorSettings.value("WorldEditor/Theme/windowTitleBGNAColor");
fontColor = EditorSettings.value("WorldEditor/Theme/windowTitleFontColor");
fontColorHL = EditorSettings.value("WorldEditor/Theme/windowTitleFontHLColor");
fillColor = EditorSettings.value("Theme/tabsColor");
fillColorHL = EditorSettings.value("Theme/tabsColor");
fillColorNA = EditorSettings.value("Theme/tabsColor");
fontColor = EditorSettings.value("Theme/headerTextColor");
fontColorHL = EditorSettings.value("Theme/headerTextColor");
bevelColorHL = "255 255 255";
bevelColorLL = "0 0 0";
text = "untitled";
@ -186,15 +186,16 @@ new GuiControlProfile (ToolsGuiWindowCollapseProfile : ToolsGuiWindowProfile)
if( !isObject( ToolsGuiTextProfile ) )
new GuiControlProfile (ToolsGuiTextProfile)
{
opaque = true;
justify = "left";
fontColor = "185 185 185";
fontColor = EditorSettings.value("Theme/headerTextColor");
category = "Tools";
};
if( !isObject( ToolsGuiTextBoldCenterProfile ) )
new GuiControlProfile (ToolsGuiTextBoldCenterProfile : ToolsGuiTextProfile)
{
fontColor = "165 165 165";
fontColor = EditorSettings.value("Theme/headerTextColor");
fontType = "Noto Sans Bold";
fontSize = 16;
justify = "center";
@ -218,7 +219,7 @@ new GuiControlProfile (ToolsGuiTextCenterProfile : ToolsGuiTextProfile)
if( !isObject( ToolsGuiInspectorTitleTextProfile ) )
new GuiControlProfile (ToolsGuiInspectorTitleTextProfile)
{
fontColor = "100 100 100";
fontColor = EditorSettings.value("Theme/headerTextColor");
category = "Tools";
};
@ -245,12 +246,12 @@ new GuiControlProfile( ToolsGuiMLTextProfile )
if( !isObject( ToolsGuiTextArrayProfile ) )
new GuiControlProfile( ToolsGuiTextArrayProfile : ToolsGuiTextProfile )
{
fontColor = "165 165 165";
fontColorHL = "215 215 215";
fontColorSEL = "215 215 215";
fillColor = "200 200 200";
fillColorHL = "228 228 235";
fillColorSEL = "200 200 200";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorSEL = EditorSettings.value("Theme/fieldTextSELColor");
fillColor = EditorSettings.value("Theme/fieldBGColor");
fillColorHL = EditorSettings.value("Theme/fieldBGHLColor");
fillColorSEL = EditorSettings.value("Theme/fieldBGSELColor");
border = false;
category = "Tools";
};
@ -272,11 +273,11 @@ new GuiControlProfile( ToolsGuiTextEditProfile )
border = -2; // fix to display textEdit img
//borderWidth = "1"; // fix to display textEdit img
//borderColor = "100 100 100";
fillColor = "42 42 42 0";
fillColorHL = "91 101 116";
fontColor = "215 215 215";
fontColorHL = "115 115 115";
fontColorSEL = "98 100 137";
fillColor = EditorSettings.value("Theme/fieldBGColor");
fillColorHL = EditorSettings.value("Theme/fieldBGHLColor");
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorSEL = EditorSettings.value("Theme/fieldTextSELColor");
fontColorNA = "200 200 200";
textOffset = "4 2";
autoSizeWidth = false;
@ -325,9 +326,9 @@ new GuiControlProfile( ToolsGuiButtonProfile )
{
opaque = true;
border = true;
fontColor = "165 165 165";
fontColorHL = "215 215 215";
fontColorNA = "200 200 200";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
fixedExtent = false;
justify = "center";
canKeyFocus = false;
@ -348,9 +349,9 @@ new GuiControlProfile( ToolsGuiIconButtonProfile )
{
opaque = true;
border = true;
fontColor = "165 165 165";
fontColorHL = "215 215 215";
fontColorNA = "200 200 200";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
fixedExtent = false;
justify = "center";
canKeyFocus = false;
@ -371,10 +372,10 @@ new GuiControlProfile(ToolsGuiEditorTabPage)
{
opaque = true;
border = false;
fillColor = "48 48 48";
fontColor = "215 215 215";
fontColorHL = "150 150 150";
borderColor = "34 34 34";
fillColor = EditorSettings.value("Theme/tabsColor");
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
borderColor = EditorSettings.value("Theme/dividerDarkColor");
fixedExtent = false;
justify = "left";
canKeyFocus = false;
@ -387,13 +388,13 @@ if( !isObject( ToolsGuiCheckBoxProfile ) )
new GuiControlProfile( ToolsGuiCheckBoxProfile )
{
opaque = false;
fillColor = "232 232 232";
fillColor = EditorSettings.value("Theme/fieldBGColor");
border = false;
borderColor = "100 100 100";
borderColor = EditorSettings.value("Theme/dividerDarkColor");
fontSize = 14;
fontColor = "185 185 185";
fontColorHL = "80 80 80";
fontColorNA = "200 200 200";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
fixedExtent = true;
justify = "left";
bitmap = "./images/checkbox";
@ -417,7 +418,7 @@ new GuiControlProfile( ToolsGuiCheckBoxListFlipedProfile : ToolsGuiCheckBoxProfi
if( !isObject( ToolsGuiInspectorCheckBoxTitleProfile ) )
new GuiControlProfile( ToolsGuiInspectorCheckBoxTitleProfile : ToolsGuiCheckBoxProfile ){
fontColor = "100 100 100";
fontColor = EditorSettings.value("Theme/fieldTextColor");
category = "Tools";
};
@ -425,9 +426,9 @@ if( !isObject( ToolsGuiRadioProfile ) )
new GuiControlProfile( ToolsGuiRadioProfile )
{
fontSize = 14;
fillColor = "232 232 232";
fontColor = "185 185 185";
fontColorHL = "80 80 80";
fillColor = EditorSettings.value("Theme/fieldBGColor");
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fixedExtent = true;
bitmap = "./images/radioButton";
hasBitmapArray = true;
@ -438,10 +439,10 @@ if( !isObject( ToolsGuiScrollProfile ) )
new GuiControlProfile( ToolsGuiScrollProfile )
{
opaque = true;
fillColor = "48 48 48";
fontColor = "215 215 215";
fontColorHL = "150 150 150";
borderColor = "34 34 34";
fillColor = EditorSettings.value("Theme/tabsColor");
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
borderColor = EditorSettings.value("Theme/dividerDarkColor");
border = true;
bitmap = "./images/scrollBar";
hasBitmapArray = true;
@ -452,10 +453,9 @@ if( !isObject( ToolsGuiOverlayProfile ) )
new GuiControlProfile( ToolsGuiOverlayProfile )
{
opaque = true;
fillColor = "48 48 48";
fontColor = "215 215 215";
fontColorHL = "255 255 255";
fillColor = "0 0 0 100";
fillColor = EditorSettings.value("Theme/windowBackgroundColor");
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextGLColor");
category = "Tools";
};
@ -478,9 +478,9 @@ new GuiControlProfile( ToolsGuiPopupMenuItemBorder : ToolsGuiButtonProfile )
{
opaque = true;
border = true;
fontColor = "215 215 215";
fontColorHL = "215 215 215";
fontColorNA = "255 255 255";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextGLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
fixedExtent = false;
justify = "center";
canKeyFocus = false;
@ -500,13 +500,14 @@ new GuiControlProfile( ToolsGuiPopUpMenuDefault : ToolsGuiDefaultProfile )
bitmap = "./images/scrollbar";
hasBitmapArray = true;
profileForChildren = ToolsGuiPopupMenuItemBorder;
fillColor = "48 48 48";//"255 255 255";//100
fillColorHL = "228 228 235 ";//"91 101 116";
fillColorSEL = "98 100 137 ";//"91 101 116";
fillColor = EditorSettings.value("Theme/fieldBGColor");//"255 255 255";//100
fillColorHL = EditorSettings.value("Theme/fieldBGHLColor");//"91 101 116";
fillColorSEL = EditorSettings.value("Theme/fieldBGSELColor");//"91 101 116";
// font color is black
fontColorHL = "215 215 215 ";//"215 215 215";
fontColorSEL = "255 255 255";//"215 215 215";
borderColor = "100 100 100";
fontColor = EditorSettings.value("Theme/fieldTextColor");//"215 215 215";
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");//"215 215 215";
fontColorSEL = EditorSettings.value("Theme/fieldTextSELColor");//"215 215 215";
borderColor = EditorSettings.value("Theme/dividerDarkColor");
category = "Tools";
};
@ -548,11 +549,11 @@ new GuiControlProfile( ToolsGuiPopUpMenuEditProfile : ToolsGuiPopUpMenuDefault )
if( !isObject( ToolsGuiListBoxProfile ) )
new GuiControlProfile( ToolsGuiListBoxProfile )
{
fillColorHL = "100 100 100";
fillColorNA = "150 150 150";
fontColor = "215 215 215";
fontColorHL = "215 215 215";
fontColorNA = "50 50 50";
fillColorHL = EditorSettings.value("Theme/windowBackgroundColor");
fillColorNA = EditorSettings.value("Theme/windowBackgroundColor");
fontColor = EditorSettings.value("Theme/headerTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
tab = true;
canKeyFocus = true;
@ -562,11 +563,11 @@ new GuiControlProfile( ToolsGuiListBoxProfile )
if( !isObject( ToolsGuiTabBookProfile ) )
new GuiControlProfile( ToolsGuiTabBookProfile )
{
fillColorHL = "100 100 100";
fillColorNA = "150 150 150";
fontColor = "215 215 215";
fontColorHL = "215 215 215";
fontColorNA = "50 50 50";
fillColorHL = EditorSettings.value("Theme/windowBackgroundColor");
fillColorNA = EditorSettings.value("Theme/windowBackgroundColor");
fontColor = EditorSettings.value("Theme/headerTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
fontType = "Noto Sans";
fontSize = 14;
justify = "center";
@ -606,7 +607,7 @@ new GuiControlProfile( ToolsGuiTreeViewProfile )
bitmap = "./images/treeView";
autoSizeHeight = true;
canKeyFocus = true;
fillColor = "48 48 48";
fillColor = EditorSettings.value("Theme/windowBackgroundColor");
fillColorHL = "116 116 116";
fillColorSEL = "91 101 116";
fillColorNA = "40 40 40";
@ -632,7 +633,7 @@ new GuiControlProfile( ToolsGuiTextPadProfile )
// Deviate from the Default
opaque=true;
fillColor = "48 48 48";
fillColor = EditorSettings.value("Theme/windowBackgroundColor");
border = 0;
category = "Tools";
};
@ -686,7 +687,7 @@ singleton GuiControlProfile( GuiBackFillProfile )
singleton GuiControlProfile( GuiControlListPopupProfile )
{
opaque = true;
fillColor = "48 48 48";
fillColor = EditorSettings.value("Theme/windowBackgroundColor");
fillColorHL = "91 101 116";
border = false;
//borderColor = "0 0 0";
@ -719,10 +720,10 @@ singleton GuiControlProfile( GuiInspectorButtonProfile : ToolsGuiButtonProfile )
singleton GuiControlProfile( GuiInspectorSwatchButtonProfile )
{
borderColor = "100 100 100 255";
borderColorNA = "200 200 200 255";
fillColorNA = "255 255 255 0";
borderColorHL = "0 0 0 255";
borderColor = EditorSettings.value("Theme/dividerDarkColor");
borderColorNA = EditorSettings.value("Theme/dividerMidColor");
fillColorNA = EditorSettings.value("Theme/fieldBGColor");
borderColorHL = EditorSettings.value("Theme/dividerLightColor");
category = "Editor";
};
@ -730,8 +731,8 @@ singleton GuiControlProfile( GuiInspectorTextEditProfile )
{
// Transparent Background
opaque = true;
fillColor = "0 0 0 0";
fillColorHL = "91 101 116";
fillColor = EditorSettings.value("Theme/fieldBGColor");
fillColorHL = EditorSettings.value("Theme/fieldBGHLColor");
// No Border (Rendered by field control)
border = false;
@ -743,10 +744,10 @@ singleton GuiControlProfile( GuiInspectorTextEditProfile )
fontType = "Noto Sans";
fontSize = 14;
fontColor = "215 215 215";
fontColorSEL = "0 140 220";
fontColorHL = "240 240 240";
fontColorNA = "100 100 100";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorSEL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorHL = EditorSettings.value("Theme/fieldTextSELColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
category = "Editor";
};
singleton GuiControlProfile( GuiDropdownTextEditProfile : ToolsGuiTextEditProfile )
@ -765,9 +766,9 @@ singleton GuiControlProfile( GuiInspectorGroupProfile )
fontType = "Noto Sans";
fontSize = "14";
fontColor = "215 215 215 150";
fontColorHL = "215 215 215 220";
fontColorNA = "128 128 128";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
justify = "left";
opaque = false;
@ -783,16 +784,16 @@ singleton GuiControlProfile( GuiInspectorGroupProfile )
singleton GuiControlProfile( GuiInspectorFieldProfile)
{
// fill color
opaque = false;
fillColor = "48 48 48";
fillColorHL = "91 101 116";
fillColorNA = "244 244 244";
opaque = true;
fillColor = EditorSettings.value("Theme/fieldBGColor");
fillColorHL = EditorSettings.value("Theme/fieldBGHLColor");
fillColorNA = EditorSettings.value("Theme/fieldBGSELColor");
// border color
border = false;
borderColor = "190 190 190";
borderColorHL = "156 156 156";
borderColorNA = "200 200 200";
borderColor = EditorSettings.value("Theme/dividerDarkColor");
borderColorHL = EditorSettings.value("Theme/dividerMidColor");
borderColorNA = EditorSettings.value("Theme/dividerLightColor");
//bevelColorHL = "255 255 255";
//bevelColorLL = "0 0 0";
@ -801,9 +802,9 @@ singleton GuiControlProfile( GuiInspectorFieldProfile)
fontType = "Noto Sans";
fontSize = 14;
fontColor = "240 240 240";
fontColorHL = "240 240 240";
fontColorNA = "190 190 190";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
textOffset = "10 0";
tab = true;
@ -822,15 +823,15 @@ singleton GuiControlProfile( GuiInspectorMultiFieldProfile : GuiInspectorFieldPr
singleton GuiControlProfile( GuiInspectorMultiFieldDifferentProfile : GuiInspectorFieldProfile )
{
border = true;
borderColor = "190 100 100";
borderColor = EditorSettings.value("Theme/dividerMidColor");
};
singleton GuiControlProfile( GuiInspectorDynamicFieldProfile : GuiInspectorFieldProfile )
{
// Transparent Background
opaque = true;
fillColor = "0 0 0 0";
fillColorHL = "91 101 116";
fillColor = EditorSettings.value("Theme/fieldBGColor");
fillColorHL = EditorSettings.value("Theme/fieldBGHLColor");
// No Border (Rendered by field control)
border = false;
@ -842,21 +843,21 @@ singleton GuiControlProfile( GuiInspectorDynamicFieldProfile : GuiInspectorField
fontType = "Noto Sans";
fontSize = 14;
fontColor = "215 215 215";
fontColorSEL = "0 140 220";
fontColorHL = "240 240 240";
fontColorNA = "100 100 100";
fontColor = EditorSettings.value("Theme/headerTextColor");
fontColorSEL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorHL = EditorSettings.value("Theme/fieldTextSELColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
category = "Editor";
};
singleton GuiControlProfile( GuiRolloutProfile )
{
border = 0;
borderColor = "200 200 200";
borderColor = EditorSettings.value("Theme/dividerLightColor");
fontColor = "240 240 240";
fontColorHL = "240 240 240";
fontColorNA = "190 190 190";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
hasBitmapArray = true;
bitmap = "tools/editorClasses/gui/images/rollout";
@ -894,12 +895,19 @@ singleton GuiControlProfile( GuiInspectorStackProfile )
opaque = false;
border = false;
category = "Editor";
fillColor = EditorSettings.value("Theme/tabsColor");
fillColorHL = EditorSettings.value("Theme/tabsHLColor");
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
};
singleton GuiControlProfile( GuiInspectorProfile : GuiInspectorFieldProfile )
{
opaque = true;
fillColor = "42 42 42 255";
fillColor = EditorSettings.value("Theme/windowBackgroundColor");
border = 0;
cankeyfocus = true;
tab = true;
@ -908,7 +916,7 @@ singleton GuiControlProfile( GuiInspectorProfile : GuiInspectorFieldProfile )
singleton GuiControlProfile( GuiInspectorInfoProfile : GuiInspectorFieldProfile )
{
opaque = true;
fillColor = "48 48 48";
fillColor = EditorSettings.value("Theme/windowBackgroundColor");
border = 0;
cankeyfocus = true;
tab = true;
@ -945,7 +953,7 @@ singleton GuiControlProfile( GuiInspectorTypeFileNameProfile )
fontColorHL = "240 240 240";
fontColorNA = "215 215 215";
fillColor = "48 48 48";
fillColor = EditorSettings.value("Theme/windowBackgroundColor");
fillColorHL = "91 101 116";
fillColorNA = "244 244 244";
@ -987,7 +995,7 @@ singleton GuiControlProfile( InspectorTypeCheckboxProfile : GuiInspectorFieldPro
singleton GuiControlProfile( GuiToolboxButtonProfile : ToolsGuiButtonProfile )
{
justify = "center";
fontColor = "215 215 215";
fontColor = EditorSettings.value("Theme/fieldTextColor");
border = 0;
textOffset = "0 0";
category = "Editor";
@ -995,10 +1003,10 @@ singleton GuiControlProfile( GuiToolboxButtonProfile : ToolsGuiButtonProfile )
singleton GuiControlProfile( GuiDirectoryTreeProfile : ToolsGuiTreeViewProfile )
{
fontColor = "240 240 240";
fontColorSEL= "250 250 250 175";
fillColorHL = "0 60 150";
fontColorNA = "240 240 240";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorSEL= EditorSettings.value("Theme/fieldTextSELColor");
fillColorHL = EditorSettings.value("Theme/fieldBGColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
fontType = "Noto Sans";
fontSize = 14;
category = "Editor";
@ -1006,10 +1014,10 @@ singleton GuiControlProfile( GuiDirectoryTreeProfile : ToolsGuiTreeViewProfile )
singleton GuiControlProfile( GuiDirectoryFileListProfile )
{
fontColor = "240 240 240";
fontColorSEL= "250 250 250 175";
fillColorHL = "0 60 150";
fontColorNA = "240 240 240";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorSEL= EditorSettings.value("Theme/fieldTextSELColor");
fillColorHL = EditorSettings.value("Theme/fieldBGColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
fontType = "Noto Sans";
fontSize = 14;
category = "Editor";
@ -1035,13 +1043,17 @@ singleton GuiControlProfile( GuiInspectorFieldInfoMLTextProfile : ToolsGuiMLText
border = 0;
textOffset = "5 0";
category = "Editor";
fontColor = EditorSettings.value("Theme/fieldTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorSEL = EditorSettings.value("Theme/fieldTextSELColor");
};
singleton GuiControlProfile( GuiEditorScrollProfile )
{
opaque = true;
fillcolor = GuiInspectorBackgroundProfile.fillColor;
borderColor = ToolsGuiDefaultProfile.borderColor;
fillcolor = EditorSettings.value("Theme/windowBackgroundColor");
borderColor = EditorSettings.value("Theme/dividerDarkColor");
border = 1;
bitmap = "tools/gui/images/scrollBar";
hasBitmapArray = true;
@ -1077,16 +1089,16 @@ singleton GuiControlProfile( GuiCreatorIconButtonProfile )
category = "Editor";
};
singleton GuiControlProfile( GuiMenuBarProfile )
singleton GuiControlProfile( ToolsGuiMenuBarProfile )
{
fillColor = "48 48 48";
fillcolorHL = "42 42 42";
borderColor = "30 30 30 255";
borderColorHL = "30 30 30 255";
fontColor = "215 215 215";
fontColorSEL = "43 107 206";
fontColorHL = "244 244 244";
fontColorNA = "100 100 100";
fillColor = EditorSettings.value("Theme/headerColor");
fillcolorHL = EditorSettings.value("Theme/tabsSELColor");
borderColor = EditorSettings.value("Theme/dividerDarkColor");
borderColorHL = EditorSettings.value("Theme/dividerMidColor");
fontColor = EditorSettings.value("Theme/headerTextColor");
fontColorSEL = EditorSettings.value("Theme/fieldTextSELColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
fontColorNA = EditorSettings.value("Theme/fieldTextSELColor");
border = 0;
borderThickness = 1;
opaque = true;
@ -1094,3 +1106,90 @@ singleton GuiControlProfile( GuiMenuBarProfile )
category = "Editor";
bitmap = "tools/gui/images/checkbox-menubar";
};
singleton GuiControlProfile( ToolsMenubarProfile : ToolsGuiDefaultProfile )
{
bitmap = "./menubar";
category = "Editor";
fillColor = EditorSettings.value("Theme/headerColor");
fontColor = EditorSettings.value("Theme/headerTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
borderColor = EditorSettings.value("Theme/dividerDarkColor");
};
singleton GuiControlProfile (menubarProfile)
{
opaque = false;
border = -2;
category = "Editor";
bitmap = "./menubar";
category = "Editor";
fillColor = EditorSettings.value("Theme/windowBackgroundColor");
fontColor = EditorSettings.value("Theme/headerTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
borderColor = EditorSettings.value("Theme/dividerDarkColor");
};
singleton GuiControlProfile (editorMenubarProfile)
{
border = -2;
category = "Editor";
bitmap = "./editor-menubar";
category = "Editor";
};
singleton GuiControlProfile (editorMenu_wBorderProfile)
{
border = -2;
category = "Editor";
bitmap = "./menu-fullborder";
category = "Editor";
};
singleton GuiControlProfile (inspectorStyleRolloutProfile)
{
border = -2;
category = "Editor";
bitmap = "./inspector-style-rollout";
category = "Editor";
};
singleton GuiControlProfile (inspectorStyleRolloutListProfile)
{
border = -2;
category = "Editor";
bitmap = "./inspector-style-rollout-list";
category = "Editor";
};
singleton GuiControlProfile (inspectorStyleRolloutDarkProfile)
{
border = -2;
category = "Editor";
bitmap = "./inspector-style-rollout-dark";
fillColor = EditorSettings.value("Theme/windowBackgroundColor");
fontColor = EditorSettings.value("Theme/headerTextColor");
fontColorHL = EditorSettings.value("Theme/fieldTextHLColor");
borderColor = EditorSettings.value("Theme/dividerDarkColor");
};
singleton GuiControlProfile (inspectorStyleRolloutInnerProfile)
{
border = -2;
category = "Editor";
bitmap = "./inspector-style-rollout_inner";
category = "Editor";
};
singleton GuiControlProfile (inspectorStyleRolloutNoHeaderProfile)
{
border = -2;
category = "Editor";
bitmap = "./inspector-style-rollout-noheader";
category = "Editor";
};
singleton GuiControlProfile (IconDropdownProfile)
{
border = -2;
category = "Editor";
bitmap = "./icon-dropdownbar";
category = "Editor";
};

View file

@ -58,7 +58,7 @@
anchorLeft = "1";
anchorRight = "0";
isContainer = "1";
profile = "menubarProfile";
profile = "ToolsMenubarProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "0 0";
@ -755,7 +755,7 @@
};
new GuiControl(GuiEditorSidebar) {
isContainer = "1";
Profile = "menubarProfile";
Profile = "ToolsMenubarProfile";
HorizSizing = "width";
VertSizing = "height";
position = "798 0";
@ -1503,7 +1503,7 @@
canSave = "1";
visible = "1";
isContainer = "1";
profile = "menubarProfile";
profile = "ToolsMenubarProfile";
new GuiTextCtrl( GuiEditorStatusBar ) {
profile = "ToolsGuiTextProfile";

View file

@ -72,7 +72,7 @@ function GuiEditCanvas::onCreateMenu(%this)
extent = "1024 20";
minExtent = "320 20";
horizSizing = "width";
profile = "GuiMenuBarProfile";
profile = "ToolsGuiMenuBarProfile";
new PopupMenu()
{

View file

@ -43,7 +43,7 @@
minExtent = "8 2";
horizSizing = "width";
vertSizing = "height";
profile = "GuiScrollProfile";
profile = "ToolsGuiScrollProfile";
visible = "1";
active = "1";
tooltipProfile = "GuiToolTipProfile";

View file

@ -1,7 +1,145 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<EditorSettings>
<Group name="ConvexEditor">
<Setting name="materialName">Grid_512_Orange</Setting>
<Group name="Theme">
<Setting name="tooltipDividerColor">72 70 68 255</Setting>
<Setting name="fieldTextHLColor">234 232 230 255</Setting>
<Setting name="fieldBGSELColor">100 98 96 255</Setting>
<Setting name="dividerLightColor">96 94 92 255</Setting>
<Setting name="tabsSELColor">59 58 57 255</Setting>
<Setting name="headerColor">50 49 48 255</Setting>
<Setting name="fieldBGHLColor">72 70 68 255</Setting>
<Setting name="tabsHLColor">50 49 48 255</Setting>
<Setting name="fieldTextSELColor">240 240 240 255</Setting>
<Setting name="fieldBGColor">59 58 57 255</Setting>
<Setting name="headerTextColor">236 234 232 255</Setting>
<Setting name="dividerMidColor">50 49 48 255</Setting>
<Setting name="tabsColor">37 36 35 255</Setting>
<Setting name="fieldTextColor">178 175 172 255</Setting>
<Setting name="tooltipBGColor">43 43 43 255</Setting>
<Setting name="dividerDarkColor">17 16 15 255</Setting>
<Setting name="tooltipTextColor">255 255 255 255</Setting>
<Setting name="windowBackgroundColor">32 31 30 255</Setting>
</Group>
<Group name="GuiEditor">
<Setting name="lastPath">tools/gui</Setting>
<Setting name="previewResolution">1024 768</Setting>
<Group name="Help">
<Setting name="documentationURL">http://www.garagegames.com/products/torque-3d/documentation/user</Setting>
<Setting name="documentationReference">../../../Documentation/Torque 3D - Script Manual.chm</Setting>
<Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
</Group>
<Group name="Snapping">
<Setting name="snapToGuides">1</Setting>
<Setting name="sensitivity">2</Setting>
<Setting name="snap2GridSize">8</Setting>
<Setting name="snapToCenters">1</Setting>
<Setting name="snapToControls">1</Setting>
<Setting name="snapToEdges">1</Setting>
<Setting name="snap2Grid">0</Setting>
<Setting name="snapToCanvas">1</Setting>
</Group>
<Group name="Rendering">
<Setting name="drawGuides">1</Setting>
<Setting name="drawBorderLines">1</Setting>
</Group>
<Group name="EngineDevelopment">
<Setting name="showEditorGuis">0</Setting>
<Setting name="showEditorProfiles">0</Setting>
<Setting name="toggleIntoEditor">0</Setting>
</Group>
<Group name="Library">
<Setting name="viewType">Categorized</Setting>
</Group>
<Group name="Selection">
<Setting name="fullBox">0</Setting>
</Group>
</Group>
<Group name="AxisGizmo">
<Setting name="snapRotations">0</Setting>
<Setting name="renderInfoText">1</Setting>
<Setting name="mouseRotateScalar">0.8</Setting>
<Setting name="axisGizmoMaxScreenLen">100</Setting>
<Setting name="mouseScaleScalar">0.8</Setting>
<Setting name="rotationSnap">15</Setting>
<Setting name="renderWhenUsed">0</Setting>
<Group name="Grid">
<Setting name="snapToGrid">0</Setting>
<Setting name="renderPlane">0</Setting>
<Setting name="renderPlaneHashes">0</Setting>
<Setting name="planeDim">500</Setting>
<Setting name="gridSize">10 10 10</Setting>
<Setting name="gridColor">255 255 255 20</Setting>
</Group>
</Group>
<Group name="WorldEditor">
<Setting name="forceLoadDAE">0</Setting>
<Setting name="orthoFOV">50</Setting>
<Setting name="torsionPath">AssetWork_Debug.exe</Setting>
<Setting name="undoLimit">40</Setting>
<Setting name="dropType">screenCenter</Setting>
<Setting name="displayType">6</Setting>
<Setting name="orthoShowGrid">1</Setting>
<Setting name="currentEditor">WorldEditorInspectorPlugin</Setting>
<Group name="Color">
<Setting name="selectionBoxColor">255 255 0 255</Setting>
<Setting name="objSelectColor">255 0 0 255</Setting>
<Setting name="objectTextColor">255 255 255 255</Setting>
<Setting name="dragRectColor">255 255 0 255</Setting>
<Setting name="objMouseOverSelectColor">0 0 255 255</Setting>
<Setting name="objMouseOverColor">0 255 0 255</Setting>
<Setting name="popupBackgroundColor">100 100 100 255</Setting>
</Group>
<Group name="Tools">
<Setting name="objectsUseBoxCenter">1</Setting>
<Setting name="dropAtScreenCenterMax">100</Setting>
<Setting name="boundingBoxCollision">0</Setting>
<Setting name="snapSoft">0</Setting>
<Setting name="snapGround">0</Setting>
<Setting name="dropAtScreenCenterScalar">1</Setting>
<Setting name="snapSoftSize">2</Setting>
</Group>
<Group name="ObjectIcons">
<Setting name="fadeIcons">1</Setting>
<Setting name="fadeIconsEndAlpha">0</Setting>
<Setting name="fadeIconsStartAlpha">255</Setting>
<Setting name="fadeIconsEndDist">20</Setting>
<Setting name="fadeIconsStartDist">8</Setting>
</Group>
<Group name="Theme">
<Setting name="windowTitleBGColor">50 50 50 255</Setting>
<Setting name="windowTitleFontColor">215 215 215 255</Setting>
<Setting name="windowTitleBGHLColor">48 48 48 255</Setting>
<Setting name="windowTitleFontHLColor">255 255 255 255</Setting>
<Setting name="windowTitleBGNAColor">180 180 180 255</Setting>
</Group>
<Group name="Images">
<Setting name="defaultHandle">tools/worldEditor/images/DefaultHandle</Setting>
<Setting name="selectHandle">tools/worldEditor/images/SelectHandle</Setting>
<Setting name="lockedHandle">tools/worldEditor/images/LockedHandle</Setting>
</Group>
<Group name="Render">
<Setting name="renderObjText">1</Setting>
<Setting name="showMousePopupInfo">1</Setting>
<Setting name="renderPopupBackground">1</Setting>
<Setting name="renderObjHandle">1</Setting>
<Setting name="renderSelectionBox">1</Setting>
</Group>
<Group name="Grid">
<Setting name="gridMinorColor">51 51 51 100</Setting>
<Setting name="gridSnap">0</Setting>
<Setting name="gridOriginColor">255 255 255 100</Setting>
<Setting name="gridSize">1</Setting>
<Setting name="gridColor">102 102 102 100</Setting>
</Group>
<Group name="Docs">
<Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
<Setting name="documentationReference">../../../Documentation/Torque 3D - Script Manual.chm</Setting>
<Setting name="documentationURL">http://www.garagegames.com/products/torque-3d/documentation/user</Setting>
<Setting name="forumURL">http://www.garagegames.com/products/torque-3d/forums</Setting>
</Group>
</Group>
<Group name="NavEditor">
<Setting name="SpawnClass">AIPlayer</Setting>
</Group>
<Group name="LevelInformation">
<Setting name="levelsDirectory">data/FPSGameplay/levels</Setting>
@ -14,125 +152,7 @@
</Group>
</Group>
</Group>
<Group name="WorldEditor">
<Setting name="dropType">screenCenter</Setting>
<Setting name="forceLoadDAE">0</Setting>
<Setting name="currentEditor">WorldEditorInspectorPlugin</Setting>
<Setting name="orthoShowGrid">1</Setting>
<Setting name="undoLimit">40</Setting>
<Setting name="torsionPath">AssetWork_Debug.exe</Setting>
<Setting name="displayType">6</Setting>
<Setting name="orthoFOV">50</Setting>
<Group name="Color">
<Setting name="objectTextColor">255 255 255 255</Setting>
<Setting name="popupBackgroundColor">100 100 100 255</Setting>
<Setting name="selectionBoxColor">255 255 0 255</Setting>
<Setting name="dragRectColor">255 255 0 255</Setting>
<Setting name="objMouseOverSelectColor">0 0 255 255</Setting>
<Setting name="objSelectColor">255 0 0 255</Setting>
<Setting name="objMouseOverColor">0 255 0 255</Setting>
</Group>
<Group name="Theme">
<Setting name="windowTitleBGHLColor">48 48 48 255</Setting>
<Setting name="windowTitleFontHLColor">255 255 255 255</Setting>
<Setting name="windowTitleFontColor">215 215 215 255</Setting>
<Setting name="windowTitleBGNAColor">180 180 180 255</Setting>
<Setting name="windowTitleBGColor">50 50 50 255</Setting>
</Group>
<Group name="Tools">
<Setting name="dropAtScreenCenterMax">100</Setting>
<Setting name="snapSoft">0</Setting>
<Setting name="boundingBoxCollision">0</Setting>
<Setting name="snapGround">0</Setting>
<Setting name="objectsUseBoxCenter">1</Setting>
<Setting name="snapSoftSize">2</Setting>
<Setting name="dropAtScreenCenterScalar">1</Setting>
</Group>
<Group name="Grid">
<Setting name="gridMinorColor">51 51 51 100</Setting>
<Setting name="gridColor">102 102 102 100</Setting>
<Setting name="gridSize">1</Setting>
<Setting name="gridOriginColor">255 255 255 100</Setting>
<Setting name="gridSnap">0</Setting>
</Group>
<Group name="Images">
<Setting name="defaultHandle">tools/worldEditor/images/DefaultHandle</Setting>
<Setting name="selectHandle">tools/worldEditor/images/SelectHandle</Setting>
<Setting name="lockedHandle">tools/worldEditor/images/LockedHandle</Setting>
</Group>
<Group name="Docs">
<Setting name="forumURL">http://www.garagegames.com/products/torque-3d/forums</Setting>
<Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
<Setting name="documentationReference">../../../Documentation/Torque 3D - Script Manual.chm</Setting>
<Setting name="documentationURL">http://www.garagegames.com/products/torque-3d/documentation/user</Setting>
</Group>
<Group name="ObjectIcons">
<Setting name="fadeIcons">1</Setting>
<Setting name="fadeIconsEndAlpha">0</Setting>
<Setting name="fadeIconsStartAlpha">255</Setting>
<Setting name="fadeIconsEndDist">20</Setting>
<Setting name="fadeIconsStartDist">8</Setting>
</Group>
<Group name="Render">
<Setting name="showMousePopupInfo">1</Setting>
<Setting name="renderSelectionBox">1</Setting>
<Setting name="renderObjText">1</Setting>
<Setting name="renderPopupBackground">1</Setting>
<Setting name="renderObjHandle">1</Setting>
</Group>
</Group>
<Group name="AxisGizmo">
<Setting name="mouseRotateScalar">0.8</Setting>
<Setting name="axisGizmoMaxScreenLen">100</Setting>
<Setting name="mouseScaleScalar">0.8</Setting>
<Setting name="rotationSnap">15</Setting>
<Setting name="renderWhenUsed">0</Setting>
<Setting name="snapRotations">0</Setting>
<Setting name="renderInfoText">1</Setting>
<Group name="Grid">
<Setting name="snapToGrid">0</Setting>
<Setting name="gridColor">255 255 255 20</Setting>
<Setting name="renderPlaneHashes">0</Setting>
<Setting name="gridSize">10 10 10</Setting>
<Setting name="renderPlane">0</Setting>
<Setting name="planeDim">500</Setting>
</Group>
</Group>
<Group name="GuiEditor">
<Setting name="lastPath">tools/gui</Setting>
<Setting name="previewResolution">1024 768</Setting>
<Group name="EngineDevelopment">
<Setting name="showEditorProfiles">0</Setting>
<Setting name="toggleIntoEditor">0</Setting>
<Setting name="showEditorGuis">0</Setting>
</Group>
<Group name="Help">
<Setting name="documentationURL">http://www.garagegames.com/products/torque-3d/documentation/user</Setting>
<Setting name="documentationReference">../../../Documentation/Torque 3D - Script Manual.chm</Setting>
<Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
</Group>
<Group name="Snapping">
<Setting name="snapToCanvas">1</Setting>
<Setting name="snapToControls">1</Setting>
<Setting name="snap2GridSize">8</Setting>
<Setting name="snapToCenters">1</Setting>
<Setting name="snapToGuides">1</Setting>
<Setting name="sensitivity">2</Setting>
<Setting name="snapToEdges">1</Setting>
<Setting name="snap2Grid">0</Setting>
</Group>
<Group name="Selection">
<Setting name="fullBox">0</Setting>
</Group>
<Group name="Rendering">
<Setting name="drawGuides">1</Setting>
<Setting name="drawBorderLines">1</Setting>
</Group>
<Group name="Library">
<Setting name="viewType">Categorized</Setting>
</Group>
</Group>
<Group name="NavEditor">
<Setting name="SpawnClass">AIPlayer</Setting>
<Group name="ConvexEditor">
<Setting name="materialName">Grid_512_Orange</Setting>
</Group>
</EditorSettings>

View file

@ -25,7 +25,7 @@
canSaveDynamicFields = "0";
Enabled = "1";
isContainer = "1";
Profile = "menubarProfile";
Profile = "ToolsMenubarProfile";
HorizSizing = "width";
VertSizing = "bottom";
Position = "0 0";

View file

@ -23,7 +23,7 @@
canSaveDynamicFields = "0";
Enabled = "1";
isContainer = "1";
Profile = "menubarProfile";
Profile = "ToolsMenubarProfile";
HorizSizing = "width";
VertSizing = "bottom";
Position = "0 0";
@ -313,7 +313,7 @@
canSaveDynamicFields = "0";
Enabled = "1";
isContainer = "1";
Profile = "menubarProfile";
Profile = "ToolsMenubarProfile";
HorizSizing = "width";
VertSizing = "top";
Position = "0 578";

View file

@ -4,7 +4,7 @@
Enabled = "0";
internalName = "ToolsToolbar";
isContainer = "1";
Profile = "editorMenubarProfile";
Profile = "ToolsMenubarProfile";
HorizSizing = "right";
VertSizing = "bottom";
Position = "0 31";
@ -20,7 +20,7 @@
canSaveDynamicFields = "0";
Enabled = "1";
isContainer = "1";
Profile = "ToolsGuiDefaultProfile";
Profile = "ToolsMenubarProfile";
HorizSizing = "width";
VertSizing = "bottom";
position = "4 3";

View file

@ -4,7 +4,7 @@
internalName = "WorldEditorToolbar";
Enabled = "1";
isContainer = "1";
Profile = "ToolsGuiDefaultProfile";
Profile = "ToolsMenubarProfile";
HorizSizing = "right";
VertSizing = "bottom";
Position = "306 0";
@ -21,7 +21,7 @@
canSaveDynamicFields = "0";
Enabled = "1";
isContainer = "1";
Profile = "ToolsGuiDefaultProfile";
Profile = "ToolsMenubarProfile";
HorizSizing = "width";
VertSizing = "bottom";
Position = "0 3";
@ -83,7 +83,7 @@
new GuiControl(SnapToBar){
isContainer = "1";
profile = "ToolsGuiDefaultProfile";
profile = "ToolsMenubarProfile";
Position = "116 3";
Extent = "123 27";
Padding = "4";
@ -296,7 +296,7 @@
new GuiControl(ToggleButtonBar){
isContainer = "1";
profile = "ToolsGuiDefaultProfile";
profile = "ToolsMenubarProfile";
Position = "313 3";
Extent = "65 27";
@ -377,7 +377,7 @@
new GuiControl(ToggleNodeBar){
isContainer = "1";
profile = "ToolsGuiDefaultProfile";
profile = "ToolsMenubarProfile";
Position = "386 3";
Extent = "63 27";
@ -441,7 +441,7 @@
new GuiControl(PrefabBar){
isContainer = "1";
profile = "ToolsGuiDefaultProfile";
profile = "ToolsMenubarProfile";
Position = "386 3";
Extent = "63 27";
visible = true;

View file

@ -274,6 +274,7 @@
canSave = "1";
Visible = "1";
tooltipprofile = "ToolsGuiToolTipProfile";
profile = "ToolsGuiScrollProfile";
hovertime = "1000";
Docking = "Client";
Margin = "0 0 0 0";

View file

@ -79,6 +79,7 @@
canSave = "1";
Visible = "1";
tooltipprofile = "ToolsGuiToolTipProfile";
profile = "ToolsGuiScrollProfile";
hovertime = "1000";
Docking = "Client";
Margin = "0 0 0 0";

View file

@ -51,13 +51,11 @@ function toggleColorBufferViz( %enable )
}
else if ( %enable )
{
AL_DeferredShading.disable();
AL_ColorBufferVisualize.enable();
}
else if ( !%enable )
{
AL_ColorBufferVisualize.disable();
AL_DeferredShading.enable();
}
}
@ -360,12 +358,7 @@ function toggleBackbufferViz( %enable )
if ( %enable $= "" )
{
$AL_BackbufferVisualizeVar = AL_DeferredShading.isEnabled() ? true : false;
AL_DeferredShading.toggle();
}
else if ( %enable )
AL_DeferredShading.disable();
else if ( !%enable )
AL_DeferredShading.enable();
}
function toggleColorBlindnessViz( %enable )

View file

@ -116,7 +116,7 @@ function EditorGui::buildMenus(%this)
extent = Canvas.extent.x SPC "20";
minExtent = "320 20";
horizSizing = "width";
profile = "GuiMenuBarProfile";
profile = "ToolsGuiMenuBarProfile";
};
// File Menu
@ -185,11 +185,12 @@ function EditorGui::buildMenus(%this)
Item[9] = "Select..." TAB "" TAB "EditorGui.toggleObjectSelectionsWindow();";
item[10] = "-";
item[11] = "Audio Parameters..." TAB "" TAB "EditorGui.toggleSFXParametersWindow();";
item[12] = "Editor Settings..." TAB "" TAB "ESettingsWindow.ToggleVisibility();";
item[13] = "Snap Options..." TAB "" TAB "ESnapOptions.ToggleVisibility();";
item[14] = "-";
item[15] = "Game Options..." TAB "" TAB "Canvas.pushDialog(optionsDlg);";
item[16] = "PostEffect Manager" TAB "" TAB "Canvas.pushDialog(PostFXManager);";
item[12] = "Editor Settings..." TAB "" TAB "ESettingsWindow.toggleEditorSettings();";
item[13] = "Game Settings..." TAB "" TAB "ESettingsWindow.toggleProjectSettings();";
item[14] = "Snap Options..." TAB "" TAB "ESnapOptions.ToggleVisibility();";
item[15] = "-";
item[16] = "Game Options..." TAB "" TAB "Canvas.pushDialog(optionsDlg);";
item[17] = "PostEffect Manager" TAB "" TAB "Canvas.pushDialog(PostFXManager);";
};
%this.menuBar.insert(%editMenu);

View file

@ -0,0 +1,16 @@
function AI_Guard::onCreate(%this)
{
exec("./Scripts/aiPlayer.cs");
exec("./Scripts/guardTrigger.cs");
if(isObject(DatablockFilesList))
{
DatablockFilesList.add( "data/AI_Guard/Datablocks/aiPlayerDatablocks.cs" );
DatablockFilesList.add( "data/AI_Guard/Datablocks/aiPlayerMarker.cs" );
}
}
function AI_Guard::onDestroy(%this)
{
}

View file

@ -0,0 +1,15 @@
<ModuleDefinition
canSave="true"
canSaveDynamicFields="true"
ModuleId="AI_Guard"
VersionId="1"
Group="Game"
scriptFile="AI_Guard.cs"
CreateFunction="onCreate"
DestroyFunction="onDestroy">
<DeclaredAssets
canSave="true"
canSaveDynamicFields="true"
Extension="asset.taml"
Recurse="true" />
</ModuleDefinition>

View file

@ -0,0 +1,53 @@
// aiPlayerDatablocks.cs
// breaks out the datablocks for aiguard.cs to make them easier to edit.
// also manages the trigger controller
//////////////////////////////////////
//
// TRIGGER CONTROLLER
// This code handles the placing and behavior of aiSoldierTriggers
/////////////////////////////////////////
datablock TriggerData(guardTrigger)
{
tickPeriodMS = 100;
};
////////////////////////////////////////
//This is the default datablock for the Guard.
//I changed the stock datablock name from those used in AIPLAYER.CS
//I did this to allow me to create different classes of bots with their own
//thinking and reaction routines for each class.
///////////////////////////////////
//
//You can specifiy as many datablocks as you have characters.
//The first variable after PlayerData must be a unique name. The second variable (after the semicolon)
//must be a valid body type.
datablock PlayerData(DemoPlayer : DefaultPlayerData)
{
maxDamage = 100;
maxForwardSpeed = 14;
maxBackwardSpeed = 13;
maxSideSpeed = 13;
//The art used by this datablock
shapeFile = "data/Soldier/Shapes/soldier_Rigged.DAE";//"art/shapes/actors/Soldier/soldier_rigged.DAE";
//Set the bot's inventory so it can use different weapons
maxInv[Rifle] = 1;
maxInv[BulletAmmo] = 1000;
maxInv[RocketLauncher] = 1;
maxInv[RocketLauncherAmmo] = 1000;
maxInv[GrenadeLauncher] = 1;
maxInv[GrenadeLauncherAmmo] = 1000;
maxInvRifle = "1";
maxInvBulletAmmo = "1000";
maxInvGrenadeLauncher = "1";
maxInvGrenadeLauncherAmmo = "1000";
maxInvRocketLauncher = "1";
maxInvRocketLauncherAmmo = "1000";
};

View file

@ -0,0 +1,16 @@
//The AIPlayer marker is placed in the map during edit mode. When the map is loaded the
//marker is replaced by a guard player. (Assuming that the $AI_GUARD_ENABLED variable is set
//to true.) The marker is hidden or not depending on the value set in $AI_GUARD_MARKER_HIDE.
//The AIPlayer marker can use a dynamic variable - set during map creation - called 'respawn'
//Creating and setting the 'respawn' variable will override the default value set in
//$AI_GUARD_DEFAULTRESPAWN. This allows more freedom in determining which bots respawn and which do not.
datablock StaticShapeData(AIPlayerMarker)
{
// Mission editor category, this datablock will show up in the
// specified category under the "shapes" root category.
category = "AIMarker";
// Basic Item properties
shapeFile = "data/Soldier/Shapes/soldier_Rigged.DAE";//"art/shapes/actors/Soldier/soldier_rigged.DAE";
};

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,34 @@
function guardTrigger::onEnterTrigger(%this, %trigger, %obj)
{
echo(%trigger @ " has been triggered!");
// we've been triggered. Now check to see if the player triggered the trigger
// we don't want other enemies to keep spawing more enemies!
%tgtid = AIPlayer::GetClosestPlayer(%trigger);
//echo("nearest human is " @ %tgtid);
// check to see if the player triggered this.
if (%tgtid == %obj)
{
// if triggerMany is set, then we shouldn't do anything. (or do something different.)
// if you want a trigger to always spawn an enemy, set the trigger's triggerMany value to "true"
// default behavior is to trigger once.
if (!%trigger.triggerMany && !%trigger.doneOnce)
{
// set the spawnGroup variable to pass on to the spawn function
%spawnGroup = %trigger.spawnGroup;
// let the game know we've already been triggered once.
%trigger.doneOnce = true;
// spawn the group
AIPlayer::spawnByGroup(%spawnGroup);
}
else
{
// we've been triggered before. Don't do anything
// If you wanted to do something different, this is where you would put it.
}
}
}

View file

@ -0,0 +1,9 @@
function PostFXPack::onCreate(%this)
{
exec("./Scripts/postFXPack.cs");
}
function PostFXPack::onDestroy(%this)
{
}

View file

@ -0,0 +1,15 @@
<ModuleDefinition
canSave="true"
canSaveDynamicFields="true"
ModuleId="PostFXPack"
VersionId="1"
Group="Game"
scriptFile="PostFXPack.cs"
CreateFunction="onCreate"
DestroyFunction="onDestroy">
<DeclaredAssets
canSave="true"
canSaveDynamicFields="true"
Extension="asset.taml"
Recurse="true" />
</ModuleDefinition>

View file

@ -0,0 +1,25 @@
//-----------------------------------------------------------------------------
// Copyright (c) 2012 GarageGames, LLC
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
//*****************************************************************************
// Shaders ( For Custom Materials )
//*****************************************************************************

View file

@ -0,0 +1,351 @@
// PIXELATE
$Pixelate::PixelWidth = 10.0;
$Pixelate::PixelHeight = 10.0;
singleton ShaderData( PixelateShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/pixelateP.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( PixelatePostEffect )
{
isEnabled = false;
allowReflectPass = false;
renderTime = "PFXAfterBin";
renderBin = "GlowBin";
shader = PixelateShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
renderPriority = 10;
};
function PixelatePostEffect::setShaderConsts(%this)
{
%this.setShaderConst("$pixel_w", $Pixelate::PixelWidth);
%this.setShaderConst("$pixel_h", $Pixelate::PixelHeight);
%this.setShaderConst("$sizeX",getWord($pref::Video::mode, 0));
%this.setShaderConst("$sizeY",getWord($pref::Video::mode, 1));
}
// BLURRED VISION
$BlurredVisionIntensity = 1.0;
singleton ShaderData( BlurredVisionShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/blurredVisionP.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( BlurredVisionPostEffect )
{
isEnabled = false;
allowReflectPass = false;
renderTime = "PFXAfterBin";
renderBin = "GlowBin";
shader = BlurredVisionShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
renderPriority = 10;
};
function BlurredVisionPostEffect::setShaderConsts(%this)
{
%this.setShaderConst("$BlurredVisionIntensity", $BlurredVisionIntensity);
}
// DREAM VIEW
$DreamViewIntensity = 1.0;
singleton ShaderData( DreamViewShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/dreamviewP.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( DreamViewPostEffect )
{
isEnabled = false;
allowReflectPass = false;
renderTime = "PFXAfterBin";
renderBin = "GlowBin";
shader = DreamViewShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
renderPriority = 10;
};
function DreamViewPostEffect::setShaderConsts(%this)
{
%this.setShaderConst("$DreamViewIntensity", $DreamViewIntensity);
}
// CROSS STITCH
$CrossStichPostEffect::StitchingSize = 6.0;
$CrossStichPostEffect::Invert = 0;
singleton ShaderData( CrossStitchShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/crossStitchP.hlsl";
pixVersion = 3.0;
};
singleton PostEffect( CrossStitchPostEffect )
{
isEnabled = false;
allowReflectPass = false;
renderTime = "PFXAfterBin";
renderBin = "GlowBin";
shader = CrossStitchShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
renderPriority = 10;
};
function CrossStitchPostEffect::setShaderConsts(%this)
{
%this.setShaderConst( "$time", ($Sim::time - %this.timeStart) );
%this.setShaderConst("$sizeX",getWord($pref::Video::mode, 0));
%this.setShaderConst("$sizeY",getWord($pref::Video::mode, 1));
%this.setShaderConst("$stitching_size", $CrossStichPostEffect::StitchingSize);
%this.setShaderConst("$invert", $CrossStichPostEffect::Invert);
}
// POSTERISATION
$PosterisationPostEffect::Gamma = 0.6;
$PosterisationPostEffect::NumColors = 4.0;
singleton ShaderData( PosterisationShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/posterisationP.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( PosterisationPostEffect )
{
isEnabled = false;
allowReflectPass = false;
renderTime = "PFXAfterBin";
renderBin = "GlowBin";
shader = PosterisationShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
renderPriority = 10;
};
function PosterisationPostEffect::setShaderConsts(%this)
{
%this.setShaderConst("$gamma", $PosterisationPostEffect::Gamma);
%this.setShaderConst("$numColors", $PosterisationPostEffect::NumColors);
}
// NIGHT VISION 2
$NightVisionPostEffect::LuminanceThreshold = 0.2;
$NightVisionPostEffect::ColorAmplification = 4.0;
singleton ShaderData( NightVision2Shader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/nightVision2P.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( NightVision2Fx )
{
isEnabled = false;
allowReflectPass = false;
renderTime = "PFXAfterBin";
renderBin = "GlowBin";
shader = NightVision2Shader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
renderPriority = 10;
};
function NightVision2Fx::setShaderConsts(%this)
{
%this.setShaderConst("$luminanceThreshold", $NightVisionPostEffect::LuminanceThreshold);
%this.setShaderConst("$colorAmplification", $NightVisionPostEffect::ColorAmplification);
}
// LENS CIRCLE
$LensCirclePostEffect::RadiusX = 0.6;
$LensCirclePostEffect::RadiusY = 0.2;
singleton ShaderData( LensCircleShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/lensCircleP.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( LensCirclePostEffect )
{
isEnabled = false;
allowReflectPass = false;
renderTime = "PFXAfterBin";
renderBin = "GlowBin";
shader = LensCircleShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
renderPriority = 10;
};
function LensCirclePostEffect::setShaderConsts(%this)
{
%this.setShaderConst("$radiusX", $LensCirclePostEffect::RadiusX);
%this.setShaderConst("$radiusY", $LensCirclePostEffect::RadiusY);
}
// CHROMATIC ABERRATION
$ChromaticAberrationPostEffect::Intensity = 0.3;
singleton ShaderData( ChromaticAberrationShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/chromaticAberrationP.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( ChromaticAberrationPostEffect )
{
isEnabled = false;
allowReflectPass = false;
renderTime = "PFXAfterBin";
renderBin = "GlowBin";
shader = ChromaticAberrationShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
renderPriority = 10;
};
function ChromaticAberrationPostEffect::setShaderConsts(%this)
{
%this.setShaderConst("$intensity", $ChromaticAberrationPostEffect::Intensity);
}
// RGB
$RGBPostEffect::RedLevel = 1.0;
$RGBPostEffect::GreenLevel = 1.0;
$RGBPostEffect::BlueLevel = 1.0;
singleton ShaderData( RGBShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/rgbP.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( RGBPostEffect )
{
isEnabled = false;
allowReflectPass = false;
renderTime = "PFXAfterBin";
renderBin = "GlowBin";
shader = RGBShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
renderPriority = 10;
};
function RGBPostEffect::setShaderConsts(%this)
{
%this.setShaderConst("$redLevel", $RGBPostEffect::RedLevel);
%this.setShaderConst("$greenLevel", $RGBPostEffect::GreenLevel);
%this.setShaderConst("$blueLevel", $RGBPostEffect::BlueLevel);
}
// ZOOM BLUR
$ZoomBlur::Amount = 0.99;
$ZoomBlur::Samples = 6;
singleton ShaderData( ZoomBlurShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/zoomBlurP.hlsl";
samplerNames[0] = "$inputTex";
pixVersion = 3.0;
};
singleton PostEffect( ZoomBlurPostEffect )
{
renderTime = "PFXAfterDiffuse";
shader = ZoomBlurShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
};
function ZoomBlurPostEffect::setShaderConsts(%this)
{
%this.setShaderConst("$amount", $ZoomBlur::Amount);
%this.setShaderConst("$samples", $ZoomBlur::Samples);
}
// NEGATIVE
singleton ShaderData( NegativeShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/negativeP.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( NegativePostEffect )
{
renderTime = "PFXAfterDiffuse";
shader = NegativeShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
};
// BLACK AND WHITE
singleton ShaderData( BlackAndWhiteShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/blackAndWhiteP.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( BlackAndWhitePostEffect )
{
renderTime = "PFXAfterDiffuse";
shader = BlackAndWhiteShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
};
// MONOCHROME
singleton ShaderData( MonochromeShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/monochromeP.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( MonochromePostEffect )
{
renderTime = "PFXAfterDiffuse";
shader = MonochromeShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
};
// EDGE DETECTION
$EdgeDetection::Threshold = 0.01;
singleton ShaderData( EdgeDetectionShader )
{
DXVertexShaderFile = "shaders/common/postFx/postFxV.hlsl";
DXPixelShaderFile = "shaders/common/postFx/Library/edgeDetectionP.hlsl";
pixVersion = 2.0;
};
singleton PostEffect( EdgeDetectionPostEffect )
{
renderTime = "PFXAfterDiffuse";
shader = EdgeDetectionShader;
stateBlock = PFX_DefaultStateBlock;
texture[0] = "$backBuffer";
};
function EdgeDetectionPostEffect::setShaderConsts(%this)
{
%this.setShaderConst("$threshold", $EdgeDetection::Threshold);
}

View file

@ -0,0 +1,21 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "../../torque.hlsl"
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float4 base = TORQUE_TEX2D(backBuffer, IN.uv0);
base.a = 1.0f;
base.rgb = (base.r + base.g + base.b) / 3.0f;
if (base.r < 0.5)
base.r = 0.0f;
else
base.r = 1.0f;
base.gb = base.r;
return base;
}

View file

@ -0,0 +1,29 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "shadergen:/autogenConditioners.h"
#include "../../torque.hlsl"
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
uniform float BlurredVisionIntensity;
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float4 base = TORQUE_TEX2D(backBuffer, IN.uv0);
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.001 * BlurredVisionIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.003 * BlurredVisionIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.005 * BlurredVisionIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.007 * BlurredVisionIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.009 * BlurredVisionIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.011 * BlurredVisionIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.001 * BlurredVisionIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.003 * BlurredVisionIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.005 * BlurredVisionIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.007 * BlurredVisionIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.009 * BlurredVisionIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.011 * BlurredVisionIntensity));
base = base / 15.0; // 9.5
return base;
}

View file

@ -0,0 +1,24 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "shadergen:/autogenConditioners.h"
uniform float accumTime;
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
uniform float intensity;
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float2 coords = IN.uv0;
float2 uv = IN.uv0;
coords = (coords - 0.5) * 2.0;
float coordDot = dot(coords, coords);
float2 uvG = uv - TORQUE_TEX2D(backBuffer, IN.uv0).xy * intensity * coords * coordDot;
float4 base = TORQUE_TEX2D(backBuffer, IN.uv0);
base.g = TORQUE_TEX2D(backBuffer, uvG).g;
return base;
}

View file

@ -0,0 +1,39 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "shadergen:/autogenConditioners.h"
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
uniform float time;
uniform float sizeX; // rt_w
uniform float sizeY; // rt_h
uniform float stitching_size = 6.0;
uniform int invert = 0;
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float4 base = float4(0.0, 0.0, 0.0, 0.0);
float size = stitching_size;
float2 cPos = IN.uv0 * float2(sizeX, sizeY);
float2 tlPos = floor(cPos / float2(size, size));
tlPos *= size;
int remX = int(cPos.x % size);
int remY = int(cPos.y % size);
if (remX == 0 && remY == 0)
tlPos = cPos;
float2 blPos = tlPos;
blPos.y += (size - 1.0);
if ((remX == remY) || (((int(cPos.x) - int(blPos.x)) == (int(blPos.y) - int(cPos.y)))))
{
if (invert == 1)
base = float4(0.2, 0.15, 0.05, 1.0);
else
base = TORQUE_TEX2D(backBuffer, tlPos * float2(1.0/sizeX, 1.0/sizeY)) * 1.4;
}
else
{
if (invert == 1)
base = TORQUE_TEX2D(backBuffer, tlPos * float2(1.0/sizeX, 1.0/sizeY)) * 1.4;
else
base = float4(0.0, 0.0, 0.0, 1.0);
}
return base;
}

View file

@ -0,0 +1,30 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "shadergen:/autogenConditioners.h"
#include "../../torque.hlsl"
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
uniform float DreamViewIntensity;
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float4 base = TORQUE_TEX2D(backBuffer, IN.uv0);
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.001 * DreamViewIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.003 * DreamViewIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.005 * DreamViewIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.007 * DreamViewIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.009 * DreamViewIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0+(0.011 * DreamViewIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.001 * DreamViewIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.003 * DreamViewIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.005 * DreamViewIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.007 * DreamViewIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.009 * DreamViewIntensity));
base += TORQUE_TEX2D(backBuffer, IN.uv0-(0.011 * DreamViewIntensity));
base.rgb = (base.r + base.g + base.b)/3.0;
base = base / 9.5;
return base;
}

View file

@ -0,0 +1,48 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "../../torque.hlsl"
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
uniform float threshold;
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float4 base = TORQUE_TEX2D(backBuffer, IN.uv0);
const int NUM = 9;
const float2 c[NUM] =
{
float2(-0.0078125, 0.0078125),
float2( 0.00 , 0.0078125),
float2( 0.0078125, 0.0078125),
float2(-0.0078125, 0.00 ),
float2( 0.0, 0.0),
float2( 0.0078125, 0.007 ),
float2(-0.0078125,-0.0078125),
float2( 0.00 , -0.0078125),
float2( 0.0078125,-0.0078125),
};
int i;
float3 col[NUM];
for (i=0; i < NUM; i++)
{
col[i] = TORQUE_TEX2D(backBuffer, IN.uv0 + 0.2*c[i]);
}
float3 rgb2lum = float3(0.30, 0.59, 0.11);
float lum[NUM];
for (i = 0; i < NUM; i++)
{
lum[i] = dot(col[i].xyz, rgb2lum);
}
float x = lum[2]+ lum[8]+2*lum[5]-lum[0]-2*lum[3]-lum[6];
float y = lum[6]+2*lum[7]+ lum[8]-lum[0]-2*lum[1]-lum[2];
float edge =(x*x + y*y < threshold)? 1.0:0.0;
base.rgb *= edge;
return base;
}

View file

@ -0,0 +1,14 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "shadergen:/autogenConditioners.h"
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
uniform float radiusX;
uniform float radiusY;
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float4 base = TORQUE_TEX2D(backBuffer, IN.uv0);
float dist = distance(IN.uv0, float2(0.5,0.5));
base.rgb *= smoothstep(radiusX, radiusY, dist);
return base;
}

View file

@ -0,0 +1,13 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "../../torque.hlsl"
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float4 base = TORQUE_TEX2D(backBuffer, IN.uv0);
base.rgb = (base.r + base.g + base.b) / 3.0f;
return base;
}

View file

@ -0,0 +1,11 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "../../torque.hlsl"
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float4 base = TORQUE_TEX2D(backBuffer, IN.uv0);
base.a = 0;
return float4(1.0f, 1.0f, 1.0f, 1.0f) - base;
}

View file

@ -0,0 +1,48 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "shadergen:/autogenConditioners.h"
uniform float accumTime;
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
uniform float luminanceThreshold; // 0.2
uniform float colorAmplification; // 4.0
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float speed = 100;
float Yres = 1024;
float brightness = 0.2;
float4 finalColor = float4(1.0, 1.0, 1.0, 1.0);
float2 uv;
uv.x = 0.4 * sin(accumTime * 50.0);
uv.y = 0.4 * cos(accumTime * 50.0);
//float m = TORQUE_TEX2D(maskTex, gl_TexCoord[0].st).r;
//vec3 n = texture2D(noiseTex, (gl_TexCoord[0].st*3.5) + uv).rgb;
float3 c = TORQUE_TEX2D(backBuffer, IN.uv0).rgb;
float lum = dot(float3(0.30, 0.59, 0.11), c);
if (lum < luminanceThreshold)
c *= colorAmplification;
float3 visionColor = float3(0.1, 0.95, 0.2);
finalColor.rgb = c * visionColor;
// add noise
float noise = IN.uv0.x * IN.uv0.y * accumTime * speed;
noise = fmod(noise, 10) * fmod(noise, 100);
noise = fmod(noise, 0.01);
float3 color = finalColor.rgb;
color = color + color * saturate(noise.xxx * 200);
// add banding
float sin,cos;
sincos(IN.uv0.y * Yres, sin, cos);
color += color * float3(sin, cos, sin) * brightness;
finalColor.rgb = color;
return finalColor;
}

View file

@ -0,0 +1,21 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "shadergen:/autogenConditioners.h"
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
uniform float pixel_w;
uniform float pixel_h;
uniform float sizeX;
uniform float sizeY;
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float2 uv = IN.uv0;
float3 base = float3(1.0, 0.0, 0.0);
float dx = pixel_w * (1.0 / sizeX);
float dy = pixel_h * (1.0 / sizeY);
float2 coord = float2(dx*floor(uv.x/dx), dy*floor(uv.y/dy));
base = TORQUE_TEX2D(backBuffer, coord).rgb;
return float4(base, 1.0);
}

View file

@ -0,0 +1,17 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "shadergen:/autogenConditioners.h"
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
uniform float gamma;
uniform float numColors;
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float3 base = TORQUE_TEX2D(backBuffer, IN.uv0).rgb;
base = pow(base, float3(gamma, gamma, gamma));
base = base * numColors;
base = floor(base);
base = base / numColors;
base = pow(base, float3(1.0/gamma, 1.0/gamma, 1.0/gamma));
return float4(base, 1.0);
}

View file

@ -0,0 +1,16 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "shadergen:/autogenConditioners.h"
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
uniform float redLevel;
uniform float greenLevel;
uniform float blueLevel;
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float4 base = TORQUE_TEX2D(backBuffer, IN.uv0);
base.r *= redLevel;
base.g *= greenLevel;
base.b *= blueLevel;
return base;
}

View file

@ -0,0 +1,25 @@
#include "shaders/common/postFx/postFx.hlsl"
#include "../../torque.hlsl"
uniform float amount;
uniform float samples;
TORQUE_UNIFORM_SAMPLER2D(backBuffer, 0);
float4 main(PFXVertToPix IN) : TORQUE_TARGET0
{
float b = 0;
float4 base = TORQUE_TEX2D(backBuffer, IN.uv0);
float2 uv = IN.uv0;
[loop] for (int i = 1; i <= samples; i++)
{
uv -= b;
uv *= amount;
b = (1-(1*pow(abs(amount), i))) / 2;
uv += b;
base += TORQUE_TEX2DLOD(backBuffer, float4(uv.x, uv.y, 0, 0));
}
return base / (samples + 1);
}

View file

@ -0,0 +1,5 @@
$RPGDialogEditorPref::ActionPath = "art/dialogs/dla/";
$RPGDialogEditorPref::QuestionPath = "art/dialogs/dlq/";
$RPGDialogEditorPref::PortraitsPath = "art/dialogs/portraits/";
$RPGDialogEditorPref::mainMod="art";
$RPGDialogEditorPref::MaxOptions = 100;

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,57 @@
//-----------------------------------------------------------------------------
// Torque Game Engine
//
// Copyright (c) 2001 GarageGames.Com
// Portions Copyright (c) 2001 by Sierra Online, Inc.
//-----------------------------------------------------------------------------
function initRPGDialogEditor()
{
exec("~/scripts/RPGDialogEditor/ui/MainEditorScreenGui.gui");
exec("~/scripts/RPGDialogEditor/ui/EditQuestionGui.gui");
exec("~/scripts/RPGDialogEditor/ui/EditAnswerGui.gui");
exec("~/scripts/RPGDialogEditor/ui/NewScriptPopup.gui");
exec("~/scripts/RPGDialogEditor/ui/SetPathsPopup.gui");
exec("~/scripts/RPGDialogEditor/ui/EditorOpeningGui.gui");
exec("~/scripts/RPGDialogEditor/defaults.cs");
exec("~/scripts/RPGDialogEditor/prefs.cs");
exec("~/scripts/RPGDialogEditor/editorMain.cs");
PopulateActionList();
PopulateQuestionOptionsList();
GlobalActionMap.bind(keyboard, "f5", toggleRPGDialogEditor);
}
function openRPGDialogEditor()
{
$GuiBeforeRPGDialogEditor=Canvas.getContent();
if(TextScript.getvalue()$="Current Q. Script:")
Canvas.setContent(EditorOpeningGui);
else
Canvas.setContent(MainEditorScreenGui);
Canvas.setCursor("DefaultCursor");
}
function closeRPGDialogEditor()
{
Canvas.setContent($GuiBeforeRPGDialogEditor);
Canvas.setCursor("DefaultCursor");
}
function toggleRPGDialogEditor(%val)
{
if (%val)
{
if (Canvas.getContent() == MainEditorScreenGui.getId() ||
Canvas.getContent() == EditQuestionGui.getId() ||
Canvas.getContent() == EditAnswerGui.getId() ||
Canvas.getContent() == EditorOpeningGui.getId())
closeRPGDialogEditor();
else
openRPGDialogEditor();
}
}

View file

@ -0,0 +1,68 @@
//-----------------------------------------------------------------------------
// Torque Game Engine
//
// Copyright (c) 2001 GarageGames.Com
// Portions Copyright (c) 2001 by Sierra Online, Inc.
//-----------------------------------------------------------------------------
function initEditor()
{
exec("~/scripts/RPGDialogEditor/ui/MainEditorScreenGui.gui");
exec("~/scripts/RPGDialogEditor/ui/EditQuestionGui.gui");
exec("~/scripts/RPGDialogEditor/ui/EditAnswerGui.gui");
exec("~/scripts/RPGDialogEditor/ui/NewScriptPopup.gui");
exec("~/scripts/RPGDialogEditor/ui/SetPathsPopup.gui");
exec("~/scripts/RPGDialogEditor/ui/EditorOpeningGui.gui");
exec("~/scripts/RPGDialogEditor/defaults.cs");
exec("~/scripts/RPGDialogEditor/prefs.cs");
exec("~/scripts/RPGDialogEditor/editorMain.cs");
}
function startEditor()
{
// The client mod has already set it's own content, but we'll
// just load something new.
Canvas.setContent(EditorOpeningGui);
Canvas.setCursor("DefaultCursor");
PopulateActionList();
PopulateQuestionOptionsList();
}
//-----------------------------------------------------------------------------
// Package overrides to initialize the mod.
// This module currently loads on top of the client mod, but it probably
// doesn't need to. Should look into having disabling the client and
// doing our own canvas init.
package RPGDialogEditor {
function onStart()
{
Parent::onStart();
echo("\n--------- Initializing MOD: RPGDialogEditor ---------");
if (!isObject(Canvas)) {
// If the parent onStart didn't open a canvas, then we're
// probably not running as a mod. We'll have to do the work
// ourselves.
initCanvas("RPGDialog Editor");
}
initEditor();
startEditor();
}
function onExit()
{
echo("Exporting RPGDialog editor prefs");
export("$RPGDialogEditorPref::*", "~/prefs.cs", False);
if(isEventPending($RPGDialog::RefreshSchedule))
cancel($RPGDialog::RefreshSchedule);
Parent::onExit();
}
}; // package end.
activatePackage(RPGDialogEditor);

View file

@ -0,0 +1,5 @@
$RPGDialogEditorPref::ActionPath = "art/dialogs/dla/";
$RPGDialogEditorPref::mainMod = "art";
$RPGDialogEditorPref::MaxOptions = 100;
$RPGDialogEditorPref::PortraitsPath = "art/dialogs/portraits/";
$RPGDialogEditorPref::QuestionPath = "art/dialogs/dlq/";

View file

@ -0,0 +1,131 @@
new GuiChunkedBitmapCtrl(EditAnswerGui) {
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 GuiScrollCtrl(AnswerEditScroll) {
profile = "GuiScrollProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "40 50";
extent = "480 500";
minExtent = "8 2";
visible = "1";
helpTag = "0";
willFirstRespond = "1";
hScrollBar = "alwaysOff";
vScrollBar = "dynamic";
constantThumbHeight = "0";
childMargin = "2 2";
new GuiMLTextEditCtrl(AnswerEdit) {
profile = "GuiMLTextEditProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "0 2";
extent = "450 500";
minExtent = "8 2";
visible = "1";
helpTag = "0";
lineSpacing = "2";
allowColorChars = "1";
maxChars = "-1";
};
};
new GuiTextEditCtrl(ActionEdit) {
profile = "GuiTextEditProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "40 20";
extent = "711 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
lineSpacing = "2";
allowColorChars = "0";
maxChars = "-1";
};
new GuiButtonCtrl(AnswerEditConfirmButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "523 530";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "OK";
groupNum = "-1";
buttonType = "PushButton";
command = "confirmAnswerEdit();";
};
new GuiButtonCtrl(AnswerEditCancelButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "598 530";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Cancel";
groupNum = "-1";
buttonType = "PushButton";
command = "Canvas.setContent(MainEditorScreenGui);";
};
new GuiButtonCtrl(AnswerEditDeleteButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "673 530";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Delete";
groupNum = "-1";
buttonType = "PushButton";
command = "MessageBoxYesNo( \"Delete Answer\", \"Do you really want to delete this answer?\", \"deleteAnswer(\"@$RPGDialog::EditAnswerNumber@\");\", \"\");";
};
new GuiScrollCtrl(ActionListScroll) {
profile = "GuiScrollProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "521 50";
extent = "230 476";
minExtent = "8 2";
visible = "1";
helpTag = "0";
willFirstRespond = "1";
hScrollBar = "dynamic";
vScrollBar = "dynamic";
constantThumbHeight = "0";
childMargin = "2 2";
new GuiTextListCtrl(ActionList) {
profile = "GuiTextListProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "0 0";
extent = "196 401";
minExtent = "8 2";
visible = "1";
helpTag = "0";
enumerate = "0";
resizeCell = "1";
columns = "0";
fitParentWidth = "0";
clipColumnText = "0";
};
};
};

View file

@ -0,0 +1,161 @@
new GuiChunkedBitmapCtrl(EditQuestionGui) {
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 GuiScrollCtrl(QuestionEditScroll) {
profile = "GuiScrollProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "40 50";
extent = "480 500";
minExtent = "8 2";
visible = "1";
helpTag = "0";
willFirstRespond = "1";
hScrollBar = "alwaysOff";
vScrollBar = "dynamic";
constantThumbHeight = "0";
childMargin = "2 2";
new GuiMLTextEditCtrl(QuestionEdit) {
profile = "GuiMLTextEditProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "0 2";
extent = "450 500";
minExtent = "8 2";
visible = "1";
helpTag = "0";
lineSpacing = "2";
allowColorChars = "1";
maxChars = "-1";
};
};
new GuiButtonCtrl(QuestionEditConfirmButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "523 530";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "OK";
groupNum = "-1";
buttonType = "PushButton";
command = "confirmQuestionEdit();";
};
new GuiButtonCtrl(QuestionEditCancelButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "598 530";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Cancel";
groupNum = "-1";
buttonType = "PushButton";
command = "cancelQuestionEdit();";
};
new GuiButtonCtrl(QuestionEditClearButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "673 530";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Clear";
groupNum = "-1";
buttonType = "PushButton";
command = "QuestionEdit.settext(\"\");QuestionEditSound.setValue(\"\");";
};
new GuiScrollCtrl(QuestionOptionsScroll) {
profile = "GuiScrollProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "521 83";
extent = "230 443";
minExtent = "8 2";
visible = "1";
helpTag = "0";
willFirstRespond = "1";
hScrollBar = "dynamic";
vScrollBar = "dynamic";
constantThumbHeight = "0";
childMargin = "2 2";
new GuiTextListCtrl(QuestionOptionsList) {
profile = "GuiTextListProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "0 0";
extent = "196 401";
minExtent = "8 2";
visible = "1";
helpTag = "0";
enumerate = "0";
resizeCell = "1";
columns = "0";
fitParentWidth = "0";
clipColumnText = "0";
};
};
new GuiTextCtrl() {
profile = "GuiTextProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "524 46";
extent = "50 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Sound Profile:";
maxLength = "255";
};
new GuiPopUpMenuCtrl(QuestionEditSound) {
profile = "GuiPopUpMenuProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "521 62";
extent = "135 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
maxLength = "255";
historySize = "0";
password = "0";
tabComplete = "0";
sinkAllKeyEvents = "0";
maxPopupHeight = "500";
};
new GuiButtonCtrl(QuestionEditRemoveSound) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "660 62";
extent = "90 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Remove Sound";
groupNum = "-1";
buttonType = "PushButton";
command = "QuestionEditSound.setValue(\"\");";
};
};

View file

@ -0,0 +1,108 @@
//--- OBJECT WRITE BEGIN ---
new GuiChunkedBitmapCtrl(EditorOpeningGui) {
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 GuiBitmapCtrl() {
profile = "GuiDefaultProfile";
horizSizing = "center";
vertSizing = "bottom";
position = "78 10";
extent = "484 160";
minExtent = "8 2";
visible = "1";
bitmap = "./title";
wrap = "0";
helpTag = "0";
};
new GuiBitmapCtrl() {
profile = "GuiDefaultProfile";
horizSizing = "center";
vertSizing = "center";
position = "248 147";
extent = "143 186";
minExtent = "8 2";
visible = "1";
bitmap = "./box";
wrap = "0";
helpTag = "0";
new GuiButtonCtrl(NewScriptButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "36 47";
extent = "73 18";
minExtent = "8 2";
visible = "1";
command = "initNewScript();";
text = "New Script";
groupNum = "-1";
buttonType = "PushButton";
helpTag = "0";
};
new GuiButtonCtrl(LoadScriptButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "36 66";
extent = "73 18";
minExtent = "8 2";
visible = "1";
command = "getLoadFilename(\"*.dlq\", LoadScript);";
text = "Load Script...";
groupNum = "-1";
buttonType = "PushButton";
helpTag = "0";
};
new GuiButtonCtrl(SetPathsButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "36 85";
extent = "73 18";
minExtent = "8 2";
visible = "1";
command = "initSetPaths();";
text = "Set Paths...";
groupNum = "-1";
buttonType = "PushButton";
helpTag = "0";
};
new GuiButtonCtrl(QuitButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "36 117";
extent = "73 18";
minExtent = "8 2";
visible = "1";
command = "MessageBoxYesNo( \"Quit Editor\", \"Do you really want to quit the editor?\", \"if($GuiBeforeRPGDialogEditor==0)quit();else closeRPGDialogEditor();\", \"\");";
text = "Quit";
groupNum = "-1";
buttonType = "PushButton";
helpTag = "0";
};
new GuiTextCtrl(Version) {
profile = "GuiTextProfile";
horizSizing = "center";
vertSizing = "bottom";
position = "58 18";
extent = "26 18";
minExtent = "8 2";
visible = "1";
text = "V.1.3";
maxLength = "255";
};
};
};
//--- OBJECT WRITE END ---

View file

@ -0,0 +1,265 @@
//--- OBJECT WRITE BEGIN ---
new GuiChunkedBitmapCtrl(MainEditorScreenGui) {
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 GuiTextCtrl(TextScript) {
profile = "GuiTextProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "162 21";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Current Q. Script:";
maxLength = "255";
};
new GuiTextCtrl(TextScript2) {
profile = "GuiTextProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "162 33";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Current A. Script:";
maxLength = "255";
};
new GuiTextCtrl(TextQuestionNumber) {
profile = "GuiTextProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "162 208";
extent = "46 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Question: 0/0";
maxLength = "255";
};
new GuiButtonCtrl(NewScriptButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "85 52";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "New Script";
groupNum = "-1";
buttonType = "PushButton";
command = "initNewScript();";
};
new GuiButtonCtrl(LoadScriptButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "85 71";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Load Script...";
groupNum = "-1";
buttonType = "PushButton";
command = "getLoadFilename(\"*.dlq\", LoadScript);";
};
new GuiButtonCtrl(NextQuestionButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "610 212";
extent = "29 16";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Next";
groupNum = "-1";
buttonType = "PushButton";
command = "NextQuestion();";
};
new GuiButtonCtrl(PreviousQuestionButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "579 212";
extent = "29 16";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Prev.";
groupNum = "-1";
buttonType = "PushButton";
command = "PreviousQuestion();";
};
new GuiScrollCtrl(QuestionScroll) {
profile = "GuiScrollProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "160 50";
extent = "480 160";
minExtent = "8 2";
visible = "1";
helpTag = "0";
willFirstRespond = "1";
hScrollBar = "alwaysOff";
vScrollBar = "dynamic";
constantThumbHeight = "0";
childMargin = "4 2";
new GuiMLTextCtrl(QuestionText) {
profile = "GuiMLTextEditProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "4 2";
extent = "478 116";
minExtent = "8 2";
visible = "1";
helpTag = "0";
lineSpacing = "2";
allowColorChars = "1";
maxChars = "-1";
};
};
new GuiScrollCtrl(OptionsScroll) {
profile = "GuiScrollProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "10 250";
extent = "780 300";
minExtent = "8 2";
visible = "1";
helpTag = "0";
willFirstRespond = "1";
hScrollBar = "alwaysOff";
vScrollBar = "alwaysOn";
constantThumbHeight = "0";
childMargin = "2 2";
new GuiControl(OptionsControl) {
profile = "GuiDefaultProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "4 2";
extent = "770 290";
minExtent = "8 2";
visible = "1";
helpTag = "0";
};
};
new GuiButtonCtrl(editQuestionButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "642 123";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Edit Question";
groupNum = "-1";
buttonType = "PushButton";
command = "EditQuestion();";
};
new GuiButtonCtrl(newQuestionButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "642 51";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "New Question";
groupNum = "-1";
buttonType = "PushButton";
command = "newQuestion();";
};
new GuiButtonCtrl(newAnswerButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "715 230";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "New Answer";
groupNum = "-1";
buttonType = "PushButton";
command = "newAnswer();";
};
new GuiButtonCtrl(DeleteQuestionButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "642 76";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Del. Question";
groupNum = "-1";
buttonType = "PushButton";
command = "if($RPGDialog::Questions>0) MessageBoxYesNo( \"Delete Question\", \"Do you really want to delete this question?\", \"deleteQuestion();\", \"\");";
};
new GuiButtonCtrl(QuitButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "85 192";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Quit";
groupNum = "-1";
buttonType = "PushButton";
command = "MessageBoxYesNo( \"Quit Editor\", \"Do you really want to quit the editor?\", \"if($GuiBeforeRPGDialogEditor==0)quit();else closeRPGDialogEditor();\", \"\");";
};
new GuiButtonCtrl(SaveScriptButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "85 103";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Save Script";
groupNum = "-1";
buttonType = "PushButton";
command = "SaveScript();";
};
new GuiButtonCtrl(SaveScriptAsButton) {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "85 122";
extent = "73 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Save As...";
groupNum = "-1";
buttonType = "PushButton";
command = "InitSaveAsPhase1();";
};
};
//--- OBJECT WRITE END ---

View file

@ -0,0 +1,115 @@
//--- OBJECT WRITE BEGIN ---
new GuiControl(NewScriptPopup) {
profile = "GuiDefaultProfile";
horizSizing = "center";
vertSizing = "center";
position = "0 0";
extent = "640 480";
minExtent = "8 2";
visible = "1";
helpTag = "0";
new GuiWindowCtrl() {
profile = "GuiWindowProfile";
horizSizing = "center";
vertSizing = "center";
position = "220 146";
extent = "200 188";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "New Dialog Script";
maxLength = "255";
resizeWidth = "1";
resizeHeight = "1";
canMove = "0";
canClose = "0";
canMinimize = "0";
canMaximize = "0";
minSize = "50 50";
new GuiTextCtrl() {
profile = "GuiTextProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 28";
extent = "50 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Question Script:";
maxLength = "255";
};
new GuiTextEditCtrl(NewScriptQuestion) {
profile = "GuiTextEditProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 44";
extent = "160 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
maxLength = "255";
historySize = "0";
password = "0";
tabComplete = "0";
sinkAllKeyEvents = "0";
};
new GuiTextCtrl() {
profile = "GuiTextProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 68";
extent = "30 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Action Script:";
maxLength = "255";
};
new GuiTextEditCtrl(NewScriptAction) {
profile = "GuiTextEditProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 84";
extent = "160 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
maxLength = "255";
historySize = "0";
password = "0";
tabComplete = "0";
sinkAllKeyEvents = "0";
};
new GuiButtonCtrl() {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "56 156";
extent = "40 16";
minExtent = "8 2";
visible = "1";
command = "NewScript();";
helpTag = "0";
text = "Create";
groupNum = "-1";
buttonType = "PushButton";
};
new GuiButtonCtrl() {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "104 156";
extent = "40 16";
minExtent = "8 2";
visible = "1";
command = "Canvas.popDialog(NewScriptPopup);";
helpTag = "0";
text = "Cancel";
groupNum = "-1";
buttonType = "PushButton";
};
};
};
//--- OBJECT WRITE END ---

View file

@ -0,0 +1,169 @@
//--- OBJECT WRITE BEGIN ---
new GuiControl(SetPathsPopup) {
profile = "GuiDefaultProfile";
horizSizing = "center";
vertSizing = "center";
position = "0 0";
extent = "640 480";
minExtent = "8 2";
visible = "1";
helpTag = "0";
new GuiWindowCtrl() {
profile = "GuiWindowProfile";
horizSizing = "center";
vertSizing = "center";
position = "220 146";
extent = "200 228";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Paths";
maxLength = "255";
resizeWidth = "1";
resizeHeight = "1";
canMove = "0";
canClose = "0";
canMinimize = "0";
canMaximize = "0";
minSize = "50 50";
new GuiTextCtrl() {
profile = "GuiTextProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 24";
extent = "67 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Main Mod Folder:";
maxLength = "255";
};
new GuiTextEditCtrl(MainMod) {
profile = "GuiTextEditProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 40";
extent = "160 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
maxLength = "255";
historySize = "0";
password = "0";
tabComplete = "0";
sinkAllKeyEvents = "0";
};
new GuiTextCtrl() {
profile = "GuiTextProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 64";
extent = "101 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Question Script Path:";
maxLength = "255";
};
new GuiTextEditCtrl(QuestionScriptPath) {
profile = "GuiTextEditProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 80";
extent = "160 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
maxLength = "255";
historySize = "0";
password = "0";
tabComplete = "0";
sinkAllKeyEvents = "0";
};
new GuiTextCtrl() {
profile = "GuiDefaultProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 104";
extent = "89 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Action Script Path:";
maxLength = "255";
};
new GuiTextEditCtrl(ActionScriptPath) {
profile = "GuiTextEditProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 120";
extent = "160 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
maxLength = "255";
historySize = "0";
password = "0";
tabComplete = "0";
sinkAllKeyEvents = "0";
};
new GuiTextCtrl() {
profile = "GuiTextProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 144";
extent = "67 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
text = "Portraits Path:";
maxLength = "255";
};
new GuiTextEditCtrl(PortraitsPath) {
profile = "GuiTextEditProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "20 160";
extent = "160 18";
minExtent = "8 2";
visible = "1";
helpTag = "0";
maxLength = "255";
historySize = "0";
password = "0";
tabComplete = "0";
sinkAllKeyEvents = "0";
};
new GuiButtonCtrl() {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "56 192";
extent = "40 16";
minExtent = "8 2";
visible = "1";
command = "SetPaths();";
helpTag = "0";
text = "Set";
groupNum = "-1";
buttonType = "PushButton";
};
new GuiButtonCtrl() {
profile = "GuiButtonProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "104 192";
extent = "40 16";
minExtent = "8 2";
visible = "1";
command = "Canvas.popDialog(SetPathsPopup);";
helpTag = "0";
text = "Cancel";
groupNum = "-1";
buttonType = "PushButton";
};
};
};
//--- OBJECT WRITE END ---

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View file

@ -0,0 +1,205 @@
//-----------------------------------------------------------------------------
// RPGDialog - Presents the player with a question and several answers to select from
// Created by Nelson A. K. Gonsalves
//-----------------------------------------------------------------------------
if($RPGDialogEditorPref::MaxOptions>0)
$Pref::RPGDialog::MaxOptions=$RPGDialogEditorPref::MaxOptions;
function getQuestion(%questionFile,%questionNumber)
{
%file = new FileObject();
if(isFile($Pref::RPGDialog::Client::QuestionPath@%questionFile@".dlq") && %file.openForRead($Pref::RPGDialog::Client::QuestionPath@%questionFile@".dlq"))
{
for(%i=1;%i<%questionNumber;%i++)
{
%file.readLine();
if(%file.isEOF())
return "<Invalid Question>";
}
%question=%file.readLine();
}
else if(isFile($RPGDialogEditorPref::QuestionPath@%questionFile@".dlq") && %file.openForRead($RPGDialogEditorPref::QuestionPath@%questionFile@".dlq"))
{
for(%i=1;%i<%questionNumber;%i++)
{
%file.readLine();
if(%file.isEOF())
return "<Invalid Question>";
}
%question=%file.readLine();
}
%file.close();
%file.delete();
return %question;
}
function clientCmdCloseRPGDialog()
{
Canvas.popDialog(RPGDialog);
RPGDialogQuestion.settext("");
RPGDialogAnswer.settext("");
}
function clientCmdRPGDialogMessage(%sender,%senderName,%portrait,%npcFile,%questionNumber,%playerName)
{
$RPGDialog::Sender=%sender;
$RPGDialog::questionNumber=%questionNumber;
onRPGDialogMessage(%npcFile,%questionNumber,%senderName,%portrait,%playerName);
}
function onRPGDialogMessage(%npcFile,%questionNumber,%senderName,%portrait,%playerName)
{
if(%portrait!$="" && isFile($RPGDialogEditorPref::PortraitsPath@%portrait))
{
RPGDialogPortrait.setbitmap($RPGDialogEditorPref::PortraitsPath@%portrait);
}
else
{
RPGDialogPortrait.setbitmap($RPGDialogEditorPref::PortraitsPath@"unknown.png");
}
if(%npcFile!$="")
{
%QuestionAnswer=GetQuestion(%npcfile,%questionNumber);
if(%QuestionAnswer!$="<InvalidQuestion>")
{
%AnswerStart=strPos(%QuestionAnswer,"<AnswerStart>");
%question=getSubStr(%QuestionAnswer,0,%AnswerStart);
%answer=getSubStr(%QuestionAnswer,%AnswerStart+13,strLen(%QuestionAnswer));
}
else
{
%question="ERROR::Invalid Question!!\nnpcFile = "@%npcFile@"\nquestionNumber = "@%questionNumber;
}
}
if (%question!$="")
{
%question=strreplace(%question,"<<Name>>",%senderName);
%question=strreplace(%question,"<<PlayerName>>",%playerName);
if ((%soundStart = playRPGDialogSound(%question)) != -1)
%question = getSubStr(%question, 0, %soundStart);
RPGDialogQuestion.settext(%question);
ChatHud.addLine($Pref::RPGDialog::ChatHudQuestionColor@%senderName@": "@StripMLControlChars(%question));
}
if (%answer!$="")
{
%answer=strReplace(%answer,"<<Name>>",%senderName);
%answer=strReplace(%answer,"<<PlayerName>>",%playerName);
%answer=strReplace(%answer,"<BR>","\n");
%line=%answer;
%i=1;
while(%i<=$Pref::RPGDialog::MaxOptions) //lets number the options
{
%Start=strpos(%line,"<a:RPGDialog "@%i@">");
if(%Start<0)
{
%i=$Pref::RPGDialog::MaxOptions+1;
}
else
{
%line=getSubStr(%line,%Start,strlen(%line));
%End=strpos(%line,"</a>")+4;
%line=getSubStr(%line,%End,strlen(%line));
%answer=strReplace(%answer,"<a:RPGDialog "@%i@">","<a:RPGDialog "@%i@"> "@%i@" - ");
%i++;
}
}
RPGDialogAnswer.settext(%answer);
}
else
{
RPGDialogAnswer.settext("<a:RPGDialogNoAnswer>Continue...");
}
RPGDialogAnswer.Visible=true;
Canvas.pushDialog(RPGDialog);
}
function RPGDialogAnswer::onURL(%this, %url)
{
//same as RPGDialogQuestion::onURL, so just forward the call
RPGDialogQuestion::onURL(%this, %url);
}
function RPGDialogQuestion::onURL(%this, %url)
{
if(firstword(%url)!$="RPGDialog" && firstword(%url)!$="RPGDialogLink" && firstword(%url)!$="RPGDialogNoAnswer")
{
gotoWebPage( %url );
}
else if(firstword(%url)$="RPGDialogLink")
{
%Answers=%this.gettext();
%AnswerHeaderSize=strlen("<a:RPGDialogLink "@restwords(%url)@">");
%AnswerStart=strpos(%Answers,"<a:RPGDialogLink "@restwords(%url)@">")+%AnswerHeaderSize;
%Answers=getSubStr(%Answers,%AnswerStart,strLen(%Answers));
%AnswerEnd=strPos(%Answers,"</a>")+4;
ChatHud.addLine($Pref::RPGDialog::ChatHudAnswerColor@"You: "@StripMLControlChars(getSubStr(%Answers,0,%AnswerEnd)));
CommandToServer('RPGDialogAnswer', $RPGDialog::Sender, $RPGDialog::questionNumber, "QL"@restwords(%url));
Canvas.popDialog(RPGDialog);
RPGDialogQuestion.settext("");
RPGDialogAnswer.settext("");
}
else if(firstword(%url)$="RPGDialogNoAnswer")
{
Canvas.popDialog(RPGDialog);
RPGDialogQuestion.settext("");
RPGDialogAnswer.settext("");
}
else
{
%Answers=%this.gettext();
%Answers=strReplace(%Answers,restwords(%url)@" - ","");
%AnswerHeaderSize=strlen("<a:RPGDialog "@restwords(%url)@">");
%AnswerStart=strpos(%Answers,"<a:RPGDialog "@restwords(%url)@">")+%AnswerHeaderSize;
%Answers=getSubStr(%Answers,%AnswerStart,strLen(%Answers));
%AnswerEnd=strpos(%Answers,"</a>")+4;
ChatHud.addLine($Pref::RPGDialog::ChatHudAnswerColor@"You: "@StripMLControlChars(getSubStr(%Answers,0,%AnswerEnd)));
CommandToServer('RPGDialogAnswer', $RPGDialog::Sender, $RPGDialog::questionNumber, restwords(%url));
Canvas.popDialog(RPGDialog);
RPGDialogQuestion.settext("");
RPGDialogAnswer.settext("");
}
}
function playRPGDialogSound(%message)
{
// Search for wav tag marker.
%soundStart = strstr(%message, "~Sound:");
if (%soundStart == -1) {
return -1;
}
if(alxIsPlaying($RPGDialogSoundHandle))
alxStop($RPGDialogSoundHandle);
%sound = getSubStr(%message, %soundStart + 7, strLen(%message));
$RPGDialogSoundHandle = alxPlay(%sound);
return %soundStart;
}
function SelectAnswer(%Number)
{
if(strPos(RPGDialogAnswer.getText(),"<a:RPGDialog "@%Number@">")>=0)
RPGDialogAnswer.onURL("RPGDialog "@%Number);
else
OutOfRPGDialogFunction(%Number);
}

View file

@ -0,0 +1,21 @@
new SFXDescription(DialogSound)
{
volume = 1.2;
isLooping= false;
is3D = false;
type = $MessageAudioType;
};
new SFXProfile(test)
{
filename = "art/dialogs/sounds/test.wav";
description = "DialogSound";
preload = false;
};
new SFXProfile(test2)
{
filename = "art/dialogs/sounds/test2.wav";
description = "DialogSound";
preload = false;
};

View file

@ -0,0 +1,341 @@
//-----------------------------------------------------------------------------
// RPGDialog - Presents the player with a question and several answers to select from
// Created by Nelson A. K. Gonsalves
//-----------------------------------------------------------------------------
function getAction(%actionFile,%questionNumber)
{
%file = new FileObject();
if(isFile($Pref::Server::RPGDialog::ActionPath@%actionFile@".dla") && %file.openForRead($Pref::Server::RPGDialog::ActionPath@%actionFile@".dla"))
{
for(%i=1;%i<%questionNumber;%i++)
{
%file.readLine();
if(%file.isEOF())
return "<Invalid Question>";
}
%action=%file.readLine();
}
else if(isFile($RPGDialogEditorPref::ActionPath@%actionFile@".dla") && %file.openForRead($RPGDialogEditorPref::ActionPath@%actionFile@".dla"))
{
for(%i=1;%i<%questionNumber;%i++)
{
%file.readLine();
if(%file.isEOF())
return "<Invalid Question>";
}
%action=%file.readLine();
}
%file.close();
%file.delete();
return %action;
}
function RPGDialogMessageClient(%client,%sender,%npcFile,%questionNumber)
{
%senderName=%sender.getshapename();
%portrait=%sender.RPGDialogPortrait;
%playerName=%client.player.getshapename();
%sender.RPGDialogBusy=true;
%sender.RPGDialogTalkingTo=%client;
%sender.setAimObject(%client.player);
commandToClient(%client,'RPGDialogMessage',%sender,%senderName,%portrait,%npcFile,%questionNumber,%playerName);
CheckRPGDialogStatus(%client,%sender);
}
function serverCmdRPGDialogAnswer(%client,%sender,%questionNumber,%answerNumber)
{
if(%client==%sender.RPGDialogTalkingTo)
{
%npcFile=%sender.RPGDialogScript;
%Actions=GetAction(%npcFile,%questionNumber);
if(%Actions!$="<InvalidQuestion>")
{
%ActionHeaderSize=strlen("<"@%answerNumber@">");
%ActionStart=strPos(%Actions,"<"@%answerNumber@">")+%ActionHeaderSize;
%Actions=getSubStr(%Actions,%ActionStart,strlen(%Actions));
%ActionEnd=strPos(%Actions,"<END>");
if(%ActionEnd==-1)
return;
%Actions=getSubStr(%Actions,0,%ActionEnd);
while(%Actions!$="")
{
%ParamStart=strPos(%Actions,"(")+1;
%ParamEnd=strPos(%Actions,")")-%ParamStart;
%Param=getSubStr(%Actions,%ParamStart,%ParamEnd);
%Action=getSubStr(%Actions,0,%ParamStart-1);
if(%Param!$="")
{
eval(%Action@"("@%Param@","@%client@","@%sender@",\""@%npcFile@"\");");
}
else
{
eval(%Action@"("@%client@","@%sender@",\""@%npcFile@"\");");
}
%Actions=getSubStr(%Actions,strlen(%Action)+%ParamEnd+2,strlen(%Actions));
}
}
else
{
echo("ERROR::Invalid Question/Answer!!\nnpcFile = "@%npcFile@"\nquestionNumber = "@%questionNumber);
}
}
}
function serverCmdRPGDialogRay(%client)
{
%StartPos=%client.player.gettransform();
%Eye = %client.player.getEyeVector();
%EndPos = vectorScale(%Eye, -1);
%EndPos = vectorsub(%StartPos,%EndPos);
InitContainerRadiusSearch(%EndPos, 2.5, $TypeMasks::PlayerObjectType);
%rayCast=ContainerSearchNext();
while(%rayCast != 0 )
{
if(%rayCast.RPGDialogScript!$="")
{
if(!%rayCast.RPGDialogBusy)
{
RPGDialogMessageClient(%client, %rayCast, %rayCast.RPGDialogScript,%rayCast.RPGDialogStartQuestion); //start dialog.
return;
}
else
{
if(IsRPGDialogBusy(%rayCast))
{
if(%client!=%raycast.RPGDialogTalkingTo)
{
messageClient(%client, '', %rayCast.RPGDialogBusyText, %raycast.RPGDialogTalkingTo.player.getShapeName());
return;
}
else
return;
}
else
{
RPGDialogMessageClient(%client, %rayCast, %rayCast.RPGDialogScript,%rayCast.RPGDialogStartQuestion); //start dialog.
return;
}
}
}
%rayCast=ContainerSearchNext();
}
}
function IsRPGDialogBusy(%AiPlayerID)
{
InitContainerRadiusSearch(%AiPlayerID.getTransform(), 5, $TypeMasks::PlayerObjectType);
%rayCastBusyCheck=ContainerSearchNext();
while(%rayCastBusyCheck != 0 )
{
if(%rayCastBusyCheck==(%AiPlayerID.RPGDialogTalkingTo).player)
{
return(true);
}
%rayCastBusyCheck=ContainerSearchNext();
}
return(false);
}
function CheckRPGDialogStatus(%Client,%Sender) //Checks if the player has moved since he started the dialog, moving too far from the sender will cancel the dialog
{
InitContainerRadiusSearch(%Sender.getTransform(), 5, $TypeMasks::PlayerObjectType);
%rayCast=ContainerSearchNext();
while(%rayCast != 0 )
{
if(%rayCast==%Client.player)
{
schedule(1000,0,"CheckRPGDialogStatus",%Client,%Sender);
return;
}
%rayCast=ContainerSearchNext();
}
CommandToClient(%client,'CloseRPGDialog');
%Sender.RPGDialogBusy=false;
%Sender.RPGDialogTalkingTo=0;
%Sender.clearAim();
}
function SpawnTestNPC()
{
%player = AIPlayer::spawn("a test NPC","359.973 304.759 217.766");
%player.RPGDialogScript = "Test";
%player.RPGDialogPortrait = "Test.png";
%player.RPGDialogStartQuestion = 1;
%player.RPGDialogBusy = false;
%player.RPGDialogBusyText = 'Sorry but I\'m busy talking to %1 right now.';
%player.RPGDialogTalkingTo = 0;
return %player;
}
function SpawnNPC(%Name,%Script,%Portrait,%startQuestion,%location)
{
%player = AIPlayer::spawn(%Name,%location);
%player.RPGDialogScript = %Script;
%player.RPGDialogPortrait = %Portrait;
%player.RPGDialogStartQuestion = %startQuestion;
%player.RPGDialogBusy = false;
%player.RPGDialogBusyText = 'Sorry but I\'m busy talking to %1 right now.';
%player.RPGDialogTalkingTo = 0;
return %player;
}
//------------------------------------------------------------------------------
// RPGDialog Script Functions - functions bellow are made to be used by the
// dialog scripts.
// The commented out lines that start with <ActionList> are used when populating the action
// list on the RPGDialog Editor.
//------------------------------------------------------------------------------
//<ActionList>GotoQuestion(QuestionNumber)
function GotoQuestion(%questionNumber,%client,%sender,%npcFile)
{
RPGDialogMessageClient(%client, %sender, %npcFile, %questionNumber);
}
//<ActionList>CloseDialog()
function CloseDialog(%client,%sender,%npcFile)
{
//sendind nothing to the client will close the dialog without anything else happening
%sender.RPGDialogBusy=false;
%sender.RPGDialogTalkingTo=0;
}
//<ActionList>MoveTo(Position)
function MoveTo(%position,%client,%sender,%npcFile)
{
%sender.setAimLocation(%position);
%sender.setMoveDestination(%position);
CloseDialog(%client,%sender,%npcFile);
}
//<ActionList>KillPlayer()
function KillPlayer(%client,%sender,%npcFile)
{
%client.player.kill("Sudden");
CloseDialog(%client,%sender,%npcFile);
}
//<ActionList>KillSender()
function KillSender(%client,%sender,%npcFile)
{
%sender.kill("Sudden");
CloseDialog(%client,%sender,%npcFile);
}
//<ActionList>DamagePlayer(Amount)
function DamagePlayer(%DamageAmount,%client,%sender,%npcFile)
{
%client.player.damage(0, %sender.getposition(), %damageAmount, "Sudden");
CloseDialog(%client,%sender,%npcFile);
}
//<ActionList>DamageSender(Amount)
function DamageSender(%DamageAmount,%client,%sender,%npcFile)
{
%sender.damage(0, %sender.getposition(), %damageAmount, "Sudden");
CloseDialog(%client,%sender,%npcFile);
}
//<ActionList>TeleportPlayer(Position)
function TeleportPlayer(%Pos,%client,%sender,%npcFile)
{
%client.player.setTransform(%Pos);
CloseDialog(%client,%sender,%npcFile);
}
//<ActionList>TeleportSender(Position)
function TeleportSender(%Pos,%client,%sender,%npcFile)
{
%sender.setTransform(%Pos);
CloseDialog(%client,%sender,%npcFile);
}
//<ActionList>RenamePlayer(NewName)
function RenamePlayer(%NewName,%client,%sender,%npcFile)
{
messageAllExcept(%client, -1, 'MsgPlayerRenamed', '\c1%1 is now known as %2.',%client.player.getshapeName(),%NewName);
messageClient(%client, 'MsgPlayerRenamed', '\c1You are now known as %1.',%NewName);
%client.player.setshapeName(%NewName);
CloseDialog(%client,%sender,%npcFile);
}
//<ActionList>RenameSender(NewName)
function RenameSender(%NewName,%client,%sender,%npcFile)
{
messageAll('MsgAIRenamed','\c1%1 is now known as %2.',%sender.getshapename(),%NewName);
%sender.setshapeName(%NewName);
CloseDialog(%client,%sender,%npcFile);
}
//<ActionList>ChangeStartQuestion(QuestionNumber)
function ChangeStartQuestion(%NewQuestion,%client,%sender,%npcFile)
{
%sender.RPGDialogStartQuestion=%NewQuestion;
CloseDialog(%client,%sender,%npcFile);
}
//<ActionList>ChangeStartQuestionAndOpen(QuestionNumber)
function ChangeStartQuestionAndOpen(%NewQuestion,%client,%sender,%npcFile)
{
%sender.RPGDialogStartQuestion=%NewQuestion;
RPGDialogMessageClient(%client, %sender, %sender.RPGDialogScript,%NewQuestion);
}
//<ActionList>ChangeStartQuestionAndGoto(StartQuestion,GotoQuestion)
function ChangeStartQuestionAndGoto(%NewStartQuestion,%GoTo,%client,%sender,%npcFile)
{
%sender.RPGDialogStartQuestion=%NewQuestion;
RPGDialogMessageClient(%client, %sender, %sender.RPGDialogScript,%GoTo);
}
//<ActionList>ChangeScript(ScriptName,QuestionNumber)
function ChangeScript(%NewScript,%StartQuestion,%client,%sender,%npcFile)
{
if(%NewScript!$="" && isFile($RPGDialogEditorPref::ActionPath@%NewScript@".dla"))
{
%sender.RPGDialogScript=%NewScript;
%sender.RPGDialogStartQuestion=%StartQuestion;
CloseDialog(%client,%sender,%npcFile);
}
}
//<ActionList>ChangeScriptAndOpen(ScriptName,QuestionNumber)
function ChangeScriptAndOpen(%NewScript,%StartQuestion,%client,%sender,%npcFile)
{
if(%NewScript!$="" && isFile($RPGDialogEditorPref::ActionPath@%NewScript@".dla"))
{
%sender.RPGDialogScript=%NewScript;
%sender.RPGDialogStartQuestion=%StartQuestion;
RPGDialogMessageClient(%client, %sender, %NewScript,%StartQuestion);
}
}
//<ActionList>ChangePortrait(NewPortrait)
function ChangePortrait(%NewPortrait,%client,%sender,%npcFile)
{
%sender.RPGDialogPortrait=%NewPortrait;
CloseDialog(%client,%sender,%npcFile);
}
//<ActionList>ChangePortraitAndGoto(NewPortrait,QuestionNumber)
function ChangePortraitAndGoto(%NewPortrait,%QuestionNumber,%client,%sender,%npcFile)
{
%sender.RPGDialogPortrait=%NewPortrait;
RPGDialogMessageClient(%client, %sender, %sender.RPGDialogScript,%QuestionNumber);
}

View file

@ -0,0 +1,156 @@
new GuiControlProfile ("RPGDialogQuestionProfile")
{
fontType = "Arial Bold";
fontSize = 16;
fontColor = "44 172 181";
fontColorLink = "255 96 96";
fontColorLinkHL = "0 0 255";
autoSizeWidth = true;
autoSizeHeight = true;
};
new GuiControlProfile ("RPGDialogAnswerProfile")
{
fontType = "Arial Bold";
fontSize = 16;
fontColor = "44 172 181";
fontColorLink = "255 96 96";
fontColorLinkHL = "0 0 255";
autoSizeWidth = true;
autoSizeHeight = true;
};
new GuiControlProfile ("RPGDialogScrollProfile")
{
opaque = false;
border = false;
borderColor = "0 255 0";
bitmap = "./demoScroll";
hasBitmapArray = true;
};
new GuiControlProfile ("RPGDialogBorderProfile")
{
bitmap = "./chatHudBorderArray";
hasBitmapArray = true;
opaque = false;
};
//--- OBJECT WRITE BEGIN ---
new GuiControl(RPGDialog) {
profile = "GuiModelessDialogProfile";
horizSizing = "width";
vertSizing = "height";
position = "0 0";
extent = "640 480";
minExtent = "8 8";
visible = "1";
helpTag = "0";
new GuiControl() {
profile = "GuiDefaultProfile";
horizSizing = "center";
vertSizing = "relative";
position = "120 260";
extent = "400 220";
minExtent = "8 8";
visible = "1";
helpTag = "0";
new GuiBitmapBorderCtrl(RPGDialogBorder) {
profile = "ChatHudBorderProfile";
horizSizing = "width";
vertSizing = "height";
position = "0 0";
extent = "400 220";
minExtent = "8 8";
visible = "1";
helpTag = "0";
useVariable = "0";
tile = "0";
new GuiBitmapCtrl(RPGDialogBackground) {
profile = "GuiDefaultProfile";
horizSizing = "width";
vertSizing = "height";
position = "8 8";
extent = "384 212";
minExtent = "8 8";
visible = "1";
helpTag = "0";
bitmap = "./hudfill.png";
wrap = "0";
};
new GuiScrollCtrl(RPGDialogScrollQuestion) {
profile = "RPGDialogScrollProfile";
horizSizing = "width";
vertSizing = "bottom";
position = "89 8";
extent = "303 94";
minExtent = "8 8";
visible = "1";
helpTag = "0";
willFirstRespond = "1";
hScrollBar = "alwaysOff";
vScrollBar = "dynamic";
constantThumbHeight = "0";
childMargin = "0 0";
new GuiMLTextCtrl(RPGDialogQuestion) {
profile = "RPGDialogQuestionProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "1 1";
extent = "283 16";
minExtent = "8 8";
visible = "1";
helpTag = "0";
lineSpacing = "0";
allowColorChars = "0";
maxChars = "-1";
};
};
new GuiScrollCtrl(RPGDialogScrollAnswer) {
profile = "RPGDialogScrollProfile";
horizSizing = "width";
vertSizing = "height";
position = "8 100";
extent = "384 110";
minExtent = "8 8";
visible = "1";
helpTag = "0";
willFirstRespond = "1";
hScrollBar = "alwaysOff";
vScrollBar = "dynamic";
constantThumbHeight = "0";
childMargin = "0 0";
new GuiMLTextCtrl(RPGDialogAnswer) {
profile = "RPGDialogAnswerProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "1 1";
extent = "364 14";
minExtent = "8 8";
visible = "0";
helpTag = "0";
lineSpacing = "2";
allowColorChars = "0";
maxChars = "-1";
};
};
new GuiBitmapCtrl(RPGDialogPortrait) {
profile = "GuiDefaultProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "8 8";
extent = "80 94";
minExtent = "8 2";
visible = "1";
helpTag = "0";
wrap = "0";
};
};
};
};
//--- OBJECT WRITE END ---

View file

@ -0,0 +1,3 @@
<QL1>GotoQuestion(2)<END><1>KillPlayer()<END><2>MoveTo("0 0 0")<END><3>TeleportPlayer("0 0 500")<END><4>TeleportPlayer("0 0 500")TeleportSender("0 0 600")<END><5>DamagePlayer(20)<END><6>GotoQuestion(3)<END><7>CloseDialog()<END>
<1>RenameSender("Something Else")<END><2>GotoQuestion(1)<END><3>RenamePlayer("Something Else")<END>
<1>ChangeStartQuestion(3)<END><2>ChangePortrait("unknown.png")<END><3>ChangePortraitAndGoto("unknown.png",3)<END><4>ChangeScript("test2",1)<END><5>ChangeScriptAndOpen("test2",1)<END><6>GotoQuestion(1)<END><7>ChangeStartQuestionAndOpen(1)<END>

View file

@ -0,0 +1 @@
<1>ChangeScript("test",1)<END><2>ChangeScriptAndOpen("test",3)<END><3>CloseDialog()<END>

View file

@ -0,0 +1,3 @@
Hello <<PlayerName>>, I'm <a:RPGDialogLink 1><<Name>></a>, What do you want me to do? ~Sound:test<AnswerStart><a:RPGDialog 1>Kill me, please.</a><BR><a:RPGDialog 2>Run to the center of the world!</a><BR><a:RPGDialog 3>Teleport me!</a><BR><a:RPGDialog 4>Teleport us!</a><BR><a:RPGDialog 5>Damage me!</a><BR><a:RPGDialog 6>Something Else...</a><BR><a:RPGDialog 7>Nothing, see ya!</a><BR>
Yes, I'm <<Name>>, do you want me to change my name to something else?<AnswerStart><a:RPGDialog 1>Yes, please.</a><BR><a:RPGDialog 2>Nope... </a><BR><a:RPGDialog 3>Change my name instead!</a><BR>
...~Sound:test2<AnswerStart><a:RPGDialog 1>Change your start question to this question.</a><BR><a:RPGDialog 2>Change your portrait!</a><BR><a:RPGDialog 3>Change your portrait and come back to this question!</a><BR><a:RPGDialog 4>Change your script...</a><BR><a:RPGDialog 5>Change your script and open it</a><BR><a:RPGDialog 6>Go back to the first question.</a><BR><a:RPGDialog 7>Go back to the first question and set it as default.</a><BR>

View file

@ -0,0 +1 @@
Hello <<PlayerName>>, I'm <<Name>>, and this is the test2 script. What do you want to do?<AnswerStart><a:RPGDialog ></a><BR><a:RPGDialog 1>Go back to the other script, please.</a><BR><a:RPGDialog 2>Change your script and open it on the 3rd question.</a><BR><a:RPGDialog 3>Nothing, see you later.</a><BR>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,21 @@
//-----------------------------------------------------------------------------
// Lifelike Effects Pack Exec File
//
// This file executes all the scripts associated with the pack.
// Thanks for your support!
//
// Copyright Adam deGrandis 2012
//-----------------------------------------------------------------------------
exec ("./LifelikeEmitters.cs");
exec ("./LifelikeExp_ComplexLarge.cs");
exec ("./LifelikeExp_ComplexSmall.cs");
exec ("./LifelikeExp_SimpleLarge.cs");
exec ("./LifelikeExp_SimpleSmall.cs");
exec ("./LifelikeExp_GroundHitLarge.cs");
exec ("./LifelikeExp_GroundHitSmall.cs");
exec ("./LifelikeExp_FirebombLarge.cs");
exec ("./LifelikeExp_FirebombSmall.cs");
exec ("./LifelikeExp_Flak.cs");
exec ("./LifelikeExp_Flashbang.cs");

View file

@ -0,0 +1,410 @@
//-----------------------------------------------------------------------------
// Lifelike Effects Pack - Ambient Particle Emitters
// Copyright Adam deGrandis 2012
//
// This file houses all the ambient emitters in the Lifelike Effects Pack.
// Thanks for your support!
//
//-----------------------------------------------------------------------------
//exec ("art/datablocks/LifelikeEffectsPack/LifelikeEmitters.cs");
//-----------------------------------------------------------------------------
// Smoke
//-----------------------------------------------------------------------------
datablock ParticleData(LifelikeSmokeLargeBlackParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/smoke1";
gravityCoefficient = -0.2;
inheritedVelFactor = 0.00;
lifetimeMS = 4000;
lifetimeVarianceMS = 250;
spinRandomMin = -30;
spinRandomMax = 30;
sizes[0] = 2;
sizes[1] = 4;
sizes[2] = 12;
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
colors[0] = "0.1 0.1 0 0.1";
colors[1] = "0.7 0.7 0.6 1";
colors[2] = "1 0.9 0.8 0.0";
windCoefficient = 1;
};
datablock ParticleEmitterData(LifelikeSmokeLargeBlackEmitter)
{
ejectionPeriodMS = 130;
periodVarianceMS = 50;
ejectionVelocity = 1.0;
velocityVariance = 0.0;
thetaMin = 0.0;
thetaMax = 90.0;
phiReferenceVel = 0;
phiVariance = 360;
particles = LifelikeSmokeLargeBlackParticle;
blendStyle = "NORMAL";
ejectionOffset = 0.5;
};
datablock ParticleData(LifelikeSmokeSmallBlackParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/smoke1";
gravityCoefficient = -0.1;
lifetimeMS = 2000;
lifetimeVarianceMS = 500;
spinRandomMin = -30;
spinRandomMax = 30;
sizes[0] = 1;
sizes[1] = 2;
sizes[2] = 3;
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
colors[0] = "0.1 0.1 0 0.1";
colors[1] = "0.7 0.7 0.6 0.5";
colors[2] = "1 0.9 0.8 0.0";
windCoefficient = 1;
};
datablock ParticleEmitterData(LifelikeSmokeSmallBlackEmitter)
{
ejectionPeriodMS = 150;
periodVarianceMS = 50;
ejectionVelocity = 1.0;
velocityVariance = 0.0;
thetaMin = 0.0;
thetaMax = 50.0;
phiReferenceVel = 0;
phiVariance = 360;
particles = LifelikeSmokeSmallBlackParticle;
blendStyle = "NORMAL";
ejectionOffset = 0.1;
};
datablock ParticleData(LifelikeSmokeLargeWhiteParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/smoke2";
gravityCoefficient = -0.2;
inheritedVelFactor = 0.00;
lifetimeMS = 4000;
lifetimeVarianceMS = 250;
spinRandomMin = -30;
spinRandomMax = 30;
sizes[0] = 2;
sizes[1] = 4;
sizes[2] = 12;
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
colors[0] = "0.1 0.1 0 0.1";
colors[1] = "0.7 0.7 0.6 1";
colors[2] = "1 0.9 0.8 0.0";
windCoefficient = 1;
};
datablock ParticleEmitterData(LifelikeSmokeLargeWhiteEmitter)
{
ejectionPeriodMS = 130;
periodVarianceMS = 50;
ejectionVelocity = 1.0;
velocityVariance = 0.0;
thetaMin = 0.0;
thetaMax = 90.0;
phiReferenceVel = 0;
phiVariance = 360;
particles = LifelikeSmokeLargeWhiteParticle;
blendStyle = "NORMAL";
ejectionOffset = 0.5;
};
datablock ParticleData(LifelikeSmokeSmallWhiteParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/smoke2";
gravityCoefficient = -0.1;
lifetimeMS = 2000;
lifetimeVarianceMS = 500;
spinRandomMin = -30;
spinRandomMax = 30;
sizes[0] = 1;
sizes[1] = 2;
sizes[2] = 3;
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
colors[0] = "0.1 0.1 0 0.1";
colors[1] = "0.7 0.7 0.6 0.5";
colors[2] = "1 0.9 0.8 0.0";
windCoefficient = 1;
};
datablock ParticleEmitterData(LifelikeSmokeSmallWhiteEmitter)
{
ejectionPeriodMS = 150;
periodVarianceMS = 50;
ejectionVelocity = 1.0;
velocityVariance = 0.0;
thetaMin = 0.0;
thetaMax = 70.0;
phiReferenceVel = 0;
phiVariance = 360;
particles = LifelikeSmokeSmallWhiteParticle;
blendStyle = "NORMAL";
ejectionOffset = 0.1;
};
//-----------------------------------------------------------------------------
// Fire
//-----------------------------------------------------------------------------
datablock ParticleData(LifelikeFireSmallParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/flame1";
gravityCoefficient = "-0.2";
lifetimeMS = 1000;
lifetimeVarianceMS = 200;
useInvAlpha = true;
spinRandomMin = -140.0;
spinRandomMax = 140.0;
sizes[0] = "0.5";
sizes[1] = "1";
sizes[2] = "0.7";
colors[0] = "0.8 0.6 1 0.5";
colors[1] = "0.8 0.4 0 1";
colors[2] = "0.8 0.4 0 0";
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeFireSmallEmitter)
{
ejectionPeriodMS = 70;
periodVarianceMS = 30;
ejectionVelocity = 0.3;
velocityVariance = 0.2;
thetaMin = 0.0;
thetaMax = 70.0;
ejectionOffset = 0.15;
particles = "LifelikeFireSmallParticle";
blendStyle = "ADDITIVE";
};
datablock ParticleData(LifelikeFireBigParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/flame1";
gravityCoefficient = "-0.2";
lifetimeMS = 1400;
lifetimeVarianceMS = 500;
useInvAlpha = true;
spinRandomMin = -140.0;
spinRandomMax = 140.0;
sizes[0] = "1";
sizes[1] = "2";
sizes[2] = "1.5";
colors[0] = "0.8 0.6 1 0.5";
colors[1] = "0.8 0.4 0 0.9";
colors[2] = "0.8 0.4 0 0";
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeFireBigEmitter)
{
ejectionPeriodMS = 70;
periodVarianceMS = 30;
ejectionVelocity = 0.5;
velocityVariance = 0.0;
thetaMin = 0.0;
thetaMax = 70.0;
ejectionOffset = 0.5;
particles = LifelikeFireBigParticle;
blendStyle = "ADDITIVE";
};
//-----------------------------------------------------------------------------
// Embers
//-----------------------------------------------------------------------------
datablock ParticleData(LifelikeEmbersSmallParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/ember1";
gravityCoefficient = "-0.2";
lifetimeMS = 1500;
lifetimeVarianceMS = 200;
useInvAlpha = true;
spinRandomMin = -140.0;
spinRandomMax = 140.0;
sizes[0] = "0.5";
sizes[1] = "1";
sizes[2] = "0.7";
colors[0] = "1 0.9 0.8 0.5";
colors[1] = "1 0.9 0.8 1";
colors[2] = "0.8 0.4 0 0";
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeEmbersSmallEmitter)
{
ejectionPeriodMS = 70;
periodVarianceMS = 30;
ejectionVelocity = 0.3;
velocityVariance = 0.2;
thetaMin = 0.0;
thetaMax = 70.0;
ejectionOffset = 0.15;
particles = LifelikeEmbersSmallParticle;
blendStyle = "ADDITIVE";
};
datablock ParticleData(LifelikeEmbersBigParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/ember1";
gravityCoefficient = "-0.2";
lifetimeMS = 2000;
lifetimeVarianceMS = 500;
useInvAlpha = true;
spinRandomMin = -140.0;
spinRandomMax = 140.0;
sizes[0] = "1";
sizes[1] = "2";
sizes[2] = "1.5";
colors[0] = "1 0.9 0.8 0.5";
colors[1] = "1 0.9 0.8 1";
colors[2] = "0.8 0.4 0 0";
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeEmbersBigEmitter)
{
ejectionPeriodMS = 70;
periodVarianceMS = 30;
ejectionVelocity = 0.5;
velocityVariance = 0.0;
thetaMin = 0.0;
thetaMax = 70.0;
ejectionOffset = 0.5;
particles = LifelikeEmbersBigParticle;
blendStyle = "ADDITIVE";
};
//-----------------------------------------------------------------------------
// Special
//-----------------------------------------------------------------------------
datablock ParticleData(LifelikeFlareSmokeParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/smoke2";
gravityCoefficient = -0.2;
inheritedVelFactor = 0.00;
lifetimeMS = 4000;
lifetimeVarianceMS = 250;
spinRandomMin = -30;
spinRandomMax = 30;
sizes[0] = 2;
sizes[1] = 4;
sizes[2] = 12;
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
colors[0] = "1 0.1 0.1 0.1";
colors[1] = "1 0.3 0.3 1";
colors[2] = "1 0.6 0.6 0.0";
windCoefficient = 1;
};
datablock ParticleEmitterData(LifelikeFlareSmokeEmitter)
{
ejectionPeriodMS = 130;
periodVarianceMS = 50;
ejectionVelocity = 1.0;
velocityVariance = 0.0;
thetaMin = 0.0;
thetaMax = 90.0;
phiReferenceVel = 0;
phiVariance = 360;
particles = LifelikeFlareSmokeParticle;
blendStyle = "NORMAL";
ejectionOffset = 0.5;
};

View file

@ -0,0 +1,238 @@
//-----------------------------------------------------------------------------
// Lifelike Effects Pack - Large Complex Explosion
// Copyright Adam deGrandis 2012
//
// Thanks for your support!
//
//-----------------------------------------------------------------------------
//exec ("art/datablocks/LifelikeEffectsPack/LifelikeExp_ComplexLarge.cs");
//-----------------------------------------------------------------------------
// Emitters
//-----------------------------------------------------------------------------
datablock ParticleData(LifelikeComplexLargeSmokeParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/smoke1";
gravityCoefficient = -0.05;
lifetimeMS = 3300;
lifetimeVarianceMS = 200;
spinRandomMin = -50.0;
spinRandomMax = 50.0;
colors[0] = "0.1 0.1 0 1";
colors[1] = "0.7 0.7 0.6 1";
colors[2] = "1 0.9 0.8 0.0";
sizes[0] = 4;
sizes[1] = 8;
sizes[2] = 12;
times[0] = 0.0;
times[1] = 0.1;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeComplexLargeSmokeEmitter)
{
ejectionPeriodMS = 10;
periodVarianceMS = 5;
ejectionVelocity = 2;
velocityVariance = 0;
thetaMin = 0;
thetaMax = 120;
phiReferenceVel = 0;
phiVariance = 360;
ejectionoffset = 2;
particles = "LifelikeComplexLargeSmokeParticle";
blendStyle = "NORMAL";
};
datablock ParticleData(LifelikeComplexLargeFireballParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/fireball";
gravityCoefficient = -0.3;
lifetimeMS = 700;
lifetimeVarianceMS = 100;
spinRandomMin = -100.0;
spinRandomMax = 100.0;
colors[0] = "1 0.9 0.8 1";
colors[1] = "0.8 0.4 0.0 1";
colors[2] = "0.8 0.4 0.0 0";
sizes[0] = 1;
sizes[1] = 7;
sizes[2] = 4;
times[0] = 0.0;
times[1] = 0.3;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeComplexLargeFireballEmitter)
{
ejectionPeriodMS = 5;
periodVarianceMS = 3;
ejectionVelocity = 3;
velocityVariance = 2;
thetaMin = 0;
thetaMax = 120;
phiReferenceVel = 0;
phiVariance = 360;
ejectionoffset = 3;
particles = "LifelikeComplexLargeFireballParticle";
blendStyle = "ADDITIVE";
};
datablock ParticleData(LifelikeComplexLargeGlowParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/flame1";
gravityCoefficient = -0.3;
lifetimeMS = 400;
lifetimeVarianceMS = 100;
spinRandomMin = -200.0;
spinRandomMax = 200.0;
colors[0] = "0.9 0.8 1 0.4";
colors[1] = "0.8 0.4 0.0 0.1";
colors[2] = "0.8 0.4 0.0 0";
sizes[0] = 7;
sizes[1] = 11;
sizes[2] = 5;
times[0] = 0.0;
times[1] = 0.3;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeComplexLargeGlowEmitter)
{
ejectionPeriodMS = 20;
periodVarianceMS = 5;
ejectionVelocity = 3;
velocityVariance = 2;
thetaMin = 0;
thetaMax = 120;
phiReferenceVel = 0;
phiVariance = 360;
particles = "LifelikeComplexLargeGlowParticle";
blendStyle = "ADDITIVE";
};
datablock ParticleData(LifelikeComplexLargeSparks2Particle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/spark2";
dragCoefficient = 4;
gravityCoefficient = 1;
lifetimeMS = 1500;
lifetimeVarianceMS = 500;
spinRandomMin = -0.0;
spinRandomMax = 0.0;
colors[0] = "1 1 1 0.0";
colors[1] = "1.0 0.9 0.8 1";
colors[2] = "0.9 0.8 0.7 0";
sizes[0] = 4.0;
sizes[1] = 3.0;
sizes[2] = 1.0;
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeComplexLargeSparks2Emitter)
{
ejectionPeriodMS = 2;
periodVarianceMS = 1;
ejectionVelocity = 70.0;
velocityVariance = 10.0;
ejectionOffset = 0;
thetaMin = 0;
thetaMax = 70;
phiReferenceVel = 0;
phiVariance = 360;
particles = "LifelikeComplexLargeSparks2Particle";
blendStyle = "ADDITIVE";
};
datablock ParticleData(LifelikeComplexLargeSparks1Particle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/spark3";
lifetimeMS = 350;
lifetimeVarianceMS = 20;
useInvAlpha = false;
colors[0] = "1.0 0.9 0.8 1";
colors[1] = "1.0 0.9 0.8 1";
colors[2] = "0.8 0.4 0 0.0";
sizes[0] = 2;
sizes[1] = 7;
sizes[2] = 12;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeComplexLargeSparks1Emitter)
{
ejectionPeriodMS = 20;
periodVarianceMS = 5;
ejectionVelocity = 35;
velocityVariance = 10;
thetaMin = 0;
thetaMax = 70;
phiReferenceVel = 0;
phiVariance = 360;
ejectionoffset = 0;
orientOnVelocity = true;
orientParticles = true;
particles = "LifelikeComplexLargeSparks1Particle";
blendStyle = "ADDITIVE";
};
//-----------------------------------------------------------------------------
// Explosions
//-----------------------------------------------------------------------------
datablock ExplosionData(LifelikeComplexLargeExplosion)
{
//soundProfile = YourSoundDatablock;
lifeTimeMS = 200;
// Volume
particleEmitter = LifelikeComplexLargeGlowEmitter;
particleDensity = 40;
particleRadius = 2;
// Point emission
emitter[0] = LifelikeComplexLargeSmokeEmitter;
emitter[1] = LifelikeComplexLargeFireballEmitter;
emitter[2] = LifelikeComplexLargeSparks1Emitter;
emitter[3] = LifelikeComplexLargeSparks2Emitter;
shakeCamera = true;
camShakeFreq = "10.0 11.0 9.0";
camShakeAmp = "20.0 20.0 20.0";
camShakeDuration = 1.5;
camShakeRadius = 20.0;
lightStartRadius = 20.0;
lightEndRadius = 0.0;
lightStartColor = "1 0.9 0.8";
lightEndColor = "0.8 0.4 0.0";
lightStartBrightness = 2.0;
lightEndBrightness = 0.0;
};

View file

@ -0,0 +1,238 @@
//-----------------------------------------------------------------------------
// Lifelike Effects Pack - Small Complex Explosion
// Copyright Adam deGrandis 2012
//
// Thanks for your support!
//
//-----------------------------------------------------------------------------
//exec ("art/datablocks/LifelikeEffectsPack/LifelikeExp_ComplexSmall.cs");
//-----------------------------------------------------------------------------
// Emitters
//-----------------------------------------------------------------------------
datablock ParticleData(LifelikeComplexSmallSmokeParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/smoke1";
gravityCoefficient = -0.02;
lifetimeMS = 2000;
lifetimeVarianceMS = 200;
spinRandomMin = -50.0;
spinRandomMax = 50.0;
colors[0] = "0.1 0.1 0 1";
colors[1] = "0.7 0.7 0.6 1";
colors[2] = "1 0.9 0.8 0.0";
sizes[0] = 2;
sizes[1] = 4;
sizes[2] = 6;
times[0] = 0.0;
times[1] = 0.1;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeComplexSmallSmokeEmitter)
{
ejectionPeriodMS = 15;
periodVarianceMS = 5;
ejectionVelocity = 1;
velocityVariance = 0;
thetaMin = 0;
thetaMax = 120;
phiReferenceVel = 0;
phiVariance = 360;
ejectionoffset = 0.7;
particles = "LifelikeComplexSmallSmokeParticle";
blendStyle = "NORMAL";
};
datablock ParticleData(LifelikeComplexSmallFireballParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/fireball";
gravityCoefficient = -0.3;
lifetimeMS = 500;
lifetimeVarianceMS = 100;
spinRandomMin = -100.0;
spinRandomMax = 100.0;
colors[0] = "1 0.9 0.8 1";
colors[1] = "0.8 0.4 0.0 1";
colors[2] = "0.8 0.4 0.0 0";
sizes[0] = 1;
sizes[1] = 4;
sizes[2] = 2;
times[0] = 0.0;
times[1] = 0.3;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeComplexSmallFireballEmitter)
{
ejectionPeriodMS = 10;
periodVarianceMS = 3;
ejectionVelocity = 2;
velocityVariance = 1;
thetaMin = 0;
thetaMax = 120;
phiReferenceVel = 0;
phiVariance = 360;
ejectionoffset = 1.3;
particles = "LifelikeComplexSmallFireballParticle";
blendStyle = "ADDITIVE";
};
datablock ParticleData(LifelikeComplexSmallGlowParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/flame1";
gravityCoefficient = -0.3;
lifetimeMS = 400;
lifetimeVarianceMS = 100;
spinRandomMin = -200.0;
spinRandomMax = 200.0;
colors[0] = "0.9 0.8 1 0.4";
colors[1] = "0.8 0.4 0.0 0.1";
colors[2] = "0.8 0.4 0.0 0";
sizes[0] = 3;
sizes[1] = 6;
sizes[2] = 2;
times[0] = 0.0;
times[1] = 0.3;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeComplexSmallGlowEmitter)
{
ejectionPeriodMS = 20;
periodVarianceMS = 5;
ejectionVelocity = 3;
velocityVariance = 2;
thetaMin = 0;
thetaMax = 120;
phiReferenceVel = 0;
phiVariance = 360;
particles = "LifelikeComplexSmallGlowParticle";
blendStyle = "ADDITIVE";
};
datablock ParticleData(LifelikeComplexSmallSparks2Particle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/spark2";
dragCoefficient = 4;
gravityCoefficient = 1;
lifetimeMS = 1000;
lifetimeVarianceMS = 200;
spinRandomMin = -0.0;
spinRandomMax = 0.0;
colors[0] = "1 1 1 0.5";
colors[1] = "1.0 0.9 0.8 1";
colors[2] = "0.9 0.8 0.7 0";
sizes[0] = 2.0;
sizes[1] = 1.5;
sizes[2] = 0.5;
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeComplexSmallSparks2Emitter)
{
ejectionPeriodMS = 10;
periodVarianceMS = 1;
ejectionVelocity = 40.0;
velocityVariance = 10.0;
ejectionOffset = 0;
thetaMin = 0;
thetaMax = 70;
phiReferenceVel = 0;
phiVariance = 360;
particles = "LifelikeComplexSmallSparks2Particle";
blendStyle = "ADDITIVE";
};
datablock ParticleData(LifelikeComplexSmallSparks1Particle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/spark3";
lifetimeMS = 300;
lifetimeVarianceMS = 20;
useInvAlpha = false;
colors[0] = "1.0 0.9 0.8 1";
colors[1] = "1.0 0.9 0.8 1";
colors[2] = "0.8 0.4 0 0.0";
sizes[0] = 1;
sizes[1] = 3.5;
sizes[2] = 6;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeComplexSmallSparks1Emitter)
{
ejectionPeriodMS = 20;
periodVarianceMS = 5;
ejectionVelocity = 17;
velocityVariance = 5;
thetaMin = 0;
thetaMax = 70;
phiReferenceVel = 0;
phiVariance = 360;
ejectionoffset = 0;
orientOnVelocity = true;
orientParticles = true;
particles = "LifelikeComplexSmallSparks1Particle";
blendStyle = "ADDITIVE";
};
//-----------------------------------------------------------------------------
// Explosions
//-----------------------------------------------------------------------------
datablock ExplosionData(LifelikeComplexSmallExplosion)
{
//soundProfile = YourSoundDatablock;
lifeTimeMS = 130;
// Volume
particleEmitter = LifelikeComplexSmallGlowEmitter;
particleDensity = 20;
particleRadius = 1.2;
// Point emission
emitter[0] = LifelikeComplexSmallSmokeEmitter;
emitter[1] = LifelikeComplexSmallFireballEmitter;
emitter[2] = LifelikeComplexSmallSparks1Emitter;
emitter[3] = LifelikeComplexSmallSparks2Emitter;
shakeCamera = true;
camShakeFreq = "10.0 11.0 9.0";
camShakeAmp = "20.0 20.0 20.0";
camShakeDuration = 1.5;
camShakeRadius = 5.0;
lightStartRadius = 10.0;
lightEndRadius = 0.0;
lightStartColor = "1 0.9 0.8";
lightEndColor = "0.8 0.4 0.0";
lightStartBrightness = 2.0;
lightEndBrightness = 0.0;
};

View file

@ -0,0 +1,319 @@
//-----------------------------------------------------------------------------
// Lifelike Effects Pack - Large Firebomb Explosion
// Copyright Adam deGrandis 2012
//
// Thanks for your support!
//
//-----------------------------------------------------------------------------
//exec ("art/datablocks/LifelikeEffectsPack/LifelikeExp_FirebombLarge.cs");
//-----------------------------------------------------------------------------
// Emitters
//-----------------------------------------------------------------------------
datablock ParticleData(LifelikeFirebombLargeSmokeParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/smoke2";
gravityCoefficient = -0.1;
lifetimeMS = 1500;
lifetimeVarianceMS = 500;
spinRandomMin = -50.0;
spinRandomMax = 50.0;
colors[0] = "0.1 0.1 0.1 1";
colors[1] = "0.8 0.7 0.6 1";
colors[2] = "1 0.9 0.8 0";
sizes[0] = 4;
sizes[1] = 9;
sizes[2] = 12;
times[0] = 0.0;
times[1] = 0.3;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeFirebombLargeSmokeEmitter)
{
ejectionPeriodMS = 25;
periodVarianceMS = 5;
ejectionVelocity = 2;
velocityVariance = 1;
thetaMin = 0;
thetaMax = 90;
phiReferenceVel = 0;
phiVariance = 360;
ejectionoffset = 2;
particles = "LifelikeFirebombLargeSmokeParticle";
blendStyle = "NORMAL";
};
datablock ParticleData(LifelikeFirebombLargeFireBlastParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/fireblast";
lifetimeMS = 250;
lifetimeVarianceMS = 50;
colors[0] = "1 0.9 0.8 0";
colors[1] = "0.8 0.4 0 1";
colors[2] = "0.8 0.4 0 0";
sizes[0] = 2;
sizes[1] = 15;
sizes[2] = 2;
times[0] = 0.0;
times[1] = 0.3;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeFirebombLargeFireBlastEmitter)
{
ejectionPeriodMS = 10;
periodVarianceMS = 2;
ejectionVelocity = 50;
velocityVariance = 10;
thetaMin = 0;
thetaMax = 70;
phiReferenceVel = 0;
phiVariance = 360;
orientOnVelocity = true;
orientParticles = true;
particles = "LifelikeFirebombLargeFireBlastParticle";
blendStyle = "ADDITIVE";
};
datablock ParticleData(LifelikeFirebombLargeSparks1Particle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/spark1";
lifetimeMS = 300;
lifetimeVarianceMS = 20;
gravityCoefficient = 0;
colors[0] = "1.0 0.9 0.8 0.4";
colors[1] = "1.0 0.9 0.8 1";
colors[2] = "0.8 0.4 0 0.0";
sizes[0] = 6;
sizes[1] = 4;
sizes[2] = 1;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeFirebombLargeSparks1Emitter)
{
ejectionPeriodMS = 7;
periodVarianceMS = 2;
ejectionVelocity = 40;
velocityVariance = 30;
thetaMin = 0;
thetaMax = 90;
phiReferenceVel = 0;
phiVariance = 360;
ejectionoffset = 0;
orientOnVelocity = true;
orientParticles = true;
particles = "LifelikeFirebombLargeSparks1Particle";
blendStyle = "ADDITIVE";
};
datablock ParticleData(LifelikeFirebombLargeGlowParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/flame1";
gravityCoefficient = -0.3;
lifetimeMS = 400;
lifetimeVarianceMS = 100;
spinRandomMin = -200.0;
spinRandomMax = 200.0;
colors[0] = "0.9 0.8 1 0.4";
colors[1] = "0.8 0.4 0.0 0.1";
colors[2] = "0.8 0.4 0.0 0";
sizes[0] = 7;
sizes[1] = 11;
sizes[2] = 5;
times[0] = 0.0;
times[1] = 0.3;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeFirebombLargeGlowEmitter)
{
ejectionPeriodMS = 20;
periodVarianceMS = 5;
ejectionVelocity = 3;
velocityVariance = 2;
thetaMin = 0;
thetaMax = 120;
phiReferenceVel = 0;
phiVariance = 360;
particles = "LifelikeFirebombLargeGlowParticle";
blendStyle = "ADDITIVE";
};
datablock ParticleData(LifelikeFirebombLargeFireballParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/flame1";
gravityCoefficient = -0.3;
lifetimeMS = 700;
lifetimeVarianceMS = 100;
spinRandomMin = -100.0;
spinRandomMax = 100.0;
colors[0] = "1 0.9 0.8 1";
colors[1] = "0.8 0.4 0.0 1";
colors[2] = "0.8 0.4 0.0 0";
sizes[0] = 1;
sizes[1] = 7;
sizes[2] = 4;
times[0] = 0.0;
times[1] = 0.3;
times[2] = 1.0;
};
datablock ParticleEmitterData(LifelikeFirebombLargeFireballEmitter)
{
ejectionPeriodMS = 7;
periodVarianceMS = 3;
ejectionVelocity = 3;
velocityVariance = 2;
thetaMin = 0;
thetaMax = 120;
phiReferenceVel = 0;
phiVariance = 360;
ejectionoffset = 3;
particles = "LifelikeFirebombLargeFireballParticle";
blendStyle = "ADDITIVE";
};
//-----------------------------------------------------------------------------
// Debris
//-----------------------------------------------------------------------------
datablock ParticleData(LifelikeFirebombLargeDebrisTrailParticle)
{
textureName = "art/shapes/particles/LifelikeEffectsPack/flame1";
gravityCoefficient = -0.2;
lifetimeMS = 500;
lifetimeVarianceMS = 300;
spinRandomMin = -300;
spinRandomMax = 300;
sizes[0] = 1;
sizes[1] = 3;
sizes[2] = 1;
times[0] = 0.0;
times[1] = 0.2;
times[2] = 1.0;
colors[0] = "1 0.9 0.8 1";
colors[1] = "0.8 0.4 0 0.5";
colors[2] = "0.8 0.4 0 0";
};
datablock ParticleEmitterData(LifelikeFirebombLargeDebrisTrailEmitter)
{
ejectionPeriodMS = 20;
periodVarianceMS = 10;
ejectionVelocity = 5;
velocityVariance = 2;
thetaMin = 0;
thetaMax = 10;
phiReferenceVel = 0;
phiVariance = 360;
particles = "LifelikeFirebombLargeDebrisTrailParticle";
blendStyle = "ADDITIVE";
ejectionOffset = "2";
};
datablock DebrisData(LifelikeFirebombLargeDebris)
{
shapeFile = "art/shapes/particles/LifelikeEffectsPack/invisibledebris.dts";
emitters[0] = LifelikeFirebombLargeDebrisTrailEmitter;
elasticity = 0.4;
friction = 0.25;
numBounces = 1;
bounceVariance = 0;
explodeOnMaxBounce = false;
staticOnMaxBounce = false;
snapOnMaxBounce = false;
minSpinSpeed = 100;
maxSpinSpeed = 200;
render2D = false;
lifetime = 2;
lifetimeVariance = 1;
velocity = 30;
velocityVariance = 10;
fade = false;
useRadiusMass = false;
baseRadius = 0.3;
gravModifier = 3.0;
terminalVelocity = 50;
ignoreWater = false;
};
//-----------------------------------------------------------------------------
// Explosions
//-----------------------------------------------------------------------------
datablock ExplosionData(LifelikeFirebombLargeExplosion)
{
//soundProfile = YourSoundDatablock;
lifeTimeMS = 150;
// Volume
particleEmitter = LifelikeFirebombLargeGlowEmitter;
particleDensity = 5;
particleRadius = 3;
// Point emission
emitter[0] = LifelikeFirebombLargeSmokeEmitter;
emitter[1] = LifelikeFirebombLargeFireballEmitter;
emitter[2] = LifelikeFirebombLargeFireBlastEmitter;
emitter[3] = LifelikeFirebombLargeSparks1Emitter;
// Debris
debris = LifelikeFirebombLargeDebris;
debrisThetaMin = 10;
debrisThetaMax = 60;
debrisNum = 4;
debrisNumVariance = 2;
debrisVelocity = 25;
debrisVelocityVariance = 5;
shakeCamera = true;
camShakeFreq = "10.0 11.0 9.0";
camShakeAmp = "20.0 20.0 20.0";
camShakeDuration = 1.5;
camShakeRadius = 20.0;
lightStartRadius = 20.0;
lightEndRadius = 0.0;
lightStartColor = "1 0.9 0.8";
lightEndColor = "0.8 0.4 0.0";
lightStartBrightness = 2.0;
lightEndBrightness = 0.0;
};

Some files were not shown because too many files have changed in this diff Show more