This commit is contained in:
Timothee Besset 2013-07-05 21:02:37 +01:00
commit ee3bc7b353
12 changed files with 37 additions and 884 deletions

33
apple/README.md Normal file
View File

@ -0,0 +1,33 @@
GtkRadiant for Apple OSX
====
This directory provides packaging steps for GtkRadiant for OSX. This document describes compiling the application on OSX as well as generating distributable bundles using the framework provided in this directory.
Dependencies & Compilation
----
Compiling GtkRadiant on OSX requires [MacPorts](http://macports.org). Homebrew is not yet supported. Install the following dependencies:
sudo port install dylibbundler gcc47 gtkglext scons
You should then be able to compile and run GtkRadiant from the `install` directory.
scons config=debug
./install/radiant.bin &
See the [GtkRadiant developers guide]() for details on build configurations and targets.
Building GtkRadiant.app
----
The `Makefile` in this directory will produce a distributable .app bundle for GtkRadiant using `dylibbundler`:
make
make image
You may encounter an error or two as `dylibbundler` attempts to fix up shared libraries that GtkRadiant depends on. This is because `dylibbundler` attempts to rewrite the load commands in these libraries, but not all libraries have enough space allocated for this purpose. Recompile the relevant ports with additional header space.
For example:
export LDFLAGS=-headerpad_max_install_names
sudo port clean --work --archive pango
sudo port -n upgrade --force pango
Repeat this process for any shared libraries which `dylibbundler` complains about. As of July 2nd 2013, Pango is the only port requiring this treatment.

View File

@ -121,7 +121,6 @@ class Config:
'contrib/hydratoolz/hydratoolz.vcproj',
'contrib/bobtoolz/bobtoolz.vcproj',
'contrib/gtkgensurf/gtkgensurf.vcproj',
'contrib/ufoai/ufoai.vcproj',
'contrib/bkgrnd2d/bkgrnd2d.vcproj'
]:
( libpath, libname ) = os.path.split( project )

View File

