merge while working on rebase root source dir

This commit is contained in:
mattraykowski 2010-09-03 08:02:04 -06:00
commit c3e4ffbe26
340 changed files with 12461 additions and 3053 deletions

View file

@ -45,6 +45,7 @@ default_c
*_debug *_debug
core core
*.pc *.pc
*.gch
# Mac OS X compile # Mac OS X compile
*.dylib *.dylib
@ -133,12 +134,14 @@ moc_*.cpp
*.moc *.moc
# Misc garbage # Misc garbage
*.rej
*.orig *.orig
*.cachefile *.cachefile
*.cache *.cache
*.patch *.patch
*.7z *.7z
external external
.svn
# build # build
code/nel/build/* code/nel/build/*

View file

@ -11,6 +11,8 @@
# * NL_SHARE_PREFIX (default: $CMAKE_INSTALL_PREFIX/share) # * NL_SHARE_PREFIX (default: $CMAKE_INSTALL_PREFIX/share)
# * NL_BIN_PREFIX (default: $CMAKE_INSTALL_PREFIX/bin) # * NL_BIN_PREFIX (default: $CMAKE_INSTALL_PREFIX/bin)
# * NL_SBIN_PREFIX (default: $CMAKE_INSTALL_PREFIX/sbin) # * NL_SBIN_PREFIX (default: $CMAKE_INSTALL_PREFIX/sbin)
# * NL_LIB_PREFIX (default: $CMAKE_INSTALL_PREFIX/lib)
# * NL_DRIVER_PREFIX (default: $CMAKE_INSTALL_PREFIX/lib (windows) or $CMAKE_INSTALL_PREFIX/lib/nel)
# * Enable building of documentation: add -DBUILD_DOCUMENTATION:BOOL=ON - new make target: DoxygenDoc # * Enable building of documentation: add -DBUILD_DOCUMENTATION:BOOL=ON - new make target: DoxygenDoc
# * Updating version: update header (above) but also update NL_VERSION below. # * Updating version: update header (above) but also update NL_VERSION below.
# * To build binary archive, use the 'package' target. # * To build binary archive, use the 'package' target.
@ -38,10 +40,23 @@ INCLUDE(${CMAKE_ROOT}/Modules/Documentation.cmake OPTIONAL)
CHECK_OUT_OF_SOURCE() CHECK_OUT_OF_SOURCE()
IF(WIN32) IF(WIN32)
SET(CMAKE_INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/include;${CMAKE_INCLUDE_PATH}") IF(NOT EXTERNAL_PATH)
SET(EXTERNAL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/3rdParty" CACHE PATH "3rd party libraries root path.")
ENDIF(NOT EXTERNAL_PATH)
IF(NOT EXTERNAL_INCLUDE_PATH)
SET(EXTERNAL_INCLUDE_PATH "${EXTERNAL_PATH}/include" CACHE PATH "3rd party libraries include path.")
ENDIF(NOT EXTERNAL_INCLUDE_PATH)
IF(NOT EXTERNAL_LIBRARY_PATH)
SET(EXTERNAL_LIBRARY_PATH "${EXTERNAL_PATH}/lib" CACHE PATH "3rd party libraries lib path.")
ENDIF(NOT EXTERNAL_LIBRARY_PATH)
SET(CMAKE_INCLUDE_PATH "${EXTERNAL_INCLUDE_PATH};${CMAKE_INCLUDE_PATH}")
# Stupid hack for FindOpenAL.cmake # Stupid hack for FindOpenAL.cmake
SET(CMAKE_INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/3rdParty;${CMAKE_INCLUDE_PATH}") SET(CMAKE_INCLUDE_PATH "${EXTERNAL_PATH};${CMAKE_INCLUDE_PATH}")
SET(CMAKE_LIBRARY_PATH "${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/lib;${CMAKE_LIBRARY_PATH}") SET(CMAKE_LIBRARY_PATH "${EXTERNAL_LIBRARY_PATH};${CMAKE_LIBRARY_PATH}")
IF(NOT DEFINED ENV{QTDIR}) IF(NOT DEFINED ENV{QTDIR})
SET(ENV{QTDIR} "c:/qt/4.5.0") SET(ENV{QTDIR} "c:/qt/4.5.0")
ENDIF(NOT DEFINED ENV{QTDIR}) ENDIF(NOT DEFINED ENV{QTDIR})
@ -82,6 +97,10 @@ FIND_PACKAGE(Jpeg)
NL_SETUP_BUILD() NL_SETUP_BUILD()
IF(WITH_MFC)
FIND_PACKAGE(MFC)
ENDIF(WITH_MFC)
NL_SETUP_BUILD_FLAGS() NL_SETUP_BUILD_FLAGS()
INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/PCHSupport.cmake) INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/PCHSupport.cmake)
@ -93,6 +112,8 @@ ENDIF(FINAL_VERSION)
IF(WITH_QT) IF(WITH_QT)
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtXml REQUIRED) FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtXml REQUIRED)
ENDIF(WITH_QT) ENDIF(WITH_QT)
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
IF(WITH_NEL) IF(WITH_NEL)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/nel/include) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/nel/include)

View file

@ -44,5 +44,6 @@ MACRO(NL_CONFIGURE_CHECKS)
CHECK_FUNCTION_EXISTS("stat64" HAVE_STAT64) CHECK_FUNCTION_EXISTS("stat64" HAVE_STAT64)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
ADD_DEFINITIONS(-DHAVE_CONFIG_H) ADD_DEFINITIONS(-DHAVE_CONFIG_H)
ENDMACRO(NL_CONFIGURE_CHECKS) ENDMACRO(NL_CONFIGURE_CHECKS)

View file

@ -0,0 +1,55 @@
# - Locate Luabind library
# This module defines
# LUABIND_LIBRARY, the library to link against
# LUABIND_FOUND, if false, do not try to link to LUABIND
# LUABIND_INCLUDE_DIR, where to find headers.
IF(LUABIND_LIBRARY AND LUABIND_INCLUDE_DIR)
# in cache already
SET(LUABIND_FIND_QUIETLY TRUE)
ENDIF(LUABIND_LIBRARY AND LUABIND_INCLUDE_DIR)
FIND_PATH(LUABIND_INCLUDE_DIR
luabind.hpp
PATHS
$ENV{LUABIND_DIR}/include
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
PATH_SUFFIXES luabind
)
FIND_LIBRARY(LUABIND_LIBRARY
NAMES luabind libluabind luabind_d libluabind_d libluabindd
PATHS
$ENV{LUABIND_DIR}/lib
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
IF(LUABIND_LIBRARY AND LUABIND_INCLUDE_DIR)
SET(LUABIND_FOUND "YES")
IF(NOT LUABIND_FIND_QUIETLY)
MESSAGE(STATUS "Found Luabind: ${LUABIND_LIBRARY}")
ENDIF(NOT LUABIND_FIND_QUIETLY)
ELSE(LUABIND_LIBRARY AND LUABIND_INCLUDE_DIR)
IF(NOT LUABIND_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find Luabind!")
ENDIF(NOT LUABIND_FIND_QUIETLY)
ENDIF(LUABIND_LIBRARY AND LUABIND_INCLUDE_DIR)

View file

@ -32,6 +32,8 @@ FIND_LIBRARY(STLPORT_LIBRARY_DEBUG
stlportstld_x stlportstld_x
stlportstld_x.5.2 stlportstld_x.5.2
stlportd stlportd
stlportd_statix
stlportd_static
PATHS PATHS
/usr/local/lib /usr/local/lib
/usr/lib /usr/lib
@ -51,6 +53,8 @@ FIND_LIBRARY(STLPORT_LIBRARY_RELEASE
stlport stlport
stlport_x stlport_x
stlport_x.5.2 stlport_x.5.2
stlport_statix
stlport_static
PATHS PATHS
/usr/local/lib /usr/local/lib
/usr/lib /usr/lib

View file

@ -27,7 +27,7 @@ MACRO(NL_TARGET_DRIVER name)
IF(WITH_STATIC_DRIVERS) IF(WITH_STATIC_DRIVERS)
ADD_LIBRARY(${name} STATIC ${ARGN}) ADD_LIBRARY(${name} STATIC ${ARGN})
ELSE(WITH_STATIC_DRIVERS) ELSE(WITH_STATIC_DRIVERS)
ADD_LIBRARY(${name} SHARED ${ARGN}) ADD_LIBRARY(${name} MODULE ${ARGN})
ENDIF(WITH_STATIC_DRIVERS) ENDIF(WITH_STATIC_DRIVERS)
ENDMACRO(NL_TARGET_DRIVER) ENDMACRO(NL_TARGET_DRIVER)
@ -38,15 +38,18 @@ ENDMACRO(NL_TARGET_DRIVER)
### ###
MACRO(NL_DEFAULT_PROPS name label) MACRO(NL_DEFAULT_PROPS name label)
GET_TARGET_PROPERTY(type ${name} TYPE) GET_TARGET_PROPERTY(type ${name} TYPE)
IF((${type} STREQUAL SHARED_LIBRARY) OR (${type} STREQUAL MODULE_LIBRARY)) IF(${type} STREQUAL SHARED_LIBRARY)
# Set versions only if target is a shared library or a module # Set versions only if target is a shared library
SET(versions VERSION ${NL_VERSION} SOVERSION ${NL_VERSION_MAJOR})
ENDIF((${type} STREQUAL SHARED_LIBRARY) OR (${type} STREQUAL MODULE_LIBRARY))
SET_TARGET_PROPERTIES(${name} PROPERTIES SET_TARGET_PROPERTIES(${name} PROPERTIES
${versions} VERSION ${NL_VERSION} SOVERSION ${NL_VERSION_MAJOR}
PROJECT_LABEL ${label}) PROJECT_LABEL ${label})
ELSE(${type} STREQUAL SHARED_LIBRARY)
SET_TARGET_PROPERTIES(${name} PROPERTIES
PROJECT_LABEL ${label})
ENDIF(${type} STREQUAL SHARED_LIBRARY)
ENDMACRO(NL_DEFAULT_PROPS) ENDMACRO(NL_DEFAULT_PROPS)
### ###
# Adds the target suffix on Windows. # Adds the target suffix on Windows.
# Argument: name - the library's target name. # Argument: name - the library's target name.
@ -209,7 +212,7 @@ MACRO(NL_SETUP_NEL_DEFAULT_OPTIONS)
OPTION(WITH_NEL_MAXPLUGIN "Build NeL 3dsMax Plugin" OFF) OPTION(WITH_NEL_MAXPLUGIN "Build NeL 3dsMax Plugin" OFF)
OPTION(WITH_NEL_SAMPLES "Build NeL Samples" ON ) OPTION(WITH_NEL_SAMPLES "Build NeL Samples" ON )
OPTION(WITH_NEL_TESTS "Build NeL Unit Tests" ON ) OPTION(WITH_NEL_TESTS "Build NeL Unit Tests" ON )
OPTION(WITH_MFC "With MFC Support" ON )
ENDMACRO(NL_SETUP_NEL_DEFAULT_OPTIONS) ENDMACRO(NL_SETUP_NEL_DEFAULT_OPTIONS)
MACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS) MACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS)
@ -248,12 +251,25 @@ MACRO(NL_SETUP_BUILD)
ENDIF(CMAKE_BUILD_TYPE MATCHES "Debug") ENDIF(CMAKE_BUILD_TYPE MATCHES "Debug")
IF(WIN32) IF(WIN32)
SET(NL_DEBUG_CFLAGS "/EHa /Ob1 /Zi") # don't use a /O[012x] flag if you want custom optimizations
SET(NL_RELEASE_CFLAGS "/EHa /Zi /Ox /Ob2 /Oi /Ot /Oy /GT /GF /GS-") SET(SPEED_OPTIMIZATIONS "/Ob2 /Oi /Ot /Oy /GT /GF /GS-")
SET(NL_RELEASEDEBUG_CFLAGS "/EHa /DNL_RELEASE_DEBUG /Zi /Ob2 /GF") SET(SIZE_OPTIMIZATIONS "/O1")
# without inlining it's unusable, use custom optimizations again
SET(MIN_OPTIMIZATIONS "/Ob1")
SET(CMAKE_C_FLAGS_DEBUG "/MDd /Zi /RTC1 /D_DEBUG ${MIN_OPTIMIZATIONS}")
SET(CMAKE_C_FLAGS_RELEASE "/MD /Zi /D NDEBUG ${SPEED_OPTIMIZATIONS}")
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "/MD /Zi /D NDEBUG ${SPEED_OPTIMIZATIONS}")
SET(CMAKE_C_FLAGS_MINSIZEREL "/MD /D NDEBUG ${SIZE_OPTIMIZATIONS}")
SET(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
SET(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_C_FLAGS_RELWITHDEBINFO})
SET(CMAKE_CXX_FLAGS_MINSIZEREL ${CMAKE_C_FLAGS_MINSIZEREL})
SET(NL_DEBUG_CFLAGS "/EHa /Zi")
SET(NL_RELEASE_CFLAGS "/EHa /Zi")
SET(NL_DEBUG_LINK_FLAGS "/NODEFAULTLIB:msvcrt") SET(NL_DEBUG_LINK_FLAGS "/NODEFAULTLIB:msvcrt")
SET(NL_RELEASE_LINK_FLAGS "/OPT:REF /OPT:ICF") SET(NL_RELEASE_LINK_FLAGS "/OPT:REF /OPT:ICF")
SET(NL_RELEASEDEBUG_LINK_FLAGS "/OPT:REF /OPT:ICF")
ELSE(WIN32) ELSE(WIN32)
SET(PLATFORM_CFLAGS "-ftemplate-depth-24 -D_REENTRANT -Wall -ansi -W -Wpointer-arith -Wsign-compare -Wno-deprecated-declarations -Wno-multichar -Wno-long-long -Wno-unused") SET(PLATFORM_CFLAGS "-ftemplate-depth-24 -D_REENTRANT -Wall -ansi -W -Wpointer-arith -Wsign-compare -Wno-deprecated-declarations -Wno-multichar -Wno-long-long -Wno-unused")
IF(WITH_COVERAGE) IF(WITH_COVERAGE)
@ -265,7 +281,6 @@ MACRO(NL_SETUP_BUILD)
ENDIF(NOT APPLE) ENDIF(NOT APPLE)
SET(NL_DEBUG_CFLAGS "-DNL_DEBUG -g") SET(NL_DEBUG_CFLAGS "-DNL_DEBUG -g")
SET(NL_RELEASE_CFLAGS "-DNL_RELEASE -O6 -g") SET(NL_RELEASE_CFLAGS "-DNL_RELEASE -O6 -g")
SET(NL_RELEASEDEBUG_CFLAGS "-DNL_RELEASE_DEBUG -g -finline-functions -O3 ")
SET(NL_NONE_CFLAGS "-DNL_RELEASE -g -finline-functions -O2 ") SET(NL_NONE_CFLAGS "-DNL_RELEASE -g -finline-functions -O2 ")
ENDIF(WIN32) ENDIF(WIN32)
@ -308,14 +323,14 @@ MACRO(NL_SETUP_BUILD_FLAGS)
SET(CMAKE_LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE} ${NL_RELEASE_LINK_FLAGS} ${PLATFORM_LINKFLAGS} ") SET(CMAKE_LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE} ${NL_RELEASE_LINK_FLAGS} ${PLATFORM_LINKFLAGS} ")
## RelWithDebInfo ## RelWithDebInfo
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${NL_RELEASEDEBUG_CFLAGS} ${PLATFORM_CFLAGS} ") SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${NL_RELEASE_CFLAGS} ${PLATFORM_CFLAGS} ")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${NL_RELEASEDEBUG_CFLAGS} ${PLATFORM_CFLAGS} ") SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${NL_RELEASE_CFLAGS} ${PLATFORM_CFLAGS} ")
SET(CMAKE_LINK_FLAGS_RELWITHDEBINFO "${CMAKE_LINK_FLAGS_RELWITHDEBINFO} ${NL_RELEASEDEBUG_LINK_FLAGS} ${PLATFORM_LINKFLAGS} ") SET(CMAKE_LINK_FLAGS_RELWITHDEBINFO "${CMAKE_LINK_FLAGS_RELWITHDEBINFO} ${NL_RELEASE_LINK_FLAGS} ${PLATFORM_LINKFLAGS} ")
## MinSizeRel ## MinSizeRel
SET(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} ${NL_RELEASEDEBUG_CFLAGS} ${PLATFORM_CFLAGS} ") SET(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} ${NL_RELEASE_CFLAGS} ${PLATFORM_CFLAGS} ")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${NL_RELEASEDEBUG_CFLAGS} ${PLATFORM_CFLAGS} ") SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${NL_RELEASE_CFLAGS} ${PLATFORM_CFLAGS} ")
SET(CMAKE_LINK_FLAGS_MINSIZEREL "${CMAKE_LINK_FLAGS_MINSIZEREL} ${NL_RELEASEDEBUG_LINK_CFLAGS} ${PLATFORM_LINKFLAGS} ") SET(CMAKE_LINK_FLAGS_MINSIZEREL "${CMAKE_LINK_FLAGS_MINSIZEREL} ${NL_RELEASE_LINK_CFLAGS} ${PLATFORM_LINKFLAGS} ")
ENDMACRO(NL_SETUP_BUILD_FLAGS) ENDMACRO(NL_SETUP_BUILD_FLAGS)
MACRO(NL_SETUP_PREFIX_PATHS) MACRO(NL_SETUP_PREFIX_PATHS)
@ -355,4 +370,22 @@ MACRO(NL_SETUP_PREFIX_PATHS)
ENDIF(WIN32) ENDIF(WIN32)
ENDIF(NOT NL_BIN_PREFIX) ENDIF(NOT NL_BIN_PREFIX)
## Allow override of install_prefix/lib path.
IF(NOT NL_LIB_PREFIX)
IF(WIN32)
SET(NL_LIB_PREFIX "../lib" CACHE PATH "Installation path for libraries.")
ELSE(WIN32)
SET(NL_LIB_PREFIX "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation path for libraries.")
ENDIF(WIN32)
ENDIF(NOT NL_LIB_PREFIX)
## Allow override of install_prefix/lib path.
IF(NOT NL_DRIVER_PREFIX)
IF(WIN32)
SET(NL_DRIVER_PREFIX "../lib" CACHE PATH "Installation path for drivers.")
ELSE(WIN32)
SET(NL_DRIVER_PREFIX "${CMAKE_INSTALL_PREFIX}/lib/nel" CACHE PATH "Installation path for drivers.")
ENDIF(WIN32)
ENDIF(NOT NL_DRIVER_PREFIX)
ENDMACRO(NL_SETUP_PREFIX_PATHS) ENDMACRO(NL_SETUP_PREFIX_PATHS)

View file

@ -1,3 +1,18 @@
# * NL_LIB_PREFIX (default: $CMAKE_INSTALL_PREFIX/lib)
# * NL_DRIVER_PREFIX (default: $CMAKE_INSTALL_PREFIX/lib (windows) or $CMAKE_INSTALL_PREFIX/lib/nel)
SET(EXTERNAL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../3rdParty" CACHE PATH "3rd party libraries root path.")
ENDIF(NOT EXTERNAL_PATH)
IF(NOT EXTERNAL_INCLUDE_PATH)
SET(EXTERNAL_INCLUDE_PATH "${EXTERNAL_PATH}/include" CACHE PATH "3rd party libraries include path.")
ENDIF(NOT EXTERNAL_INCLUDE_PATH)
IF(NOT EXTERNAL_LIBRARY_PATH)
SET(EXTERNAL_LIBRARY_PATH "${EXTERNAL_PATH}/lib" CACHE PATH "3rd party libraries lib path.")
ENDIF(NOT EXTERNAL_LIBRARY_PATH)
SET(CMAKE_INCLUDE_PATH "${EXTERNAL_INCLUDE_PATH};${CMAKE_INCLUDE_PATH}")
PROJECT(NeL CXX C) PROJECT(NeL CXX C)
IF(WITH_STATIC_DRIVERS) IF(WITH_STATIC_DRIVERS)
@ -55,6 +70,10 @@ IF(WITH_SOUND)
ENDIF(WITH_DRIVER_FMOD) ENDIF(WITH_DRIVER_FMOD)
ENDIF(WITH_SOUND) ENDIF(WITH_SOUND)
IF(WITH_MFC)
FIND_PACKAGE(MFC)
ENDIF(WITH_MFC)
IF(WITH_GTK) IF(WITH_GTK)
FIND_PACKAGE(GTK2) FIND_PACKAGE(GTK2)
ENDIF(WITH_GTK) ENDIF(WITH_GTK)
@ -95,6 +114,11 @@ IF(WIN32)
ENDIF(WIN32) ENDIF(WIN32)
ADD_SUBDIRECTORY(include) ADD_SUBDIRECTORY(include)
# config.h configuration and use by projects
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(src)
IF(WITH_NEL_SAMPLES) IF(WITH_NEL_SAMPLES)
@ -102,8 +126,6 @@ IF(WITH_NEL_SAMPLES)
ENDIF(WITH_NEL_SAMPLES) ENDIF(WITH_NEL_SAMPLES)
IF(WITH_NEL_TOOLS) IF(WITH_NEL_TOOLS)
IF(WIN32) FIND_PACKAGE(Squish)
FIND_PACKAGE(S3TC)
ENDIF(WIN32)
ADD_SUBDIRECTORY(tools) ADD_SUBDIRECTORY(tools)
ENDIF(WITH_NEL_TOOLS) ENDIF(WITH_NEL_TOOLS)

43
code/nel/config.h.cmake Normal file
View file

@ -0,0 +1,43 @@
#ifndef CONFIG_H
#define CONFIG_H
#cmakedefine HAVE_DL_H 1
#cmakedefine HAVE_EXECINFO_H 1
#cmakedefine HAVE_ICONV 1
#cmakedefine HAVE_INTTYPES_H 1
#cmakedefine HAVE_LANGINFO_CODESET 1
#cmakedefine HAVE_LIMITS_H 1
#cmakedefine HAVE_MALLOC_H 1
#cmakedefine HAVE_PAM_MISC_H 1
#cmakedefine HAVE_PAM_PAM_APPL_H 1
#cmakedefine HAVE_PTHREAD 1
#cmakedefine HAVE_SECURITY_PAM_APPL_H 1
#cmakedefine HAVE_SECURITY_PAM_MISC_H 1
#cmakedefine HAVE_STDINT_H 1
#cmakedefine HAVE_SYS_MOUNT_H 1
#cmakedefine HAVE_SYS_PARAM_H 1
#cmakedefine HAVE_SYS_STATVFS_H 1
#cmakedefine HAVE_SYS_TYPES_H 1
#cmakedefine HAVE_UNISTD_H 1
#cmakedefine HAVE_UTIME_H 1
#cmakedefine HAVE_WCHAR_H 1
#cmakedefine HAVE_BACKTRACE 1
#cmakedefine HAVE_INET_NTOA 1
#cmakedefine HAVE_INET_NTOP 1
#cmakedefine HAVE_INET_PTON 1
#cmakedefine HAVE_STRERROR 1
#cmakedefine HAVE_STRLCAT 1
#cmakedefine HAVE_STRPTIME 1
#cmakedefine HAVE_STRTOK_R 1
#cmakedefine HAVE_STRTOULL 1
#cmakedefine HAVE_STATVFS 1
#cmakedefine HAVE_STAT64 1
#cmakedefine NL_BIN_PREFIX "${NL_BIN_PREFIX}"
#cmakedefine NL_ETC_PREFIX "${NL_ETC_PREFIX}"
#cmakedefine NL_SHARE_PREFIX "${NL_SHARE_PREFIX}"
#cmakedefine NL_LIB_PREFIX "${NL_LIB_PREFIX}"
#cmakedefine NL_DRIVER_PREFIX "${NL_DRIVER_PREFIX}"
#endif // CONFIG_H

View file

@ -143,6 +143,9 @@ protected:
/// Constructor with ip address, port=0 /// Constructor with ip address, port=0
CInetAddress( const in_addr *ip, const char *hostname = 0); CInetAddress( const in_addr *ip, const char *hostname = 0);
/// Update _HostName from _SockAddr
void updateHostName();
private: private:
// Called in all constructors. Calls CBaseSocket::init(). // Called in all constructors. Calls CBaseSocket::init().

View file

@ -1,19 +1,14 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
ADD_EXECUTABLE(nl_sample_cegui ${SRC}) ADD_EXECUTABLE(nl_sample_cegui WIN32 ${SRC})
ADD_DEFINITIONS(-DCEGUI_DATA_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_cegui/datafiles/\\"") ADD_DEFINITIONS(-DCEGUI_DATA_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_cegui/datafiles/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${CEGUI_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(${CEGUI_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(nl_sample_cegui ${LIBXML2_LIBRARIES} ${CEGUI_LIBRARY} ${PLATFORM_LINKFLAGS} nelmisc nel3d)
IF(WIN32) TARGET_LINK_LIBRARIES(nl_sample_cegui ${CEGUI_LIBRARY} ${PLATFORM_LINKFLAGS} nelmisc nel3d)
SET_TARGET_PROPERTIES(nl_sample_cegui PROPERTIES NL_DEFAULT_PROPS(nl_sample_cegui "NeL, Samples, 3D: NeL CEGUI Demo")
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}" NL_ADD_RUNTIME_FLAGS(nl_sample_cegui)
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
PROJECT_LABEL "NeL, Samples, 3D: NeL CEGUI Demo")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_cegui RUNTIME DESTINATION bin COMPONENT samples3d) INSTALL(TARGETS nl_sample_cegui RUNTIME DESTINATION bin COMPONENT samples3d)
INSTALL(DIRECTORY datafiles/ INSTALL(DIRECTORY datafiles/

View file

@ -4,13 +4,10 @@ ADD_EXECUTABLE(nl_sample_clusterview WIN32 ${SRC})
ADD_DEFINITIONS(-DCV_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_clusterview/\\"") ADD_DEFINITIONS(-DCV_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_clusterview/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(nl_sample_clusterview ${PLATFORM_LINKFLAGS} nelmisc nel3d)
TARGET_LINK_LIBRARIES(nl_sample_clusterview ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc nel3d)
NL_ADD_RUNTIME_FLAGS(nl_sample_clusterview) NL_ADD_RUNTIME_FLAGS(nl_sample_clusterview)
NL_DEFAULT_PROPS(nl_sample_clusterview "NeL, Samples, 3D: Cluster Viewer") NL_DEFAULT_PROPS(nl_sample_clusterview "NeL, Samples, 3D: Cluster Viewer")
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_clusterview RUNTIME DESTINATION bin COMPONENT samples3d) INSTALL(TARGETS nl_sample_clusterview RUNTIME DESTINATION bin COMPONENT samples3d)
INSTALL(FILES main.cvs readme.txt DESTINATION share/nel/nl_sample_clusterview COMPONENT samples3d) INSTALL(FILES main.cvs readme.txt DESTINATION share/nel/nl_sample_clusterview COMPONENT samples3d)
INSTALL(DIRECTORY groups/ INSTALL(DIRECTORY groups/

View file

@ -4,12 +4,9 @@ ADD_EXECUTABLE(nl_sample_font WIN32 ${SRC})
ADD_DEFINITIONS(-DFONT_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_font/\\"") ADD_DEFINITIONS(-DFONT_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_font/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(nl_sample_font ${PLATFORM_LINKFLAGS} nelmisc nel3d)
TARGET_LINK_LIBRARIES(nl_sample_font ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc nel3d)
NL_DEFAULT_PROPS(nl_sample_font "NeL, Samples, 3D: Font") NL_DEFAULT_PROPS(nl_sample_font "NeL, Samples, 3D: Font")
NL_ADD_RUNTIME_FLAGS(nl_sample_font) NL_ADD_RUNTIME_FLAGS(nl_sample_font)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_font RUNTIME DESTINATION bin COMPONENT samples3d) INSTALL(TARGETS nl_sample_font RUNTIME DESTINATION bin COMPONENT samples3d)
INSTALL(FILES beteckna.ttf DESTINATION share/nel/nl_sample_font COMPONENT samples3d) INSTALL(FILES beteckna.ttf DESTINATION share/nel/nl_sample_font COMPONENT samples3d)

View file

@ -17,12 +17,15 @@ SET( QT_USE_QTOPENGL TRUE)
QT4_WRAP_CPP( QTNEL_MOC_SRCS ${QTNEL_HDR}) QT4_WRAP_CPP( QTNEL_MOC_SRCS ${QTNEL_HDR})
#ADD_EXECUTABLE(qtnel ${TILE_EDIT_SRC} ${TILE_EDIT_MOC_SRCS} ${TILE_EDIT_RC_SRCS} ${TILE_EDIT_UI_HDRS}) #ADD_EXECUTABLE(qtnel ${TILE_EDIT_SRC} ${TILE_EDIT_MOC_SRCS} ${TILE_EDIT_RC_SRCS} ${TILE_EDIT_UI_HDRS})
ADD_EXECUTABLE(qtnel ${QTNEL_SRC} ${QTNEL_MOC_SRCS} ${QTNEL_HDR}) ADD_EXECUTABLE(qtnel WIN32 ${QTNEL_SRC} ${QTNEL_MOC_SRCS} ${QTNEL_HDR})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${QT_INCLUDES}) INCLUDE_DIRECTORIES(${QT_INCLUDES})
TARGET_LINK_LIBRARIES(qtnel ${LIBXML2_LIBRARIES} ${QT_LIBRARIES} ${QT_QTOPENGL_LIBRARY} ${PLATFORM_LINKFLAGS} nelmisc nel3d)
SET_TARGET_PROPERTIES(qtnel PROPERTIES PROJECT_LABEL "Samples, 3D: Qt Viewer Widget") TARGET_LINK_LIBRARIES(qtnel ${QT_LIBRARIES} ${QT_QTOPENGL_LIBRARY} ${PLATFORM_LINKFLAGS} nelmisc nel3d)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS} ${QT_DEFINITIONS}) NL_DEFAULT_PROPS(qtnel "Samples, 3D: Qt Viewer Widget")
NL_ADD_RUNTIME_FLAGS(qtnel)
ADD_DEFINITIONS(${QT_DEFINITIONS})
INSTALL(TARGETS qtnel RUNTIME DESTINATION bin COMPONENT samples3d) INSTALL(TARGETS qtnel RUNTIME DESTINATION bin COMPONENT samples3d)

View file

@ -2,17 +2,8 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_shapeview WIN32 ${SRC}) ADD_EXECUTABLE(nl_sample_shapeview WIN32 ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(nl_sample_shapeview ${PLATFORM_LINKFLAGS} nelmisc nel3d)
TARGET_LINK_LIBRARIES(nl_sample_shapeview ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc nel3d) NL_DEFAULT_PROPS(nl_sample_shapeview "NeL, Samples, 3D: Shape Viewer")
NL_DEFAULT_PROPS(nl_sample_shapeview "NeL, Samples, 3D: Font")
NL_ADD_RUNTIME_FLAGS(nl_sample_shapeview) NL_ADD_RUNTIME_FLAGS(nl_sample_shapeview)
IF(WIN32)
SET_TARGET_PROPERTIES(nl_sample_shapeview PROPERTIES
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "NeL, Samples, 3D: Shape Viewer")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_shapeview RUNTIME DESTINATION bin COMPONENT samples3d) INSTALL(TARGETS nl_sample_shapeview RUNTIME DESTINATION bin COMPONENT samples3d)

View file

@ -4,13 +4,10 @@ ADD_EXECUTABLE(nl_sample_georges ${SRC})
ADD_DEFINITIONS(-DGF_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_georges/\\"") ADD_DEFINITIONS(-DGF_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_georges/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(nl_sample_georges ${PLATFORM_LINKFLAGS} nelgeorges nelmisc)
TARGET_LINK_LIBRARIES(nl_sample_georges ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelgeorges nelmisc)
NL_DEFAULT_PROPS(nl_sample_georges "NeL, Samples: Georges") NL_DEFAULT_PROPS(nl_sample_georges "NeL, Samples: Georges")
NL_ADD_RUNTIME_FLAGS(nl_sample_georges) NL_ADD_RUNTIME_FLAGS(nl_sample_georges)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_georges RUNTIME DESTINATION bin COMPONENT samplesgeorges) INSTALL(TARGETS nl_sample_georges RUNTIME DESTINATION bin COMPONENT samplesgeorges)
INSTALL(FILES boolean.typ coolfilesinfo.dfn default.sample_config int.typ positiondata.dfn sample_config.dfn string.typ sheet_id.bin INSTALL(FILES boolean.typ coolfilesinfo.dfn default.sample_config int.typ positiondata.dfn sample_config.dfn string.typ sheet_id.bin
DESTINATION share/nel/nl_sample_georges/ COMPONENT samplesgeorges) DESTINATION share/nel/nl_sample_georges/ COMPONENT samplesgeorges)

View file

@ -2,11 +2,8 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_debug ${SRC}) ADD_EXECUTABLE(nl_sample_debug ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(nl_sample_debug ${PLATFORM_LINKFLAGS} nelmisc)
TARGET_LINK_LIBRARIES(nl_sample_debug ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc)
NL_DEFAULT_PROPS(nl_sample_debug "NeL, Samples, Misc: Debugging") NL_DEFAULT_PROPS(nl_sample_debug "NeL, Samples, Misc: Debugging")
NL_ADD_RUNTIME_FLAGS(nl_sample_debug) NL_ADD_RUNTIME_FLAGS(nl_sample_debug)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_debug RUNTIME DESTINATION bin COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_debug RUNTIME DESTINATION bin COMPONENT samplesmisc)

View file

@ -4,12 +4,9 @@ ADD_EXECUTABLE(nl_sample_i18n ${SRC})
ADD_DEFINITIONS(-DNL_LANG_DATA="\\"${NL_SHARE_PREFIX}/nl_sample_i18n/\\"") ADD_DEFINITIONS(-DNL_LANG_DATA="\\"${NL_SHARE_PREFIX}/nl_sample_i18n/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(nl_sample_i18n ${PLATFORM_LINKFLAGS} nelmisc)
TARGET_LINK_LIBRARIES(nl_sample_i18n ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc)
NL_DEFAULT_PROPS(nl_sample_i18n "NeL, Samples, Misc: I18N") NL_DEFAULT_PROPS(nl_sample_i18n "NeL, Samples, Misc: I18N")
NL_ADD_RUNTIME_FLAGS(nl_sample_i18n) NL_ADD_RUNTIME_FLAGS(nl_sample_i18n)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_i18n RUNTIME DESTINATION bin COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_i18n RUNTIME DESTINATION bin COMPONENT samplesmisc)
INSTALL(FILES de.uxt en.uxt fr.uxt DESTINATION share/nel/nl_sample_i18n COMPONENT samplesmisc) INSTALL(FILES de.uxt en.uxt fr.uxt DESTINATION share/nel/nl_sample_i18n COMPONENT samplesmisc)

View file

@ -2,11 +2,8 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_log ${SRC}) ADD_EXECUTABLE(nl_sample_log ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(nl_sample_log ${PLATFORM_LINKFLAGS} nelmisc)
TARGET_LINK_LIBRARIES(nl_sample_log ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc)
NL_DEFAULT_PROPS(nl_sample_log "NeL, Samples, Misc: Logging") NL_DEFAULT_PROPS(nl_sample_log "NeL, Samples, Misc: Logging")
NL_ADD_RUNTIME_FLAGS(nl_sample_log) NL_ADD_RUNTIME_FLAGS(nl_sample_log)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_log RUNTIME DESTINATION bin COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_log RUNTIME DESTINATION bin COMPONENT samplesmisc)

View file

@ -2,11 +2,8 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_strings ${SRC}) ADD_EXECUTABLE(nl_sample_strings ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(nl_sample_strings ${PLATFORM_LINKFLAGS} nelmisc)
TARGET_LINK_LIBRARIES(nl_sample_strings ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc)
NL_DEFAULT_PROPS(nl_sample_strings "NeL, Samples, Misc: Strings") NL_DEFAULT_PROPS(nl_sample_strings "NeL, Samples, Misc: Strings")
NL_ADD_RUNTIME_FLAGS(nl_sample_strings) NL_ADD_RUNTIME_FLAGS(nl_sample_strings)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_strings RUNTIME DESTINATION bin COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_strings RUNTIME DESTINATION bin COMPONENT samplesmisc)

View file

@ -2,10 +2,8 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_types_check ${SRC}) ADD_EXECUTABLE(nl_sample_types_check ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(nl_sample_types_check ${PLATFORM_LINKFLAGS} nelmisc)
TARGET_LINK_LIBRARIES(nl_sample_types_check ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc) NL_DEFAULT_PROPS(nl_sample_types_check "Samples, MISC: Types check sample")
NL_ADD_RUNTIME_FLAGS(nl_sample_types_check) NL_ADD_RUNTIME_FLAGS(nl_sample_types_check)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_types_check RUNTIME DESTINATION bin COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_types_check RUNTIME DESTINATION bin COMPONENT samplesmisc)

View file

@ -1,28 +1,16 @@
ADD_EXECUTABLE(nl_sample_chatclient client.cpp kbhit.cpp kbhit.h) ADD_EXECUTABLE(nl_sample_chatclient client.cpp kbhit.cpp kbhit.h)
ADD_EXECUTABLE(nl_sample_chatserver server.cpp) ADD_EXECUTABLE(nl_sample_chatserver WIN32 server.cpp)
ADD_DEFINITIONS(-DCHAT_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_chat/\\"") ADD_DEFINITIONS(-DCHAT_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_chat/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_chatclient ${PLATFORM_LINKFLAGS} nelmisc nelnet) TARGET_LINK_LIBRARIES(nl_sample_chatclient ${PLATFORM_LINKFLAGS} nelmisc nelnet)
NL_DEFAULT_PROPS(nl_sample_chatclient "Samples, Net, Chat: Chat Client")
NL_ADD_RUNTIME_FLAGS(nl_sample_chatclient)
TARGET_LINK_LIBRARIES(nl_sample_chatserver ${PLATFORM_LINKFLAGS} nelmisc nelnet) TARGET_LINK_LIBRARIES(nl_sample_chatserver ${PLATFORM_LINKFLAGS} nelmisc nelnet)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_chatserver "NeL, Samples, Net, Chat: Chat Server")
SET_TARGET_PROPERTIES(nl_sample_chatclient PROPERTIES NL_ADD_RUNTIME_FLAGS(nl_sample_chatserver)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
LINK_FLAGS "/SUBSYSTEM:CONSOLE"
PROJECT_LABEL "NeL, Samples, Net, Chat: Chat Client")
SET_TARGET_PROPERTIES(nl_sample_chatserver PROPERTIES
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
PROJECT_LABEL "NeL, Samples, Net, Chat: Chat Server")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_chatclient nl_sample_chatserver RUNTIME DESTINATION bin COMPONENT samplesnet) INSTALL(TARGETS nl_sample_chatclient nl_sample_chatserver RUNTIME DESTINATION bin COMPONENT samplesnet)
INSTALL(FILES chat_service.cfg client.cfg DESTINATION share/nel/nl_sample_chat COMPONENT samplesnet) INSTALL(FILES chat_service.cfg client.cfg DESTINATION share/nel/nl_sample_chat COMPONENT samplesnet)

View file

@ -1,25 +1,16 @@
ADD_EXECUTABLE(nl_sample_ct_ai_service ai_service.cpp) ADD_EXECUTABLE(nl_sample_ct_ai_service WIN32 ai_service.cpp)
ADD_EXECUTABLE(nl_sample_ct_gd_service gd_service.cpp) ADD_EXECUTABLE(nl_sample_ct_gd_service WIN32 gd_service.cpp)
ADD_DEFINITIONS(-DNL_CT_CFG="\\"${NL_SHARE_PREFIX}/nl_sample_class_transport/\\"") ADD_DEFINITIONS(-DNL_CT_CFG="\\"${NL_SHARE_PREFIX}/nl_sample_class_transport/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_ct_ai_service ${PLATFORM_LINKFLAGS} nelmisc nelnet) TARGET_LINK_LIBRARIES(nl_sample_ct_ai_service ${PLATFORM_LINKFLAGS} nelmisc nelnet)
NL_DEFAULT_PROPS(nl_sample_ct_ai_service "NeL, Samples, Net, Class Transport: AI Service")
NL_ADD_RUNTIME_FLAGS(nl_sample_ct_ai_service)
TARGET_LINK_LIBRARIES(nl_sample_ct_gd_service ${PLATFORM_LINKFLAGS} nelmisc nelnet) TARGET_LINK_LIBRARIES(nl_sample_ct_gd_service ${PLATFORM_LINKFLAGS} nelmisc nelnet)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_ct_gd_service "NeL, Samples, Net, Class Transport: GD Service")
SET_TARGET_PROPERTIES(nl_sample_ct_ai_service PROPERTIES NL_ADD_RUNTIME_FLAGS(nl_sample_ct_gd_service)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
PROJECT_LABEL "NeL, Samples, Net, Class Transport: AI Service")
SET_TARGET_PROPERTIES(nl_sample_ct_gd_service PROPERTIES
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
PROJECT_LABEL "NeL, Samples, Net, Class Transport: GD Service")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_ct_ai_service nl_sample_ct_gd_service RUNTIME DESTINATION bin COMPONENT samplesnet) INSTALL(TARGETS nl_sample_ct_ai_service nl_sample_ct_gd_service RUNTIME DESTINATION bin COMPONENT samplesnet)
INSTALL(FILES ai_service.cfg gd_service.cfg DESTINATION share/nel/nl_sample_class_transport COMPONENT samplesnet) INSTALL(FILES ai_service.cfg gd_service.cfg DESTINATION share/nel/nl_sample_class_transport COMPONENT samplesnet)

View file

@ -1,24 +1,16 @@
ADD_EXECUTABLE(nl_sample_ls_client client.cpp) ADD_EXECUTABLE(nl_sample_ls_client client.cpp)
ADD_EXECUTABLE(nl_sample_ls_fes frontend_service.cpp) ADD_EXECUTABLE(nl_sample_ls_fes WIN32 frontend_service.cpp)
ADD_DEFINITIONS(-DNL_LS_CFG="\\"${NL_SHARE_PREFIX}/nl_sample_login_system/\\"") ADD_DEFINITIONS(-DNL_LS_CFG="\\"${NL_SHARE_PREFIX}/nl_sample_login_system/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_ls_client ${PLATFORM_LINKFLAGS} nelmisc nelnet) TARGET_LINK_LIBRARIES(nl_sample_ls_client ${PLATFORM_LINKFLAGS} nelmisc nelnet)
NL_DEFAULT_PROPS(nl_sample_ls_client "NeL, Samples, Net, Login Service: LS Client")
NL_ADD_RUNTIME_FLAGS(nl_sample_ls_client)
TARGET_LINK_LIBRARIES(nl_sample_ls_fes ${PLATFORM_LINKFLAGS} nelmisc nelnet) TARGET_LINK_LIBRARIES(nl_sample_ls_fes ${PLATFORM_LINKFLAGS} nelmisc nelnet)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_ls_fes "NeL, Samples, Net, Login Service: LS Frontend")
SET_TARGET_PROPERTIES(nl_sample_ls_client PROPERTIES NL_ADD_RUNTIME_FLAGS(nl_sample_ls_fes)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "NeL, Samples, Net, Login Service: LS Client")
SET_TARGET_PROPERTIES(nl_sample_ls_fes PROPERTIES
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
PROJECT_LABEL "NeL, Samples, Net, Login Service: LS Frontend")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_ls_client nl_sample_ls_fes RUNTIME DESTINATION bin COMPONENT samplesnet) INSTALL(TARGETS nl_sample_ls_client nl_sample_ls_fes RUNTIME DESTINATION bin COMPONENT samplesnet)
INSTALL(FILES frontend_service.cfg client.cfg DESTINATION share/nel/nl_sample_login_system COMPONENT samplesnet) INSTALL(FILES frontend_service.cfg client.cfg DESTINATION share/nel/nl_sample_login_system COMPONENT samplesnet)

View file

@ -95,7 +95,7 @@ int main (int argc, char **argv)
Password = fgets(buf, 256, stdin); Password = fgets(buf, 256, stdin);
} }
// crypt with md5 the password // crypt with md5 the password
CHashKeyMD5 hk = getMD5((uint8*)Password.c_str(), Password.size()); CHashKeyMD5 hk = getMD5((uint8*)Password.c_str(), (uint32)Password.size());
string CPassword = hk.toString(); string CPassword = hk.toString();
nlinfo("The crypted password is %s", CPassword.c_str()); nlinfo("The crypted password is %s", CPassword.c_str());

View file

@ -10,7 +10,6 @@ IF(WITH_3D)
ADD_DEFINITIONS(-DUSE_3D) ADD_DEFINITIONS(-DUSE_3D)
ENDIF(WITH_3D) ENDIF(WITH_3D)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_udpclient ${PLATFORM_LINKFLAGS} nelmisc nelnet nel3d) TARGET_LINK_LIBRARIES(nl_sample_udpclient ${PLATFORM_LINKFLAGS} nelmisc nelnet nel3d)
TARGET_LINK_LIBRARIES(nl_sample_udpserver ${PLATFORM_LINKFLAGS} nelmisc nelnet) TARGET_LINK_LIBRARIES(nl_sample_udpserver ${PLATFORM_LINKFLAGS} nelmisc nelnet)
NL_DEFAULT_PROPS(nl_sample_udpclient "NeL, Samples, Net, UDP: UDP Client") NL_DEFAULT_PROPS(nl_sample_udpclient "NeL, Samples, Net, UDP: UDP Client")
@ -18,8 +17,6 @@ NL_DEFAULT_PROPS(nl_sample_udpserver "NeL, Samples, Net, UDP: UDP Server")
NL_ADD_RUNTIME_FLAGS(nl_sample_udpclient) NL_ADD_RUNTIME_FLAGS(nl_sample_udpclient)
NL_ADD_RUNTIME_FLAGS(nl_sample_udpserver) NL_ADD_RUNTIME_FLAGS(nl_sample_udpserver)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_udpclient nl_sample_udpserver RUNTIME DESTINATION bin COMPONENT samplesnet) INSTALL(TARGETS nl_sample_udpclient nl_sample_udpserver RUNTIME DESTINATION bin COMPONENT samplesnet)
INSTALL(FILES bench_service.cfg client.cfg readme.txt DESTINATION share/nel/nl_sample_udp COMPONENT samplesnet) INSTALL(FILES bench_service.cfg client.cfg readme.txt DESTINATION share/nel/nl_sample_udp COMPONENT samplesnet)

View file

@ -213,8 +213,8 @@ void cbInfo (CMessage &msgin, TSockId from, CCallbackNetBase &netbase)
#ifdef USE_3D #ifdef USE_3D
string token = "MeanPongTime "; string token = "MeanPongTime ";
uint pos=line.find (token); string::size_type pos=line.find (token);
uint pos2=line.find (" ", pos+token.size()); string::size_type pos2=line.find (" ", pos+token.size());
uint32 val = atoi(line.substr (pos+token.size(), pos2-pos-token.size()).c_str()); uint32 val = atoi(line.substr (pos+token.size(), pos2-pos-token.size()).c_str());
LagGraph.addOneValue ((float)val); LagGraph.addOneValue ((float)val);
#endif #endif
@ -309,7 +309,7 @@ int main( int argc, char **argv )
UTextContext *TextContext= Driver->createTextContext(CPath::lookup("n019003l.pfb")); UTextContext *TextContext= Driver->createTextContext(CPath::lookup("n019003l.pfb"));
TextContext->setFontSize(18); TextContext->setFontSize(18);
Camera.setPerspective(80*Pi/180, 1.33, 0.15, 1000); Camera.setPerspective(80*(float)Pi/180, 1.33f, 0.15f, 1000);
CEvent3dMouseListener MouseListener; CEvent3dMouseListener MouseListener;
MouseListener.addToServer(Driver->EventServer); MouseListener.addToServer(Driver->EventServer);

View file

@ -81,7 +81,7 @@ void CGraph::render (NL3D::UDriver *Driver, NL3D::UTextContext *TextContext)
CVertexBuffer vbuffer; CVertexBuffer vbuffer;
vbuffer.setVertexFormat (CVertexBuffer::PositionFlag); vbuffer.setVertexFormat (CVertexBuffer::PositionFlag);
vbuffer.setNumVertices (Values.size() * 2); vbuffer.setNumVertices ((uint32)Values.size() * 2);
float pos = X+Width-1; float pos = X+Width-1;
uint i = 0; uint i = 0;

View file

@ -53,7 +53,7 @@ struct TReceivedMessage
void vectorToAddress(); void vectorToAddress();
/// Set "disconnection" message for the current AddrFrom /// Set "disconnection" message for the current AddrFrom
void setTypeEvent( TEventType t ) { *_Data.begin() = t; } void setTypeEvent( TEventType t ) { *_Data.begin() = (uint8)t; }
void setDate() { *(sint64*)&(*(_Data.begin()+1)) = NLMISC::CTime::getLocalTime(); } void setDate() { *(sint64*)&(*(_Data.begin()+1)) = NLMISC::CTime::getLocalTime(); }
@ -69,7 +69,7 @@ struct TReceivedMessage
const uint8 *userDataR() const { return &*_Data.begin() + MsgHeaderSize; } const uint8 *userDataR() const { return &*_Data.begin() + MsgHeaderSize; }
/// Return the size of user data /// Return the size of user data
uint32 userSize() { return _Data.size() - MsgHeaderSize; } uint32 userSize() { return (uint32)_Data.size() - MsgHeaderSize; }
/// Return the data vector (event type header byte + user data) /// Return the data vector (event type header byte + user data)
vector<uint8>& data() { return _Data; } vector<uint8>& data() { return _Data; }

View file

@ -1,20 +1,13 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
ADD_EXECUTABLE(nl_sample_pacs ${SRC}) ADD_EXECUTABLE(nl_sample_pacs WIN32 ${SRC})
ADD_DEFINITIONS(-DNL_PACS_DATA="\\"${NL_SHARE_PREFIX}/nl_sample_pacs/\\"") ADD_DEFINITIONS(-DNL_PACS_DATA="\\"${NL_SHARE_PREFIX}/nl_sample_pacs/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(nl_sample_pacs ${PLATFORM_LINKFLAGS} nelmisc nelpacs nel3d)
TARGET_LINK_LIBRARIES(nl_sample_pacs ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc nelpacs nel3d)
IF(WIN32)
SET_TARGET_PROPERTIES(nl_sample_pacs PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS")
ENDIF(WIN32)
NL_DEFAULT_PROPS(nl_sample_pacs "NeL, Samples: PACS") NL_DEFAULT_PROPS(nl_sample_pacs "NeL, Samples: PACS")
NL_ADD_RUNTIME_FLAGS(nl_sample_pacs) NL_ADD_RUNTIME_FLAGS(nl_sample_pacs)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_pacs RUNTIME DESTINATION bin COMPONENT samplespacs) INSTALL(TARGETS nl_sample_pacs RUNTIME DESTINATION bin COMPONENT samplespacs)
INSTALL(FILES readme.txt DESTINATION share/nel/nl_sample_pacs COMPONENT samplespacs) INSTALL(FILES readme.txt DESTINATION share/nel/nl_sample_pacs COMPONENT samplespacs)
INSTALL(DIRECTORY shapes/ INSTALL(DIRECTORY shapes/

View file

@ -264,7 +264,7 @@ int main ()
} }
// Keyboard // Keyboard
if (arrayObj.size()) if (!arrayObj.empty())
{ {
// Manipulate selected primitive // Manipulate selected primitive
keyboard (pDriver, deltaTime, *(arrayObj[selected])); keyboard (pDriver, deltaTime, *(arrayObj[selected]));
@ -273,7 +273,8 @@ int main ()
if (pDriver->AsyncListener.isKeyDown (KeyDELETE)) if (pDriver->AsyncListener.isKeyDown (KeyDELETE))
{ {
// remove all but one // remove all but one
if (arrayObj.size() > 1) { if (arrayObj.size() > 1)
{
arrayObj[arrayObj.size()-1]->remove (*container, *pScene); arrayObj[arrayObj.size()-1]->remove (*container, *pScene);
arrayObj.resize (arrayObj.size()-1); arrayObj.resize (arrayObj.size()-1);
} }
@ -281,7 +282,7 @@ int main ()
// Check selected // Check selected
if (selected>=arrayObj.size()) if (selected>=arrayObj.size())
selected=arrayObj.size()-1; selected=(uint)arrayObj.size()-1;
//if (selected<0) //if (selected<0)
// selected=0; // selected=0;
@ -312,8 +313,7 @@ int main ()
clearColor=CRGBA::Black; clearColor=CRGBA::Black;
// Setup view matrix // Setup view matrix
int size=arrayObj.size(); if (!arrayObj.empty())
if (size)
{ {
// Setup hotspot for the 3d listener // Setup hotspot for the 3d listener
plistener->setHotSpot (arrayObj[selected]->getPos()); plistener->setHotSpot (arrayObj[selected]->getPos());

View file

@ -2,16 +2,14 @@ FILE(GLOB SRC *.cpp *.h)
ADD_EXECUTABLE(nl_sample_sound_sources ${SRC}) ADD_EXECUTABLE(nl_sample_sound_sources ${SRC})
ADD_DEFINITIONS(-DNL_SOUND_DATA="\\"${NL_SHARE_PREFIX}/nl_sample_sound/\\"") ADD_DEFINITIONS(-DNL_SOUND_DATA="\\"${NL_SHARE_PREFIX}/nl_sample_sound/\\"" ${LIBXML2_DEFINITIONS})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_sound_sources ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc nelsound nelsnd_lowlevel)
TARGET_LINK_LIBRARIES(nl_sample_sound_sources ${PLATFORM_LINKFLAGS} nelmisc nelsound)
NL_DEFAULT_PROPS(nl_sample_sound_sources "NeL, Samples: Sound System") NL_DEFAULT_PROPS(nl_sample_sound_sources "NeL, Samples: Sound System")
NL_ADD_RUNTIME_FLAGS(nl_sample_sound_sources) NL_ADD_RUNTIME_FLAGS(nl_sample_sound_sources)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_sound_sources RUNTIME DESTINATION bin COMPONENT samplessound) INSTALL(TARGETS nl_sample_sound_sources RUNTIME DESTINATION bin COMPONENT samplessound)
INSTALL(DIRECTORY data/ INSTALL(DIRECTORY data/
DESTINATION share/nel/nl_sample_sound/data DESTINATION share/nel/nl_sample_sound/data

View file

@ -151,7 +151,7 @@ void OnMove( const CVector& listenerpos )
*/ */
int main() int main()
{ {
new CApplicationContext(); // crash at end if on stack ... CApplicationContext *appContext = new CApplicationContext(); // crash at end if on stack ...
// Initialization // Initialization
Init(); Init();
@ -208,4 +208,8 @@ int main()
delete src1; delete src2; delete src1; delete src2;
delete AudioMixer; delete AudioMixer;
delete appContext;
return 0;
} }

