Compare commits
1 Commits
feature/pr
...
Modnark
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fcab9a8871 |
1
.gitattributes
vendored
@@ -1 +0,0 @@
|
||||
* text=false
|
||||
@@ -1,37 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Blocks3D", "Blocks3D VS2003.vcproj", "{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfiguration) = preSolution
|
||||
Debug = Debug
|
||||
Release = Release
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectDependencies) = postSolution
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfiguration) = postSolution
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Debug.ActiveCfg = Debug|Win32
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Debug.Build.0 = Debug|Win32
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Release.ActiveCfg = Release|Win32
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Release.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,20 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 7.10
|
||||
# Visual C++ Express 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Blocks3D", "Blocks3D VS2003.vcproj", "{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,717 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="Blocks3D"
|
||||
ProjectGUID="{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}"
|
||||
RootNamespace="Blocks3D">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
UseOfATL="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="3"
|
||||
InlineFunctionExpansion="2"
|
||||
EnableIntrinsicFunctions="TRUE"
|
||||
FavorSizeOrSpeed="1"
|
||||
OmitFramePointers="TRUE"
|
||||
WholeProgramOptimization="TRUE"
|
||||
AdditionalIncludeDirectories="".\src\include""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;NO_SDL_MAIN;_ATL_STATIC_REGISTRY"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
RuntimeTypeInfo="TRUE"
|
||||
PrecompiledHeaderFile=".\Release/Blocks3D.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Advapi32.lib Comctl32.lib Comdlg32.lib Shell32.lib ode.lib Ole32.lib"
|
||||
OutputFile="./Blocks3D.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
ProgramDatabaseFile=".\Release/Blocks3D.pdb"
|
||||
SubSystem="2"
|
||||
StackReserveSize="16777216"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
OptimizeForWindows98="2"
|
||||
LinkTimeCodeGeneration="TRUE"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="TRUE"
|
||||
SuppressStartupBanner="TRUE"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/Blocks3D.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="4105"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2"
|
||||
ManagedExtensions="FALSE">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=".\src\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_ATL_STATIC_REGISTRY;NO_SDL_MAIN"
|
||||
MinimalRebuild="FALSE"
|
||||
BasicRuntimeChecks="0"
|
||||
RuntimeLibrary="3"
|
||||
EnableFunctionLevelLinking="FALSE"
|
||||
EnableEnhancedInstructionSet="0"
|
||||
RuntimeTypeInfo="TRUE"
|
||||
PrecompiledHeaderFile=".\Debug/Blocks3D.pch"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Advapi32.lib UxTheme.lib Comctl32.lib Comdlg32.lib Shell32.lib Urlmon.lib ole32.lib oleaut32.lib uuid.lib oded.lib"
|
||||
OutputFile="./Blocks3D-Debug.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories=""
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile=".\Debug/Blocks3D.pdb"
|
||||
SubSystem="1"
|
||||
StackReserveSize="16777216"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="TRUE"
|
||||
SuppressStartupBanner="TRUE"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/Blocks3D.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="4105"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
<AssemblyReference
|
||||
RelativePath="System.dll"/>
|
||||
<AssemblyReference
|
||||
RelativePath="System.Data.dll"/>
|
||||
<AssemblyReference
|
||||
RelativePath="System.Drawing.dll"/>
|
||||
<AssemblyReference
|
||||
RelativePath="System.Windows.Forms.dll"/>
|
||||
<AssemblyReference
|
||||
RelativePath="System.XML.dll"/>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
||||
<File
|
||||
RelativePath=".\src\source\Application.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\AudioPlayer.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\ax.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\BrowserCallHandler.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\CameraController.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\ErrorFunctions.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Globals.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\IEBrowser.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\IEDispatcher.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\main.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Mouse.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\propertyGrid.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\PropertyWindow.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Renderer.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\StringFunctions.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\TextureHandler.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\WindowFunctions.cpp">
|
||||
</File>
|
||||
<Filter
|
||||
Name="Tool">
|
||||
<File
|
||||
RelativePath=".\src\source\Tool\ArrowTool.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Tool\DraggerTool.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Tool\SurfaceTool.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Tool\Tool.cpp">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Listener">
|
||||
<File
|
||||
RelativePath=".\src\source\Listener\ButtonListener.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Listener\CameraButtonListener.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Listener\DeleteListener.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Listener\GUDButtonListener.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Listener\MenuButtonListener.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Listener\ModeSelectionListener.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Listener\RotateButtonListener.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Listener\ToolbarListener.cpp">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="DataModelV2">
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\DataModelInstance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\GroupInstance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\Instance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\LevelInstance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\LightingInstance.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\PartInstance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\PVInstance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\SelectionService.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\SoundInstance.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\SoundService.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\ThumbnailGeneratorInstance.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\WorkspaceInstance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<Filter
|
||||
Name="Gui">
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\BaseButtonInstance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\BaseGuiInstance.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\GuiRootInstance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\ImageButtonInstance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\TextButtonInstance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\ToggleImageButtonInstance.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="XplicitNgine">
|
||||
<File
|
||||
RelativePath=".\src\source\XplicitNgine\XplicitNgine.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Helpers">
|
||||
<File
|
||||
RelativePath=".\src\source\base64.cpp">
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl">
|
||||
<File
|
||||
RelativePath=".\src\include\Application.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\AudioPlayer.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\ax.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\BrowserCallHandler.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\CameraController.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Enum.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\ErrorFunctions.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Faces.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Globals.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\IEBrowser.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\IEDispatcher.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Mouse.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\propertyGrid.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\PropertyWindow.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Renderer.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\resource.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\StringFunctions.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\TextureHandler.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\ToolEnum.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\versioning.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\VS2005CompatShim.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\win32Defines.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\WindowFunctions.h">
|
||||
</File>
|
||||
<Filter
|
||||
Name="RapidXML">
|
||||
<File
|
||||
RelativePath=".\src\include\rapidxml\rapidxml.hpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\rapidxml\rapidxml_iterators.hpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\rapidxml\rapidxml_print.hpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\rapidxml\rapidxml_utils.hpp">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Listener">
|
||||
<File
|
||||
RelativePath=".\src\include\Listener\ButtonListener.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Listener\CameraButtonListener.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Listener\DeleteListener.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Listener\GUDButtonListener.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Listener\MenuButtonListener.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Listener\ModeSelectionListener.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Listener\RotateButtonListener.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Listener\ToolbarListener.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModel\WorkspaceInstance.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Tool">
|
||||
<File
|
||||
RelativePath=".\src\include\Tool\ArrowTool.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Tool\DraggerTool.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Tool\SurfaceTool.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Tool\Tool.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="DataModelV2">
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\DataModelInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\GroupInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\Instance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\LevelInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\LightingInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\PartInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\PVInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\SelectionService.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\SoundInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\SoundService.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\ThumbnailGeneratorInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\WorkspaceInstance.h">
|
||||
</File>
|
||||
<Filter
|
||||
Name="Gui">
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\BaseButtonInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\BaseGuiInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\GuiRootInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\ImageButtonInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\TextButtonInstance.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\ToggleImageButtonInstance.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="XplicitNgine">
|
||||
<File
|
||||
RelativePath=".\src\include\XplicitNgine\XplicitNgine.h">
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Helpers">
|
||||
<File
|
||||
RelativePath=".\src\include\base64.h">
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
|
||||
<File
|
||||
RelativePath=".\Dialogs.rc">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\icon1.ico">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Parts.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\roblox_RN1_icon.ico">
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="RESOURCE_FILE"
|
||||
Value="Dialogs.rc"/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -5,9 +5,4 @@
|
||||
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.6195" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
</assembly>
|
||||
@@ -55,7 +55,7 @@
|
||||
OmitFramePointers="true"
|
||||
WholeProgramOptimization="true"
|
||||
AdditionalIncludeDirectories="".\src\include""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_ATL_STATIC_REGISTRY;NO_SDL_MAIN"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
@@ -154,8 +154,8 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=".\src\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_ATL_STATIC_REGISTRY;NO_SDL_MAIN"
|
||||
AdditionalIncludeDirectories=""C:\libraries\ode-0.5\include\drawstuff";.\src\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
||||
MinimalRebuild="false"
|
||||
BasicRuntimeChecks="0"
|
||||
RuntimeLibrary="3"
|
||||
@@ -185,7 +185,6 @@
|
||||
OutputFile="./Blocks3D-Debug.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/Blocks3D.pdb"
|
||||
SubSystem="1"
|
||||
@@ -510,6 +509,10 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\RunServiceInstance.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\SelectionService.cpp"
|
||||
>
|
||||
@@ -523,7 +526,7 @@
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\DataModelV2\ThumbnailGeneratorInstance.cpp"
|
||||
RelativePath=".\ThumbnailGeneratorInstance.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -675,6 +678,18 @@
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Properties"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\src\source\Properties\BoolProperty.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\source\Properties\Property.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Helpers"
|
||||
>
|
||||
@@ -891,6 +906,10 @@
|
||||
RelativePath=".\src\include\DataModelV2\PVInstance.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\RunServiceInstance.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\DataModelV2\SelectionService.h"
|
||||
>
|
||||
@@ -948,6 +967,18 @@
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Properties"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\src\include\Properties\BoolProperty.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\include\Properties\Property.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Helpers"
|
||||
>
|
||||
|
||||
@@ -36,7 +36,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
VALUE "FileDescription", "Blocks 3D"
|
||||
VALUE "FileVersion", VER_STR(APP_VER_STRING)
|
||||
VALUE "InternalName", "Blocks3D"
|
||||
VALUE "LegalCopyright", "Blocks3D Team 2018-2023"
|
||||
VALUE "LegalCopyright", "Blocks3D Team - 2022"
|
||||
VALUE "LegalTrademarks", ""
|
||||
VALUE "OriginalFilename", "Blocks3D.exe"
|
||||
VALUE "PrivateBuild", ""
|
||||
|
||||
13
Documentation/index.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title> RBX05R Documentation </title>
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<div class="content" style="text-align:center;">
|
||||
<h1> ROBLOX 2005 Recreation documentation </h1>
|
||||
<br>
|
||||
<h4> Current for: r360 </h4>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
BIN
Installer/Redist/vcredist_x86 - Copy.exe
Normal file
@@ -1,5 +1,4 @@
|
||||
;InnoSetupVersion=5.4.3
|
||||
;ONLY USE THIS IF YOU COMPILED WITH VISUAL STUDIO 2005!!!
|
||||
#define AppVer GetFileVersion('..\Blocks3D.exe')
|
||||
|
||||
[Setup]
|
||||
@@ -24,7 +23,7 @@ Type: filesandordirs; Name: "{app}"
|
||||
Source: "Redist\vcredist_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion
|
||||
;Source: "Redist\vcredist_x64.exe"; DestDir: "{tmp}"; Check: "IsWin64"; Flags: ignoreversion
|
||||
Source: "..\content\*"; DestDir: "{app}\content"; Flags: ignoreversion recursesubdirs
|
||||
;Source: "..\SDL.DLL"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||
Source: "..\SDL.DLL"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||
Source: "..\Blocks3D.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||
|
||||
[Registry]
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
;InnoSetupVersion=5.4.3
|
||||
;ONLY USE THIS IF YOU COMPILED WITH VISUAL STUDIO 2005!!!
|
||||
#define AppVer GetFileVersion('..\Blocks3D.exe')
|
||||
|
||||
[Setup]
|
||||
@@ -27,7 +26,7 @@ Type: filesandordirs; Name: "{app}"
|
||||
Source: "Redist\vcredist_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion
|
||||
;Source: "Redist\vcredist_x64.exe"; DestDir: "{tmp}"; Check: "IsWin64"; Flags: ignoreversion
|
||||
Source: "..\content\*"; DestDir: "{app}\content"; Flags: ignoreversion recursesubdirs
|
||||
;Source: "..\SDL.DLL"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||
Source: "..\SDL.DLL"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||
Source: "..\Blocks3D.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||
|
||||
[Registry]
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
;InnoSetupVersion=5.4.3
|
||||
;ONLY USE THIS IF YOU COMPILED WITH VISUAL STUDIO 2003!!!
|
||||
#define AppVer GetFileVersion('..\Blocks3D.exe')
|
||||
|
||||
[Setup]
|
||||
AppName=Blocks3D
|
||||
AppVersion=v{#AppVer}
|
||||
AppId={{4C5DF268-0208-4CDE-A7F0-65F7E2CB5067}
|
||||
AppPublisherURL=http://blocks3d.com/
|
||||
AppSupportURL=http://blocks3d.com/
|
||||
AppUpdatesURL=http://blocks3d.com/
|
||||
DefaultDirName={%localappdata}\Blocks3D
|
||||
OutputBaseFilename=B3DSTP
|
||||
Compression=lzma2
|
||||
PrivilegesRequired=lowest
|
||||
WizardImageFile=setup.bmp
|
||||
DefaultGroupName=Blocks3D
|
||||
DiskSpanning=yes
|
||||
SlicesPerDisk=1
|
||||
DiskSliceSize=1457664
|
||||
|
||||
|
||||
[UninstallDelete]
|
||||
Type: filesandordirs; Name: "{app}"
|
||||
|
||||
[Files]
|
||||
Source: "Redist\msvcr71.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "Redist\msvcp71.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\content\*"; DestDir: "{app}\content"; Flags: ignoreversion recursesubdirs
|
||||
Source: "..\Blocks3D.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||
|
||||
[Registry]
|
||||
|
||||
|
||||
[Run]
|
||||
Filename: "iexplore.exe"; Parameters: "http://www.blocks3d.com/FirstInstall"; Description: Start playing Blocks3D; Flags: shellexec postinstall nowait skipifsilent
|
||||
|
||||
[Icons]
|
||||
Name: "{group}\Play Blocks3D"; Filename: "{%programfiles}\Internet Explorer\iexplore.exe"; Parameters: "http://www.blocks3d.com/Games"; IconFilename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||
Name: "{group}\Blocks3D Editor"; Filename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||
|
||||
Name: "{userdesktop}\Play Blocks3D"; Filename: "{%programfiles}\Internet Explorer\iexplore.exe"; Parameters: "http://www.blocks3d.com/Games"; IconFilename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||
Name: "{userdesktop}\Blocks3D Editor"; Filename: "{app}\Blocks3D.exe"; Tasks: desktopicon
|
||||
|
||||
[Tasks]
|
||||
Name: "desktopicon"; Description: "Create Desktop Icons";
|
||||
Name: "startscut"; Description: "Create Start Menu Icons";
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
;InnoSetupVersion=5.4.3
|
||||
;ONLY USE THIS IF YOU COMPILED WITH VISUAL STUDIO 2003!!!
|
||||
#define AppVer GetFileVersion('..\Blocks3D.exe')
|
||||
|
||||
[Setup]
|
||||
AppName=Blocks3D
|
||||
AppVersion=v{#AppVer}
|
||||
AppId={{4C5DF268-0208-4CDE-A7F0-65F7E2CB5067}
|
||||
AppPublisherURL=http://blocks3d.com/
|
||||
AppSupportURL=http://blocks3d.com/
|
||||
AppUpdatesURL=http://blocks3d.com/
|
||||
DefaultDirName={%localappdata}\Blocks3D
|
||||
OutputBaseFilename=Blocks3D_Setup_v{#AppVer}
|
||||
Compression=lzma2
|
||||
PrivilegesRequired=lowest
|
||||
WizardImageFile=setup.bmp
|
||||
DefaultGroupName=Blocks3D
|
||||
|
||||
|
||||
[UninstallDelete]
|
||||
Type: filesandordirs; Name: "{app}"
|
||||
|
||||
[Files]
|
||||
Source: "Redist\msvcp71.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "Redist\msvcr71.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\content\*"; DestDir: "{app}\content"; Flags: ignoreversion recursesubdirs
|
||||
Source: "..\Blocks3D.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||||
|
||||
[Registry]
|
||||
|
||||
|
||||
[Run]
|
||||
Filename: "iexplore.exe"; Parameters: "http://www.blocks3d.com/FirstInstall"; Description: Start playing Blocks3D; Flags: shellexec postinstall nowait skipifsilent
|
||||
|
||||
[Icons]
|
||||
Name: "{group}\Play Blocks3D"; Filename: "{%programfiles}\Internet Explorer\iexplore.exe"; Parameters: "http://www.blocks3d.com/Games"; IconFilename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||
Name: "{group}\Blocks3D Editor"; Filename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||
|
||||
Name: "{userdesktop}\Play Blocks3D"; Filename: "{%programfiles}\Internet Explorer\iexplore.exe"; Parameters: "http://www.blocks3d.com/Games"; IconFilename: "{app}\Blocks3D.exe"; Tasks: startscut;
|
||||
Name: "{userdesktop}\Blocks3D Editor"; Filename: "{app}\Blocks3D.exe"; Tasks: desktopicon
|
||||
|
||||
[Tasks]
|
||||
Name: "desktopicon"; Description: "Create Desktop Icons";
|
||||
Name: "startscut"; Description: "Create Start Menu Icons";
|
||||
|
||||
BIN
Installer/setup.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
Parts.bmp
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
@@ -1,6 +1,3 @@
|
||||
# IMPORTANT -- READ BEFORE CONTRIBUTING
|
||||
Work on DataModel V3 will be starting November 3rd at 3PM PDT! This will mean **many PRs involving DataModel V2 may be immediately rejected until completion!** Progress on DataModelV3 can be tracked/contributed to on the feature/datamodel_v3 branch during this time.
|
||||
|
||||
# ROBLOX 2005 Recreation Project
|
||||
## Why are we doing this?
|
||||
ROBLOX in 2005 was a different game, based around minigames with win and lose conditions rather than a 3D building game. Since this build of the client is presumed lost despite having around 100 users, we have to recreate it. We are using era-appropriate tools for this as well (Visual Studio 2005 and 2005-era compilers), as well as G3D 6.10, the era-appropriate version of the Graphics3D graphics library used by ROBLOX to this day.
|
||||
|
||||
BIN
oldcontent/cursor.png
Normal file
|
After Width: | Height: | Size: 576 B |
BIN
oldcontent/cursor2.png
Normal file
|
After Width: | Height: | Size: 637 B |
BIN
oldcontent/font/arial-small.fnt
Normal file
BIN
oldcontent/font/arial.fnt
Normal file
BIN
oldcontent/font/arialblack-small.fnt
Normal file
BIN
oldcontent/font/arialblack.fnt
Normal file
BIN
oldcontent/font/arialround.fnt
Normal file
BIN
oldcontent/font/ariaround-small.fnt
Normal file
BIN
oldcontent/font/dominant-small.fnt
Normal file
BIN
oldcontent/font/lighttrek-small.fnt
Normal file
BIN
oldcontent/font/lighttrek.fnt
Normal file
BIN
oldcontent/images/ArrowCursor.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
oldcontent/images/ArrowFarCursor.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
oldcontent/images/DragCursor.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
oldcontent/images/DropperCursor.png
Normal file
|
After Width: | Height: | Size: 353 B |
BIN
oldcontent/images/FillCursor.png
Normal file
|
After Width: | Height: | Size: 433 B |
BIN
oldcontent/images/FlagCursor.png
Normal file
|
After Width: | Height: | Size: 628 B |
BIN
oldcontent/images/FlatCursor.png
Normal file
|
After Width: | Height: | Size: 595 B |
BIN
oldcontent/images/GlueCursor.png
Normal file
|
After Width: | Height: | Size: 665 B |
BIN
oldcontent/images/GrabCursor.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
oldcontent/images/GrabRotateCursor.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
oldcontent/images/HammerCursor.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
oldcontent/images/HammerDownCursor.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
oldcontent/images/HammerOverCursor.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
oldcontent/images/HingeCursor.png
Normal file
|
After Width: | Height: | Size: 627 B |
BIN
oldcontent/images/LockCursor.png
Normal file
|
After Width: | Height: | Size: 788 B |
BIN
oldcontent/images/MotorCursor.png
Normal file
|
After Width: | Height: | Size: 660 B |
BIN
oldcontent/images/ResizeCursor.png
Normal file
|
After Width: | Height: | Size: 552 B |
BIN
oldcontent/images/SpawnCursor.png
Normal file
|
After Width: | Height: | Size: 655 B |
BIN
oldcontent/images/UnAnchorCursor.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
oldcontent/images/UnlockCursor.png
Normal file
|
After Width: | Height: | Size: 798 B |
BIN
oldcontent/images/WeldCursor.png
Normal file
|
After Width: | Height: | Size: 522 B |
BIN
oldcontent/images/surface.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
oldcontent/images/surfacebr.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
roblox_RN1_icon.ico
Normal file
|
After Width: | Height: | Size: 29 KiB |
@@ -1,6 +1,6 @@
|
||||
#include <G3DAll.h>
|
||||
#pragma once
|
||||
#include <iostream>
|
||||
#include <string.h>
|
||||
|
||||
class AudioPlayer
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -43,14 +43,6 @@ public:
|
||||
virtual bool mouseHovered(float, float, RenderDevice* rd);
|
||||
UDim2 position;
|
||||
UDim2 size;
|
||||
static G3D::Color4 translucentBackdrop()
|
||||
{
|
||||
return G3D::Color4(0.60000002F, 0.60000002F, 0.60000002F, 0.60000002F);
|
||||
}
|
||||
static G3D::Color4 disabledFill()
|
||||
{
|
||||
return G3D::Color4(0.69999999F, 0.69999999F, 0.69999999F, 0.5F);
|
||||
}
|
||||
protected:
|
||||
bool mouseInArea(float, float, float, float, float, float);
|
||||
class ButtonListener* listener;
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "XplicitNgine/XplicitNgine.h"
|
||||
#include "SoundService.h"
|
||||
#include "LightingInstance.h"
|
||||
#include "RunServiceInstance.h"
|
||||
|
||||
// Libraries
|
||||
#include "rapidxml/rapidxml.hpp"
|
||||
@@ -27,9 +28,7 @@ public:
|
||||
void clearMessage();
|
||||
bool debugGetOpen();
|
||||
bool getOpen();
|
||||
bool getOpenModel();
|
||||
bool load(const char* filename,bool clearObjects);
|
||||
bool loadModel(const char* filename);
|
||||
bool readXMLFileStream(std::ifstream* file);
|
||||
void drawMessage(RenderDevice*);
|
||||
|
||||
@@ -40,6 +39,7 @@ public:
|
||||
ThumbnailGeneratorInstance* getThumbnailGenerator();
|
||||
SoundService* getSoundService();
|
||||
LightingInstance* getLighting();
|
||||
RunService* getRunService();
|
||||
|
||||
std::string message;
|
||||
std::string _loadedFileName;
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
SelectionService* getSelectionService();
|
||||
PartInstance* makePart();
|
||||
void clearLevel();
|
||||
void toggleRun();
|
||||
void toggleRun(bool doRun);
|
||||
bool isRunning();
|
||||
void resetEngine();
|
||||
#if _DEBUG
|
||||
@@ -74,6 +74,8 @@ private:
|
||||
XplicitNgine* xplicitNgine;
|
||||
SoundService* soundService;
|
||||
LightingInstance* lightingInstance;
|
||||
RunService* runService;
|
||||
|
||||
bool running;
|
||||
|
||||
};
|
||||
|
||||
14
src/include/DataModelV2/RunServiceInstance.h
Normal file
@@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
#include "Instance.h"
|
||||
|
||||
class RunService :
|
||||
public Instance
|
||||
{
|
||||
public:
|
||||
RunService(void);
|
||||
~RunService(void);
|
||||
|
||||
void run();
|
||||
void pause();
|
||||
void reset();
|
||||
};
|
||||
@@ -12,3 +12,4 @@ public:
|
||||
void zoomToExtents();
|
||||
std::vector<PartInstance *> partObjects;
|
||||
};
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace Enum
|
||||
enum Value {
|
||||
NoSound = 0, Victory = 1, Boing = 2, Bomb = 3,
|
||||
Ping = 4, Break = 5, Splat = 6, Swoosh = 7,
|
||||
Snap = 8, Page = 9, Click = 10, Clock = 11, Step = 12, StepOn = 13,
|
||||
Snap = 8, Page = 9
|
||||
};
|
||||
}
|
||||
}
|
||||
12
src/include/Properties/BoolProperty.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
#include "Property.h"
|
||||
class BoolProperty : public Property<bool>
|
||||
{
|
||||
public:
|
||||
BoolProperty(std::string name, bool& value, Instance& owner)
|
||||
{
|
||||
Property<bool>(name, value, owner);
|
||||
}
|
||||
~BoolProperty(void);
|
||||
PROPGRIDITEM getPropGridItem();
|
||||
};
|
||||
30
src/include/Properties/Property.h
Normal file
@@ -0,0 +1,30 @@
|
||||
#pragma once
|
||||
#include "DataModelV2/Instance.h"
|
||||
#include <string>
|
||||
class Instance;
|
||||
|
||||
template <typename T>
|
||||
class Property
|
||||
{
|
||||
public:
|
||||
Property(std::string name, T& value, Instance& owner)
|
||||
{
|
||||
_value = value;
|
||||
_owner = owner;
|
||||
}
|
||||
~Property(void);
|
||||
const T getValue()
|
||||
{
|
||||
return _value;
|
||||
}
|
||||
const void setValue(T val)
|
||||
{
|
||||
_value = val;
|
||||
}
|
||||
virtual PROPGRIDITEM getPropGridItem();
|
||||
void setProperty(LPPROPGRIDITEM item);
|
||||
protected:
|
||||
Instance* _owner;
|
||||
std::string _name;
|
||||
T* _value;
|
||||
};
|
||||
@@ -7,12 +7,12 @@ class DraggerTool :
|
||||
public:
|
||||
DraggerTool(void);
|
||||
~DraggerTool(void);
|
||||
void onButton1MouseDown(Mouse);
|
||||
void onButton1MouseUp(Mouse);
|
||||
void onMouseMoved(Mouse mouse);
|
||||
void onSelect(Mouse mouse);
|
||||
void onKeyDown(int key);
|
||||
void onKeyUp(int key);
|
||||
void onButton1MouseDown(Mouse);
|
||||
void onButton1MouseUp(Mouse);
|
||||
void onMouseMoved(Mouse mouse);
|
||||
void onSelect(Mouse mouse);
|
||||
void onKeyDown(int key);
|
||||
void onKeyUp(int key);
|
||||
void render(RenderDevice * rd, Mouse mouse);
|
||||
private:
|
||||
void createHandles();
|
||||
@@ -20,6 +20,5 @@ private:
|
||||
bool hasHandles;
|
||||
int handleGrabbed;
|
||||
Vector3 center;
|
||||
Vector3 CenterOffset;
|
||||
Sphere handles[6];
|
||||
};
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
#include "DataModelV2/ImageButtonInstance.h"
|
||||
#include "DataModelV2/DataModelInstance.h"
|
||||
#include "DataModelV2/GuiRootInstance.h"
|
||||
#include "DataModelV2/SoundService.h"
|
||||
#include "XplicitNgine/XplicitNgine.h"
|
||||
#include "CameraController.h"
|
||||
#include "AudioPlayer.h"
|
||||
@@ -39,7 +38,6 @@ static bool mouseMovedBeginMotion = false;
|
||||
static POINT oldGlobalMouse;
|
||||
Vector2 oldMouse = Vector2(0,0);
|
||||
float moveRate = 0.5;
|
||||
float wasPropShown = 0;
|
||||
|
||||
void Application::clearInstances()
|
||||
{
|
||||
@@ -57,7 +55,7 @@ void Application::setFocus(bool focus)
|
||||
if(_propWindow != NULL)
|
||||
if(focus)
|
||||
{
|
||||
//ShowWindow(_propWindow->_hwndProp, SW_SHOW);
|
||||
ShowWindow(_propWindow->_hwndProp, SW_SHOW);
|
||||
SetWindowPos(_propWindow->_hwndProp, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
|
||||
}
|
||||
else
|
||||
@@ -194,6 +192,8 @@ void Application::onInit() {
|
||||
tool = new Tool();
|
||||
// Called before Application::run() beings
|
||||
cameraController.setFrame(Vector3(0,2,10));
|
||||
cameraController.Zoom(-1);
|
||||
|
||||
_dataModel = new DataModelInstance();
|
||||
_dataModel->setParent(NULL);
|
||||
_dataModel->setName("undefined");
|
||||
@@ -514,7 +514,7 @@ void Application::onMouseWheel(int x,int y,short delta)
|
||||
if (mouseOnScreen==true)
|
||||
if (cameraController.onMouseWheel(x, y, delta))
|
||||
{
|
||||
_dataModel->getSoundService()->playSound(_dataModel->getSoundService()->findFirstChild("Step"));
|
||||
AudioPlayer::playSound(cameraSound);
|
||||
}
|
||||
tool->onMouseScroll(mouse);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
#include "AudioPlayer.h"
|
||||
#include <Windows.h>
|
||||
#include <Mmsystem.h>
|
||||
#include "SDL.h"
|
||||
#include "SDL_audio.h"
|
||||
#include <stdlib.h>
|
||||
#include <malloc.h>
|
||||
#include <string.h>
|
||||
#define NUM_SOUNDS 32
|
||||
static SDL_AudioSpec fmt;
|
||||
static bool initiated = false;
|
||||
|
||||
AudioPlayer::AudioPlayer(void)
|
||||
@@ -11,15 +15,98 @@ AudioPlayer::AudioPlayer(void)
|
||||
|
||||
AudioPlayer::~AudioPlayer(void)
|
||||
{
|
||||
SDL_CloseAudio();
|
||||
}
|
||||
|
||||
void AudioPlayer::init()
|
||||
{
|
||||
initiated = true;
|
||||
extern void mixaudio(void *unused, Uint8 *stream, int len);
|
||||
fmt.freq = 22050;
|
||||
fmt.format = AUDIO_S16LSB;
|
||||
fmt.channels = 2;
|
||||
fmt.samples = 1024; /* A good value for games */
|
||||
fmt.callback = mixaudio;
|
||||
fmt.userdata = NULL;
|
||||
|
||||
/* Open the audio device and start playing sound! */
|
||||
if ( SDL_OpenAudio(&fmt, NULL) < 0 ) {
|
||||
fprintf(stderr, "Unable to open audio: %s\n", SDL_GetError());
|
||||
}
|
||||
SDL_PauseAudio(0);
|
||||
}
|
||||
|
||||
static struct sample {
|
||||
Uint8 *data;
|
||||
Uint32 dpos;
|
||||
Uint32 dlen;
|
||||
} sounds[NUM_SOUNDS];
|
||||
|
||||
void mixaudio(void *unused, Uint8 *stream, int len)
|
||||
{
|
||||
int i;
|
||||
Uint32 amount;
|
||||
|
||||
for ( i=0; i<NUM_SOUNDS; ++i ) {
|
||||
amount = (sounds[i].dlen-sounds[i].dpos);
|
||||
if ( amount > (Uint32)len ) {
|
||||
amount = len;
|
||||
}
|
||||
SDL_MixAudio(stream, &sounds[i].data[sounds[i].dpos], amount, SDL_MIX_MAXVOLUME);
|
||||
sounds[i].dpos += amount;
|
||||
}
|
||||
}
|
||||
|
||||
void AudioPlayer::playSound(std::string fileString)
|
||||
{
|
||||
//TODO probably use something a bit better
|
||||
PlaySound(fileString.c_str(), NULL, SND_FILENAME | SND_ASYNC);
|
||||
|
||||
if(initiated)
|
||||
{
|
||||
char *file = new char[fileString.length() + 1];
|
||||
strcpy(file, fileString.c_str());
|
||||
|
||||
|
||||
int index;
|
||||
SDL_AudioSpec wave;
|
||||
Uint8 *data;
|
||||
Uint32 dlen;
|
||||
SDL_AudioCVT cvt;
|
||||
|
||||
/* Look for an empty (or finished) sound slot */
|
||||
for ( index=0; index<NUM_SOUNDS; ++index ) {
|
||||
if ( sounds[index].dpos == sounds[index].dlen ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( index == NUM_SOUNDS )
|
||||
return;
|
||||
|
||||
/* Load the sound file and convert it to 16-bit stereo at 22kHz */
|
||||
if ( SDL_LoadWAV(file, &wave, &data, &dlen) == NULL ) {
|
||||
fprintf(stderr, "Couldn't load %s: %s\n", file, SDL_GetError());
|
||||
return;
|
||||
}
|
||||
SDL_BuildAudioCVT(&cvt, wave.format, wave.channels, wave.freq,
|
||||
AUDIO_S16, 2, fmt.freq);
|
||||
cvt.buf = (Uint8*)malloc(dlen*cvt.len_mult);
|
||||
memcpy(cvt.buf, data, dlen);
|
||||
cvt.len = dlen;
|
||||
SDL_ConvertAudio(&cvt);
|
||||
SDL_FreeWAV(data);
|
||||
|
||||
/* Put the sound data in the slot (it starts playing immediately) */
|
||||
if ( sounds[index].data ) {
|
||||
free(sounds[index].data);
|
||||
}
|
||||
SDL_LockAudio();
|
||||
sounds[index].data = cvt.buf;
|
||||
sounds[index].dlen = cvt.len_cvt;
|
||||
sounds[index].dpos = 0;
|
||||
SDL_UnlockAudio();
|
||||
delete [] file;
|
||||
}
|
||||
else
|
||||
{
|
||||
OutputDebugString("Audio player not initialized, sound will not play\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,10 @@ DataModelInstance::DataModelInstance(void)
|
||||
workspace = new WorkspaceInstance();
|
||||
guiRoot = new GuiRootInstance();
|
||||
level = new LevelInstance();
|
||||
thumbnailGenerator = new ThumbnailGeneratorInstance();
|
||||
runService = new RunService();
|
||||
|
||||
//thumbnailGenerator = new ThumbnailGeneratorInstance();
|
||||
|
||||
soundService = new SoundService();
|
||||
lightingInstance = new LightingInstance();
|
||||
|
||||
@@ -67,9 +70,10 @@ XplicitNgine * DataModelInstance::getEngine()
|
||||
return xplicitNgine;
|
||||
}
|
||||
|
||||
void DataModelInstance::toggleRun()
|
||||
// Please use RunService->run(); & RunService->pause(); instead
|
||||
void DataModelInstance::toggleRun(bool doRun)
|
||||
{
|
||||
running = !running;
|
||||
running = doRun;
|
||||
//if(!running)
|
||||
//resetEngine();
|
||||
}
|
||||
@@ -90,7 +94,6 @@ void DataModelInstance::modXMLLevel(float modY)
|
||||
_modY += modY;
|
||||
clearLevel();
|
||||
debugGetOpen();
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -471,6 +474,7 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
/*
|
||||
@@ -514,27 +518,6 @@ bool DataModelInstance::load(const char* filename, bool clearObjects)
|
||||
}
|
||||
}
|
||||
|
||||
bool DataModelInstance::loadModel(const char* filename)
|
||||
{
|
||||
ifstream levelFile(filename,ios::binary);
|
||||
if (levelFile)
|
||||
{
|
||||
readXMLFileStream(&levelFile);
|
||||
|
||||
//resetEngine();
|
||||
selectionService->clearSelection();
|
||||
selectionService->addSelected(this);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::stringstream msg;
|
||||
msg << "Failed to load file:" << std::endl << filename << std::endl << strerror(errno);
|
||||
MessageBoxStr(msg.str());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool DataModelInstance::readXMLFileStream(std::ifstream* file)
|
||||
{
|
||||
file->seekg(0,file->end);
|
||||
@@ -593,7 +576,7 @@ bool DataModelInstance::getOpen()
|
||||
of.lpstrFile = szFile ;
|
||||
of.lpstrFile[0]='\0';
|
||||
of.nMaxFile=500;
|
||||
of.lpstrTitle="Open";
|
||||
of.lpstrTitle="Hello";
|
||||
of.Flags = OFN_FILEMUSTEXIST;
|
||||
ShowCursor(TRUE);
|
||||
BOOL file = GetOpenFileName(&of);
|
||||
@@ -604,30 +587,6 @@ bool DataModelInstance::getOpen()
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool DataModelInstance::getOpenModel()
|
||||
{
|
||||
_modY=0;
|
||||
OPENFILENAME of;
|
||||
ZeroMemory( &of , sizeof( of));
|
||||
of.lStructSize = sizeof(OPENFILENAME);
|
||||
of.lpstrFilter = "Roblox Files\0*.rbxm;*.rbxl\0\0";
|
||||
char szFile[512];
|
||||
of.lpstrFile = szFile ;
|
||||
of.lpstrFile[0]='\0';
|
||||
of.nMaxFile=500;
|
||||
of.lpstrTitle="Open";
|
||||
of.Flags = OFN_FILEMUSTEXIST;
|
||||
ShowCursor(TRUE);
|
||||
BOOL file = GetOpenFileName(&of);
|
||||
if (file)
|
||||
{
|
||||
_loadedFileName = of.lpstrFile;
|
||||
loadModel(of.lpstrFile);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void DataModelInstance::setMessage(std::string msg)
|
||||
{
|
||||
message = msg;
|
||||
@@ -667,9 +626,9 @@ void DataModelInstance::drawMessage(RenderDevice* rd)
|
||||
}
|
||||
}
|
||||
char brkc[12];
|
||||
_snprintf(brkc, 12, "%d", brickCount);
|
||||
sprintf_s(brkc, "%d", brickCount);
|
||||
char instc[12];
|
||||
_snprintf(instc, 12, "%d", instCount);
|
||||
sprintf_s(instc, "%d", instCount);
|
||||
message = "Bricks: ";
|
||||
message += brkc;
|
||||
message += " Snaps: ";
|
||||
@@ -686,6 +645,7 @@ void DataModelInstance::drawMessage(RenderDevice* rd)
|
||||
}
|
||||
}
|
||||
|
||||
// Instance getters
|
||||
WorkspaceInstance* DataModelInstance::getWorkspace()
|
||||
{
|
||||
return workspace;
|
||||
@@ -719,4 +679,9 @@ SoundService* DataModelInstance::getSoundService()
|
||||
LightingInstance* DataModelInstance::getLighting()
|
||||
{
|
||||
return lightingInstance;
|
||||
}
|
||||
|
||||
RunService* DataModelInstance::getRunService()
|
||||
{
|
||||
return runService;
|
||||
}
|
||||
@@ -6,7 +6,6 @@
|
||||
#include "DataModelV2/ImageButtonInstance.h"
|
||||
#include "DataModelV2/ToggleImageButtonInstance.h"
|
||||
#include "DataModelV2/GuiRootInstance.h"
|
||||
#include "DataModelV2/SelectionService.h"
|
||||
#include "DataModelV2/ImageButtonInstance.h"
|
||||
#include "Globals.h"
|
||||
#include "StringFunctions.h"
|
||||
@@ -214,14 +213,13 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
button->boxBegin = Vector2(0,215);
|
||||
button->boxEnd = Vector2(80,235);
|
||||
button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
|
||||
button->textColor = Color3(0,1,1);
|
||||
button->textColor = Color3::white();
|
||||
button->boxColor = Color4::clear();
|
||||
button->textSize = 12;
|
||||
button->title = "Group";
|
||||
button->name = "Group";
|
||||
button->setAllColorsSame();
|
||||
button->textColorDis = Color3(0.8F,0.8F,0.8F);
|
||||
button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F);
|
||||
button->font = g_fntlighttrek;
|
||||
button->fontLocationRelativeTo = Vector2(10, 0);
|
||||
button->setParent(this);
|
||||
@@ -231,14 +229,13 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
button->boxBegin = Vector2(0,240);
|
||||
button->boxEnd = Vector2(80,260);
|
||||
button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
|
||||
button->textColor = Color3(0,1,1);
|
||||
button->textColor = Color3::white();
|
||||
button->boxColor = Color4::clear();
|
||||
button->textSize = 12;
|
||||
button->title = "UnGroup";
|
||||
button->name = "UnGroup";
|
||||
button->setAllColorsSame();
|
||||
button->textColorDis = Color3(0.8F,0.8F,0.8F);
|
||||
button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F);
|
||||
button->font = g_fntlighttrek;
|
||||
button->fontLocationRelativeTo = Vector2(10, 0);
|
||||
button->setParent(this);
|
||||
@@ -248,45 +245,26 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
button->boxBegin = Vector2(0,265);
|
||||
button->boxEnd = Vector2(80,285);
|
||||
button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
|
||||
button->textColor = Color3(0,1,1);
|
||||
button->textColor = Color3::white();
|
||||
button->boxColor = Color4::clear();
|
||||
button->textSize = 12;
|
||||
button->title = "Duplicate";
|
||||
button->setAllColorsSame();
|
||||
button->textColorDis = Color3(0.8F,0.8F,0.8F);
|
||||
button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F);
|
||||
button->font = g_fntlighttrek;
|
||||
button->fontLocationRelativeTo = Vector2(10, 0);
|
||||
button->setParent(this);
|
||||
button->name = "Duplicate";
|
||||
button->setButtonListener(gud);
|
||||
|
||||
//g_fntlighttrek->draw2D(rd,"MENU", Vector2(10,332), 14, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
|
||||
|
||||
button = makeTextButton();
|
||||
button->boxBegin = Vector2(0,332);
|
||||
button->boxEnd = Vector2(80,352);
|
||||
button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
|
||||
button->textColor = Color3::white();
|
||||
button->boxColor = Color4::clear();
|
||||
button->textSize = 14;
|
||||
button->title = "MENU";
|
||||
button->setAllColorsSame();
|
||||
button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F);
|
||||
button->font = g_fntlighttrek;
|
||||
button->fontLocationRelativeTo = Vector2(10, 0);
|
||||
button->setParent(this);
|
||||
button->name = "MENU";
|
||||
button->setButtonListener(menuListener);
|
||||
|
||||
ImageButtonInstance* instance = new ToggleImageButtonInstance(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/Run.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/Run_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/Run_dn.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/Run.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/Run_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/Run_dn.png")),
|
||||
NULL,
|
||||
Texture::fromFile(&GetFileInPath("/content/images/Stop.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/Stop_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/Stop_dn.png"))
|
||||
Texture::fromFile(GetFileInPath("/content/images/Stop.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/Stop_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/Stop_dn.png"))
|
||||
);
|
||||
instance->setButtonListener(menuListener);
|
||||
instance->name = "go";
|
||||
@@ -296,17 +274,17 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/ArrowTool.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/ArrowTool_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/ArrowTool_dn.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/ArrowTool_ds.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/ArrowTool.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/ArrowTool_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/ArrowTool_dn.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/ArrowTool_ds.png")));
|
||||
instance->size = Vector2(50,50);
|
||||
instance->position = Vector2(15, 90);
|
||||
instance->setParent(this);
|
||||
instance->name = "Cursor";
|
||||
instance->setButtonListener(msl);
|
||||
|
||||
instance = makeImageButton(Texture::fromFile(&GetFileInPath("/content/images/ScaleTool.png")),Texture::fromFile(&GetFileInPath("/content/images/ScaleTool_ovr.png")),Texture::fromFile(&GetFileInPath("/content/images/ScaleTool_dn.png")),Texture::fromFile(&GetFileInPath("/content/images/ScaleTool_ds.png")));
|
||||
instance = makeImageButton(Texture::fromFile(GetFileInPath("/content/images/ScaleTool.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_ovr.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_dn.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_ds.png")));
|
||||
instance->size = Vector2(40,40);
|
||||
instance->position = Vector2(0, 140);
|
||||
instance->setParent(this);
|
||||
@@ -315,10 +293,10 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/MoveTool.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/MoveTool_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/MoveTool_dn.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/MoveTool_ds.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/MoveTool.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/MoveTool_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/MoveTool_dn.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/MoveTool_ds.png")));
|
||||
instance->size = Vector2(40,40);
|
||||
instance->position = Vector2(40, 140);
|
||||
instance->setParent(this);
|
||||
@@ -326,10 +304,10 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
instance->setButtonListener(msl);
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/SelectionRotate.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/SelectionRotate_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/SelectionRotate.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/SelectionRotate_ovr.png")),
|
||||
NULL,
|
||||
Texture::fromFile(&GetFileInPath("/content/images/SelectionRotate_ds.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/SelectionRotate_ds.png")));
|
||||
instance->size = Vector2(30,30);
|
||||
instance->position = Vector2(10, 175);
|
||||
instance->setParent(this);
|
||||
@@ -337,10 +315,10 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
instance->setButtonListener(rbl);
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/SelectionTilt.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/SelectionTilt_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/SelectionTilt.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/SelectionTilt_ovr.png")),
|
||||
NULL,
|
||||
Texture::fromFile(&GetFileInPath("/content/images/SelectionTilt_ds.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/SelectionTilt_ds.png")));
|
||||
instance->size = Vector2(30,30);
|
||||
instance->position = Vector2(40, 175);
|
||||
instance->setParent(this);
|
||||
@@ -349,10 +327,10 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/Delete.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/Delete_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/Delete_dn.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/Delete_ds.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/Delete.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/Delete_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/Delete_dn.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/Delete_ds.png")));
|
||||
instance->size = Vector2(40,46);
|
||||
instance->position = Vector2(20, 284);
|
||||
instance->setParent(this);
|
||||
@@ -360,9 +338,9 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
instance->setButtonListener(delet);
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraZoomIn.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraZoomIn_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraZoomIn_dn.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraZoomIn.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraZoomIn_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraZoomIn_dn.png")));
|
||||
instance->size = Vector2(34,25);
|
||||
instance->floatBottom = true;
|
||||
instance->floatRight = true;
|
||||
@@ -372,9 +350,9 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
instance->setButtonListener(cam);
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraZoomOut.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraZoomOut_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraZoomOut_dn.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraZoomOut.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraZoomOut_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraZoomOut_dn.png")));
|
||||
instance->size = Vector2(34,26);
|
||||
instance->floatBottom = true;
|
||||
instance->floatRight = true;
|
||||
@@ -384,9 +362,9 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
instance->setButtonListener(cam);
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraPanLeft.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraPanLeft_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraPanLeft_dn.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraPanLeft.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraPanLeft_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraPanLeft_dn.png")));
|
||||
instance->size = Vector2(34,34);
|
||||
instance->floatBottom = true;
|
||||
instance->floatRight = true;
|
||||
@@ -396,9 +374,9 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
instance->setButtonListener(cam);
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraPanRight.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraPanRight_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraPanRight_dn.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraPanRight.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraPanRight_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraPanRight_dn.png")));
|
||||
instance->size = Vector2(34,34);
|
||||
instance->floatBottom = true;
|
||||
instance->floatRight = true;
|
||||
@@ -408,9 +386,9 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
instance->setButtonListener(cam);
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraCenter.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraCenter_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraCenter_dn.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraCenter.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraCenter_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraCenter_dn.png")));
|
||||
instance->size = Vector2(34,20);
|
||||
instance->floatBottom = true;
|
||||
instance->floatRight = true;
|
||||
@@ -420,9 +398,9 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
instance->setButtonListener(cam);
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraTiltUp.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraTiltUp_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraTiltUp_dn.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraTiltUp.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraTiltUp_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraTiltUp_dn.png")));
|
||||
instance->size = Vector2(24,24);
|
||||
instance->floatBottom = true;
|
||||
instance->floatRight = true;
|
||||
@@ -432,9 +410,9 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
|
||||
instance->setButtonListener(cam);
|
||||
|
||||
instance = makeImageButton(
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraTiltDown.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraTiltDown_ovr.png")),
|
||||
Texture::fromFile(&GetFileInPath("/content/images/CameraTiltDown_dn.png")));
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraTiltDown.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraTiltDown_ovr.png")),
|
||||
Texture::fromFile(GetFileInPath("/content/images/CameraTiltDown_dn.png")));
|
||||
instance->size = Vector2(24,24);
|
||||
instance->floatBottom = true;
|
||||
instance->floatRight = true;
|
||||
@@ -487,7 +465,7 @@ void GuiRootInstance::renderGUI(G3D::RenderDevice* rd, double fps)
|
||||
|
||||
//Tools menu
|
||||
Draw::box(G3D::Box(Vector3(5, 210,0),Vector3(75, 210,0)),rd,Color4(0.6F,0.6F,0.6F,0.4F), Color4(0.6F,0.6F,0.6F,0.4F));
|
||||
|
||||
g_fntlighttrek->draw2D(rd,"MENU", Vector2(10,332), 14, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
|
||||
|
||||
|
||||
//drawButtons(rd);
|
||||
@@ -524,9 +502,6 @@ void GuiRootInstance::update()
|
||||
Instance * obj3 = this->findFirstChild("UnGroup");
|
||||
Instance * obj4 = this->findFirstChild("Rotate");
|
||||
Instance * obj5 = this->findFirstChild("Tilt");
|
||||
|
||||
SelectionService* getSelectionService = g_dataModel->getSelectionService();
|
||||
|
||||
if(obj != NULL && obj2 != NULL && obj3 != NULL && obj4 !=NULL && obj5 != NULL && obj6 != NULL)
|
||||
{
|
||||
BaseButtonInstance* button = (BaseButtonInstance*)obj;
|
||||
@@ -541,23 +516,15 @@ void GuiRootInstance::update()
|
||||
button4->disabled = true;
|
||||
button5->disabled = true;
|
||||
button6->disabled = true;
|
||||
for(size_t i = 0; i < getSelectionService->getSelection().size(); i++)
|
||||
if(getSelectionService->getSelection()[i]->canDelete)
|
||||
for(size_t i = 0; i < g_dataModel->getSelectionService()->getSelection().size(); i++)
|
||||
if(g_dataModel->getSelectionService()->getSelection()[i]->canDelete)
|
||||
{
|
||||
button->disabled = false;
|
||||
button2->disabled = false;
|
||||
button3->disabled = false;
|
||||
button4->disabled = false;
|
||||
button5->disabled = false;
|
||||
button6->disabled = false;
|
||||
|
||||
|
||||
if (getSelectionService->getSelection().size() > 1){
|
||||
button2->disabled = false;
|
||||
}
|
||||
|
||||
if (dynamic_cast<GroupInstance*>(getSelectionService->getSelection()[i])){
|
||||
button3->disabled = false;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,8 +109,8 @@ std::vector<PROPGRIDITEM> LevelInstance::getProperties()
|
||||
PIT_CHECK
|
||||
));
|
||||
|
||||
_snprintf(timerTxt, 12, "%g", timer);
|
||||
_snprintf(scoreTxt, 12, "%d", score);
|
||||
sprintf_s(timerTxt, "%g", timer);
|
||||
sprintf_s(scoreTxt, "%d", score);
|
||||
properties.push_back(createPGI("Gameplay",
|
||||
"InitialTimerValue",
|
||||
"The amount of time in seconds the player has to complete this level.\r\n\r\nPut 0 if time is limitless.",
|
||||
@@ -183,26 +183,26 @@ void LevelInstance::winCondition()
|
||||
{
|
||||
DataModelInstance* DataModel = (DataModelInstance*)getParent(); //If level parent gets changed to something other than Datamodel it could cause nasty data corruption bugs
|
||||
DataModel->setMessage(winMessage);
|
||||
DataModel->toggleRun();
|
||||
DataModel->getRunService()->pause();
|
||||
}
|
||||
|
||||
void LevelInstance::loseCondition()
|
||||
{
|
||||
DataModelInstance* DataModel = (DataModelInstance*)getParent();
|
||||
DataModel->setMessage(loseMessage);
|
||||
DataModel->toggleRun();
|
||||
DataModel->getRunService()->pause();
|
||||
}
|
||||
|
||||
void LevelInstance::pauseCondition()
|
||||
{
|
||||
DataModelInstance* DataModel = (DataModelInstance*)getParent();
|
||||
DataModel->toggleRun();
|
||||
DataModel->getRunService()->pause();
|
||||
}
|
||||
|
||||
void LevelInstance::drawCondition()
|
||||
{
|
||||
DataModelInstance* DataModel = (DataModelInstance*)getParent();
|
||||
DataModel->toggleRun();
|
||||
DataModel->getRunService()->pause();
|
||||
}
|
||||
|
||||
void LevelInstance::Step(SimTime sdt)
|
||||
|
||||
@@ -495,14 +495,6 @@ static TCHAR* strSoundType(int option)
|
||||
return "Swoosh";
|
||||
case Enum::Sound::Page:
|
||||
return "Page";
|
||||
case Enum::Sound::Click:
|
||||
return "Click";
|
||||
case Enum::Sound::Clock:
|
||||
return "Clock";
|
||||
case Enum::Sound::Step:
|
||||
return "Step";
|
||||
case Enum::Sound::StepOn:
|
||||
return "StepOn";
|
||||
}
|
||||
return "NoSound";
|
||||
}
|
||||
@@ -529,14 +521,6 @@ static Enum::Sound::Value EnumOnTouchSoundType(TCHAR* option)
|
||||
return Enum::Sound::Ping;
|
||||
if(strcmp("Snap", option) == 0)
|
||||
return Enum::Sound::Snap;
|
||||
if(strcmp("Click", option) == 0)
|
||||
return Enum::Sound::Click;
|
||||
if(strcmp("Clock", option) == 0)
|
||||
return Enum::Sound::Clock;
|
||||
if(strcmp("Step", option) == 0)
|
||||
return Enum::Sound::Step;
|
||||
if(strcmp("StepOn", option) == 0)
|
||||
return Enum::Sound::StepOn;
|
||||
|
||||
return Enum::Sound::NoSound;
|
||||
}
|
||||
@@ -601,18 +585,6 @@ void PartInstance::onTouch()
|
||||
case Enum::Sound::Swoosh:
|
||||
sndService->playSound(sndService->findFirstChild("Swoosh"));
|
||||
break;
|
||||
case Enum::Sound::Click:
|
||||
sndService->playSound(sndService->findFirstChild("Click"));
|
||||
break;
|
||||
case Enum::Sound::Clock:
|
||||
sndService->playSound(sndService->findFirstChild("Clock"));
|
||||
break;
|
||||
case Enum::Sound::Step:
|
||||
sndService->playSound(sndService->findFirstChild("Step"));
|
||||
break;
|
||||
case Enum::Sound::StepOn:
|
||||
sndService->playSound(sndService->findFirstChild("StepOn"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -723,14 +695,14 @@ std::vector<PROPGRIDITEM> PartInstance::getProperties()
|
||||
(LPARAM)anchored,
|
||||
PIT_CHECK
|
||||
));
|
||||
_snprintf(pto, 512, "%g, %g, %g", position.x, position.y, position.z);
|
||||
sprintf_s(pto, "%g, %g, %g", position.x, position.y, position.z);
|
||||
properties.push_back(createPGI("Item",
|
||||
"Offset",
|
||||
"The position of the object in the workspace",
|
||||
(LPARAM)pto,
|
||||
PIT_EDIT
|
||||
));
|
||||
_snprintf(pto2, 512, "%g, %g, %g", size.x, size.y, size.z);
|
||||
sprintf_s(pto2, "%g, %g, %g", size.x, size.y, size.z);
|
||||
properties.push_back(createPGI("Item",
|
||||
"Size",
|
||||
"The size of the object in the workspace",
|
||||
@@ -756,11 +728,11 @@ std::vector<PROPGRIDITEM> PartInstance::getProperties()
|
||||
"What sound plays when touched",
|
||||
(LPARAM)strSoundType(OnTouchSound),
|
||||
PIT_COMBO,
|
||||
TEXT("NoSound\0Victory\0Boing\0Break\0Snap\0Bomb\0Splat\0Page\0Ping\0Swoosh\0Click\0Clock\0Step\0StepOn")
|
||||
TEXT("NoSound\0Victory\0Boing\0Break\0Snap\0Bomb\0Splat\0Page\0Ping\0Swoosh\0")
|
||||
));
|
||||
|
||||
_snprintf(changeScoreTxt, 12, "%d", changeScore);
|
||||
_snprintf(changeTimerTxt, 12, "%g", changeTimer);
|
||||
sprintf_s(changeScoreTxt, "%d", changeScore);
|
||||
sprintf_s(changeTimerTxt, "%g", changeTimer);
|
||||
properties.push_back(createPGI("OnTouch",
|
||||
"ChangeScore",
|
||||
"How the score is affected when touched",
|
||||
|
||||
36
src/source/DataModelV2/RunServiceInstance.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
#include "DataModelV2/RunServiceInstance.h"
|
||||
#include "DataModelV2/ToggleImageButtonInstance.h"
|
||||
#include "Globals.h"
|
||||
|
||||
RunService::RunService()
|
||||
{
|
||||
// Run Service, not RunService, because Roblox themselves did it. Why? IDK!
|
||||
name = "Run Service";
|
||||
className = "RunService";
|
||||
canDelete = false;
|
||||
}
|
||||
|
||||
RunService::~RunService(void)
|
||||
{
|
||||
}
|
||||
|
||||
void RunService::run()
|
||||
{
|
||||
// Tell GUI that we are running
|
||||
Instance* go = g_dataModel->getGuiRoot()->findFirstChild("go");
|
||||
g_dataModel->toggleRun(true);
|
||||
((ToggleImageButtonInstance*)go)->checked = true;
|
||||
}
|
||||
|
||||
void RunService::pause()
|
||||
{
|
||||
// Tell GUI that we paused
|
||||
Instance* go = g_dataModel->getGuiRoot()->findFirstChild("go");
|
||||
g_dataModel->toggleRun(false);
|
||||
((ToggleImageButtonInstance*)go)->checked = false;
|
||||
}
|
||||
|
||||
void RunService::reset()
|
||||
{
|
||||
// Can't really implement right now
|
||||
}
|
||||
@@ -86,17 +86,17 @@ void SelectionService::render(RenderDevice * rd)
|
||||
void drawOutline(Vector3 from, Vector3 to, RenderDevice* rd, Vector3 size, Vector3 pos, CoordinateFrame c)
|
||||
{
|
||||
Color3 outline = Color3::cyan();//Color3(0.098F,0.6F,1.0F);
|
||||
float offsetSize = 0.1F;
|
||||
float offsetSize = 0.05F;
|
||||
//X
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, from.y + offsetSize, from.z + offsetSize), Vector3(to.x + offsetSize, from.y - offsetSize, from.z - offsetSize))), rd, outline, Color4::clear());
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, to.y + offsetSize, from.z + offsetSize), Vector3(to.x + offsetSize, to.y - offsetSize, from.z - offsetSize))), rd, outline, Color4::clear());
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, to.y + offsetSize, to.z + offsetSize), Vector3(to.x + offsetSize, to.y - offsetSize, to.z - offsetSize))), rd, outline, Color4::clear());
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x - offsetSize, from.y + offsetSize, to.z + offsetSize), Vector3(to.x + offsetSize, from.y - offsetSize, to.z - offsetSize))), rd, outline, Color4::clear());
|
||||
//Y
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, from.y - offsetSize + 0.2, from.z + offsetSize), Vector3(from.x - offsetSize, to.y + offsetSize - 0.2, from.z - offsetSize))), rd, outline, Color4::clear());
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, from.y - offsetSize + 0.2, from.z + offsetSize), Vector3(to.x - offsetSize, to.y + offsetSize - 0.2, from.z - offsetSize))), rd, outline, Color4::clear());
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, from.y - offsetSize + 0.2, to.z + offsetSize), Vector3(to.x - offsetSize, to.y + offsetSize-0.1, to.z - offsetSize))), rd, outline, Color4::clear());
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, from.y - offsetSize + 0.2, to.z + offsetSize), Vector3(from.x - offsetSize, to.y + offsetSize - 0.2, to.z - offsetSize))), rd, outline, Color4::clear());
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, from.y - offsetSize + 0.1, from.z + offsetSize), Vector3(from.x - offsetSize, to.y + offsetSize - 0.1, from.z - offsetSize))), rd, outline, Color4::clear());
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, from.y - offsetSize + 0.1, from.z + offsetSize), Vector3(to.x - offsetSize, to.y + offsetSize - 0.1, from.z - offsetSize))), rd, outline, Color4::clear());
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(to.x + offsetSize, from.y - offsetSize + 0.1, to.z + offsetSize), Vector3(to.x - offsetSize, to.y + offsetSize-0.1, to.z - offsetSize))), rd, outline, Color4::clear());
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, from.y - offsetSize + 0.1, to.z + offsetSize), Vector3(from.x - offsetSize, to.y + offsetSize - 0.1, to.z - offsetSize))), rd, outline, Color4::clear());
|
||||
|
||||
//Z
|
||||
Draw::box(c.toWorldSpace(Box(Vector3(from.x + offsetSize, from.y + offsetSize, from.z - offsetSize), Vector3(from.x - offsetSize, from.y - offsetSize, to.z + offsetSize))), rd, outline, Color4::clear());
|
||||
|
||||
@@ -67,30 +67,6 @@ SoundService::SoundService()
|
||||
stockSound->setName("Page");
|
||||
stockSound->setSoundId("/content/sounds/pageturn.wav");
|
||||
stockSound->setParent(this);
|
||||
|
||||
// Click
|
||||
stockSound = new SoundInstance();
|
||||
stockSound->setName("Click");
|
||||
stockSound->setSoundId("/content/sounds/switch.wav");
|
||||
stockSound->setParent(this);
|
||||
|
||||
// Clock
|
||||
stockSound = new SoundInstance();
|
||||
stockSound->setName("Clock");
|
||||
stockSound->setSoundId("/content/sounds/clickfast.wav");
|
||||
stockSound->setParent(this);
|
||||
|
||||
// Step
|
||||
stockSound = new SoundInstance();
|
||||
stockSound->setName("Step");
|
||||
stockSound->setSoundId("/content/sounds/SWITCH3.wav");
|
||||
stockSound->setParent(this);
|
||||
|
||||
// StepOn
|
||||
stockSound = new SoundInstance();
|
||||
stockSound->setName("StepOn");
|
||||
stockSound->setSoundId("/content/sounds/flashbulb.wav");
|
||||
stockSound->setParent(this);
|
||||
}
|
||||
|
||||
SoundService::~SoundService(void)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "DataModelV2/TextButtonInstance.h"
|
||||
#include "DataModelV2/BaseGuiInstance.h"
|
||||
|
||||
|
||||
TextButtonInstance::TextButtonInstance(void)
|
||||
{
|
||||
@@ -11,7 +11,7 @@ TextButtonInstance::TextButtonInstance(void)
|
||||
title = "TextBox";
|
||||
textColor = Color4(1, 1, 1, 1);
|
||||
textOutlineColor = Color4(0, 0, 0, 0);
|
||||
boxColor = BaseGuiInstance::translucentBackdrop();
|
||||
boxColor = Color4(0.6F,0.6F,0.6F,0.4F);
|
||||
boxOutlineColor = Color4(0, 0, 0, 0);
|
||||
setAllColorsSame();
|
||||
textSize = 12;
|
||||
|
||||
@@ -1,88 +1,75 @@
|
||||
#include <G3DAll.h>
|
||||
#include "Application.h"
|
||||
#include "Globals.h"
|
||||
#include "AudioPlayer.h"
|
||||
#include "DataModelV2/SelectionService.h"
|
||||
#include "Listener/GUDButtonListener.h"
|
||||
#include "DataModelV2/SoundService.h"
|
||||
|
||||
void GUDButtonListener::onButton1MouseClick(BaseButtonInstance* button)
|
||||
{
|
||||
SelectionService* selectionService = g_dataModel->getSelectionService();
|
||||
SoundService* soundService = g_dataModel->getSoundService();
|
||||
|
||||
bool cont = false;
|
||||
for(size_t i = 0; i < selectionService->getSelection().size(); i++)
|
||||
if(selectionService->getSelection()[i]->canDelete)
|
||||
for(size_t i = 0; i < g_dataModel->getSelectionService()->getSelection().size(); i++)
|
||||
if(g_dataModel->getSelectionService()->getSelection()[i]->canDelete)
|
||||
{
|
||||
cont = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (cont)
|
||||
if(cont)
|
||||
{
|
||||
if(button->disabled == false){
|
||||
soundService->playSound(soundService->findFirstChild("Ping"));
|
||||
}
|
||||
|
||||
AudioPlayer::playSound(dingSound);
|
||||
if(button->name == "Duplicate")
|
||||
{
|
||||
std::vector<Instance*> newinst;
|
||||
for(size_t i = 0; i < selectionService->getSelection().size(); i++)
|
||||
for(size_t i = 0; i < g_dataModel->getSelectionService()->getSelection().size(); i++)
|
||||
{
|
||||
if(selectionService->getSelection()[i]->canDelete)
|
||||
if(g_dataModel->getSelectionService()->getSelection()[i]->canDelete)
|
||||
{
|
||||
Instance* tempinst = selectionService->getSelection()[i];
|
||||
Instance* tempinst = g_dataModel->getSelectionService()->getSelection()[i];
|
||||
|
||||
Instance* clonedInstance = selectionService->getSelection()[i]->clone();
|
||||
Instance* clonedInstance = g_dataModel->getSelectionService()->getSelection()[i]->clone();
|
||||
|
||||
if (clonedInstance->getClassName() == "PVInstance"){
|
||||
PartInstance* Part = dynamic_cast<PartInstance*>(clonedInstance);
|
||||
Part->setPosition(Part->getPosition() + G3D::Vector3(0, Part->getSize().y, 0));
|
||||
}
|
||||
|
||||
newinst.push_back(clonedInstance);
|
||||
newinst.push_back(tempinst);
|
||||
}
|
||||
}
|
||||
selectionService->clearSelection();
|
||||
selectionService->addSelected(newinst);
|
||||
g_dataModel->getSelectionService()->clearSelection();
|
||||
g_dataModel->getSelectionService()->addSelected(newinst);
|
||||
}
|
||||
else if(button->name == "Group")
|
||||
{
|
||||
if (selectionService->getSelection().size() > 1){
|
||||
GroupInstance * inst = new GroupInstance();
|
||||
inst->setParent(g_dataModel->getWorkspace());
|
||||
for(size_t i = 0; i < selectionService->getSelection().size(); i++)
|
||||
GroupInstance * inst = new GroupInstance();
|
||||
inst->setParent(g_dataModel->getWorkspace());
|
||||
for(size_t i = 0; i < g_dataModel->getSelectionService()->getSelection().size(); i++)
|
||||
{
|
||||
if(g_dataModel->getSelectionService()->getSelection()[i]->canDelete)
|
||||
{
|
||||
if(selectionService->getSelection()[i]->canDelete)
|
||||
g_dataModel->getSelectionService()->getSelection()[i]->setParent(inst);
|
||||
if(PartInstance* part = dynamic_cast<PartInstance*>(g_dataModel->getSelectionService()->getSelection()[i]))
|
||||
{
|
||||
selectionService->getSelection()[i]->setParent(inst);
|
||||
if(PartInstance* part = dynamic_cast<PartInstance*>(selectionService->getSelection()[i]))
|
||||
{
|
||||
inst->primaryPart = part;
|
||||
}
|
||||
inst->primaryPart = part;
|
||||
}
|
||||
}
|
||||
selectionService->clearSelection();
|
||||
selectionService->addSelected(inst);
|
||||
}
|
||||
}
|
||||
g_dataModel->getSelectionService()->clearSelection();
|
||||
g_dataModel->getSelectionService()->addSelected(inst);
|
||||
}
|
||||
else if(button->name == "UnGroup")
|
||||
{
|
||||
std::vector<Instance*> newinst;
|
||||
for(size_t i = 0; i < selectionService->getSelection().size(); i++)
|
||||
for(size_t i = 0; i < g_dataModel->getSelectionService()->getSelection().size(); i++)
|
||||
{
|
||||
Instance* selection = selectionService->getSelection()[i];
|
||||
|
||||
if(GroupInstance* model = dynamic_cast<GroupInstance*>(selection))
|
||||
if(g_dataModel->getSelectionService()->getSelection()[i]->canDelete)
|
||||
{
|
||||
newinst = model->unGroup();
|
||||
model->setParent(NULL);
|
||||
delete model;
|
||||
model = NULL;
|
||||
if(GroupInstance* model = dynamic_cast<GroupInstance*>(g_dataModel->getSelectionService()->getSelection()[i]))
|
||||
{
|
||||
newinst = model->unGroup();
|
||||
model->setParent(NULL);
|
||||
delete model;
|
||||
model = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
selectionService->clearSelection();
|
||||
selectionService->addSelected(newinst);
|
||||
g_dataModel->getSelectionService()->clearSelection();
|
||||
g_dataModel->getSelectionService()->addSelected(newinst);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,15 +2,16 @@
|
||||
#include "DataModelV2/ToggleImageButtonInstance.h"
|
||||
#include "Application.h"
|
||||
#include "Globals.h"
|
||||
|
||||
bool menuOpen = false;
|
||||
|
||||
void MenuButtonListener::onButton1MouseClick(BaseButtonInstance* button)
|
||||
{
|
||||
if(button->name == "go")
|
||||
{
|
||||
g_dataModel->toggleRun();
|
||||
((ToggleImageButtonInstance*)button)->checked = g_dataModel->isRunning();
|
||||
bool isRunning = g_dataModel->isRunning();
|
||||
if(isRunning)
|
||||
g_dataModel->getRunService()->pause();
|
||||
else
|
||||
g_dataModel->getRunService()->run();
|
||||
//((ToggleImageButtonInstance*)button)->checked = !isRunning;
|
||||
}
|
||||
else if(button->name == "file")
|
||||
{
|
||||
@@ -52,36 +53,4 @@ void MenuButtonListener::onButton1MouseClick(BaseButtonInstance* button)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (button->name == "insert"){
|
||||
HMENU mainmenu = CreatePopupMenu();
|
||||
AppendMenu(mainmenu, MF_STRING, 104, "Model...");
|
||||
|
||||
POINT p;
|
||||
GetCursorPos(&p);
|
||||
int menuClick = TrackPopupMenu(mainmenu, TPM_LEFTBUTTON | TPM_RETURNCMD, p.x, p.y, 0, Globals::mainHwnd, 0);
|
||||
switch (menuClick)
|
||||
{
|
||||
case 104:
|
||||
g_dataModel->getOpenModel();
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (button->name == "MENU")
|
||||
{
|
||||
menuOpen = !menuOpen;
|
||||
ShowWindow(g_usableApp->_propWindow->_hwndProp, menuOpen);
|
||||
if(TextButtonInstance* textButton = dynamic_cast<TextButtonInstance*>(button))
|
||||
{
|
||||
if(menuOpen)
|
||||
{
|
||||
textButton->textColor = Color3(0,1,1);
|
||||
textButton->textColorOvr = Color3(0,1,1);
|
||||
}
|
||||
else
|
||||
{
|
||||
textButton->textColor = Color3::white();
|
||||
textButton->textColorOvr = Color3::white();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
5
src/source/Properties/BoolProperty.cpp
Normal file
@@ -0,0 +1,5 @@
|
||||
//#include "Properties/BoolProperty.h"
|
||||
//PROPGRIDITEM BoolProperty::getPropGridItem()
|
||||
//{
|
||||
//return PROPGRIDITEM();
|
||||
//}
|
||||
7
src/source/Properties/Property.cpp
Normal file
@@ -0,0 +1,7 @@
|
||||
#include "Properties/Property.h"
|
||||
|
||||
template <typename T>
|
||||
void Property<T>::setProperty(LPPROPGRIDITEM item)
|
||||
{
|
||||
_owner->propertiesChanged();
|
||||
}
|
||||
@@ -244,7 +244,7 @@ bool PropertyWindow::onCreate(int x, int y, int sx, int sy, HMODULE hThisInstanc
|
||||
WS_EX_TOOLWINDOW,
|
||||
"propHWND",
|
||||
"PropertyGrid",
|
||||
WS_POPUPWINDOW | WS_THICKFRAME | WS_CAPTION,
|
||||
WS_VISIBLE | WS_POPUPWINDOW | WS_THICKFRAME | WS_CAPTION,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
300,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "Tool/DraggerTool.h"
|
||||
#include "Application.h"
|
||||
#include "Tool/DraggerTool.h"
|
||||
#include "Application.h"
|
||||
#include "DataModelV2/SelectionService.h"
|
||||
|
||||
DraggerTool::DraggerTool(void)
|
||||
@@ -11,199 +11,123 @@ DraggerTool::~DraggerTool(void)
|
||||
{
|
||||
}
|
||||
|
||||
void DraggerTool::onButton1MouseDown(Mouse mouse)
|
||||
{
|
||||
grabHandle(mouse);
|
||||
if(handleGrabbed == -1)
|
||||
{
|
||||
ArrowTool::onButton1MouseDown(mouse);
|
||||
createHandles();
|
||||
} else
|
||||
{
|
||||
printf("GRABBED HANDLE!");
|
||||
}
|
||||
}
|
||||
void DraggerTool::onButton1MouseUp(Mouse mouse)
|
||||
{
|
||||
ArrowTool::onButton1MouseUp(mouse);
|
||||
createHandles();
|
||||
}
|
||||
|
||||
void DraggerTool::onMouseMoved(Mouse mouse)
|
||||
{
|
||||
if(handleGrabbed != -1)
|
||||
{
|
||||
std::vector<Instance *> selection = g_dataModel->getSelectionService()->getSelection();
|
||||
|
||||
if(selection.size() == 1)
|
||||
{
|
||||
PartInstance* part = dynamic_cast<PartInstance*>(selection[0]);
|
||||
if(part)
|
||||
{
|
||||
Ray ray = G3D::Ray::fromOriginAndDirection(part->getPosition(), part->getCFrame().lookVector()*100);
|
||||
|
||||
switch(handleGrabbed){
|
||||
case 0:
|
||||
case 1:
|
||||
ray = G3D::Ray::fromOriginAndDirection(part->getPosition(), part->getCFrame().upVector()*100);
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
ray = G3D::Ray::fromOriginAndDirection(part->getPosition(), part->getCFrame().lookVector()*100);
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
ray = G3D::Ray::fromOriginAndDirection(part->getPosition(), part->getCFrame().leftVector()*100);
|
||||
break;
|
||||
}
|
||||
|
||||
CenterOffset = handles[handleGrabbed].center;
|
||||
|
||||
Vector3 intersection1 = ray.intersection(mouse.getPlane());
|
||||
Vector3 intersection2 = ray.intersection(mouse.getInversePlane());
|
||||
|
||||
|
||||
if(intersection1.isFinite())
|
||||
{
|
||||
intersection1.x = (ceil(intersection1.x / 1) * 1);
|
||||
intersection1.y = (ceil(intersection1.y / 1) * 1);
|
||||
intersection1.z = (ceil(intersection1.z / 1) * 1);
|
||||
|
||||
if ( ((int)part->getSize().x)%2 == 1 )
|
||||
intersection1.x += 0.5;
|
||||
|
||||
//intersection1.y = mouse.getPlane() + part->getSize().y/2 - 0.5;
|
||||
|
||||
if ( ((int)part->getSize().z)%2 == 1 )
|
||||
intersection1.z += 0.5;
|
||||
|
||||
part->setPosition(intersection1 + (part->getPosition() - CenterOffset));
|
||||
}
|
||||
else if(intersection2.isFinite())
|
||||
{
|
||||
intersection2.x = (ceil(intersection2.x / 1) * 1);
|
||||
intersection2.y = (ceil(intersection2.y / 1) * 1);
|
||||
intersection2.z = (ceil(intersection2.z / 1) * 1);
|
||||
|
||||
if ( ((int)part->getSize().x)%2 == 1)
|
||||
intersection2.x += 0.5;
|
||||
|
||||
//intersection2.y = mouse.getInversePlane() + part->getSize().y/2 - 0.5;
|
||||
|
||||
part->setPosition(intersection2 + (part->getPosition() - CenterOffset));
|
||||
}
|
||||
|
||||
float offset = 2;
|
||||
|
||||
center = part->getPosition();
|
||||
Vector3 size = part->getSize();
|
||||
CoordinateFrame cFrame = part->getCFrame();
|
||||
|
||||
handles[0].center = center + cFrame.upVector()*(size.y/2+offset);
|
||||
handles[1].center = center - cFrame.upVector()*(size.y/2+offset);
|
||||
|
||||
handles[2].center = center + cFrame.lookVector()*(size.z/2+offset);
|
||||
handles[3].center = center - cFrame.lookVector()*(size.z/2+offset);
|
||||
|
||||
handles[4].center = center + cFrame.leftVector()*(size.x/2+offset);
|
||||
handles[5].center = center - cFrame.leftVector()*(size.x/2+offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
else ArrowTool::onMouseMoved(mouse);
|
||||
}
|
||||
|
||||
void DraggerTool::onSelect(Mouse mouse)
|
||||
{
|
||||
ArrowTool::onSelect(mouse);
|
||||
createHandles();
|
||||
}
|
||||
|
||||
void DraggerTool::onKeyDown(int key)
|
||||
{
|
||||
ArrowTool::onKeyDown(key);
|
||||
}
|
||||
|
||||
void DraggerTool::onKeyUp(int key)
|
||||
{
|
||||
ArrowTool::onKeyUp(key);
|
||||
}
|
||||
|
||||
void DraggerTool::grabHandle(Mouse mouse)
|
||||
{
|
||||
handleGrabbed = -1;
|
||||
if(hasHandles)
|
||||
{
|
||||
G3D::Ray ray = mouse.getRay();
|
||||
float distance = G3D::inf();
|
||||
for(int i = 0; i < 6; i++)
|
||||
{
|
||||
float newDistance = ray.intersectionTime(handles[i]);
|
||||
if(isFinite(newDistance) && newDistance < distance)
|
||||
{
|
||||
distance = newDistance;
|
||||
handleGrabbed = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DraggerTool::createHandles()
|
||||
{
|
||||
handleGrabbed = -1;
|
||||
hasHandles = false;
|
||||
std::vector<Instance *> selection = g_dataModel->getSelectionService()->getSelection();
|
||||
if(selection.size() == 1)
|
||||
{
|
||||
if(PartInstance* part = dynamic_cast<PartInstance*>(selection[0]))
|
||||
{
|
||||
hasHandles = true;
|
||||
|
||||
float offset = 2;
|
||||
|
||||
center = part->getPosition();
|
||||
Vector3 size = part->getSize();
|
||||
|
||||
CoordinateFrame cFrame = part->getCFrame();
|
||||
|
||||
handles[0] = Sphere(center + cFrame.upVector()*(size.y/2+offset), 1);
|
||||
handles[1] = Sphere(center - cFrame.upVector()*(size.y/2+offset), 1);
|
||||
|
||||
handles[2] = Sphere(center + cFrame.lookVector()*(size.z/2+offset), 1);
|
||||
handles[3] = Sphere(center - cFrame.lookVector()*(size.z/2+offset), 1);
|
||||
|
||||
handles[4] = Sphere(center + cFrame.leftVector()*(size.x/2+offset), 1);
|
||||
handles[5] = Sphere(center - cFrame.leftVector()*(size.x/2+offset), 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DraggerTool::render(RenderDevice * rd, Mouse mouse)
|
||||
{
|
||||
if(hasHandles)
|
||||
{
|
||||
for(int i = 0; i < 6; i++)
|
||||
{
|
||||
G3D::Draw::arrow(center, handles[i].center-center, rd, Color3::orange(), 2);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<Instance *> selection = g_dataModel->getSelectionService()->getSelection();
|
||||
for(size_t i = 0; i < selection.size(); i++)
|
||||
{
|
||||
if(PartInstance* part = dynamic_cast<PartInstance*>(selection[i]))
|
||||
{
|
||||
//Ray ray = G3D::Ray::fromOriginAndDirection(part->getPosition(), part->getCFrame().lookVector()*100);
|
||||
//Vector3 intersection1 = ray.intersection(mouse.getPlane());
|
||||
//Vector3 intersection2 = ray.intersection(mouse.getInversePlane());
|
||||
//if(intersection1.isFinite())
|
||||
//{
|
||||
// Draw::sphere(Sphere(intersection1, 2), rd);
|
||||
//}
|
||||
//else if(intersection2.isFinite())
|
||||
//{
|
||||
// Draw::sphere(Sphere(intersection2, 2), rd);
|
||||
//}
|
||||
}
|
||||
}
|
||||
void DraggerTool::onButton1MouseDown(Mouse mouse)
|
||||
{
|
||||
grabHandle(mouse);
|
||||
if(handleGrabbed == -1)
|
||||
{
|
||||
ArrowTool::onButton1MouseDown(mouse);
|
||||
createHandles();
|
||||
} else
|
||||
{
|
||||
printf("GRABBED HANDLE!");
|
||||
}
|
||||
}
|
||||
void DraggerTool::onButton1MouseUp(Mouse mouse)
|
||||
{
|
||||
ArrowTool::onButton1MouseUp(mouse);
|
||||
createHandles();
|
||||
}
|
||||
|
||||
void DraggerTool::onMouseMoved(Mouse mouse)
|
||||
{
|
||||
if(handleGrabbed != -1)
|
||||
{
|
||||
|
||||
}
|
||||
else ArrowTool::onMouseMoved(mouse);
|
||||
}
|
||||
|
||||
void DraggerTool::onSelect(Mouse mouse)
|
||||
{
|
||||
ArrowTool::onSelect(mouse);
|
||||
createHandles();
|
||||
}
|
||||
|
||||
void DraggerTool::onKeyDown(int key)
|
||||
{
|
||||
ArrowTool::onKeyDown(key);
|
||||
}
|
||||
|
||||
void DraggerTool::onKeyUp(int key)
|
||||
{
|
||||
ArrowTool::onKeyUp(key);
|
||||
}
|
||||
|
||||
void DraggerTool::grabHandle(Mouse mouse)
|
||||
{
|
||||
handleGrabbed = -1;
|
||||
if(hasHandles)
|
||||
{
|
||||
G3D::Ray ray = mouse.getRay();
|
||||
float distance = G3D::inf();
|
||||
for(int i = 0; i < 6; i++)
|
||||
{
|
||||
float newDistance = ray.intersectionTime(handles[i]);
|
||||
if(isFinite(newDistance) && newDistance < distance)
|
||||
{
|
||||
distance = newDistance;
|
||||
handleGrabbed = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DraggerTool::createHandles()
|
||||
{
|
||||
handleGrabbed = -1;
|
||||
hasHandles = false;
|
||||
std::vector<Instance *> selection = g_dataModel->getSelectionService()->getSelection();
|
||||
if(selection.size() == 1)
|
||||
{
|
||||
if(PartInstance* part = dynamic_cast<PartInstance*>(selection[0]))
|
||||
{
|
||||
hasHandles = true;
|
||||
|
||||
float offset = 2;
|
||||
|
||||
center = part->getPosition();
|
||||
Vector3 size = part->getSize();
|
||||
|
||||
CoordinateFrame cFrame = part->getCFrame();
|
||||
|
||||
handles[0] = Sphere(center + cFrame.upVector()*(size.y/2+offset), 1);
|
||||
handles[1] = Sphere(center - cFrame.upVector()*(size.y/2+offset), 1);
|
||||
|
||||
handles[2] = Sphere(center + cFrame.lookVector()*(size.z/2+offset), 1);
|
||||
handles[3] = Sphere(center - cFrame.lookVector()*(size.z/2+offset), 1);
|
||||
|
||||
handles[4] = Sphere(center + cFrame.leftVector()*(size.x/2+offset), 1);
|
||||
handles[5] = Sphere(center - cFrame.leftVector()*(size.x/2+offset), 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DraggerTool::render(RenderDevice * rd, Mouse mouse)
|
||||
{
|
||||
if(hasHandles)
|
||||
{
|
||||
for(int i = 0; i < 6; i++)
|
||||
{
|
||||
G3D::Draw::arrow(center, handles[i].center-center, rd, Color3::orange(), 2);
|
||||
}
|
||||
}
|
||||
std::vector<Instance *> selection = g_dataModel->getSelectionService()->getSelection();
|
||||
for(size_t i = 0; i < selection.size(); i++)
|
||||
{
|
||||
if(PartInstance* part = dynamic_cast<PartInstance*>(selection[i]))
|
||||
{
|
||||
Ray ray = G3D::Ray::fromOriginAndDirection(part->getPosition(), part->getCFrame().lookVector()*100);
|
||||
Vector3 intersection1 = ray.intersection(mouse.getPlane());
|
||||
Vector3 intersection2 = ray.intersection(mouse.getInversePlane());
|
||||
if(intersection1.isFinite())
|
||||
{
|
||||
Draw::sphere(Sphere(intersection1, 2), rd);
|
||||
}
|
||||
else if(intersection2.isFinite())
|
||||
{
|
||||
Draw::sphere(Sphere(intersection2, 2), rd);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -51,12 +51,12 @@ void collisionCallback(void *data, dGeomID o1, dGeomID o2)
|
||||
contact[i].surface.mode = dContactBounce | dContactSlip1 | dContactSlip2 | dContactSoftERP | dContactSoftCFM | dContactApprox1;
|
||||
|
||||
// Define contact surface properties
|
||||
contact[i].surface.bounce = 0.5F; //Elasticity
|
||||
contact[i].surface.bounce = 0.5; //Elasticity
|
||||
contact[i].surface.mu = 0.4F; //Friction
|
||||
contact[i].surface.slip1 = 0.0;
|
||||
contact[i].surface.slip2 = 0.0;
|
||||
contact[i].surface.soft_erp = 0.8F;
|
||||
contact[i].surface.soft_cfm = 0.005F;
|
||||
contact[i].surface.soft_cfm = 0.01F;
|
||||
|
||||
// Create joints
|
||||
dJointID c = dJointCreateContact(
|
||||
|
||||
@@ -142,12 +142,6 @@ LRESULT CALLBACK G3DProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
HINSTANCE hThisInstance = GetModuleHandle(NULL);
|
||||
return WinMain(hThisInstance, NULL, NULL, 1);
|
||||
}
|
||||
|
||||
int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int cmdShow)
|
||||
{
|
||||
#ifndef _DEBUG
|
||||
try{
|
||||
#endif
|
||||
@@ -164,6 +158,7 @@ int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpCmd
|
||||
icc.dwICC = ICC_WIN95_CLASSES/*|ICC_COOL_CLASSES|ICC_DATE_CLASSES|
|
||||
ICC_PAGESCROLLER_CLASS|ICC_USEREX_CLASSES*/;
|
||||
InitCommonControlsEx(&icc);
|
||||
HMODULE hThisInstance = GetModuleHandle(NULL);
|
||||
|
||||
if (!createWindowClass("mainHWND",WndProc,hThisInstance))
|
||||
return false;
|
||||
|
||||