@ -1,271 +0,0 @@
/*
Copyright (C) 1999-2007 id Software, Inc. and contributors.
For a list of contributors, see the accompanying CONTRIBUTORS file.
This file is part of GtkRadiant.
GtkRadiant is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
GtkRadiant is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GtkRadiant; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "plugin.h"
#include "ufoai_filters.h"
#define CMD_SEP "-"
#define CMD_ABOUT "About..."
// =============================================================================
// Globals
// function tables
_QERFuncTable_1 g_FuncTable;
_QERQglTable g_QglTable;
_QERFileSystemTable g_FileSystemTable;
_QEREntityTable g_EntityTable;
_QERAppDataTable g_DataTable;
// the gtk widget
void *g_pMainWidget;
// =============================================================================
// plugin implementation
#define PLUGIN_NAME "UFO:AI plugin"
#define PLUGIN_VERSION "0.1"
//backwards for some reason
static const char *PLUGIN_COMMANDS = CMD_ABOUT ";" CMD_SEP;
static const char *PLUGIN_ABOUT = _( "UFO: Alien Invasion plugin " PLUGIN_VERSION "\nby Martin Gerhardy" );
#define NUM_TOOLBAR_BUTTONS FILTER_MAX
typedef struct toolbar_button_info_s
{
const char *image;
const char *text;
const char *tip;
void ( *func )();
IToolbarButton::EType type;
} toolbar_button_info_t;
static const toolbar_button_info_t toolbar_buttons[NUM_TOOLBAR_BUTTONS] =
{
{
"ufoai_actorclip.bmp",
_( "Filter actorclip" ),
_( "Actorclip" ),
DoActorClipFiltering,
IToolbarButton::eToggleButton
},
{
"ufoai_weaponclip.bmp",
_( "Filter weaponclip" ),
_( "Weaponclip" ),
DoWeaponClipFiltering,
IToolbarButton::eToggleButton
},
{
"ufoai_nodraw.bmp",
_( "Filter nodraw" ),
_( "NoDraw" ),
DoNoDrawFiltering,
IToolbarButton::eToggleButton
},
{
"ufoai_stepon.bmp",
_( "Filter stepon" ),
_( "Stepon" ),
DoSteponFiltering,
IToolbarButton::eToggleButton
},
{
"ufoai_level1.bmp",
_( "Filter level1" ),
_( "Level 1" ),
DoLevel1Filtering,
IToolbarButton::eToggleButton
},
{
"ufoai_level2.bmp",
_( "Filter level2" ),
_( "Level 2" ),
DoLevel2Filtering,
IToolbarButton::eToggleButton
},
{
"ufoai_level3.bmp",
_( "Filter level3" ),
_( "Level 3" ),
DoLevel3Filtering,
IToolbarButton::eToggleButton
},
{
"ufoai_level4.bmp",
_( "Filter level4" ),
_( "Level 4" ),
DoLevel4Filtering,
IToolbarButton::eToggleButton
},
{
"ufoai_level5.bmp",
_( "Filter level5" ),
_( "Level 5" ),
DoLevel5Filtering,
IToolbarButton::eToggleButton
},
{
"ufoai_level6.bmp",
_( "Filter level6" ),
_( "Level 6" ),
DoLevel6Filtering,
IToolbarButton::eToggleButton
},
{
"ufoai_level7.bmp",
_( "Filter level7" ),
_( "Level 7" ),
DoLevel7Filtering,
IToolbarButton::eToggleButton
},
{
"ufoai_level8.bmp",
_( "Filter level8" ),
_( "Level 8" ),
DoLevel8Filtering,
IToolbarButton::eToggleButton
},
};
class UFOAIButton : public IToolbarButton
{
public:
const toolbar_button_info_s *bi;
virtual const char* getImage() const {
return bi->image;
}
virtual const char* getText() const {
return bi->text;
}
virtual const char* getTooltip() const {
return bi->tip;
}
virtual void activate() const {
bi->func();
return ;
}
virtual EType getType() const {
return bi->type;
}
};
UFOAIButton g_ufoaibuttons[NUM_TOOLBAR_BUTTONS];
unsigned int ToolbarButtonCount( void ){
return NUM_TOOLBAR_BUTTONS;
}
const IToolbarButton* GetToolbarButton( unsigned int index ){
g_ufoaibuttons[index].bi = &toolbar_buttons[index];
return &g_ufoaibuttons[index];
}
extern "C" const char* QERPlug_Init( void *hApp, void* pMainWidget ){
g_pMainWidget = pMainWidget;
UFOAIFilterInit();
return PLUGIN_NAME;
}
extern "C" const char* QERPlug_GetName( void ){
return (char *) PLUGIN_NAME;
}
extern "C" const char* QERPlug_GetCommandList( void ){
return (char *) PLUGIN_COMMANDS;
}
extern "C" void QERPlug_Dispatch( const char *p, vec3_t vMin, vec3_t vMax, bool bSingleBrush ){
if ( !strcmp( p, CMD_ABOUT ) ) {
g_FuncTable.m_pfnMessageBox( NULL, PLUGIN_ABOUT, _( "About" ), MB_OK, NULL );
}
else {
Sys_Printf( "Message: %s\n", p );
}
}
// =============================================================================
// SYNAPSE
CSynapseServer* g_pSynapseServer = NULL;
CSynapseClientUFOAI g_SynapseClient;
#if __GNUC__ >= 4
#pragma GCC visibility push(default)
#endif
extern "C" CSynapseClient * SYNAPSE_DLL_EXPORT Synapse_EnumerateInterfaces( const char *version, CSynapseServer *pServer ){
#if __GNUC__ >= 4
#pragma GCC visibility pop
#endif
if ( strcmp( version, SYNAPSE_VERSION ) ) {
Syn_Printf( "ERROR: synapse API version mismatch: should be '" SYNAPSE_VERSION "', got '%s'\n", version );
return NULL;
}
g_pSynapseServer = pServer;
g_pSynapseServer->IncRef();
Set_Syn_Printf( g_pSynapseServer->Get_Syn_Printf() );
g_SynapseClient.AddAPI( TOOLBAR_MAJOR, UFOAI_MINOR, sizeof( _QERPlugToolbarTable ) );
g_SynapseClient.AddAPI( PLUGIN_MAJOR, UFOAI_MINOR, sizeof( _QERPluginTable ) );
g_SynapseClient.AddAPI( RADIANT_MAJOR, NULL, sizeof( g_FuncTable ), SYN_REQUIRE, &g_FuncTable );
g_SynapseClient.AddAPI( QGL_MAJOR, NULL, sizeof( g_QglTable ), SYN_REQUIRE, &g_QglTable );
g_SynapseClient.AddAPI( VFS_MAJOR, "*", sizeof( g_FileSystemTable ), SYN_REQUIRE, &g_FileSystemTable );
// get worldspawn
g_SynapseClient.AddAPI( ENTITY_MAJOR, NULL, sizeof( g_EntityTable ), SYN_REQUIRE, &g_EntityTable );
// selected brushes
g_SynapseClient.AddAPI( DATA_MAJOR, NULL, sizeof( g_DataTable ), SYN_REQUIRE, &g_DataTable );
return &g_SynapseClient;
}
bool CSynapseClientUFOAI::RequestAPI( APIDescriptor_t *pAPI ){
if ( !strcmp( pAPI->major_name, PLUGIN_MAJOR ) ) {
_QERPluginTable* pTable = static_cast<_QERPluginTable*>( pAPI->mpTable );
pTable->m_pfnQERPlug_Init = QERPlug_Init;
pTable->m_pfnQERPlug_GetName = QERPlug_GetName;
pTable->m_pfnQERPlug_GetCommandList = QERPlug_GetCommandList;
pTable->m_pfnQERPlug_Dispatch = QERPlug_Dispatch;
return true;
}
else if ( !strcmp( pAPI->major_name, TOOLBAR_MAJOR ) ) {
_QERPlugToolbarTable* pTable = static_cast<_QERPlugToolbarTable*>( pAPI->mpTable );
pTable->m_pfnToolbarButtonCount = &ToolbarButtonCount;
pTable->m_pfnGetToolbarButton = &GetToolbarButton;
return true;
}
Syn_Printf( "ERROR: RequestAPI( '%s' ) not found in '%s'\n", pAPI->major_name, GetInfo() );
return false;
}
#include "version.h"
const char* CSynapseClientUFOAI::GetInfo(){
return PLUGIN_NAME " plugin built " __DATE__ " " RADIANT_VERSION;
}
const char* CSynapseClientUFOAI::GetName(){
return PLUGIN_NAME;
}

View File

@ -1,68 +0,0 @@
/*
Copyright (C) 1999-2007 id Software, Inc. and contributors.
For a list of contributors, see the accompanying CONTRIBUTORS file.
This file is part of GtkRadiant.
GtkRadiant is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
GtkRadiant is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GtkRadiant; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef _PLUGIN_H_
#define _PLUGIN_H_
/*!
\todo need general notice about lib purpose etc.
and the external dependencies (such as GLib, STL, mathlib etc.)
*/
#include <stdio.h>
// for CPtrArray for idata.h
#include "missing.h"
#include "synapse.h"
#include "iplugin.h"
#include "itoolbar.h"
#define USE_QERTABLE_DEFINE
#include "qerplugin.h"
#include "igl.h"
#include "ifilesystem.h"
#include "ientity.h"
#include "idata.h"
#include <glib/gi18n.h>
extern _QERFuncTable_1 g_FuncTable;
extern _QERQglTable g_QglTable;
extern _QERFileSystemTable g_FileSystemTable;
extern _QEREntityTable g_EntityTable;
extern _QERAppDataTable g_DataTable;
extern void *g_pMainWidget;
extern CSynapseServer* g_pSynapseServer;
class CSynapseClientUFOAI : public CSynapseClient
{
public:
// CSynapseClient API
bool RequestAPI( APIDescriptor_t *pAPI );
const char* GetInfo();
const char* GetName();
CSynapseClientUFOAI() { }
virtual ~CSynapseClientUFOAI() { }
};
#define UFOAI_MINOR "ufo:ai"
#endif // _PLUGIN_H_