View file

@ -664,10 +664,13 @@ SOURCE_GROUP(Shadows FILES
NL_TARGET_LIB(nel3d ${SRC}) NL_TARGET_LIB(nel3d ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIRS} ${JPEG_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(nel3d nelmisc ${FREETYPE_LIBRARY} ${JPEG_LIBRARY})
NL_DEFAULT_PROPS(nel3d "NeL, Library: 3D") TARGET_LINK_LIBRARIES(nel3d nelmisc ${FREETYPE_LIBRARY})
SET_TARGET_PROPERTIES(nel3d PROPERTIES LINK_INTERFACE_LIBRARIES "")
NL_DEFAULT_PROPS(nel3d "NeL, Library: NeL 3D")
NL_ADD_STATIC_VID_DRIVERS(nel3d) NL_ADD_STATIC_VID_DRIVERS(nel3d)
NL_ADD_LIB_SUFFIX(nel3d) NL_ADD_LIB_SUFFIX(nel3d)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})

View file

@ -2,9 +2,9 @@ FILE(GLOB SRC *.cpp *.h *.def)
NL_TARGET_DRIVER(nel_drv_direct3d_win ${SRC}) NL_TARGET_DRIVER(nel_drv_direct3d_win ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FREETYPE_INC} ${DXSDK_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_direct3d_win nel3d ${LIBXML2_LIBRARIES} ${FREETYPE_LIB} ${DXSDK_D3DX9_LIBRARY} ${DXSDK_D3D9_LIBRARY} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY}) TARGET_LINK_LIBRARIES(nel_drv_direct3d_win nel3d ${DXSDK_D3DX9_LIBRARY} ${DXSDK_D3D9_LIBRARY} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY})
NL_DEFAULT_PROPS(nel_drv_direct3d_win "NeL, Driver, Video: Direct3D") NL_DEFAULT_PROPS(nel_drv_direct3d_win "NeL, Driver, Video: Direct3D")
NL_ADD_RUNTIME_FLAGS(nel_drv_direct3d_win) NL_ADD_RUNTIME_FLAGS(nel_drv_direct3d_win)
@ -12,13 +12,11 @@ NL_ADD_LIB_SUFFIX(nel_drv_direct3d_win)
ADD_DEFINITIONS(/Ddriver_direct3d_EXPORTS) ADD_DEFINITIONS(/Ddriver_direct3d_EXPORTS)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_direct3d_win ${CMAKE_CURRENT_SOURCE_DIR}/stddirect3d.h ${CMAKE_CURRENT_SOURCE_DIR}/stddirect3d.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_direct3d_win ${CMAKE_CURRENT_SOURCE_DIR}/stddirect3d.h ${CMAKE_CURRENT_SOURCE_DIR}/stddirect3d.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
INSTALL(TARGETS nel_drv_direct3d_win LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin COMPONENT drivers3d) INSTALL(TARGETS nel_drv_direct3d_win LIBRARY DESTINATION ${NL_DRIVER_PREFIX} ARCHIVE DESTINATION lib RUNTIME DESTINATION bin COMPONENT drivers3d)
IF(WITH_MAXPLUGIN) IF(WITH_MAXPLUGIN)
INSTALL(TARGETS nel_drv_direct3d_win RUNTIME DESTINATION maxplugin COMPONENT drivers3d) INSTALL(TARGETS nel_drv_direct3d_win RUNTIME DESTINATION maxplugin COMPONENT drivers3d)
ENDIF(WITH_MAXPLUGIN) ENDIF(WITH_MAXPLUGIN)