View File

@ -1,7 +0,0 @@
; ufoai.def : Declares the module parameters for the DLL.
LIBRARY "UFOAI"
EXPORTS
; Explicit exports can go here
Synapse_EnumerateInterfaces @1

View File

@ -1,191 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="ufoai"
ProjectGUID="{850DD97C-B457-497D-B5F5-DA1904FAC5F9}"
Keyword="Win32Proj"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)\install\modules"
IntermediateDirectory="$(SolutionDir)\build\intermediate\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\libs&quot;;&quot;$(SolutionDir)\include&quot;;&quot;$(SolutionDir)\..\STLport-5.2.1\stlport&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include\glib-2.0&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\lib\glib-2.0\include&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include\gtk-2.0&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\lib\gtk-2.0\include&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include\cairo&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include\pango-1.0&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include\atk-1.0&quot;;&quot;$(SolutionDir)\..\libxml2-2.7.3\include\libxml2&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;UFOAI_EXPORTS;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
DisableSpecificWarnings="4996;4244;4101;4800"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/STACK:8388608"
AdditionalDependencies="glib-2.0.lib gobject-2.0.lib intl.lib gtk-win32-2.0.lib libxml2.lib synapse.lib"
AdditionalLibraryDirectories="&quot;$(SolutionDir)\..\gtk-2.16.6\lib&quot;;&quot;$(SolutionDir)\..\libxml2-2.7.3\lib&quot;;&quot;$(SolutionDir)\build\$(ConfigurationName)\libs&quot;"
ModuleDefinitionFile="ufoai.def"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)\install\modules"
IntermediateDirectory="$(SolutionDir)\build\intermediate\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\libs&quot;;&quot;$(SolutionDir)\include&quot;;&quot;$(SolutionDir)\..\STLport-5.2.1\stlport&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include\glib-2.0&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\lib\glib-2.0\include&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include\gtk-2.0&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\lib\gtk-2.0\include&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include\cairo&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include\pango-1.0&quot;;&quot;$(SolutionDir)\..\gtk-2.16.6\include\atk-1.0&quot;;&quot;$(SolutionDir)\..\libxml2-2.7.3\include\libxml2&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UFOAI_EXPORTS;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
DisableSpecificWarnings="4996;4244;4101;4800"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/STACK:8388608"
AdditionalDependencies="glib-2.0.lib gobject-2.0.lib intl.lib gtk-win32-2.0.lib libxml2.lib synapse.lib"
AdditionalLibraryDirectories="&quot;$(SolutionDir)\..\gtk-2.16.6\lib&quot;;&quot;$(SolutionDir)\..\libxml2-2.7.3\lib&quot;;&quot;$(SolutionDir)\build\$(ConfigurationName)\libs&quot;"
ModuleDefinitionFile="ufoai.def"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="src"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
>
<File
RelativePath=".\plugin.cpp"
>
</File>
<File
RelativePath=".\ufoai.def"
>
</File>
<File
RelativePath=".\ufoai_filters.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,176 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{850DD97C-B457-497D-B5F5-DA1904FAC5F9}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>11.0.60315.1</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)\install\modules\</OutDir>
<IntDir>$(SolutionDir)\build\intermediate\$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)\install\modules\</OutDir>
<IntDir>$(SolutionDir)\build\intermediate\$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir)\libs;$(SolutionDir)\include;$(SolutionDir)\..\STLport-5.2.1\stlport;$(SolutionDir)\..\gtk-2.24.10\include\glib-2.0;$(SolutionDir)\..\gtk-2.24.10\include\gdk-pixbuf-2.0;$(SolutionDir)\..\gtk-2.24.10\lib\glib-2.0\include;$(SolutionDir)\..\gtk-2.24.10\include;$(SolutionDir)\..\gtk-2.24.10\include\gtk-2.0;$(SolutionDir)\..\gtk-2.24.10\lib\gtk-2.0\include;$(SolutionDir)\..\gtk-2.24.10\include\cairo;$(SolutionDir)\..\gtk-2.24.10\include\pango-1.0;$(SolutionDir)\..\gtk-2.24.10\include\atk-1.0;$(SolutionDir)\..\libxml2-2.9.1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;UFOAI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<DisableSpecificWarnings>4996;4244;4101;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;libxml2.lib;synapse.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.1\lib\$(Configuration)\$(Platform);$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ModuleDefinitionFile>ufoai.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir)\libs;$(SolutionDir)\include;$(SolutionDir)\..\STLport-5.2.1\stlport;$(SolutionDir)\..\gtk-2.24.10\include\glib-2.0;$(SolutionDir)\..\gtk-2.24.10\include\gdk-pixbuf-2.0;$(SolutionDir)\..\gtk-2.24.10\lib\glib-2.0\include;$(SolutionDir)\..\gtk-2.24.10\include;$(SolutionDir)\..\gtk-2.24.10\include\gtk-2.0;$(SolutionDir)\..\gtk-2.24.10\lib\gtk-2.0\include;$(SolutionDir)\..\gtk-2.24.10\include\cairo;$(SolutionDir)\..\gtk-2.24.10\include\pango-1.0;$(SolutionDir)\..\gtk-2.24.10\include\atk-1.0;$(SolutionDir)\..\libxml2-2.9.1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;UFOAI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4996;4244;4101;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;libxml2.lib;synapse.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.1\lib\$(Configuration)\$(Platform);$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ModuleDefinitionFile>ufoai.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)\libs;$(SolutionDir)\include;$(SolutionDir)\..\STLport-5.2.1\stlport;$(SolutionDir)\..\gtk-2.24.10\include\glib-2.0;$(SolutionDir)\..\gtk-2.24.10\include\gdk-pixbuf-2.0;$(SolutionDir)\..\gtk-2.24.10\lib\glib-2.0\include;$(SolutionDir)\..\gtk-2.24.10\include;$(SolutionDir)\..\gtk-2.24.10\include\gtk-2.0;$(SolutionDir)\..\gtk-2.24.10\lib\gtk-2.0\include;$(SolutionDir)\..\gtk-2.24.10\include\cairo;$(SolutionDir)\..\gtk-2.24.10\include\pango-1.0;$(SolutionDir)\..\gtk-2.24.10\include\atk-1.0;$(SolutionDir)\..\libxml2-2.9.1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UFOAI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4996;4244;4101;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;libxml2.lib;synapse.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.1\lib\$(Configuration)\$(Platform);$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ModuleDefinitionFile>ufoai.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)\libs;$(SolutionDir)\include;$(SolutionDir)\..\STLport-5.2.1\stlport;$(SolutionDir)\..\gtk-2.24.10\include\glib-2.0;$(SolutionDir)\..\gtk-2.24.10\include\gdk-pixbuf-2.0;$(SolutionDir)\..\gtk-2.24.10\lib\glib-2.0\include;$(SolutionDir)\..\gtk-2.24.10\include;$(SolutionDir)\..\gtk-2.24.10\include\gtk-2.0;$(SolutionDir)\..\gtk-2.24.10\lib\gtk-2.0\include;$(SolutionDir)\..\gtk-2.24.10\include\cairo;$(SolutionDir)\..\gtk-2.24.10\include\pango-1.0;$(SolutionDir)\..\gtk-2.24.10\include\atk-1.0;$(SolutionDir)\..\libxml2-2.9.1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UFOAI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4996;4244;4101;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<AdditionalOptions>/STACK:8388608 %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>ws2_32.lib;glib-2.0.lib;gobject-2.0.lib;intl.lib;gtk-win32-2.0.lib;libxml2.lib;synapse.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\..\gtk-2.24.10\lib;$(SolutionDir)\..\libxml2-2.9.1\lib\$(Configuration)\$(Platform);$(SolutionDir)\build\$(Configuration)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ModuleDefinitionFile>ufoai.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="plugin.cpp" />
<ClCompile Include="ufoai_filters.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ufoai.def" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\libs\synapse\synapse.vcxproj">
<Project>{e13ccfb0-a366-4ef3-a66f-c374b563e4df}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="src">
<UniqueIdentifier>{f3cd758b-8b56-44e2-9155-0613b20b6fad}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="plugin.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="ufoai_filters.cpp">
<Filter>src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ufoai.def">
<Filter>src</Filter>
</None>
</ItemGroup>
</Project>

View File

@ -1,95 +0,0 @@
#include "plugin.h"
#include "ufoai_filters.h"
#include "ifilters.h"
#define FilterAdd g_FuncTable.m_pfnFilterAdd
#define FiltersActivate g_FuncTable.m_pfnFiltersActivate
static bfilter_t* filters[FILTER_MAX];
void UFOAIFilterInit( void ){
// texture name filters
filters[FILTER_ACTORCLIP] = FilterAdd( 1, 0, "actorclip", 0 );
filters[FILTER_WEAPONCLIP] = FilterAdd( 1, 0, "weaponclip", 0 );
filters[FILTER_NODRAW] = FilterAdd( 1, 0, "nodraw", 0 );
filters[FILTER_STEPON] = FilterAdd( 1, 0, "stepon", 0 );
// content flag filters
filters[FILTER_LEVEL1] = FilterAdd( 7, UFOAI_CONTENTS_LEVEL_1, "level1", 0 );
filters[FILTER_LEVEL2] = FilterAdd( 7, UFOAI_CONTENTS_LEVEL_2, "level2", 0 );
filters[FILTER_LEVEL3] = FilterAdd( 7, UFOAI_CONTENTS_LEVEL_3, "level3", 0 );
filters[FILTER_LEVEL4] = FilterAdd( 7, UFOAI_CONTENTS_LEVEL_4, "level4", 0 );
filters[FILTER_LEVEL5] = FilterAdd( 7, UFOAI_CONTENTS_LEVEL_5, "level5", 0 );
filters[FILTER_LEVEL6] = FilterAdd( 7, UFOAI_CONTENTS_LEVEL_6, "level6", 0 );
filters[FILTER_LEVEL7] = FilterAdd( 7, UFOAI_CONTENTS_LEVEL_7, "level7", 0 );
filters[FILTER_LEVEL8] = FilterAdd( 7, UFOAI_CONTENTS_LEVEL_8, "level8", 0 );
Sys_Printf( "UFO:AI Filters initialized\n" );
}
void PerformFiltering( int type ){
if ( !filters[type] ) {
Sys_Printf( "filters are not yet initialized\n" );
return;
}
if ( filters[type]->active ) {
filters[type]->active = false;
//Sys_Printf("filter %i deactivated (mask %i 0x%x)\n", type, filters[type]->mask, filters[type]->mask);
}
else {
filters[type]->active = true;
//Sys_Printf("filter %i activated (mask %i 0x%x)\n", type, filters[type]->mask, filters[type]->mask);
}
FiltersActivate();
}
void DoSteponFiltering( void ){
PerformFiltering( FILTER_STEPON );
}
void DoWeaponClipFiltering( void ){
PerformFiltering( FILTER_WEAPONCLIP );
}
void DoActorClipFiltering( void ){
PerformFiltering( FILTER_ACTORCLIP );
}
void DoNoDrawFiltering( void ){
PerformFiltering( FILTER_NODRAW );
}
void DoLevel1Filtering( void ){
PerformFiltering( FILTER_LEVEL1 );
}
void DoLevel2Filtering( void ){
PerformFiltering( FILTER_LEVEL2 );
}
void DoLevel3Filtering( void ){
PerformFiltering( FILTER_LEVEL3 );
}
void DoLevel4Filtering( void ){
PerformFiltering( FILTER_LEVEL4 );
}
void DoLevel5Filtering( void ){
PerformFiltering( FILTER_LEVEL5 );
}
void DoLevel6Filtering( void ){
PerformFiltering( FILTER_LEVEL6 );
}
void DoLevel7Filtering( void ){
PerformFiltering( FILTER_LEVEL7 );
}
void DoLevel8Filtering( void ){
PerformFiltering( FILTER_LEVEL8 );
}