View file

@ -12,8 +12,9 @@ ENDIF(WIN32)
NL_TARGET_DRIVER(${NLDRV_OGL_LIB} ${SRC}) NL_TARGET_DRIVER(${NLDRV_OGL_LIB} ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} nel3d nelmisc ${OPENGL_LIBRARIES})
TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} nel3d nelmisc ${OPENGL_gl_LIBRARY})
NL_DEFAULT_PROPS(${NLDRV_OGL_LIB} "NeL, Driver, Video: OpenGL") NL_DEFAULT_PROPS(${NLDRV_OGL_LIB} "NeL, Driver, Video: OpenGL")
NL_ADD_LIB_SUFFIX(${NLDRV_OGL_LIB}) NL_ADD_LIB_SUFFIX(${NLDRV_OGL_LIB})
NL_ADD_RUNTIME_FLAGS(${NLDRV_OGL_LIB}) NL_ADD_RUNTIME_FLAGS(${NLDRV_OGL_LIB})
@ -27,7 +28,7 @@ ELSE(WIN32)
TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${CARBON}) TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${CARBON})
TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${COCOA}) TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${COCOA})
ELSE(APPLE) ELSE(APPLE)
TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${X11_LIBRARIES}) TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${X11_LIB})
IF(XF86VidMode_FOUND) IF(XF86VidMode_FOUND)
INCLUDE_DIRECTORIES(${XF86VidMode_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${XF86VidMode_INCLUDE_DIR})
ADD_DEFINITIONS(${XF86VidMode_DEFINITIONS}) ADD_DEFINITIONS(${XF86VidMode_DEFINITIONS})
@ -41,13 +42,11 @@ ELSE(WIN32)
ENDIF(APPLE) ENDIF(APPLE)
ENDIF(WIN32) ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(NOT APPLE AND WITH_PCH) IF(NOT APPLE AND WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(${NLDRV_OGL_LIB} ${CMAKE_CURRENT_SOURCE_DIR}/stdopengl.h ${CMAKE_CURRENT_SOURCE_DIR}/stdopengl.cpp) ADD_NATIVE_PRECOMPILED_HEADER(${NLDRV_OGL_LIB} ${CMAKE_CURRENT_SOURCE_DIR}/stdopengl.h ${CMAKE_CURRENT_SOURCE_DIR}/stdopengl.cpp)
ENDIF(NOT APPLE AND WITH_PCH) ENDIF(NOT APPLE AND WITH_PCH)
INSTALL(TARGETS ${NLDRV_OGL_LIB} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin COMPONENT drivers3d) INSTALL(TARGETS ${NLDRV_OGL_LIB} LIBRARY DESTINATION ${NL_DRIVER_PREFIX} ARCHIVE DESTINATION lib RUNTIME DESTINATION bin COMPONENT drivers3d)
IF(WITH_MAXPLUGIN) IF(WITH_MAXPLUGIN)
INSTALL(TARGETS ${NLDRV_OGL_LIB} RUNTIME DESTINATION maxplugin COMPONENT drivers3d) INSTALL(TARGETS ${NLDRV_OGL_LIB} RUNTIME DESTINATION maxplugin COMPONENT drivers3d)
ENDIF(WITH_MAXPLUGIN) ENDIF(WITH_MAXPLUGIN)

View file

@ -56,9 +56,13 @@ namespace NL3D
bool GlWndProc(CDriverGL *driver, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) bool GlWndProc(CDriverGL *driver, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{ {
H_AUTO_OGL(GlWndProc) H_AUTO_OGL(GlWndProc)
if (!driver)
return false;
if(message == WM_SIZE) if(message == WM_SIZE)
{ {
if (driver != NULL) if (!driver->_FullScreen)
{ {
RECT rect; RECT rect;
GetClientRect (driver->_win, &rect); GetClientRect (driver->_win, &rect);
@ -70,7 +74,7 @@ bool GlWndProc(CDriverGL *driver, HWND hWnd, UINT message, WPARAM wParam, LPARAM
} }
else if(message == WM_MOVE) else if(message == WM_MOVE)
{ {
if (driver != NULL) if (!driver->_FullScreen)
{ {
RECT rect; RECT rect;
GetWindowRect (hWnd, &rect); GetWindowRect (hWnd, &rect);
@ -113,14 +117,37 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM l
trapMessage = GlWndProc (pDriver, hWnd, message, wParam, lParam); trapMessage = GlWndProc (pDriver, hWnd, message, wParam, lParam);
} }
// we don't want Windows to erase background
if (message == WM_ERASEBKGND)
{
return TRUE;
}
if (message == WM_SYSCOMMAND)
{
switch (wParam)
{
#ifdef NL_DISABLE_MENU #ifdef NL_DISABLE_MENU
// disable menu (F10, ALT and ALT+SPACE key doesn't freeze or open the menu) // disable menu (F10, ALT and ALT+SPACE key doesn't freeze or open the menu)
if(message == WM_SYSCOMMAND && wParam == SC_KEYMENU) case SC_KEYMENU:
return 0;
#endif // NL_DISABLE_MENU #endif // NL_DISABLE_MENU
// Screensaver Trying To Start?
case SC_SCREENSAVE:
// Monitor Trying To Enter Powersave?
case SC_MONITORPOWER:
// Prevent From Happening
return 0;
default:
break;
}
}
// disable menu (default ALT-F4 behavior is disabled) // disable menu (default ALT-F4 behavior is disabled)
if(message == WM_CLOSE) if (message == WM_CLOSE)
{ {
if(pDriver && pDriver->ExitFunc) if(pDriver && pDriver->ExitFunc)
{ {
@ -219,21 +246,6 @@ bool GlWndProc(CDriverGL *driver, XEvent &e)
} }
return true; return true;
/*
else if (message == WM_ACTIVATE)
{
WORD fActive = LOWORD(wParam);
if (fActive == WA_INACTIVE)
{
driver->_WndActive = false;
}
else
{
driver->_WndActive = true;
}
}
*/
} }
#endif // NL_OS_UNIX #endif // NL_OS_UNIX
@ -1442,6 +1454,9 @@ bool CDriverGL::setWindowStyle(EWindowStyle windowStyle)
if (_win == EmptyWindow || !_DestroyWindow) if (_win == EmptyWindow || !_DestroyWindow)
return true; return true;
if (getWindowStyle() == windowStyle)
return true;
#if defined(NL_OS_WINDOWS) #if defined(NL_OS_WINDOWS)
// get current style // get current style
@ -1493,6 +1508,12 @@ bool CDriverGL::setWindowStyle(EWindowStyle windowStyle)
#elif defined(NL_OS_UNIX) #elif defined(NL_OS_UNIX)
XWindowAttributes attr;
XGetWindowAttributes(_dpy, _win, &attr);
// if window is mapped use events else properties
if (attr.map_state != IsUnmapped)
{
// Toggle fullscreen // Toggle fullscreen
XEvent xev; XEvent xev;
xev.xclient.type = ClientMessage; xev.xclient.type = ClientMessage;
@ -1512,6 +1533,24 @@ bool CDriverGL::setWindowStyle(EWindowStyle windowStyle)
nlwarning("3D: Failed to toggle to fullscreen"); nlwarning("3D: Failed to toggle to fullscreen");
return false; return false;
} }
}
else
{
Atom _NET_WM_STATE = XInternAtom(_dpy, "_NET_WM_STATE", False);
if (windowStyle == EWSFullscreen)
{
Atom _NET_WM_STATE_FULLSCREEN = XInternAtom(_dpy, "_NET_WM_STATE_FULLSCREEN", False);
// set state property to fullscreen
XChangeProperty(_dpy, _win, _NET_WM_STATE, XA_ATOM, 32, PropModeReplace, (const unsigned char*)&_NET_WM_STATE_FULLSCREEN, 1);
}
else
{
// delete state property
XDeleteProperty(_dpy, _win, _NET_WM_STATE);
}
}
// show window (hack to avoid black window bug) // show window (hack to avoid black window bug)
if (_WindowVisible) if (_WindowVisible)

View file

@ -25,6 +25,9 @@
#include "nel/3d/vertex_buffer.h" #include "nel/3d/vertex_buffer.h"
#include "nel/3d/index_buffer.h" #include "nel/3d/index_buffer.h"
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif // HAVE_CONFIG_H
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
# define NOMINMAX # define NOMINMAX
@ -75,6 +78,10 @@ IDriver *CDRU::createGlDriver() throw (EDru)
// hInst=LoadLibrary(NL3D_GL_DLL_NAME); // hInst=LoadLibrary(NL3D_GL_DLL_NAME);
CLibrary driverLib; CLibrary driverLib;
#if defined(NL_OS_UNIX) && defined(NL_DRIVER_PREFIX)
driverLib.addLibPath(NL_DRIVER_PREFIX);
#endif
// if (!hInst) // if (!hInst)
if (!driverLib.loadLibrary(NL3D_GL_DLL_NAME, true, true, false)) if (!driverLib.loadLibrary(NL3D_GL_DLL_NAME, true, true, false))
{ {

View file

@ -1671,14 +1671,19 @@ void CPatch::getCurrentTileTLIColors(uint ts, uint tt, NLMISC::CRGBA corners[4]
CRGBA tbMiddle; CRGBA tbMiddle;
// left. // left.
tbEdges[0].avg2RGBOnly(tbCorners[0], tbCorners[2]); tbEdges[0].avg2RGBOnly(tbCorners[0], tbCorners[2]);
tbEdges[0].A = 255;
// bottom // bottom
tbEdges[1].avg2RGBOnly(tbCorners[2], tbCorners[3]); tbEdges[1].avg2RGBOnly(tbCorners[2], tbCorners[3]);
tbEdges[1].A = 255;
// right // right
tbEdges[2].avg2RGBOnly(tbCorners[1], tbCorners[3]); tbEdges[2].avg2RGBOnly(tbCorners[1], tbCorners[3]);
tbEdges[2].A = 255;
// up // up
tbEdges[3].avg2RGBOnly(tbCorners[0], tbCorners[1]); tbEdges[3].avg2RGBOnly(tbCorners[0], tbCorners[1]);
tbEdges[3].A = 255;
// middle. // middle.
tbMiddle.avg2RGBOnly(tbEdges[0], tbEdges[2]); tbMiddle.avg2RGBOnly(tbEdges[0], tbEdges[2]);
tbMiddle.A = 255;
// just copy result according to tile pos in tessBlock. // just copy result according to tile pos in tessBlock.
if(tlt==0) if(tlt==0)

View file

@ -106,8 +106,8 @@ void CPatchUVLocator::build(const CPatch *patchCenter, sint edgeCenter, CPatch::
// Find the position. // Find the position.
//============================= //=============================
// Find the uv coord at start of the edge, for 2 patchs. // Find the uv coord at start of the edge, for 2 patchs.
CVector2f uvCenter; CVector2f uvCenter(0.f, 0.f);
CVector2f uvNeighbor; CVector2f uvNeighbor(0.f, 0.f);
float decal; float decal;
// find the uv at start of edgeCenter, + decal due to bind 1/X. // find the uv at start of edgeCenter, + decal due to bind 1/X.

View file

@ -1121,6 +1121,8 @@ void CVegetableManager::addInstance(CVegetableInstanceGroup *ig,
CVegetableLightEx &vegetLex= ig->VegetableLightEx; CVegetableLightEx &vegetLex= ig->VegetableLightEx;
// Color of pointLights modulated by diffuse. // Color of pointLights modulated by diffuse.
CRGBA diffusePL[2]; CRGBA diffusePL[2];
diffusePL[0] = CRGBA::Black;
diffusePL[1] = CRGBA::Black;
if(vegetLex.NumLights>=1) if(vegetLex.NumLights>=1)
{ {
diffusePL[0].modulateFromColorRGBOnly(diffuseRGBA, vegetLex.Color[0]); diffusePL[0].modulateFromColorRGBOnly(diffuseRGBA, vegetLex.Color[0]);
@ -2491,6 +2493,8 @@ uint CVegetableManager::updateInstanceLighting(CVegetableInstanceGroup *ig, uin
CVegetableLightEx &vegetLex= ig->VegetableLightEx; CVegetableLightEx &vegetLex= ig->VegetableLightEx;
// Color of pointLights modulated by diffuse. // Color of pointLights modulated by diffuse.
CRGBA diffusePL[2]; CRGBA diffusePL[2];
diffusePL[0] = CRGBA::Black;
diffusePL[1] = CRGBA::Black;
if(vegetLex.NumLights>=1) if(vegetLex.NumLights>=1)
{ {
diffusePL[0].modulateFromColorRGBOnly(vegetLI.MatDiffuse, vegetLex.Color[0]); diffusePL[0].modulateFromColorRGBOnly(vegetLI.MatDiffuse, vegetLex.Color[0]);

View file

@ -1732,8 +1732,8 @@ void CZoneLighter::addTriangles (const CMeshBase &meshBase, const CMeshGeom &mes
CVector v2=modelMT*(*vba.getVertexCoordPointer (triIndex[tri*3+2])); CVector v2=modelMT*(*vba.getVertexCoordPointer (triIndex[tri*3+2]));
// UV // UV
float u[3]; float u[3] = { 0.f };
float v[3]; float v[3] = { 0.f };
for (uint i=0; i<3; i++) for (uint i=0; i<3; i++)
{ {
// Get UV coordinates // Get UV coordinates
@ -1764,8 +1764,8 @@ void CZoneLighter::addTriangles (const CMeshBase &meshBase, const CMeshGeom &mes
CVector v2=modelMT*(*vba.getVertexCoordPointer (triIndex[tri*3+2])); CVector v2=modelMT*(*vba.getVertexCoordPointer (triIndex[tri*3+2]));
// UV // UV
float u[3]; float u[3] = { 0.f };
float v[3]; float v[3] = { 0.f };
for (uint i=0; i<3; i++) for (uint i=0; i<3; i++)
{ {
// Get UV coordinates // Get UV coordinates
@ -1898,8 +1898,8 @@ void CZoneLighter::addTriangles (const CMeshBase &meshBase, const CMeshMRMGeom &
CVector v2=modelMT*(*vba.getVertexCoordPointer (triIndex[tri*3+2])); CVector v2=modelMT*(*vba.getVertexCoordPointer (triIndex[tri*3+2]));
// UV // UV
float u[3]; float u[3] = { 0.f };
float v[3]; float v[3] = { 0.f };
for (uint i=0; i<3; i++) for (uint i=0; i<3; i++)
{ {
// Get UV coordinates // Get UV coordinates

View file

@ -7,8 +7,10 @@ SOURCE_GROUP(headers FILES ${PRIV_H} ${PUB_H})
NL_TARGET_LIB(nelgeorges ${SRC}) NL_TARGET_LIB(nelgeorges ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelgeorges nelmisc)
NL_DEFAULT_PROPS(nelgeorges "NeL, Library: Georges") TARGET_LINK_LIBRARIES(nelgeorges ${LIBXML2_LIBRARIES} nelmisc)
SET_TARGET_PROPERTIES(nelgeorges PROPERTIES LINK_INTERFACE_LIBRARIES "")
NL_DEFAULT_PROPS(nelgeorges "NeL, Library: NeL Georges")
NL_ADD_LIB_SUFFIX(nelgeorges) NL_ADD_LIB_SUFFIX(nelgeorges)

View file

@ -3,12 +3,18 @@ FILE(GLOB SRC *.cpp *.h)
NL_TARGET_LIB(nelligo ${SRC}) NL_TARGET_LIB(nelligo ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelligo ${LIBXML2_LIBRARIES} nelmisc) TARGET_LINK_LIBRARIES(nelligo ${LIBXML2_LIBRARIES} nelmisc)
NL_DEFAULT_PROPS(nelligo "NeL, Library: Ligo") SET_TARGET_PROPERTIES(nelligo PROPERTIES LINK_INTERFACE_LIBRARIES "")
NL_DEFAULT_PROPS(nelligo "NeL, Library: NeL Ligo")
NL_ADD_LIB_SUFFIX(nelligo) NL_ADD_LIB_SUFFIX(nelligo)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nelligo ${CMAKE_CURRENT_SOURCE_DIR}/stdligo.h ${CMAKE_CURRENT_SOURCE_DIR}/stdligo.cpp)
ENDIF(WITH_PCH)
NL_GEN_PC(nel-ligo.pc) NL_GEN_PC(nel-ligo.pc)
INSTALL(TARGETS nelligo LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) INSTALL(TARGETS nelligo LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries)

View file

@ -14,6 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
#include "nel/ligo/ligo_config.h" #include "nel/ligo/ligo_config.h"
#include "nel/ligo/primitive.h" #include "nel/ligo/primitive.h"

View file

@ -14,6 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
#include "ligo_error.h" #include "ligo_error.h"
namespace NLLIGO namespace NLLIGO

View file

@ -14,6 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
#include "ligo_material.h" #include "ligo_material.h"
// Ligo include // Ligo include

View file

@ -14,6 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include "nel/misc/hierarchical_timer.h" #include "nel/misc/hierarchical_timer.h"
#include "nel/ligo/primitive.h" #include "nel/ligo/primitive.h"

View file

@ -14,6 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
#include "nel/ligo/primitive_class.h" #include "nel/ligo/primitive_class.h"
#include "nel/ligo/primitive.h" #include "nel/ligo/primitive.h"
#include "nel/ligo/ligo_config.h" #include "nel/ligo/ligo_config.h"

View file

@ -14,6 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
#include "nel/ligo/primitive_configuration.h" #include "nel/ligo/primitive_configuration.h"
#include "nel/ligo/ligo_config.h" #include "nel/ligo/ligo_config.h"
#include "nel/ligo/primitive.h" #include "nel/ligo/primitive.h"

View file

@ -1,5 +1,17 @@
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
#include "nel/ligo/primitive_utils.h" #include "nel/ligo/primitive_utils.h"

View file

@ -0,0 +1,24 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
// leave not static else this workaround don't work
void dummyToAvoidStupidCompilerWarning_std_ligo_cpp()
{
}

View file

@ -0,0 +1,63 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "nel/misc/types_nl.h"
#include <algorithm>
#include <cmath>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <exception>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <limits>
#include <list>
#include <map>
#include <memory>
#include <numeric>
#include <set>
#include <string>
#include <typeinfo>
#include <utility>
#include <vector>
#include <cstdlib>
// Include from libxml2
#include <libxml/parser.h>
#include "nel/misc/debug.h"
#include "nel/misc/common.h"
#include "nel/misc/fast_mem.h"
#include "nel/misc/system_info.h"
#include "nel/misc/mem_displayer.h"
#include "nel/misc/matrix.h"
#include "nel/misc/stream.h"
#include "nel/misc/path.h"
#include "nel/misc/string_common.h"
#include "nel/misc/config_file.h"
#include "nel/misc/i_xml.h"
#include "nel/misc/o_xml.h"
#include "nel/misc/hierarchical_timer.h"
#include "nel/misc/vector.h"
#include "nel/misc/rgba.h"
#include "nel/misc/file.h"

View file

@ -14,6 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
#include "transition.h" #include "transition.h"
// Ligo include // Ligo include

View file

@ -15,6 +15,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
#include "zone_bank.h" #include "zone_bank.h"

View file

@ -14,6 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
// Ligo include // Ligo include
#include "zone_edge.h" #include "zone_edge.h"
#include "nel/ligo/ligo_config.h" #include "nel/ligo/ligo_config.h"

View file

@ -14,6 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
#include "zone_region.h" #include "zone_region.h"
using namespace NLMISC; using namespace NLMISC;

View file

@ -14,6 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdligo.h"
#include "zone_template.h" #include "zone_template.h"
#include "ligo_error.h" #include "ligo_error.h"
#include "nel/ligo/ligo_config.h" #include "nel/ligo/ligo_config.h"

View file

@ -3,8 +3,10 @@ FILE(GLOB SRC *.cpp *.h)
NL_TARGET_LIB(nellogic ${SRC}) NL_TARGET_LIB(nellogic ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nellogic ${LIBXML2_LIBRARIES} nelmisc nelnet) TARGET_LINK_LIBRARIES(nellogic ${LIBXML2_LIBRARIES} nelmisc nelnet)
NL_DEFAULT_PROPS(nellogic "NeL, Library: Logic") SET_TARGET_PROPERTIES(nellogic PROPERTIES LINK_INTERFACE_LIBRARIES "")
NL_DEFAULT_PROPS(nellogic "NeL, Library: NeL Logic")
NL_ADD_LIB_SUFFIX(nellogic) NL_ADD_LIB_SUFFIX(nellogic)

View file

@ -22,8 +22,10 @@ IF(WIN32)
ENDIF(WIN32) ENDIF(WIN32)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${PNG_INCLUDE_DIR} config_file) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${PNG_INCLUDE_DIR} config_file)
TARGET_LINK_LIBRARIES(nelmisc ${LIBXML2_LIBRARIES} ${PNG_LIBRARIES} ${WINSOCK2_LIB}) TARGET_LINK_LIBRARIES(nelmisc ${LIBXML2_LIBRARIES} ${PNG_LIBRARIES} ${WINSOCK2_LIB})
NL_DEFAULT_PROPS(nelmisc "NeL, Library: Misc") SET_TARGET_PROPERTIES(nelmisc PROPERTIES LINK_INTERFACE_LIBRARIES "")
NL_DEFAULT_PROPS(nelmisc "NeL, Library: NeL Misc")
NL_ADD_LIB_SUFFIX(nelmisc) NL_ADD_LIB_SUFFIX(nelmisc)

View file

@ -67,9 +67,6 @@ void *nlGetSymbolAddress(NL_LIB_HANDLE libHandle, const std::string &procName)
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
const string nlLibPrefix; // empty const string nlLibPrefix; // empty
const string nlLibExt(".dll"); const string nlLibExt(".dll");
#elif defined(NL_OS_MAC)
const string nlLibPrefix("lib");
const string nlLibExt(".dylib");
#elif defined(NL_OS_UNIX) #elif defined(NL_OS_UNIX)
const string nlLibPrefix("lib"); const string nlLibPrefix("lib");
const string nlLibExt(".so"); const string nlLibExt(".so");

View file

@ -305,6 +305,8 @@ bool CWinEventEmitter::processMessage (HWND hWnd, uint32 msg, WPARAM wParam, LPA
case WM_INPUTLANGCHANGE: case WM_INPUTLANGCHANGE:
if ( _IMEEventsEnabled ) if ( _IMEEventsEnabled )
{ {
// wParam = Specifies the character set of the new locale.
// lParam = Input locale identifier.
server->postEvent( new CEventIME( msg, (uint32)wParam, (uint32)lParam, this ) ); server->postEvent( new CEventIME( msg, (uint32)wParam, (uint32)lParam, this ) );
return true; // trap message return true; // trap message
} }

View file

@ -11,15 +11,12 @@ IF(WITH_GTK)
ENDIF(GTK2_FOUND) ENDIF(GTK2_FOUND)
ENDIF(WITH_GTK) ENDIF(WITH_GTK)
TARGET_LINK_LIBRARIES(nelnet nelmisc)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) SET_TARGET_PROPERTIES(nelnet PROPERTIES LINK_INTERFACE_LIBRARIES "")
TARGET_LINK_LIBRARIES(nelnet ${LIBXML2_LIBRARIES} nelmisc)
NL_DEFAULT_PROPS(nelnet "NeL, Library: Net") NL_DEFAULT_PROPS(nelnet "NeL, Library: Net")
NL_ADD_LIB_SUFFIX(nelnet) NL_ADD_LIB_SUFFIX(nelnet)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nelnet ${CMAKE_CURRENT_SOURCE_DIR}/stdnet.h ${CMAKE_CURRENT_SOURCE_DIR}/stdnet.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nelnet ${CMAKE_CURRENT_SOURCE_DIR}/stdnet.h ${CMAKE_CURRENT_SOURCE_DIR}/stdnet.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)

View file

@ -27,6 +27,8 @@
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
# include <winsock2.h> # include <winsock2.h>
# include <ws2tcpip.h> # include <ws2tcpip.h>
// for Windows 2000 compatibility
# include <wspiapi.h>
#elif defined NL_OS_UNIX #elif defined NL_OS_UNIX
# include <unistd.h> # include <unistd.h>
# include <sys/socket.h> # include <sys/socket.h>
@ -40,6 +42,9 @@
using namespace std; using namespace std;
using namespace NLMISC; using namespace NLMISC;
#ifndef NI_MAXHOST
# define NI_MAXHOST 1025
#endif
namespace NLNET namespace NLNET
{ {
@ -74,17 +79,29 @@ CInetAddress::CInetAddress( const in_addr *ip, const char *hostname )
} }
else else
{ {
hostent *phostent = gethostbyaddr( (char*)&ip->s_addr, 4, AF_INET ); updateHostName();
if ( phostent == NULL ) }
_Valid = true;
}
/*
* Update _HostName from _SockAddr current value
*/
void CInetAddress::updateHostName()
{
char host[NI_MAXHOST];
sint status = getnameinfo((struct sockaddr *) _SockAddr, sizeof (struct sockaddr), host, NI_MAXHOST, NULL, 0, NI_NUMERICSERV);
if ( status )
{ {
_HostName = ipAddress(); _HostName = ipAddress();
} }
else else
{ {
_HostName = string( phostent->h_name ); _HostName = string( host );
} }
}
_Valid = true;
} }
@ -148,16 +165,6 @@ bool operator==( const CInetAddress& a1, const CInetAddress& a2 )
*/ */
bool operator<( const CInetAddress& a1, const CInetAddress& a2 ) bool operator<( const CInetAddress& a1, const CInetAddress& a2 )
{ {
#ifdef NL_OS_WINDOWS
if ( a1._SockAddr->sin_addr.S_un.S_addr == a2._SockAddr->sin_addr.S_un.S_addr )
{
return ( a1.port() < a2.port() );
}
else
{
return ( a1._SockAddr->sin_addr.S_un.S_addr < a2._SockAddr->sin_addr.S_un.S_addr );
}
#elif defined NL_OS_UNIX
if ( a1._SockAddr->sin_addr.s_addr == a2._SockAddr->sin_addr.s_addr ) if ( a1._SockAddr->sin_addr.s_addr == a2._SockAddr->sin_addr.s_addr )
{ {
return ( a1.port() < a2.port() ); return ( a1.port() < a2.port() );
@ -166,7 +173,6 @@ bool operator<( const CInetAddress& a1, const CInetAddress& a2 )
{ {
return ( a1._SockAddr->sin_addr.s_addr < a2._SockAddr->sin_addr.s_addr ); return ( a1._SockAddr->sin_addr.s_addr < a2._SockAddr->sin_addr.s_addr );
} }
#endif
} }
@ -223,26 +229,59 @@ CInetAddress& CInetAddress::setByName( const std::string& hostName )
{ {
// Try to convert directly for addresses such as a.b.c.d // Try to convert directly for addresses such as a.b.c.d
in_addr iaddr; in_addr iaddr;
#ifdef NL_OS_WINDOWS
iaddr.S_un.S_addr = inet_addr( hostName.c_str() );
if ( iaddr.S_un.S_addr == INADDR_NONE )
#elif defined NL_OS_UNIX
iaddr.s_addr = inet_addr( hostName.c_str() ); iaddr.s_addr = inet_addr( hostName.c_str() );
if ( iaddr.s_addr == INADDR_NONE ) if ( iaddr.s_addr == INADDR_NONE )
#endif
{ {
// Otherwise use the traditional DNS look-up // Otherwise use the traditional DNS look-up
hostent *phostent = gethostbyname( hostName.c_str() ); struct addrinfo hints;
if ( phostent == NULL ) memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC; // AF_INET or AF_INET6 to force version
hints.ai_socktype = SOCK_STREAM;
struct addrinfo *res = NULL;
sint status = getaddrinfo(hostName.c_str(), NULL, &hints, &res);
if (status)
{ {
_Valid = false; _Valid = false;
LNETL0_DEBUG( "LNETL0: Network error: resolution of hostname '%s' failed", hostName.c_str() ); LNETL0_DEBUG( "LNETL0: Network error: resolution of hostname '%s' failed: %s", hostName.c_str(), gai_strerror(status) );
// return *this; // return *this;
throw ESocket( (string("Hostname resolution failed for ")+hostName).c_str() ); throw ESocket( (string("Hostname resolution failed for ")+hostName).c_str() );
} }
_HostName = string( phostent->h_name );
memcpy( &_SockAddr->sin_addr, phostent->h_addr, sizeof(in_addr) ); struct addrinfo *p = res;
// process all addresses
while (p != NULL)
{
// check address family
if (p->ai_family == AF_INET)
{
// ipv4
struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr;
// convert the IP to a string
_HostName = string(inet_ntoa(ipv4->sin_addr));
memcpy( &_SockAddr->sin_addr, &ipv4->sin_addr, sizeof(in_addr) );
}
else if (p->ai_family == AF_INET6)
{
// ipv6
// TODO: modify class to be able to handle IPv6
// struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr;
// convert the IP to a string
// inet_ntop(p->ai_family, addr, ipstr, sizeof(ipstr));
// memcpy( &_SockAddr->sin_addr, &ipv6->sin_addr, sizeof(in_addr) );
}
// process next address
p = p->ai_next;
}
// free the linked list
freeaddrinfo(res);
} }
else else
{ {
@ -275,15 +314,7 @@ void CInetAddress::setSockAddr( const sockaddr_in* saddr )
// Warning: when it can't find it, it take more than 4 seconds // Warning: when it can't find it, it take more than 4 seconds
if ( CInetAddress::RetrieveNames ) if ( CInetAddress::RetrieveNames )
{ {
hostent *phostent = gethostbyaddr( (char*)&saddr->sin_addr.s_addr, 4, AF_INET ); updateHostName();
if ( phostent == NULL )
{
_HostName = ipAddress();
}
else
{
_HostName = string( phostent->h_name );
}
} }
_Valid = true; _Valid = true;
} }
@ -476,20 +507,52 @@ std::vector<CInetAddress> CInetAddress::localAddresses()
// 2. Get address list // 2. Get address list
vector<CInetAddress> vect; vector<CInetAddress> vect;
uint i = 0; struct addrinfo hints;
for(;;) memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC; // AF_INET or AF_INET6 to force version
hints.ai_socktype = SOCK_STREAM;
struct addrinfo *res = NULL;
sint status = getaddrinfo(localhost, NULL, &hints, &res);
if (status)
{ {
hostent *phostent = gethostbyname( localhost ); // will come here if the local hostname (/etc/hostname in Linux) is not the real name
if ( phostent == NULL ) // will come here if the local hostname (/etc/hostname in Linux) is not the real name
throw ESocket( (string("Hostname resolution failed for ")+string(localhost)).c_str() ); throw ESocket( (string("Hostname resolution failed for ")+string(localhost)).c_str() );
if (phostent->h_addr_list[i] == 0)
break;
vect.push_back( CInetAddress( (const in_addr*)(phostent->h_addr_list[i]), localhost ) );
i++;
} }
struct addrinfo *p = res;
// process all addresses
while (p != NULL)
{
// check address family
if (p->ai_family == AF_INET)
{
// ipv4
struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr;
vect.push_back( CInetAddress( &ipv4->sin_addr, localhost ) );
}
else if (p->ai_family == AF_INET6)
{
// ipv6
// TODO: modify class to be able to handle IPv6
// struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr;
// convert the IP to a string
// inet_ntop(p->ai_family, addr, ipstr, sizeof(ipstr));
// memcpy( &_SockAddr->sin_addr, &ipv6->sin_addr, sizeof(in_addr) );
}
// process next address
p = p->ai_next;
}
// free the linked list
freeaddrinfo(res);
if(vect.empty()) if(vect.empty())
{ {
throw ESocket( (string("No network card detected for ")+string(localhost)).c_str() ); throw ESocket( (string("No network card detected for ")+string(localhost)).c_str() );

View file

@ -3,12 +3,15 @@ FILE(GLOB SRC *.cpp *.h)
NL_TARGET_LIB(nelpacs ${SRC}) NL_TARGET_LIB(nelpacs ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelpacs ${LIBXML2_LIBRARIES} nelmisc)
NL_DEFAULT_PROPS(nelpacs "NeL, Library: PACS") TARGET_LINK_LIBRARIES(nelpacs nelmisc)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) SET_TARGET_PROPERTIES(nelpacs PROPERTIES LINK_INTERFACE_LIBRARIES "")
NL_DEFAULT_PROPS(nelpacs "NeL, Library: NeL PACS")
NL_ADD_LIB_SUFFIX(nelpacs) NL_ADD_LIB_SUFFIX(nelpacs)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nelpacs ${CMAKE_CURRENT_SOURCE_DIR}/stdpacs.h ${CMAKE_CURRENT_SOURCE_DIR}/stdpacs.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nelpacs ${CMAKE_CURRENT_SOURCE_DIR}/stdpacs.h ${CMAKE_CURRENT_SOURCE_DIR}/stdpacs.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)

View file

@ -3,13 +3,15 @@ FILE(GLOB SRC *.cpp *.h)
NL_TARGET_LIB(nelsound ${SRC}) NL_TARGET_LIB(nelsound ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelsound ${LIBXML2_LIBRARIES} nelmisc nelligo nelgeorges nel3d nelsnd_lowlevel)
NL_DEFAULT_PROPS(nelsound "NeL, Library: Sound")
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) TARGET_LINK_LIBRARIES(nelsound ${LIBXML2_LIBRARIES} nelmisc nelligo nelgeorges nel3d nelsnd_lowlevel)
SET_TARGET_PROPERTIES(nelsound PROPERTIES LINK_INTERFACE_LIBRARIES "")
NL_DEFAULT_PROPS(nelsound "NeL, Library: NeL Sound")
NL_ADD_LIB_SUFFIX(nelsound) NL_ADD_LIB_SUFFIX(nelsound)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nelsound ${CMAKE_CURRENT_SOURCE_DIR}/stdsound.h ${CMAKE_CURRENT_SOURCE_DIR}/stdsound.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nelsound ${CMAKE_CURRENT_SOURCE_DIR}/stdsound.h ${CMAKE_CURRENT_SOURCE_DIR}/stdsound.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)

View file

@ -493,6 +493,9 @@ void CClusteredSound::soundTraverse(const std::vector<CCluster *> &clusters, CSo
CSoundTravContext &travContext = curClusters.back().second; CSoundTravContext &travContext = curClusters.back().second;
CClusterSoundStatus css; CClusterSoundStatus css;
css.DistFactor = 0.0f;
css.Position = CVector::Null;
css.PosAlpha = 0.0f;
css.Gain = travContext.Gain; css.Gain = travContext.Gain;
css.Dist = travContext.Dist; css.Dist = travContext.Dist;
css.Direction = travContext.Direction; css.Direction = travContext.Direction;

View file

@ -1,12 +1,15 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
nl_target_lib(nelsnd_lowlevel ${SRC}) NL_TARGET_LIB(nelsnd_lowlevel ${SRC})
INCLUDE_DIRECTORIES(${OGG_INCLUDE_DIR} ${VORBIS_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${OGG_INCLUDE_DIR} ${VORBIS_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelsnd_lowlevel nelmisc ${VORBIS_LIBRARY} ${VORBISFILE_LIBRARY} ${OGG_LIBRARY}) TARGET_LINK_LIBRARIES(nelsnd_lowlevel nelmisc ${VORBIS_LIBRARY} ${VORBISFILE_LIBRARY} ${OGG_LIBRARY})
nl_default_props(nelsnd_lowlevel "NeL, Library: Sound Lowlevel") SET_TARGET_PROPERTIES(nelsnd_lowlevel PROPERTIES LINK_INTERFACE_LIBRARIES "")
NL_DEFAULT_PROPS(nelsnd_lowlevel "NeL, Library: Sound Lowlevel")
NL_ADD_STATIC_VID_DRIVERS(nelsnd_lowlevel) NL_ADD_STATIC_VID_DRIVERS(nelsnd_lowlevel)
nl_add_lib_suffix(nelsnd_lowlevel)
NL_ADD_LIB_SUFFIX(nelsnd_lowlevel)
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nelsnd_lowlevel ${CMAKE_CURRENT_SOURCE_DIR}/stdsound_lowlevel.h ${CMAKE_CURRENT_SOURCE_DIR}/stdsound_lowlevel.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nelsnd_lowlevel ${CMAKE_CURRENT_SOURCE_DIR}/stdsound_lowlevel.h ${CMAKE_CURRENT_SOURCE_DIR}/stdsound_lowlevel.cpp)

View file

@ -2,20 +2,18 @@ FILE(GLOB SRC *.cpp *.h)
NL_TARGET_DRIVER(nel_drv_dsound ${SRC}) NL_TARGET_DRIVER(nel_drv_dsound ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${DXSDK_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_dsound ${LIBXML2_LIBRARIES} nelsnd_lowlevel ${DXSDK_DSOUND_LIBRARY} ${DXSDK_GUID_LIBRARY}) TARGET_LINK_LIBRARIES(nel_drv_dsound nelmisc nelsnd_lowlevel ${DXSDK_DSOUND_LIBRARY} ${DXSDK_GUID_LIBRARY})
NL_DEFAULT_PROPS(nel_drv_dsound "NeL, Driver, Sound: DirectSound") NL_DEFAULT_PROPS(nel_drv_dsound "NeL, Driver, Sound: DirectSound")
NL_ADD_LIB_SUFFIX(nel_drv_dsound) NL_ADD_LIB_SUFFIX(nel_drv_dsound)
NL_ADD_RUNTIME_FLAGS(nel_drv_dsound) NL_ADD_RUNTIME_FLAGS(nel_drv_dsound)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_dsound ${CMAKE_CURRENT_SOURCE_DIR}/stddsound.h ${CMAKE_CURRENT_SOURCE_DIR}/stddsound.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_dsound ${CMAKE_CURRENT_SOURCE_DIR}/stddsound.h ${CMAKE_CURRENT_SOURCE_DIR}/stddsound.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
INSTALL(TARGETS nel_drv_dsound RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT driverssound) INSTALL(TARGETS nel_drv_dsound RUNTIME DESTINATION bin LIBRARY DESTINATION ${NL_DRIVER_PREFIX} ARCHIVE DESTINATION lib COMPONENT driverssound)
IF(WITH_MAXPLUGIN) IF(WITH_MAXPLUGIN)
INSTALL(TARGETS nel_drv_dsound RUNTIME DESTINATION maxplugin COMPONENT driverssound) INSTALL(TARGETS nel_drv_dsound RUNTIME DESTINATION maxplugin COMPONENT driverssound)
ENDIF(WITH_MAXPLUGIN) ENDIF(WITH_MAXPLUGIN)

View file

@ -2,20 +2,18 @@ FILE(GLOB SRC *.cpp *.h)
NL_TARGET_DRIVER(nel_drv_fmod ${SRC}) NL_TARGET_DRIVER(nel_drv_fmod ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FMOD_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${FMOD_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_fmod ${LIBXML2_LIBRARIES} ${FMOD_LIBRARY} nelsnd_lowlevel) TARGET_LINK_LIBRARIES(nel_drv_fmod ${FMOD_LIBRARY} nelmisc nelsnd_lowlevel)
NL_DEFAULT_PROPS(nel_drv_fmod "NeL, Driver, Sound: FMOD") NL_DEFAULT_PROPS(nel_drv_fmod "NeL, Driver, Sound: FMOD")
NL_ADD_LIB_SUFFIX(nel_drv_fmod) NL_ADD_LIB_SUFFIX(nel_drv_fmod)
NL_ADD_RUNTIME_FLAGS(nel_drv_fmod) NL_ADD_RUNTIME_FLAGS(nel_drv_fmod)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_fmod ${CMAKE_CURRENT_SOURCE_DIR}/stdfmod.h ${CMAKE_CURRENT_SOURCE_DIR}/stdfmod.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_fmod ${CMAKE_CURRENT_SOURCE_DIR}/stdfmod.h ${CMAKE_CURRENT_SOURCE_DIR}/stdfmod.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
INSTALL(TARGETS nel_drv_fmod RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT driverssound) INSTALL(TARGETS nel_drv_fmod RUNTIME DESTINATION bin LIBRARY DESTINATION ${NL_DRIVER_PREFIX} ARCHIVE DESTINATION lib COMPONENT driverssound)
IF(WITH_MAXPLUGIN) IF(WITH_MAXPLUGIN)
INSTALL(TARGETS nel_drv_fmod RUNTIME DESTINATION maxplugin COMPONENT driverssound) INSTALL(TARGETS nel_drv_fmod RUNTIME DESTINATION maxplugin COMPONENT driverssound)
ENDIF(WITH_MAXPLUGIN) ENDIF(WITH_MAXPLUGIN)

View file

@ -37,7 +37,7 @@ IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_openal ${CMAKE_CURRENT_SOURCE_DIR}/stdopenal.h ${CMAKE_CURRENT_SOURCE_DIR}/stdopenal.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_openal ${CMAKE_CURRENT_SOURCE_DIR}/stdopenal.h ${CMAKE_CURRENT_SOURCE_DIR}/stdopenal.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
INSTALL(TARGETS nel_drv_openal RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT driverssound) INSTALL(TARGETS nel_drv_openal RUNTIME DESTINATION bin LIBRARY DESTINATION ${NL_DRIVER_PREFIX} ARCHIVE DESTINATION lib COMPONENT driverssound)
IF(WITH_MAXPLUGIN) IF(WITH_MAXPLUGIN)
INSTALL(TARGETS nel_drv_openal RUNTIME DESTINATION maxplugin COMPONENT driverssound) INSTALL(TARGETS nel_drv_openal RUNTIME DESTINATION maxplugin COMPONENT driverssound)
ENDIF(WITH_MAXPLUGIN) ENDIF(WITH_MAXPLUGIN)

View file

@ -18,6 +18,10 @@
#include "nel/sound/driver/sound_driver.h" #include "nel/sound/driver/sound_driver.h"
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif // HAVE_CONFIG_H
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
# define NOMINMAX # define NOMINMAX
# include <windows.h> # include <windows.h>
@ -201,6 +205,11 @@ ISoundDriver *ISoundDriver::createDriver(IStringMapperProvider *stringMapper, TD
} }
CLibrary driverLib; CLibrary driverLib;
#if defined(NL_OS_UNIX) && defined(NL_DRIVER_PREFIX)
driverLib.addLibPath(NL_DRIVER_PREFIX);
#endif
// Load it (adding standard nel pre/suffix, looking in library path and not taking ownership) // Load it (adding standard nel pre/suffix, looking in library path and not taking ownership)
if (!driverLib.loadLibrary(dllName, true, true, false)) if (!driverLib.loadLibrary(dllName, true, true, false))
{ {

View file

@ -28,20 +28,18 @@ SOURCE_GROUP(efx FILES
NL_TARGET_DRIVER(nel_drv_xaudio2 ${SRC}) NL_TARGET_DRIVER(nel_drv_xaudio2 ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${DXSDK_INCLUDE_DIR} ${VORBIS_INCLUDE_DIR} ${OGG_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_xaudio2 ${LIBXML2_LIBRARIES} nelsnd_lowlevel ${DXSDK_XAUDIO_LIBRARY} ${DXSDK_GUID_LIBRARY} ${VORBIS_LIBRARIES} ${OGG_LIBRARY}) TARGET_LINK_LIBRARIES(nel_drv_xaudio2 nelmisc nelsnd_lowlevel ${DXSDK_XAUDIO_LIBRARY} ${DXSDK_GUID_LIBRARY})
NL_DEFAULT_PROPS(nel_drv_xaudio2 "NeL, Driver, Sound: XAudio2") NL_DEFAULT_PROPS(nel_drv_xaudio2 "NeL, Driver, Sound: XAudio2")
NL_ADD_LIB_SUFFIX(nel_drv_xaudio2) NL_ADD_LIB_SUFFIX(nel_drv_xaudio2)
NL_ADD_RUNTIME_FLAGS(nel_drv_xaudio2) NL_ADD_RUNTIME_FLAGS(nel_drv_xaudio2)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_xaudio2 ${CMAKE_CURRENT_SOURCE_DIR}/stdxaudio2.h ${CMAKE_CURRENT_SOURCE_DIR}/stdxaudio2.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_xaudio2 ${CMAKE_CURRENT_SOURCE_DIR}/stdxaudio2.h ${CMAKE_CURRENT_SOURCE_DIR}/stdxaudio2.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
INSTALL(TARGETS nel_drv_xaudio2 RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT driverssound) INSTALL(TARGETS nel_drv_xaudio2 RUNTIME DESTINATION bin LIBRARY DESTINATION ${NL_DRIVER_PREFIX} ARCHIVE DESTINATION lib COMPONENT driverssound)
IF(WITH_MAXPLUGIN) IF(WITH_MAXPLUGIN)
INSTALL(TARGETS nel_drv_xaudio2 RUNTIME DESTINATION maxplugin COMPONENT driverssound) INSTALL(TARGETS nel_drv_xaudio2 RUNTIME DESTINATION maxplugin COMPONENT driverssound)
ENDIF(WITH_MAXPLUGIN) ENDIF(WITH_MAXPLUGIN)

View file

@ -1,4 +1,5 @@
SUBDIRS( build_coarse_mesh SUBDIRS(
build_coarse_mesh
build_far_bank build_far_bank
build_smallbank build_smallbank
ig_lighter ig_lighter
@ -22,29 +23,35 @@ SUBDIRS( build_coarse_mesh
zone_check_bind zone_check_bind
zone_dump zone_dump
zviewer) zviewer)
IF(WIN32) IF(WIN32)
ADD_SUBDIRECTORY(ig_elevation)
ADD_SUBDIRECTORY(lightmap_optimizer)
IF(MFC_FOUND)
ADD_SUBDIRECTORY(object_viewer) ADD_SUBDIRECTORY(object_viewer)
ADD_SUBDIRECTORY(object_viewer_exe) ADD_SUBDIRECTORY(object_viewer_exe)
ADD_SUBDIRECTORY(panoply_maker)
ADD_SUBDIRECTORY(tile_edit) ADD_SUBDIRECTORY(tile_edit)
ENDIF(MFC_FOUND)
IF(WITH_MAXPLUGIN)
IF(MAXSDK_FOUND)
ADD_SUBDIRECTORY(plugin_max)
ADD_SUBDIRECTORY(ligo)
ENDIF(MAXSDK_FOUND)
ENDIF(WITH_MAXPLUGIN)
ENDIF(WIN32) ENDIF(WIN32)
IF(WITH_QT) IF(WITH_QT)
ADD_SUBDIRECTORY(tile_edit_qt) ADD_SUBDIRECTORY(tile_edit_qt)
ENDIF(WITH_QT) ENDIF(WITH_QT)
IF(WITH_MAXPLUGIN) IF(SQUISH_FOUND)
IF(MAXSDK_FOUND) ADD_SUBDIRECTORY(panoply_maker)
ADD_SUBDIRECTORY(plugin_max) ADD_SUBDIRECTORY(tga_2_dds)
ADD_SUBDIRECTORY(ligo) ADD_SUBDIRECTORY(hls_bank_maker)
ENDIF(MAXSDK_FOUND) ENDIF(SQUISH_FOUND)
ENDIF(WITH_MAXPLUGIN)
# These use WIndows-specific things that need to be fixed. #crash_log_analyser
#ig_elevation #shapes_exporter
#lightmap_optimizer
#object_viewer_exe
#hls_bank_maker
#s3tc_compressor_lib
#tga_2_dds
#plugin_max

View file

@ -366,9 +366,20 @@ int main(int nNbArg, char **ppArgs)
fmtName += ".tga"; fmtName += ".tga";
if (outTga.open(fmtName)) if (outTga.open(fmtName))
{ {
std::string ext;
if (toLower(fmtName).find(".png") != string::npos)
{
ext = "png";
GlobalTexture.writePNG (outTga, 32);
}
else
{
ext = "tga";
GlobalTexture.writeTGA (outTga, 32); GlobalTexture.writeTGA (outTga, 32);
}
outTga.close(); outTga.close();
outString (string("Writing tga file : ") + fmtName + "\n"); outString (toString("Writing %s file : %s\n", ext.c_str(), fmtName.c_str()));
} }
else else
{ {

View file

@ -0,0 +1,11 @@
FILE(GLOB SRC *.cpp *.h ../panoply_maker/hls_bank_texture_info.cpp ../panoply_maker/hls_bank_texture_info.h ../s3tc_compressor_lib/*.cpp ../s3tc_compressor_lib/*.h)
ADD_EXECUTABLE(hls_bank_maker ${SRC})
INCLUDE_DIRECTORIES(${SQUISH_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(hls_bank_maker ${PLATFORM_LINKFLAGS} ${SQUISH_LIBRARY} nelmisc nel3d)
NL_DEFAULT_PROPS(hls_bank_maker "Tools, 3D: hls_bank_maker")
NL_ADD_RUNTIME_FLAGS(hls_bank_maker)
INSTALL(TARGETS hls_bank_maker RUNTIME DESTINATION bin COMPONENT tools3d)

View file

@ -2,7 +2,7 @@ FILE(GLOB SRC *.cpp *.h)
ADD_EXECUTABLE(ig_add ${SRC}) ADD_EXECUTABLE(ig_add ${SRC})
TARGET_LINK_LIBRARIES(ig_add ${PLATFORM_LINKFLAGS} nel3d) TARGET_LINK_LIBRARIES(ig_add ${PLATFORM_LINKFLAGS} nel3d nelmisc)
NL_DEFAULT_PROPS(ig_add "NeL, Tools, 3D: ig_add") NL_DEFAULT_PROPS(ig_add "NeL, Tools, 3D: ig_add")
NL_ADD_RUNTIME_FLAGS(ig_add) NL_ADD_RUNTIME_FLAGS(ig_add)

View file

@ -1,12 +1,13 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
DECORATE_NEL_LIB("nel3d")
SET(NL3D_LIB ${LIBNAME})
ADD_EXECUTABLE(ig_elevation ${SRC}) ADD_EXECUTABLE(ig_elevation ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(ig_elevation ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} ${NL3D_LIB})
TARGET_LINK_LIBRARIES(ig_elevation ${PLATFORM_LINKFLAGS} nelmisc nel3d nelligo)
NL_DEFAULT_PROPS(ig_elevation "Tools, 3D: ig_elevation")
NL_ADD_RUNTIME_FLAGS(ig_elevation)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS ig_elevation RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT tools3d) INSTALL(TARGETS ig_elevation RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT tools3d)

View file

@ -1,12 +1,9 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
DECORATE_NEL_LIB("nelmisc")
SET(NLMISC_LIB ${LIBNAME})
ADD_EXECUTABLE(lightmap_optimizer ${SRC}) ADD_EXECUTABLE(lightmap_optimizer ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(lightmap_optimizer ${PLATFORM_LINKFLAGS} nel3d nelmisc)
TARGET_LINK_LIBRARIES(lightmap_optimizer ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} ${NLMISC_LIB}) NL_DEFAULT_PROPS(lightmap_optimizer "Tools, 3D: lightmap_optimizer")
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) NL_ADD_RUNTIME_FLAGS(lightmap_optimizer)
INSTALL(TARGETS lightmap_optimizer RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT tools3d) INSTALL(TARGETS lightmap_optimizer RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT tools3d)

View file

@ -3,8 +3,8 @@ FILE(GLOB SRC *.cpp *.h ../../ig_lighter_lib/*.cpp ../../ig_lighter_lib/*.h)
ADD_LIBRARY(ligoscape_utility SHARED ligoscape_utility.rc ${SRC} ligoscape_utility.def) ADD_LIBRARY(ligoscape_utility SHARED ligoscape_utility.rc ${SRC} ligoscape_utility.def)
INCLUDE_DIRECTORIES(${MAXSDK_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${MAXSDK_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(ligoscape_utility TARGET_LINK_LIBRARIES(ligoscape_utility
${LIBXML2_LIBRARIES}
nelmisc nelmisc
nelligo nelligo
nel3d nel3d
@ -15,14 +15,10 @@ TARGET_LINK_LIBRARIES(ligoscape_utility
nel_3dsmax_shared nel_3dsmax_shared
comctl32) comctl32)
SET_TARGET_PROPERTIES(ligoscape_utility PROPERTIES SET_TARGET_PROPERTIES(ligoscape_utility PROPERTIES SUFFIX ".dlx")
VERSION ${NL_VERSION} NL_DEFAULT_PROPS(ligoscape_utility "MAX Plugin: Ligoscape Utility")
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}" NL_ADD_RUNTIME_FLAGS(ligoscape_utility)
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}" NL_ADD_LIB_SUFFIX(ligoscape_utility)
SUFFIX ".dlx"
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r"
PROJECT_LABEL "MAX Plugin: Ligoscape Utility")
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})

View file

@ -14,6 +14,7 @@
#ifndef __PLUGIN_MAX__H #ifndef __PLUGIN_MAX__H
#define __PLUGIN_MAX__H #define __PLUGIN_MAX__H
#include <assert.h>
#include "Max.h" #include "Max.h"
#include <Max.h> #include <Max.h>
#include <istdplug.h> #include <istdplug.h>

View file

@ -14,6 +14,8 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <assert.h>
// From MAXSDK // From MAXSDK
#include <MaxScrpt/maxscrpt.h> #include <MaxScrpt/maxscrpt.h>

View file

@ -16,6 +16,8 @@
#define EXPORT_GET_ALLOCATOR #define EXPORT_GET_ALLOCATOR
#include <assert.h>
// Various MAX and MXS includes // Various MAX and MXS includes
#include <MaxScrpt/MAXScrpt.h> #include <MaxScrpt/MAXScrpt.h>
#include <MaxScrpt/3dmath.h> #include <MaxScrpt/3dmath.h>

View file

@ -10,21 +10,17 @@ SET(CMAKE_MFC_FLAG 2)
ADD_LIBRARY(object_viewer_dll SHARED ${SRC} object_viewer.rc) ADD_LIBRARY(object_viewer_dll SHARED ${SRC} object_viewer.rc)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(object_viewer_dll TARGET_LINK_LIBRARIES(object_viewer_dll
${LIBXML2_LIBRARIES}
nelmisc nelmisc
nel3d nel3d
nelsound nelsound
nelsnd_lowlevel nelsnd_lowlevel
Version.lib) Version.lib)
SET_TARGET_PROPERTIES(object_viewer_dll PROPERTIES NL_DEFAULT_PROPS(object_viewer_dll "NeL, Tools, 3D: Object Viewer DLL")
VERSION ${NL_VERSION} NL_ADD_RUNTIME_FLAGS(object_viewer_dll)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}" NL_ADD_LIB_SUFFIX(object_viewer_dll)
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r"
PROJECT_LABEL "NeL, Tools, 3D: Object Viewer DLL")
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS} -DOBJECT_VIEWER_LIB_EXPORTS) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS} -DOBJECT_VIEWER_LIB_EXPORTS)

View file

@ -5,21 +5,16 @@ ADD_DEFINITIONS(-D_AFXDLL)
SET(CMAKE_MFC_FLAG 2) SET(CMAKE_MFC_FLAG 2)
ADD_EXECUTABLE(object_viewer WIN32 ${SRC} object_viewer_exe.rc) ADD_EXECUTABLE(object_viewer WIN32 ${SRC} object_viewer_exe.rc)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES( object_viewer TARGET_LINK_LIBRARIES( object_viewer
${LIBXML2_LIBRARIES}
${PLATFORM_LINKFLAGS} ${PLATFORM_LINKFLAGS}
nelmisc nelmisc
nel3d nel3d
nelsound nelsound
nelsnd_lowlevel nelsnd_lowlevel
object_viewer_dll) object_viewer_dll)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
SET_TARGET_PROPERTIES(object_viewer PROPERTIES NL_DEFAULT_PROPS(object_viewer "NeL, Tools, 3D: Object Viewer")
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}" NL_ADD_RUNTIME_FLAGS(object_viewer)
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "NeL, Tools, 3D: Object Viewer")
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(object_viewer ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.h ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.cpp) ADD_NATIVE_PRECOMPILED_HEADER(object_viewer ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.h ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.cpp)

View file

@ -7,7 +7,7 @@
// //
// Generated from the TEXTINCLUDE 2 resource. // Generated from the TEXTINCLUDE 2 resource.
// //
#include "afxres.h" #include <windows.h>
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS #undef APSTUDIO_READONLY_SYMBOLS

View file

@ -26,27 +26,4 @@
#define NOMINMAX #define NOMINMAX
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxole.h> // MFC OLE classes
#include <afxodlgs.h> // MFC OLE dialog classes
#include <afxdisp.h> // MFC Automation classes
#endif // _AFX_NO_OLE_SUPPORT
#ifndef _AFX_NO_DB_SUPPORT
#include <afxdb.h> // MFC ODBC database classes
#endif // _AFX_NO_DB_SUPPORT
#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h> // MFC DAO database classes
#endif // _AFX_NO_DAO_SUPPORT
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
#endif #endif

View file

@ -2,16 +2,10 @@ FILE(GLOB SRC *.cpp *.h ../s3tc_compressor_lib/*.h ../s3tc_compressor_lib/*.cpp)
ADD_EXECUTABLE(panoply_maker ${SRC}) ADD_EXECUTABLE(panoply_maker ${SRC})
FIND_PACKAGE(Squish REQUIRED) INCLUDE_DIRECTORIES(${SQUISH_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${SQUISH_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(panoply_maker ${PLATFORM_LINKFLAGS} ${SQUISH_LIBRARY} nelmisc nel3d)
TARGET_LINK_LIBRARIES(panoply_maker ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} ${SQUISH_LIBRARY} nelmisc nel3d) NL_DEFAULT_PROPS(panoply_maker "NeL, Tools, 3D: panoply_maker")
IF(WIN32) NL_ADD_RUNTIME_FLAGS(panoply_maker)
SET_TARGET_PROPERTIES(panoply_maker PROPERTIES
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "NeL, Tools, 3D: panoply_maker")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS panoply_maker RUNTIME DESTINATION bin COMPONENT tools3d) INSTALL(TARGETS panoply_maker RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT tools3d)

View file

@ -2,9 +2,8 @@ FILE(GLOB SRC *.cpp *.h *.def)
ADD_LIBRARY(nel_3dsmax_shared SHARED ${SRC}) ADD_LIBRARY(nel_3dsmax_shared SHARED ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${MAXSDK_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${MAXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_3dsmax_shared TARGET_LINK_LIBRARIES(nel_3dsmax_shared
${LIBXML2_LIBRARIES}
nelmisc nelmisc
nel3d nel3d
nel_mesh_lib nel_mesh_lib
@ -12,15 +11,12 @@ TARGET_LINK_LIBRARIES(nel_3dsmax_shared
${MAXSDK_LIBRARIES} ${MAXSDK_LIBRARIES}
Version.lib) Version.lib)
SET_TARGET_PROPERTIES(nel_3dsmax_shared PROPERTIES NL_DEFAULT_PROPS(nel_3dsmax_shared "MAX Plugin: NeL 3DSMAX Shared")
VERSION ${NL_VERSION} NL_ADD_RUNTIME_FLAGS(nel_3dsmax_shared)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}" NL_ADD_LIB_SUFFIX(nel_3dsmax_shared)
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}" SET_TARGET_PROPERTIES(nel_export PROPERTIES SUFFIX ".dlx")
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r"
PROJECT_LABEL "MAX Plugin: NeL 3DSMAX Shared")
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS} -DNEL_3DSMAX_SHARED_EXPORTS) ADD_DEFINITIONS(-DNEL_3DSMAX_SHARED_EXPORTS)
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nel_3dsmax_shared ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.h ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nel_3dsmax_shared ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.h ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.cpp)

View file

@ -30,6 +30,7 @@
// Insert your headers here // Insert your headers here
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <assert.h>
#include <max.h> #include <max.h>
#include <iparamb2.h> #include <iparamb2.h>
#include <istdplug.h> #include <istdplug.h>

View file

@ -15,7 +15,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdafx.h" #include "stdafx.h"
#include "..\nel_patch_lib\rpo.h" #include "../nel_patch_lib/rpo.h"
#include "nel_3dsmax_shared.h" #include "nel_3dsmax_shared.h"
#include "nel/misc/app_context.h" #include "nel/misc/app_context.h"

View file

@ -7,8 +7,8 @@ LIST(REMOVE_ITEM SRC ${CMAKE_CURRENT_SOURCE_DIR}/last_lightmap.cpp
ADD_LIBRARY(nel_export SHARED ${SRC} nel_export.rc) ADD_LIBRARY(nel_export SHARED ${SRC} nel_export.rc)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${MAXSDK_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${MAXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_export TARGET_LINK_LIBRARIES(nel_export
${LIBXML2_LIBRARIES}
nelmisc nelmisc
nelpacs nelpacs
nel3d nel3d
@ -20,14 +20,10 @@ TARGET_LINK_LIBRARIES(nel_export
Version.lib Version.lib
comctl32.lib) comctl32.lib)
SET_TARGET_PROPERTIES(nel_export PROPERTIES NL_DEFAULT_PROPS(nel_export "MAX Plugin: NeL Export")
VERSION ${NL_VERSION} NL_ADD_RUNTIME_FLAGS(nel_export)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}" NL_ADD_LIB_SUFFIX(nel_export)
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}" SET_TARGET_PROPERTIES(nel_export PROPERTIES SUFFIX ".dlu")
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r"
SUFFIX ".dlu"
PROJECT_LABEL "MAX Plugin: NeL Export")
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})

View file

@ -59,7 +59,7 @@ void *CNelExportClassDesc::Create(BOOL loading)
} }
int CALLBACK OptionsDialogCallback ( INT_PTR CALLBACK OptionsDialogCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
@ -217,7 +217,7 @@ int CALLBACK OptionsDialogCallback (
} }
extern HINSTANCE hInstance; extern HINSTANCE hInstance;
static BOOL CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) static INT_PTR CALLBACK CNelExportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{ {
// Set locale to english // Set locale to english
setlocale (LC_NUMERIC, "English"); setlocale (LC_NUMERIC, "English");

View file

@ -17,6 +17,7 @@
#include "std_afx.h" #include "std_afx.h"
#include "nel_export.h" #include "nel_export.h"
#include "nel/misc/file.h" #include "nel/misc/file.h"
#include "nel/misc/path.h"
#include "nel/3d/shape.h" #include "nel/3d/shape.h"
#include "nel/3d/animation.h" #include "nel/3d/animation.h"
#include "nel/3d/skeleton_shape.h" #include "nel/3d/skeleton_shape.h"
@ -34,8 +35,12 @@ using namespace NLMISC;
bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time) bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
{ {
// Result to return // Result to return
bool bRet=false; bool bRet = false;
char tempName[L_tmpnam];
tmpnam(tempName);
try
{
// Eval the object a time // Eval the object a time
ObjectState os = node.EvalWorldState(time); ObjectState os = node.EvalWorldState(time);
@ -43,7 +48,7 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
if (os.obj) if (os.obj)
{ {
// Skeleton shape // Skeleton shape
CSkeletonShape *skeletonShape=NULL; CSmartPtr<CSkeletonShape> skeletonShape = NULL;
TInodePtrInt *mapIdPtr=NULL; TInodePtrInt *mapIdPtr=NULL;
TInodePtrInt mapId; TInodePtrInt mapId;
@ -51,27 +56,26 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
if (CExportNel::isSkin (node)) if (CExportNel::isSkin (node))
{ {
// Create a skeleton // Create a skeleton
INode *skeletonRoot=CExportNel::getSkeletonRootBone (node); INode *skeletonRoot = CExportNel::getSkeletonRootBone(node);
// Skeleton exist ? // Skeleton exist ?
if (skeletonRoot) if (skeletonRoot)
{ {
// Build a skeleton // Build a skeleton
skeletonShape=new CSkeletonShape(); skeletonShape = new CSkeletonShape();
// Add skeleton bind pos info // Add skeleton bind pos info
CExportNel::mapBoneBindPos boneBindPos; CExportNel::mapBoneBindPos boneBindPos;
CExportNel::addSkeletonBindPos (node, boneBindPos); CExportNel::addSkeletonBindPos (node, boneBindPos);
// Build the skeleton based on the bind pos information // Build the skeleton based on the bind pos information
_ExportNel->buildSkeletonShape (*skeletonShape, *skeletonRoot, &boneBindPos, mapId, time); _ExportNel->buildSkeletonShape(*skeletonShape.getPtr(), *skeletonRoot, &boneBindPos, mapId, time);
// Set the pointer to not NULL // Set the pointer to not NULL
mapIdPtr=&mapId; mapIdPtr=&mapId;
// Erase the skeleton // Erase the skeleton
if (skeletonShape) skeletonShape = NULL;
delete skeletonShape;
} }
} }
@ -79,49 +83,85 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
if (InfoLog) if (InfoLog)
InfoLog->display("Beg buildShape %s \n", node.GetName()); InfoLog->display("Beg buildShape %s \n", node.GetName());
// Export in mesh format // Export in mesh format
IShape* pShape=_ExportNel->buildShape (node, time, mapIdPtr, true); CSmartPtr<IShape> pShape = _ExportNel->buildShape(node, time, mapIdPtr, true);
if (InfoLog) if (InfoLog)
InfoLog->display("End buildShape in %d ms \n", timeGetTime()-t); InfoLog->display("End buildShape in %d ms \n", timeGetTime()-t);
// Conversion success ? // Conversion success ?
if (pShape) if (pShape.getPtr())
{ {
// Open a file // Open a file
COFile file; COFile file;
if (file.open (sPath)) if (file.open(tempName))
{ {
try try
{ {
// Create a streamable shape // Create a streamable shape
CShapeStream shapeStream (pShape); CShapeStream shapeStream(pShape);
// Serial the shape // Serial the shape
shapeStream.serial (file); shapeStream.serial(file);
// All is good // All is good
bRet=true; bRet = true;
} }
catch (...) catch (...)
{ {
nlwarning("Shape serialization failed!"); nlwarning("Shape serialization failed!");
try
{
file.close(); file.close();
remove(sPath);
} }
catch (...)
{
}
remove(tempName);
}
}
else
{
nlwarning("Failed to create file %s", tempName);
} }
// Delete the pointer // Delete the pointer
nldebug ("Delete the pointer"); nldebug ("Delete the pointer");
try try
{ {
// memory leak, fixme bool tempBRet = bRet;
// delete pShape; bRet = false;
pShape = NULL;
bRet = tempBRet;
} }
catch (...) catch (...)
{ {
nlwarning("Failed to delete pShape pointer! Something might be wrong."); nlwarning("Failed to delete pShape pointer! Something might be wrong.");
remove(tempName);
bRet = false;
} }
} }
} }
}
catch (...)
{
nlwarning("Fatal exception at CNelExport::exportMesh.");
bRet = false;
}
if (bRet)
{
try
{
remove(sPath);
}
catch (...)
{
}
CFile::moveFile(sPath, tempName);
nlinfo("MOVE %s -> %s", tempName, sPath);
}
return bRet; return bRet;
} }

View file

@ -309,22 +309,22 @@ public:
HWND SubVPDlg[VP_COUNT]; HWND SubVPDlg[VP_COUNT];
}; };
int CALLBACK MRMDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK MRMDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK AccelDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK AccelDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK InstanceDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK InstanceDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK LightmapDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK LightmapDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK Lightmap2DialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK Lightmap2DialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK VegetableDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK VegetableDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK VertexProgramDialogCallBack (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK VertexProgramDialogCallBack (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK MiscDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK MiscDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK AnimationDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK AnimationDialogCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
const char *SubText[TAB_COUNT] = {"LOD & MRM", "Accelerator", "Instance", "Lighting", "LMC", "Vegetable", "VertexProgram", "Misc", "Animation"}; const char *SubText[TAB_COUNT] = {"LOD & MRM", "Accelerator", "Instance", "Lighting", "LMC", "Vegetable", "VertexProgram", "Misc", "Animation"};
const int SubTab[TAB_COUNT] = {IDD_LOD, IDD_ACCEL, IDD_INSTANCE, IDD_LIGHTMAP, IDD_LIGHTMAP2, IDD_VEGETABLE, IDD_VERTEX_PROGRAM, IDD_MISC, IDD_ANIM}; const int SubTab[TAB_COUNT] = {IDD_LOD, IDD_ACCEL, IDD_INSTANCE, IDD_LIGHTMAP, IDD_LIGHTMAP2, IDD_VEGETABLE, IDD_VERTEX_PROGRAM, IDD_MISC, IDD_ANIM};
DLGPROC SubProc[TAB_COUNT] = {MRMDialogCallback, AccelDialogCallback, InstanceDialogCallback, LightmapDialogCallback, Lightmap2DialogCallback, VegetableDialogCallback, VertexProgramDialogCallBack, MiscDialogCallback, AnimationDialogCallback}; DLGPROC SubProc[TAB_COUNT] = {MRMDialogCallback, AccelDialogCallback, InstanceDialogCallback, LightmapDialogCallback, Lightmap2DialogCallback, VegetableDialogCallback, VertexProgramDialogCallBack, MiscDialogCallback, AnimationDialogCallback};
// VertexPrograms. // VertexPrograms.
int CALLBACK VPWindTreeCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK VPWindTreeCallback (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
const int SubVPTab[VP_COUNT] = {IDD_VP_WINDTREE}; const int SubVPTab[VP_COUNT] = {IDD_VP_WINDTREE};
DLGPROC SubVPProc[VP_COUNT] = {VPWindTreeCallback}; DLGPROC SubVPProc[VP_COUNT] = {VPWindTreeCallback};
@ -417,7 +417,7 @@ void VegetableStateChanged (HWND hwndDlg)
void AccelStateChanged (HWND hwndDlg) void AccelStateChanged (HWND hwndDlg)
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
bool cluster = (currentParam->AcceleratorType&NEL3D_APPDATA_ACCEL_TYPE) == NEL3D_APPDATA_ACCEL_CLUSTER; bool cluster = (currentParam->AcceleratorType&NEL3D_APPDATA_ACCEL_TYPE) == NEL3D_APPDATA_ACCEL_CLUSTER;
bool portal = (currentParam->AcceleratorType&NEL3D_APPDATA_ACCEL_TYPE) == NEL3D_APPDATA_ACCEL_PORTAL; bool portal = (currentParam->AcceleratorType&NEL3D_APPDATA_ACCEL_TYPE) == NEL3D_APPDATA_ACCEL_PORTAL;
@ -464,22 +464,22 @@ void exploreNode(INode *node)
} }
int CALLBACK AccelDialogCallback ( INT_PTR CALLBACK AccelDialogCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
// Fill the known sound groups by parsing the max node tree. // Fill the known sound groups by parsing the max node tree.
{ {
@ -635,22 +635,22 @@ int CALLBACK AccelDialogCallback (
// *************************************************************************** // ***************************************************************************
int CALLBACK MRMDialogCallback ( INT_PTR CALLBACK MRMDialogCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
// Window text // Window text
std::string winName=(*(currentParam->ListNode->begin()))->GetName(); std::string winName=(*(currentParam->ListNode->begin()))->GetName();
@ -903,22 +903,22 @@ int CALLBACK MRMDialogCallback (
// *************************************************************************** // ***************************************************************************
int CALLBACK InstanceDialogCallback ( INT_PTR CALLBACK InstanceDialogCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_GROUP_SHAPE), currentParam->InstanceShape.c_str()); SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_GROUP_SHAPE), currentParam->InstanceShape.c_str());
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_NAME), currentParam->InstanceName.c_str()); SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_INSTANCE_NAME), currentParam->InstanceName.c_str());
@ -1019,22 +1019,22 @@ int CALLBACK InstanceDialogCallback (
// *************************************************************************** // ***************************************************************************
int CALLBACK LightmapDialogCallback ( INT_PTR CALLBACK LightmapDialogCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_LUMELSIZEMUL), currentParam->LumelSizeMul.c_str()); SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_LUMELSIZEMUL), currentParam->LumelSizeMul.c_str());
SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_SOFTSHADOW_RADIUS), currentParam->SoftShadowRadius.c_str()); SetWindowText (GetDlgItem (hwndDlg, IDC_EDIT_SOFTSHADOW_RADIUS), currentParam->SoftShadowRadius.c_str());
@ -1298,14 +1298,14 @@ struct CLMCParamFrom
}; };
// *************************************************************************** // ***************************************************************************
int CALLBACK LMCCopyFromDialogCallback( INT_PTR CALLBACK LMCCopyFromDialogCallback(
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLMCParamFrom *lmcParam=(CLMCParamFrom *)GetWindowLong(hwndDlg, GWL_USERDATA); CLMCParamFrom *lmcParam=(CLMCParamFrom *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
uint i; uint i;
switch (uMsg) switch (uMsg)
@ -1313,8 +1313,8 @@ int CALLBACK LMCCopyFromDialogCallback(
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
lmcParam=(CLMCParamFrom *)GetWindowLong(hwndDlg, GWL_USERDATA); lmcParam=(CLMCParamFrom *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
// init the colors // init the colors
nlctassert(CLodDialogBoxParam::NumLightGroup==3); nlctassert(CLodDialogBoxParam::NumLightGroup==3);
@ -1519,22 +1519,22 @@ void lmcCopyFrom(CLodDialogBoxParam *currentParam, HWND parentDlg)
} }
// *************************************************************************** // ***************************************************************************
int CALLBACK Lightmap2DialogCallback ( INT_PTR CALLBACK Lightmap2DialogCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
// retrieve the color choosing Ctrl // retrieve the color choosing Ctrl
nlctassert(CLodDialogBoxParam::NumLightGroup==3); nlctassert(CLodDialogBoxParam::NumLightGroup==3);
@ -1642,22 +1642,22 @@ int CALLBACK Lightmap2DialogCallback (
// *************************************************************************** // ***************************************************************************
int CALLBACK VegetableDialogCallback ( INT_PTR CALLBACK VegetableDialogCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
SendMessage (GetDlgItem (hwndDlg, IDC_VEGETABLE), BM_SETCHECK, currentParam->Vegetable, 0); SendMessage (GetDlgItem (hwndDlg, IDC_VEGETABLE), BM_SETCHECK, currentParam->Vegetable, 0);
@ -1762,22 +1762,22 @@ int CALLBACK VegetableDialogCallback (
} }
// *************************************************************************** // ***************************************************************************
int CALLBACK VertexProgramDialogCallBack ( INT_PTR CALLBACK VertexProgramDialogCallBack (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
// test wether v.p are bypassed for that object (this may happen when a v.p is needed by a material of this mesh) // test wether v.p are bypassed for that object (this may happen when a v.p is needed by a material of this mesh)
if (!currentParam->VertexProgramBypassed) if (!currentParam->VertexProgramBypassed)
@ -2028,22 +2028,22 @@ static void updateVPWTStaticForControl(HWND hwndDlg, HWND ctrlWnd, CVPWindTreeAp
} }
int CALLBACK VPWindTreeCallback ( INT_PTR CALLBACK VPWindTreeCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
// Init controls // Init controls
CVPWindTreeAppData &vpwt= currentParam->VertexProgramWindTree; CVPWindTreeAppData &vpwt= currentParam->VertexProgramWindTree;
@ -2266,22 +2266,22 @@ int CALLBACK VPWindTreeCallback (
// *************************************************************************** // ***************************************************************************
int CALLBACK MiscDialogCallback ( INT_PTR CALLBACK MiscDialogCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
SendMessage (GetDlgItem (hwndDlg, IDC_FLOATING_OBJECT), BM_SETCHECK, currentParam->FloatingObject, 0); SendMessage (GetDlgItem (hwndDlg, IDC_FLOATING_OBJECT), BM_SETCHECK, currentParam->FloatingObject, 0);
// Ligoscape // Ligoscape
@ -2399,22 +2399,22 @@ int CALLBACK MiscDialogCallback (
// *************************************************************************** // ***************************************************************************
int CALLBACK AnimationDialogCallback ( INT_PTR CALLBACK AnimationDialogCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_NOTE_TRACK), BM_SETCHECK, currentParam->ExportNoteTrack, 0); SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_NOTE_TRACK), BM_SETCHECK, currentParam->ExportNoteTrack, 0);
SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_SSS_TRACK), BM_SETCHECK, currentParam->ExportSSSTrack, 0); SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_SSS_TRACK), BM_SETCHECK, currentParam->ExportSSSTrack, 0);
SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_ANIMATED_MATERIALS), BM_SETCHECK, currentParam->ExportAnimatedMaterials, 0); SendMessage (GetDlgItem (hwndDlg, IDC_EXPORT_ANIMATED_MATERIALS), BM_SETCHECK, currentParam->ExportAnimatedMaterials, 0);
@ -2468,22 +2468,22 @@ int CALLBACK AnimationDialogCallback (
// *************************************************************************** // ***************************************************************************
int CALLBACK LodDialogCallback ( INT_PTR CALLBACK LodDialogCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter LPARAM lParam // second message parameter
) )
{ {
CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); CLodDialogBoxParam *currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
// Param pointers // Param pointers
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG_PTR res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
currentParam=(CLodDialogBoxParam *)GetWindowLong(hwndDlg, GWL_USERDATA); currentParam=(CLodDialogBoxParam *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
// Window text // Window text
std::string winName=(*(currentParam->ListNode->begin()))->GetName(); std::string winName=(*(currentParam->ListNode->begin()))->GetName();
@ -2602,7 +2602,7 @@ void CNelExport::OnNodeProperties (const std::set<INode*> &listNode)
{ {
// Get // Get
uint nNumSelNode=listNode.size(); uint nNumSelNode=(uint)listNode.size();
if (nNumSelNode) if (nNumSelNode)
{ {
@ -3220,7 +3220,7 @@ void CNelExport::OnNodeProperties (const std::set<INode*> &listNode)
if (param.ListActived) if (param.ListActived)
{ {
// Write size of the list // Write size of the list
uint sizeList=std::min (param.ListLodName.size(), (uint)NEL3D_APPDATA_LOD_NAME_COUNT_MAX); uint sizeList=std::min ((uint)param.ListLodName.size(), (uint)NEL3D_APPDATA_LOD_NAME_COUNT_MAX);
CExportNel::setScriptAppData (node, NEL3D_APPDATA_LOD_NAME_COUNT, (int)sizeList); CExportNel::setScriptAppData (node, NEL3D_APPDATA_LOD_NAME_COUNT, (int)sizeList);
// Write the strings // Write the strings

View file

@ -26,7 +26,7 @@ using namespace NLMISC;
// ----------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------
// Window dialog callback // Window dialog callback
// ----------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------
int CALLBACK CalculatingDialogCallback ( INT_PTR CALLBACK CalculatingDialogCallback (
HWND hwndDlg, // handle to dialog box HWND hwndDlg, // handle to dialog box
UINT uMsg, // message UINT uMsg, // message
WPARAM wParam, // first message parameter WPARAM wParam, // first message parameter
@ -34,14 +34,14 @@ int CALLBACK CalculatingDialogCallback (
) )
{ {
double TimeCurrent = CTime::ticksToSecond( CTime::getPerformanceTime() ); double TimeCurrent = CTime::ticksToSecond( CTime::getPerformanceTime() );
CProgressBar *pClass = (CProgressBar*)GetWindowLong (hwndDlg, GWL_USERDATA); CProgressBar *pClass = (CProgressBar*)GetWindowLongPtr (hwndDlg, GWLP_USERDATA);
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
LONG res = SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)lParam); LONG res = SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam);
pClass = (CProgressBar*)GetWindowLong (hwndDlg, GWL_USERDATA); pClass = (CProgressBar*)GetWindowLongPtr (hwndDlg, GWLP_USERDATA);
CenterWindow( hwndDlg, theCNelExport._Ip->GetMAXHWnd() ); CenterWindow( hwndDlg, theCNelExport._Ip->GetMAXHWnd() );
ShowWindow( hwndDlg, SW_SHOWNORMAL ); ShowWindow( hwndDlg, SW_SHOWNORMAL );

View file

@ -14,6 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <assert.h>
#include <windows.h> #include <windows.h>
#include <locale.h> #include <locale.h>
#include <windowsx.h> #include <windowsx.h>

View file

@ -2,18 +2,11 @@ FILE(GLOB SRC *.cpp *.h)
ADD_LIBRARY(nel_mesh_lib STATIC ${SRC}) ADD_LIBRARY(nel_mesh_lib STATIC ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${MAXSDK_INCLUDE_DIR} ${MAXSDK_CS_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${MAXSDK_INCLUDE_DIR} ${MAXSDK_CS_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_mesh_lib ${LIBXML2_LIBRARIES} nelmisc) TARGET_LINK_LIBRARIES(nel_mesh_lib nelmisc)
SET_TARGET_PROPERTIES(nel_mesh_lib PROPERTIES NL_DEFAULT_PROPS(nel_mesh_lib "MAX Plugin: NeL Mesh Library")
VERSION ${NL_VERSION} NL_ADD_RUNTIME_FLAGS(nel_mesh_lib)
SOVERSION ${NL_VERSION_MAJOR} NL_ADD_LIB_SUFFIX(nel_mesh_lib)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r"
PROJECT_LABEL "MAX Plugin: NeL Mesh Library")
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nel_mesh_lib ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.h ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nel_mesh_lib ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.h ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.cpp)

View file

@ -26,6 +26,7 @@
//#include "nel/misc/types_nl.h" //#include "nel/misc/types_nl.h"
// Max SDK includes // Max SDK includes
//#define NOMINMAX //#define NOMINMAX
#include <assert.h>
#include <algorithm> #include <algorithm>
#include <max.h> #include <max.h>
#include <stdmat.h> #include <stdmat.h>

View file

@ -77,7 +77,8 @@ SLightBuild::SLightBuild()
bool SLightBuild::canConvertFromMaxLight (INode *node, TimeValue tvTime) bool SLightBuild::canConvertFromMaxLight (INode *node, TimeValue tvTime)
{ {
// Get a pointer on the object's node // Get a pointer on the object's node
Object *obj = node->EvalWorldState(tvTime).obj; ObjectState os = node->EvalWorldState(tvTime);
Object *obj = os.obj;
// Check if there is an object // Check if there is an object
if (!obj) if (!obj)
@ -98,7 +99,7 @@ bool SLightBuild::canConvertFromMaxLight (INode *node, TimeValue tvTime)
return false; return false;
if( deleteIt ) if( deleteIt )
maxLight->DeleteMe(); maxLight->MaybeAutoDelete();
return true; return true;
} }
@ -107,7 +108,8 @@ bool SLightBuild::canConvertFromMaxLight (INode *node, TimeValue tvTime)
void SLightBuild::convertFromMaxLight (INode *node,TimeValue tvTime) void SLightBuild::convertFromMaxLight (INode *node,TimeValue tvTime)
{ {
// Get a pointer on the object's node // Get a pointer on the object's node
Object *obj = node->EvalWorldState(tvTime).obj; ObjectState os = node->EvalWorldState(tvTime);
Object *obj = os.obj;
// Check if there is an object // Check if there is an object
if (!obj) return; if (!obj) return;
@ -295,7 +297,7 @@ void SLightBuild::convertFromMaxLight (INode *node,TimeValue tvTime)
this->rSoftShadowConeLength = (float)atof(sTmp.c_str()); this->rSoftShadowConeLength = (float)atof(sTmp.c_str());
if( deleteIt ) if( deleteIt )
maxLight->DeleteMe(); maxLight->MaybeAutoDelete();
} }
// *********************************************************************************************** // ***********************************************************************************************
@ -2401,7 +2403,10 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
TempPlanes[nPlaneNb]->copyFirstLayerTo(*AllPlanes[AllPlanesPrevSize+nPlaneNb],(uint8)nLight); TempPlanes[nPlaneNb]->copyFirstLayerTo(*AllPlanes[AllPlanesPrevSize+nPlaneNb],(uint8)nLight);
for( nPlaneNb = 0; nPlaneNb < (sint)FaceGroupByPlane.size(); ++nPlaneNb ) for( nPlaneNb = 0; nPlaneNb < (sint)FaceGroupByPlane.size(); ++nPlaneNb )
{
delete TempPlanes[nPlaneNb]; delete TempPlanes[nPlaneNb];
TempPlanes[nPlaneNb] = NULL;
}
} }
// Next group of face with the same smooth group and the same material // Next group of face with the same smooth group and the same material
@ -2497,6 +2502,7 @@ bool CExportNel::calculateLM( CMesh::CMeshBuild *pZeMeshBuild, CMeshBase::CMeshB
MoveFaceUV1( AllPlanes[i]->faces.begin(), AllPlanes[i]->faces.size(), MoveFaceUV1( AllPlanes[i]->faces.begin(), AllPlanes[i]->faces.size(),
AllPlanes[i]->x, AllPlanes[i]->y ); AllPlanes[i]->x, AllPlanes[i]->y );
delete AllPlanes[i]; delete AllPlanes[i];
AllPlanes[i] = NULL;
} }
// Save the lightmap // Save the lightmap

View file

@ -264,6 +264,7 @@ void CExportNel::addParticleSystemTracks(CAnimation& animation, INode& node, con
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -281,6 +282,7 @@ void CExportNel::addParticleSystemTracks(CAnimation& animation, INode& node, con
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -325,6 +327,7 @@ void CExportNel::addNodeTracks (CAnimation& animation, INode& node, const char*
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -348,6 +351,7 @@ void CExportNel::addNodeTracks (CAnimation& animation, INode& node, const char*
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -371,6 +375,7 @@ void CExportNel::addNodeTracks (CAnimation& animation, INode& node, const char*
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -389,6 +394,7 @@ void CExportNel::addNodeTracks (CAnimation& animation, INode& node, const char*
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -413,6 +419,7 @@ void CExportNel::addNodeTracks (CAnimation& animation, INode& node, const char*
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -443,6 +450,7 @@ void CExportNel::addNodeTracks (CAnimation& animation, INode& node, const char*
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -541,7 +549,8 @@ void CExportNel::addLightTracks (NL3D::CAnimation& animation, INode& node, const
{ {
CExportDesc desc; CExportDesc desc;
Object *obj = node.EvalWorldState(0).obj; ObjectState os = node.EvalWorldState(0);
Object *obj = os.obj;
// Check if there is an object // Check if there is an object
if (!obj) if (!obj)
@ -567,6 +576,7 @@ void CExportNel::addLightTracks (NL3D::CAnimation& animation, INode& node, const
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -609,6 +619,7 @@ void CExportNel::addMorphTracks (NL3D::CAnimation& animation, INode& node, const
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -639,6 +650,7 @@ void CExportNel::addObjTracks (CAnimation& animation, Object& obj, const char* p
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -681,6 +693,7 @@ void CExportNel::addMtlTracks (CAnimation& animation, Mtl& mtl, const char* pare
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -705,6 +718,7 @@ void CExportNel::addMtlTracks (CAnimation& animation, Mtl& mtl, const char* pare
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -731,6 +745,7 @@ void CExportNel::addMtlTracks (CAnimation& animation, Mtl& mtl, const char* pare
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -755,6 +770,7 @@ void CExportNel::addMtlTracks (CAnimation& animation, Mtl& mtl, const char* pare
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -779,6 +795,7 @@ void CExportNel::addMtlTracks (CAnimation& animation, Mtl& mtl, const char* pare
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -862,6 +879,7 @@ void CExportNel::addTexTracks (CAnimation& animation, Texmap& tex, uint stage, c
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -884,6 +902,7 @@ void CExportNel::addTexTracks (CAnimation& animation, Texmap& tex, uint stage, c
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -906,6 +925,7 @@ void CExportNel::addTexTracks (CAnimation& animation, Texmap& tex, uint stage, c
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -928,6 +948,7 @@ void CExportNel::addTexTracks (CAnimation& animation, Texmap& tex, uint stage, c
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -950,6 +971,7 @@ void CExportNel::addTexTracks (CAnimation& animation, Texmap& tex, uint stage, c
if (animation.getTrackByName (name.c_str())) if (animation.getTrackByName (name.c_str()))
{ {
delete pTrack; delete pTrack;
pTrack = NULL;
} }
else else
{ {
@ -2319,7 +2341,7 @@ void CSSSBuild::compile(NL3D::CAnimation &dest, const char* sBaseName)
{ {
// no keys added // no keys added
delete finalTrack; delete finalTrack;
finalTrack= NULL; finalTrack = NULL;
} }

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