View File

@ -1,49 +0,0 @@
enum FILTERS {
FILTER_ACTORCLIP,
FILTER_WEAPONCLIP,
FILTER_NODRAW,
FILTER_STEPON,
FILTER_LEVEL1,
FILTER_LEVEL2,
FILTER_LEVEL3,
FILTER_LEVEL4,
FILTER_LEVEL5,
FILTER_LEVEL6,
FILTER_LEVEL7,
FILTER_LEVEL8,
FILTER_MAX
};
#define UFOAI_CONTENTS_LEVEL_1 0x0100
#define UFOAI_CONTENTS_LEVEL_2 0x0200
#define UFOAI_CONTENTS_LEVEL_3 0x0400
#define UFOAI_CONTENTS_LEVEL_4 0x0800
#define UFOAI_CONTENTS_LEVEL_5 0x1000
#define UFOAI_CONTENTS_LEVEL_6 0x2000
#define UFOAI_CONTENTS_LEVEL_7 0x4000
#define UFOAI_CONTENTS_LEVEL_8 0x8000
#define UFOAI_CONTENTS_ACTORCLIP 0x00010000
#define UFOAI_CONTENTS_WEAPONCLIP 0x02000000
#define UFOAI_CONTENTS_STEPON 0x40000000
#define UFOAI_SURF_NODRAW 0x00000080
void DoSteponFiltering( void );
void DoWeaponClipFiltering( void );
void DoActorClipFiltering( void );
void DoNoDrawFiltering( void );
void DoLevel1Filtering( void );
void DoLevel2Filtering( void );
void DoLevel3Filtering( void );
void DoLevel4Filtering( void );
void DoLevel5Filtering( void );
void DoLevel6Filtering( void );
void DoLevel7Filtering( void );
void DoLevel8Filtering( void );
// add the ufoai filters
void UFOAIFilterInit( void );

View File

@ -594,7 +594,7 @@ bool CSynapseServer::DoResolve( CSynapseClient *pClient ){
// the stack didn't change last loop
iCurrent++;
if ( iCurrent == mStack.end() ) {
Syn_Printf( "ERROR: CSynapseServer::Resolve, failed to resolve\n" );
Syn_Printf( "ERROR: CSynapseServer::Resolve, failed to resolve config for %s\n", pClient->GetName() );
DumpStack();
return false;
}
@ -658,7 +658,7 @@ void CSynapseServer::DumpStack(){
for ( iCurrent = mStack.begin(); iCurrent != mStack.end(); iCurrent++ )
{
APIDescriptor_t*pAPI = *iCurrent;
Syn_Printf( "interface %s %p '%s' '%s'\n", APITypeName[pAPI->mType], pAPI, pAPI->major_name, pAPI->minor_name );
Syn_Printf( " interface %s %p '%s' '%s'\n", APITypeName[pAPI->mType], pAPI, pAPI->major_name, pAPI->minor_name );
}
}

View File

@ -237,7 +237,8 @@ eclass_t *Eclass_InitFromText( char *text ){
// setup show flags
e->nShowFlags = 0;
if ( strcmpi( e->name, "light" ) == 0 || strcmpi( e->name, "dlight" ) == 0 || strcmpi( e->name, "lightjunior" ) == 0 ) {
if ( strcmpi( e->name, "light" ) == 0 || strcmpi( e->name, "dlight" ) == 0
|| strcmpi( e->name, "lightjunior" ) == 0 || strcmpi( e->name, "light_spot" ) == 0 ) {
e->nShowFlags |= ECLASS_LIGHT;
}
@ -255,7 +256,6 @@ eclass_t *Eclass_InitFromText( char *text ){
e->nShowFlags |= ECLASS_MISCMODEL;
}
return e;
}