diff options
68 files changed, 1210 insertions, 833 deletions
diff --git a/.gitignore b/.gitignore index ace64225d0c..7dbed8f3ea2 100644 --- a/.gitignore +++ b/.gitignore @@ -7,10 +7,12 @@ build*/ *~ .hg/ *.kdev* +.DS_Store +CMakeLists.txt.user *.bak *.patch *.diff *.REMOTE.* *.BACKUP.* *.BASE.* -*.LOCAL.*
\ No newline at end of file +*.LOCAL.* diff --git a/cmake/compiler/clang/settings.cmake b/cmake/compiler/clang/settings.cmake new file mode 100644 index 00000000000..add9fa8694d --- /dev/null +++ b/cmake/compiler/clang/settings.cmake @@ -0,0 +1,15 @@ +# Set build-directive (used in core to tell which buildtype we used) +add_definitions(-D_BUILD_DIRECTIVE='"$(CONFIGURATION)"') + +if(WITH_WARNINGS) + set(WARNING_FLAGS "-W -Wall -Wextra -Wwrite-strings -Winit-self -Woverloaded-virtual -Wfatal-errors") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS}") + message(STATUS "Clang: All warnings enabled") +endif() + +if(WITH_COREDEBUG) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3") + message(STATUS "Clang: Debug-flags set (-g3)") +endif() diff --git a/cmake/compiler/gcc/settings.cmake b/cmake/compiler/gcc/settings.cmake index 8247831fdd8..d74fc39031b 100644 --- a/cmake/compiler/gcc/settings.cmake +++ b/cmake/compiler/gcc/settings.cmake @@ -1,24 +1,24 @@ # Set build-directive (used in core to tell which buildtype we used) add_definitions(-D_BUILD_DIRECTIVE='"${CMAKE_BUILD_TYPE}"') -add_definitions(-fno-delete-null-pointer-checks) - if(PLATFORM EQUAL 32) # Required on 32-bit systems to enable SSE2 (standard on x64) - add_definitions(-msse2 -mfpmath=sse) + set(SSE_FLAGS "-msse2 -mfpmath=sse") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SSE_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SSE_FLAGS}") endif() add_definitions(-DHAVE_SSE2 -D__SSE2__) -message(STATUS "GCC: SSE2 flags forced") +message(STATUS "GCC: SFMT enabled, SSE2 flags forced") if( WITH_WARNINGS ) - add_definitions(-Wall -Wfatal-errors -Wextra) + set(WARNING_FLAGS "-W -Wall -Wextra -Wwrite-strings -Winit-self -Woverloaded-virtual -Winvalid-pch -Wfatal-errors") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS}") message(STATUS "GCC: All warnings enabled") -else() - add_definitions(--no-warnings) - message(STATUS "GCC: All warnings disabled") endif() if( WITH_COREDEBUG ) - add_definitions(-ggdb3) - message(STATUS "GCC: Debug-flags set (-ggdb3)") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3") + message(STATUS "GCC: Debug-flags set (-g3)") endif() diff --git a/cmake/compiler/xcode/settings.cmake b/cmake/compiler/xcode/settings.cmake deleted file mode 100644 index b2f73e71310..00000000000 --- a/cmake/compiler/xcode/settings.cmake +++ /dev/null @@ -1,2 +0,0 @@ -# Set build-directive (used in core to tell which buildtype we used) -add_definitions(-D_BUILD_DIRECTIVE='"$(CONFIGURATION)"') diff --git a/cmake/macros/FindPCHSupport.cmake b/cmake/macros/FindPCHSupport.cmake index 39a96b6cadb..a93182cd8f6 100644 --- a/cmake/macros/FindPCHSupport.cmake +++ b/cmake/macros/FindPCHSupport.cmake @@ -1,315 +1,104 @@ -# - Try to find precompiled headers support for GCC 3.4 and 4.x (and MSVC) -# Once done this will define: -# -# Variable: -# PCHSupport_FOUND -# -# Macro: -# ADD_PRECOMPILED_HEADER _targetName _input _dowarn -# ADD_PRECOMPILED_HEADER_TO_TARGET _targetName _input _pch_output_to_use _dowarn -# ADD_NATIVE_PRECOMPILED_HEADER _targetName _input _dowarn -# GET_NATIVE_PRECOMPILED_HEADER _targetName _input +FUNCTION(GET_COMMON_PCH_PARAMS PCH_HEADER PCH_FE INCLUDE_PREFIX) + GET_FILENAME_COMPONENT(PCH_HEADER_N ${PCH_HEADER} NAME) + GET_DIRECTORY_PROPERTY(TARGET_INCLUDES INCLUDE_DIRECTORIES) + + FOREACH(ITEM ${TARGET_INCLUDES}) + LIST(APPEND INCLUDE_FLAGS_LIST "${INCLUDE_PREFIX}${ITEM} ") + ENDFOREACH(ITEM) + + SET(PCH_HEADER_NAME ${PCH_HEADER_N} PARENT_SCOPE) + SET(PCH_HEADER_OUT ${CMAKE_CURRENT_BINARY_DIR}/${PCH_HEADER_N}.${PCH_FE} PARENT_SCOPE) + SET(INCLUDE_FLAGS ${INCLUDE_FLAGS_LIST} PARENT_SCOPE) +ENDFUNCTION(GET_COMMON_PCH_PARAMS) + +FUNCTION(GENERATE_CXX_PCH_COMMAND TARGET_NAME INCLUDE_FLAGS IN PCH_SRC OUT) + IF (CMAKE_BUILD_TYPE) + STRING(TOUPPER _${CMAKE_BUILD_TYPE} CURRENT_BUILD_TYPE) + ENDIF () + + SET(COMPILE_FLAGS ${CMAKE_CXX_FLAGS${CURRENT_BUILD_TYPE}}) + LIST(APPEND COMPILE_FLAGS ${CMAKE_CXX_FLAGS}) + + IF ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin") + IF (NOT "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "") + LIST(APPEND COMPILE_FLAGS "-arch ${CMAKE_OSX_ARCHITECTURES}") + ENDIF () + IF (NOT "${CMAKE_OSX_SYSROOT}" STREQUAL "") + LIST(APPEND COMPILE_FLAGS "-isysroot ${CMAKE_OSX_SYSROOT}") + ENDIF () + IF (NOT "${CMAKE_OSX_DEPLOYMENT_TARGET}" STREQUAL "") + LIST(APPEND COMPILE_FLAGS "-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + ENDIF () + ENDIF () + + GET_DIRECTORY_PROPERTY(TARGET_DEFINITIONS COMPILE_DEFINITIONS) + FOREACH(ITEM ${TARGET_DEFINITIONS}) + LIST(APPEND DEFINITION_FLAGS "-D${ITEM} ") + ENDFOREACH(ITEM) + + SEPARATE_ARGUMENTS(COMPILE_FLAGS) + SEPARATE_ARGUMENTS(INCLUDE_FLAGS) + SEPARATE_ARGUMENTS(DEFINITION_FLAGS) + + GET_FILENAME_COMPONENT(PCH_SRC_N ${PCH_SRC} NAME) + ADD_LIBRARY(${PCH_SRC_N}_dephelp MODULE ${PCH_SRC}) -IF(CMAKE_COMPILER_IS_GNUCXX) - - EXEC_PROGRAM( - ${CMAKE_CXX_COMPILER} - ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion - OUTPUT_VARIABLE gcc_compiler_version - ) - #MESSAGE("GCC Version: ${gcc_compiler_version}") - IF(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]") - SET(PCHSupport_FOUND TRUE) - ELSE(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]") - IF(gcc_compiler_version MATCHES "3\\.4\\.[0-9]") - SET(PCHSupport_FOUND TRUE) - ENDIF(gcc_compiler_version MATCHES "3\\.4\\.[0-9]") - ENDIF(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]") - - SET(_PCH_include_prefix "-I") - -ELSE(CMAKE_COMPILER_IS_GNUCXX) - - IF(WIN32) - SET(PCHSupport_FOUND TRUE) # for experimental msvc support - SET(_PCH_include_prefix "/I") - ELSE(WIN32) - SET(PCHSupport_FOUND FALSE) - ENDIF(WIN32) - -ENDIF(CMAKE_COMPILER_IS_GNUCXX) - -MACRO(_PCH_GET_COMPILE_FLAGS _out_compile_flags) - - STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _flags_var_name) - SET(${_out_compile_flags} ${${_flags_var_name}} ) - - IF(CMAKE_COMPILER_IS_GNUCXX) - GET_TARGET_PROPERTY(_targetType ${_PCH_current_target} TYPE) - IF(${_targetType} STREQUAL SHARED_LIBRARY AND NOT WIN32) - LIST(APPEND ${_out_compile_flags} -fPIC) - ENDIF() - - ELSE(CMAKE_COMPILER_IS_GNUCXX) - ## TODO ... ? or does it work out of the box - ENDIF(CMAKE_COMPILER_IS_GNUCXX) - - GET_DIRECTORY_PROPERTY(DIRINC INCLUDE_DIRECTORIES ) - FOREACH(item ${DIRINC}) - LIST(APPEND ${_out_compile_flags} "${_PCH_include_prefix}${item}") - ENDFOREACH(item) - - GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS) - GET_DIRECTORY_PROPERTY(_global_definitions DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS) - #MESSAGE("_directory_flags ${_directory_flags} ${_global_definitions}" ) - LIST(APPEND ${_out_compile_flags} ${_directory_flags}) - LIST(APPEND ${_out_compile_flags} ${_global_definitions}) - LIST(APPEND ${_out_compile_flags} ${CMAKE_CXX_FLAGS} ) - - SEPARATE_ARGUMENTS(${_out_compile_flags}) - -ENDMACRO(_PCH_GET_COMPILE_FLAGS) - -MACRO(_PCH_WRITE_PCHDEP_CXX _targetName _include_file _dephelp) - - SET(${_dephelp} ${CMAKE_CURRENT_BINARY_DIR}/${_targetName}_pch_dephelp.cxx) - FILE(WRITE ${${_dephelp}} -"#include \"${_include_file}\" -int testfunction() -{ - return 0; -} -" + ADD_CUSTOM_COMMAND( + OUTPUT ${OUT} + COMMAND ${CMAKE_CXX_COMPILER} + ARGS ${DEFINITION_FLAGS} ${COMPILE_FLAGS} ${INCLUDE_FLAGS} -x c++-header ${IN} -o ${OUT} + DEPENDS ${IN} ${PCH_SRC_N}_dephelp + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) -ENDMACRO(_PCH_WRITE_PCHDEP_CXX ) - -MACRO(_PCH_GET_COMPILE_COMMAND out_command _input _output) - - FILE(TO_NATIVE_PATH ${_input} _native_input) - FILE(TO_NATIVE_PATH ${_output} _native_output) - - - IF(CMAKE_COMPILER_IS_GNUCXX) - IF(CMAKE_CXX_COMPILER_ARG1) - # remove leading space in compiler argument - STRING(REGEX REPLACE "^ +" "" pchsupport_compiler_cxx_arg1 ${CMAKE_CXX_COMPILER_ARG1}) - - SET(${out_command} - ${CMAKE_CXX_COMPILER} ${pchsupport_compiler_cxx_arg1} ${_compile_FLAGS} -x c++-header -o ${_output} ${_input} - ) - ELSE(CMAKE_CXX_COMPILER_ARG1) - SET(${out_command} - ${CMAKE_CXX_COMPILER} ${_compile_FLAGS} -x c++-header -o ${_output} ${_input} - ) - ENDIF(CMAKE_CXX_COMPILER_ARG1) - ELSE(CMAKE_COMPILER_IS_GNUCXX) - - SET(_dummy_str "#include <${_input}>") - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/pch_dummy.cpp ${_dummy_str}) - - SET(${out_command} - ${CMAKE_CXX_COMPILER} ${_compile_FLAGS} /c /Fp${_native_output} /Yc${_native_input} pch_dummy.cpp - ) - #/out:${_output} - - ENDIF(CMAKE_COMPILER_IS_GNUCXX) - -ENDMACRO(_PCH_GET_COMPILE_COMMAND ) - - - -MACRO(_PCH_GET_TARGET_COMPILE_FLAGS _cflags _header_name _pch_path _dowarn ) - - FILE(TO_NATIVE_PATH ${_pch_path} _native_pch_path) - - IF(CMAKE_COMPILER_IS_GNUCXX) - # for use with distcc and gcc >4.0.1 if preprocessed files are accessible - # on all remote machines set - # PCH_ADDITIONAL_COMPILER_FLAGS to -fpch-preprocess - # if you want warnings for invalid header files (which is very inconvenient - # if you have different versions of the headers for different build types - # you may set _pch_dowarn - IF (_dowarn) - SET(${_cflags} "${PCH_ADDITIONAL_COMPILER_FLAGS} -include ${CMAKE_CURRENT_BINARY_DIR}/${_header_name} -Winvalid-pch " ) - ELSE (_dowarn) - SET(${_cflags} "${PCH_ADDITIONAL_COMPILER_FLAGS} -include ${CMAKE_CURRENT_BINARY_DIR}/${_header_name} " ) - ENDIF (_dowarn) - ELSE(CMAKE_COMPILER_IS_GNUCXX) - - set(${_cflags} "/Fp${_native_pch_path} /Yu${_header_name}" ) - - ENDIF(CMAKE_COMPILER_IS_GNUCXX) - -ENDMACRO(_PCH_GET_TARGET_COMPILE_FLAGS ) - -MACRO(GET_PRECOMPILED_HEADER_OUTPUT _targetName _input _output) - GET_FILENAME_COMPONENT(_name ${_input} NAME) - GET_FILENAME_COMPONENT(_path ${_input} PATH) - SET(_output "${CMAKE_CURRENT_BINARY_DIR}/${_name}.gch/${_targetName}_${CMAKE_BUILD_TYPE}.gch") -ENDMACRO(GET_PRECOMPILED_HEADER_OUTPUT _targetName _input) - - -MACRO(ADD_PRECOMPILED_HEADER_TO_TARGET _targetName _input _pch_output_to_use ) - - # to do: test whether compiler flags match between target _targetName - # and _pch_output_to_use - GET_FILENAME_COMPONENT(_name ${_input} NAME) - - IF( "${ARGN}" STREQUAL "0") - SET(_dowarn 0) - ELSE( "${ARGN}" STREQUAL "0") - SET(_dowarn 1) - ENDIF("${ARGN}" STREQUAL "0") + ADD_CUSTOM_TARGET(generate_${PCH_SRC_N} + DEPENDS ${OUT} + ) + ADD_DEPENDENCIES(${TARGET_NAME} generate_${PCH_SRC_N}) +ENDFUNCTION(GENERATE_CXX_PCH_COMMAND) - _PCH_GET_TARGET_COMPILE_FLAGS(_target_cflags ${_name} ${_pch_output_to_use} ${_dowarn}) - # MESSAGE("Add flags ${_target_cflags} to ${_targetName} " ) - SET_TARGET_PROPERTIES(${_targetName} - PROPERTIES - COMPILE_FLAGS ${_target_cflags} +FUNCTION(ADD_CXX_PCH_GCC TARGET_NAME PCH_HEADER PCH_SOURCE) + GET_COMMON_PCH_PARAMS(${PCH_HEADER} "gch" "-I") + GENERATE_CXX_PCH_COMMAND(${TARGET_NAME} "${INCLUDE_FLAGS}" ${PCH_HEADER} ${PCH_SOURCE} ${PCH_HEADER_OUT}) + SET_TARGET_PROPERTIES( + ${TARGET_NAME} PROPERTIES + COMPILE_FLAGS "-include ${CMAKE_CURRENT_BINARY_DIR}/${PCH_HEADER_NAME}" ) - - ADD_CUSTOM_TARGET(pch_Generate_${_targetName} - DEPENDS ${_pch_output_to_use} +ENDFUNCTION(ADD_CXX_PCH_GCC) + +FUNCTION(ADD_CXX_PCH_CLANG TARGET_NAME PCH_HEADER PCH_SOURCE) + GET_COMMON_PCH_PARAMS(${PCH_HEADER} "pch" "-I") + GENERATE_CXX_PCH_COMMAND(${TARGET_NAME} "${INCLUDE_FLAGS}" ${PCH_HEADER} ${PCH_SOURCE} ${PCH_HEADER_OUT}) + SET_TARGET_PROPERTIES( + ${TARGET_NAME} PROPERTIES + COMPILE_FLAGS "-include-pch ${PCH_HEADER_OUT}" ) +ENDFUNCTION(ADD_CXX_PCH_CLANG) - ADD_DEPENDENCIES(${_targetName} pch_Generate_${_targetName} ) - -ENDMACRO(ADD_PRECOMPILED_HEADER_TO_TARGET) - -MACRO(ADD_PRECOMPILED_HEADER _targetName _input) - - SET(_PCH_current_target ${_targetName}) - - IF(NOT CMAKE_BUILD_TYPE) - MESSAGE(FATAL_ERROR - "This is the ADD_PRECOMPILED_HEADER macro. " - "You must set CMAKE_BUILD_TYPE!" - ) - ENDIF(NOT CMAKE_BUILD_TYPE) - - IF( "${ARGN}" STREQUAL "0") - SET(_dowarn 0) - ELSE( "${ARGN}" STREQUAL "0") - SET(_dowarn 1) - ENDIF("${ARGN}" STREQUAL "0") - - GET_FILENAME_COMPONENT(_name ${_input} NAME) - GET_FILENAME_COMPONENT(_path ${_input} PATH) - GET_PRECOMPILED_HEADER_OUTPUT( ${_targetName} ${_input} _output) - - GET_FILENAME_COMPONENT(_outdir ${_output} PATH ) - - GET_TARGET_PROPERTY(_targetType ${_PCH_current_target} TYPE) - _PCH_WRITE_PCHDEP_CXX(${_targetName} ${_input} _pch_dephelp_cxx) - - IF(${_targetType} STREQUAL SHARED_LIBRARY) - ADD_LIBRARY(${_targetName}_pch_dephelp STATIC ${_pch_dephelp_cxx} ) - ELSE(${_targetType} STREQUAL SHARED_LIBRARY) - ADD_LIBRARY(${_targetName}_pch_dephelp STATIC ${_pch_dephelp_cxx}) - ENDIF(${_targetType} STREQUAL SHARED_LIBRARY) - - FILE(MAKE_DIRECTORY ${_outdir}) - - _PCH_GET_COMPILE_FLAGS(_compile_FLAGS) - - #MESSAGE("_compile_FLAGS: ${_compile_FLAGS}") - #message("COMMAND ${CMAKE_CXX_COMPILER} ${_compile_FLAGS} -x c++-header -o ${_output} ${_input}") - SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/${_name} PROPERTIES GENERATED 1) - ADD_CUSTOM_COMMAND( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_name} - COMMAND ${CMAKE_COMMAND} -E copy ${_input} ${CMAKE_CURRENT_BINARY_DIR}/${_name} # ensure same directory! Required by gcc - DEPENDS ${_input} +FUNCTION(ADD_CXX_PCH_MSVC TARGET_NAME PCH_HEADER PCH_SOURCE) + GET_COMMON_PCH_PARAMS(${PCH_HEADER} "pch" "/I") + SET_TARGET_PROPERTIES( + ${TARGET_NAME} PROPERTIES + COMPILE_FLAGS "/FI${PCH_HEADER_NAME} /Yu${PCH_HEADER_NAME}" ) - - #message("_command ${_input} ${_output}") - _PCH_GET_COMPILE_COMMAND(_command ${CMAKE_CURRENT_BINARY_DIR}/${_name} ${_output} ) - - #message(${_input} ) - #message("_output ${_output}") - - ADD_CUSTOM_COMMAND( - OUTPUT ${_output} - COMMAND ${_command} - DEPENDS ${_input} ${CMAKE_CURRENT_BINARY_DIR}/${_name} ${_targetName}_pch_dephelp + SET_SOURCE_FILES_PROPERTIES( + ${PCH_SOURCE} PROPERTIES + COMPILE_FLAGS "/Yc${PCH_HEADER_NAME}" ) - - ADD_PRECOMPILED_HEADER_TO_TARGET(${_targetName} ${_input} ${_output} ${_dowarn}) -ENDMACRO(ADD_PRECOMPILED_HEADER) - -# Generates the use of precompiled in a target, -# without using depency targets (2 extra for each target) -# Using Visual, must also add ${_targetName}_pch to sources -# Not needed by Xcode - -MACRO(GET_NATIVE_PRECOMPILED_HEADER _targetName _input) - - if(CMAKE_GENERATOR MATCHES Visual*) - - SET(_dummy_str "#include \"${_input}\"\n" - "// This is required to suppress LNK4221. Very annoying.\n" - "void *g_${_targetName}Dummy = 0\;\n") - - # Use of cxx extension for generated files (as Qt does) - SET(${_targetName}_pch ${CMAKE_CURRENT_BINARY_DIR}/${_targetName}_pch.cxx) - if(EXISTS ${${_targetName}_pch}) - # Check if contents is the same, if not rewrite - # todo - else(EXISTS ${${_targetName}_pch}) - FILE(WRITE ${${_targetName}_pch} ${_dummy_str}) - endif(EXISTS ${${_targetName}_pch}) - endif(CMAKE_GENERATOR MATCHES Visual*) - -ENDMACRO(GET_NATIVE_PRECOMPILED_HEADER) - -MACRO(ADD_NATIVE_PRECOMPILED_HEADER _targetName _input) - - IF( "${ARGN}" STREQUAL "0") - SET(_dowarn 0) - ELSE( "${ARGN}" STREQUAL "0") - SET(_dowarn 1) - ENDIF("${ARGN}" STREQUAL "0") - - if(CMAKE_GENERATOR MATCHES Visual*) - # Auto include the precompile (useful for moc processing, since the use of - # precompiled is specified at the target level - # and I don't want to specifiy /F- for each moc/res/ui generated files (using Qt) - - GET_TARGET_PROPERTY(oldProps ${_targetName} COMPILE_FLAGS) - if (${oldProps} MATCHES NOTFOUND) - SET(oldProps "") - endif(${oldProps} MATCHES NOTFOUND) - - SET(newProperties "${oldProps} /Yu\"${_input}.h\" /FI\"${_input}.h\"") - SET_TARGET_PROPERTIES(${_targetName} PROPERTIES COMPILE_FLAGS "${newProperties}") - - #also inlude ${oldProps} to have the same compile options - SET_SOURCE_FILES_PROPERTIES(${_input}.cpp PROPERTIES COMPILE_FLAGS "${oldProps} /Yc\"${_input}.h\"") - - else(CMAKE_GENERATOR MATCHES Visual*) - - if (CMAKE_GENERATOR MATCHES Xcode) - # For Xcode, cmake needs my patch to process - # GCC_PREFIX_HEADER and GCC_PRECOMPILE_PREFIX_HEADER as target properties - - GET_TARGET_PROPERTY(oldProps ${_targetName} COMPILE_FLAGS) - if (${oldProps} MATCHES NOTFOUND) - SET(oldProps "") - endif(${oldProps} MATCHES NOTFOUND) - - # When buiding out of the tree, precompiled may not be located - # Use full path instead. - GET_FILENAME_COMPONENT(fullPath ${_input} ABSOLUTE) - - SET_TARGET_PROPERTIES(${_targetName} PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${fullPath}") - SET_TARGET_PROPERTIES(${_targetName} PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES") - - else (CMAKE_GENERATOR MATCHES Xcode) - - #Fallback to the "old" precompiled suppport - #ADD_PRECOMPILED_HEADER(${_targetName} ${_input} ${_dowarn}) - endif(CMAKE_GENERATOR MATCHES Xcode) - endif(CMAKE_GENERATOR MATCHES Visual*) - -ENDMACRO(ADD_NATIVE_PRECOMPILED_HEADER) +ENDFUNCTION(ADD_CXX_PCH_MSVC) + +FUNCTION(ADD_CXX_PCH TARGET_NAME PCH_HEADER PCH_SOURCE) + IF (MSVC) + ADD_CXX_PCH_MSVC(${TARGET_NAME} ${PCH_HEADER} ${PCH_SOURCE}) + ELSEIF ("${CMAKE_GENERATOR}" MATCHES "Xcode") + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES + XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/${PCH_HEADER}" + ) + ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + ADD_CXX_PCH_CLANG(${TARGET_NAME} ${PCH_HEADER} ${PCH_SOURCE}) + ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") + ADD_CXX_PCH_GCC(${TARGET_NAME} ${PCH_HEADER} ${PCH_SOURCE}) + ENDIF () +ENDFUNCTION(ADD_CXX_PCH) diff --git a/cmake/platform/osx/settings.cmake b/cmake/platform/osx/settings.cmake index f623ecf8c27..3d232c5a1f0 100644 --- a/cmake/platform/osx/settings.cmake +++ b/cmake/platform/osx/settings.cmake @@ -1,6 +1,4 @@ set(MACOSX 1) -set(OSX_LIBS /usr/lib/libcrypto.dylib) -add_definitions(-D__ASSERTMACROS__) # set default configuration directory if( NOT CONF_DIR ) @@ -28,4 +26,8 @@ add_custom_target(uninstall ) message(STATUS "OSX: Created uninstall target") -include(${CMAKE_SOURCE_DIR}/cmake/compiler/xcode/settings.cmake) +if (CMAKE_COMPILER_IS_GNUCC) + include(${CMAKE_SOURCE_DIR}/cmake/compiler/gcc/settings.cmake) +elseif (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") + include(${CMAKE_SOURCE_DIR}/cmake/compiler/clang/settings.cmake) +endif() diff --git a/cmake/platform/unix/settings.cmake b/cmake/platform/unix/settings.cmake index dd8b7c081f3..c79cfc4ed4f 100644 --- a/cmake/platform/unix/settings.cmake +++ b/cmake/platform/unix/settings.cmake @@ -2,6 +2,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux") if (NOT NOJEM) set(JEMALLOC_LIBRARY "jemalloc") + message(STATUS "UNIX: Using jemalloc") endif() endif() diff --git a/dep/acelite/6.1.4_tc_changes.diff b/dep/acelite/6.1.4_tc_changes.diff index a0caff7ab7d..6f1a5c2f3bf 100644 --- a/dep/acelite/6.1.4_tc_changes.diff +++ b/dep/acelite/6.1.4_tc_changes.diff @@ -3,7 +3,7 @@ new file mode 100644 index 0000000..acd3d5a --- /dev/null +++ b/dep/acelite/ace/CMakeLists.txt -@@ -0,0 +1,337 @@ +@@ -0,0 +1,348 @@ +# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/> +# +# This file is free software; as a special exception the author gives @@ -325,6 +325,11 @@ index 0000000..acd3d5a + XTI_ATM_Mcast.cpp +) + ++if (USE_COREPCH) ++ set(ace_PCH_HDR PrecompiledHeaders/WinAcePCH.h) ++ set(ace_PCH_SRC PrecompiledHeaders/WinAcePCH.cpp) ++endif() ++ +include_directories( + ${CMAKE_SOURCE_DIR}/dep/acelite + ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders @@ -336,9 +341,15 @@ index 0000000..acd3d5a + +add_definitions(-DACE_BUILD_DLL) + -+add_library(ace SHARED ${ace_STAT_SRCS}) ++add_library(ace SHARED ++ ${ace_STAT_SRCS} ++ ${ace_PCH_SRC} ++) + -+add_native_precompiled_header(ace ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/WinAcePCH) ++# Generate precompiled header ++if( USE_COREPCH ) ++ add_cxx_pch(ace ${ace_PCH_HDR} ${ace_PCH_SRC}) ++endif() + +install(TARGETS ace RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}") diff --git a/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp b/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp diff --git a/dep/acelite/ace/CMakeLists.txt b/dep/acelite/ace/CMakeLists.txt index a0a590e0c30..f22bc381202 100644 --- a/dep/acelite/ace/CMakeLists.txt +++ b/dep/acelite/ace/CMakeLists.txt @@ -320,6 +320,11 @@ set(ace_STAT_SRCS XTI_ATM_Mcast.cpp ) +if (USE_COREPCH) + set(ace_PCH_HDR PrecompiledHeaders/WinAcePCH.h) + set(ace_PCH_SRC PrecompiledHeaders/WinAcePCH.cpp) +endif() + include_directories( ${CMAKE_SOURCE_DIR}/dep/acelite ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders @@ -331,8 +336,14 @@ set_source_files_properties(Atomic_Op_Sparc.c Rtems_init.c PROPERTIES LANGUAGE C add_definitions(-DACE_BUILD_DLL) -add_library(ace SHARED ${ace_STAT_SRCS}) +add_library(ace SHARED + ${ace_STAT_SRCS} + ${ace_PCH_SRC} +) -add_native_precompiled_header(ace ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/WinAcePCH) +# Generate precompiled header +if( USE_COREPCH ) + add_cxx_pch(ace ${ace_PCH_HDR} ${ace_PCH_SRC}) +endif() install(TARGETS ace RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}") diff --git a/dep/g3dlite/G3D-v8.0_extra.diff b/dep/g3dlite/G3D-v8.0_extra.diff index d556103c96d..62c513435b9 100644 --- a/dep/g3dlite/G3D-v8.0_extra.diff +++ b/dep/g3dlite/G3D-v8.0_extra.diff @@ -10,3 +10,16 @@ index 3469b81..9fe098d 100644 #endif +diff --git a/dep/g3dlite/include/G3D/platform.h b/dep/g3dlite/include/G3D/platform.h +index c8d2f0b..11093f4 100644 +--- a/dep/g3dlite/include/G3D/platform.h ++++ b/dep/g3dlite/include/G3D/platform.h +@@ -57,7 +57,7 @@ + #elif defined(__linux__) + #define G3D_LINUX + #elif defined(__APPLE__) +- #define G3D_OSX ++ #define G3D_LINUX + + // Prevent OS X fp.h header from being included; it defines + // pi as a constant, which creates a conflict with G3D diff --git a/dep/g3dlite/include/G3D/platform.h b/dep/g3dlite/include/G3D/platform.h index c8d2f0b6534..11093f4a6ce 100644 --- a/dep/g3dlite/include/G3D/platform.h +++ b/dep/g3dlite/include/G3D/platform.h @@ -57,7 +57,7 @@ #elif defined(__linux__) #define G3D_LINUX #elif defined(__APPLE__) - #define G3D_OSX + #define G3D_LINUX // Prevent OS X fp.h header from being included; it defines // pi as a constant, which creates a conflict with G3D diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql index 4a2d2951da3..5548630d2d6 100644 --- a/sql/base/characters_database.sql +++ b/sql/base/characters_database.sql @@ -1727,20 +1727,6 @@ CREATE TABLE `guild_member` ( `rank` tinyint(3) unsigned NOT NULL, `pnote` varchar(31) NOT NULL DEFAULT '', `offnote` varchar(31) NOT NULL DEFAULT '', - `BankResetTimeMoney` int(10) unsigned NOT NULL DEFAULT '0', - `BankRemMoney` int(10) unsigned NOT NULL DEFAULT '0', - `BankResetTimeTab0` int(10) unsigned NOT NULL DEFAULT '0', - `BankRemSlotsTab0` int(10) unsigned NOT NULL DEFAULT '0', - `BankResetTimeTab1` int(10) unsigned NOT NULL DEFAULT '0', - `BankRemSlotsTab1` int(10) unsigned NOT NULL DEFAULT '0', - `BankResetTimeTab2` int(10) unsigned NOT NULL DEFAULT '0', - `BankRemSlotsTab2` int(10) unsigned NOT NULL DEFAULT '0', - `BankResetTimeTab3` int(10) unsigned NOT NULL DEFAULT '0', - `BankRemSlotsTab3` int(10) unsigned NOT NULL DEFAULT '0', - `BankResetTimeTab4` int(10) unsigned NOT NULL DEFAULT '0', - `BankRemSlotsTab4` int(10) unsigned NOT NULL DEFAULT '0', - `BankResetTimeTab5` int(10) unsigned NOT NULL DEFAULT '0', - `BankRemSlotsTab5` int(10) unsigned NOT NULL DEFAULT '0', UNIQUE KEY `guid_key` (`guid`), KEY `guildid_key` (`guildid`), KEY `guildid_rank_key` (`guildid`,`rank`) @@ -1757,6 +1743,35 @@ LOCK TABLES `guild_member` WRITE; UNLOCK TABLES; -- +-- Table structure for table `guild_member_withdraw` +-- + +DROP TABLE IF EXISTS `guild_member_withdraw`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE IF NOT EXISTS `guild_member_withdraw` ( + `guid` int(10) unsigned NOT NULL, + `tab0` int(10) unsigned NOT NULL DEFAULT '0', + `tab1` int(10) unsigned NOT NULL DEFAULT '0', + `tab2` int(10) unsigned NOT NULL DEFAULT '0', + `tab3` int(10) unsigned NOT NULL DEFAULT '0', + `tab4` int(10) unsigned NOT NULL DEFAULT '0', + `tab5` int(10) unsigned NOT NULL DEFAULT '0', + `money` int(10) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`guid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Guild Member Daily Withdraws'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `guild_member_withdraw` +-- + +LOCK TABLES `guild_member_withdraw` WRITE; +/*!40000 ALTER TABLE `guild_member_withdraw` DISABLE KEYS */; +/*!40000 ALTER TABLE `guild_member_withdraw` ENABLE KEYS */; +UNLOCK TABLES; + +-- -- Table structure for table `guild_rank` -- diff --git a/sql/updates/characters/2012_11_02_00_character_misc.sql b/sql/updates/characters/2012_11_02_00_character_misc.sql index a7613944dc4..9cbbd423bb8 100644 --- a/sql/updates/characters/2012_11_02_00_character_misc.sql +++ b/sql/updates/characters/2012_11_02_00_character_misc.sql @@ -27,4 +27,3 @@ ALTER TABLE `guild_member` DROP COLUMN `BankResetTimeTab5`; DELETE FROM `worldstates` WHERE `entry`=20006; INSERT INTO `worldstates` (`entry`,`value`,`comment`) VALUES (20006,0, 'Guild daily reset'); - diff --git a/sql/updates/world/2012_11_07_00_world_misc.sql b/sql/updates/world/2012_11_07_00_world_misc.sql new file mode 100644 index 00000000000..db7c8f66fb1 --- /dev/null +++ b/sql/updates/world/2012_11_07_00_world_misc.sql @@ -0,0 +1,36 @@ +SET @GUID := 43456; + +DELETE FROM `creature` WHERE `guid` BETWEEN @GUID+0 AND @GUID+3; +INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES +(@GUID+0,30236,571,1,64,0,0,6219.17,59.9983,400.375,1.6057,120,0,0,1,0,0,0,0,0), +(@GUID+1,30236,571,1,64,0,0,6256.11,93.2413,410.92,0.767945,120,0,0,1,0,0,0,0,0), +(@GUID+2,30236,571,1,64,0,0,6297.37,53.5677,410.957,0.802851,120,0,0,1,0,0,0,0,0), +(@GUID+3,30236,571,1,64,0,0,6162.81,60.9792,400.371,1.55334,120,0,0,1,0,0,0,0,0); + +DELETE FROM `creature_template_addon` WHERE `entry`=30236; +INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`auras`) VALUES +(30236,0,0,0x0,0x1,''); + +DELETE FROM `creature_model_info` WHERE `modelid`=27101; +INSERT INTO `creature_model_info` (`modelid`,`bounding_radius`,`combat_reach`,`gender`) VALUES +(27101,0.3055,1,2); + +UPDATE `creature_template` SET `VehicleId`=246,`npcflag`=0x1000000,`resistance2`=4394,`resistance4`=1 WHERE `entry`=30236; + +DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=30236; +INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES +(30236,57573,1,0); + +SET @OGUID := 7278; +DELETE FROM `gameobject` WHERE `id` IN (192657,192658,192769,192770,192767,192768,192771,192772); +INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES +(@OGUID+0, 192657, 571, 1, 64, 6255.958, 93.05556, 403.0368, 5.454153, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+1, 192658, 571, 1, 64, 6255.961, 93.06424, 408.4696, 5.44543, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+2, 192769, 571, 1, 64, 6219.205, 59.86806, 392.5132, 6.283184, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+3, 192770, 571, 1, 64, 6219.202, 59.875, 397.924, 6.274461, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+4, 192767, 571, 1, 64, 6297.223, 53.39583, 402.9972, 5.532692, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+5, 192768, 571, 1, 64, 6297.226, 53.40451, 408.4129, 5.523969, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+6, 192771, 571, 1, 64, 6162.772, 60.73438, 392.4362, 6.265733, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+7, 192772, 571, 1, 64, 6162.768, 60.74306, 397.8138, 6.257008, 0, 0, 0, 1, 120, 255, 1); + +UPDATE `gameobject_template` SET `flags`=32,`faction`=114 WHERE `entry` IN (192657,192658,192769,192770,192767,192768,192771,192772); diff --git a/sql/updates/world/2012_11_11_00_world_sai.sql b/sql/updates/world/2012_11_11_00_world_sai.sql new file mode 100644 index 00000000000..7d895b81b7b --- /dev/null +++ b/sql/updates/world/2012_11_11_00_world_sai.sql @@ -0,0 +1,113 @@ +-- Update creature gossip_menu_option from sniff +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (8803,8808,8894,9045,9621,9879,9895,9987,10117,10218) AND `id`=0; +DELETE FROM `gossip_menu_option` WHERE `menu_id`=9879 AND `id`=1; +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES +(8803,0,1, 'I need some booze, Coot.',3,128,0,0,0,0, ''), +(8808,0,1, 'I require some components, Sorely.',3,128,0,0,0,0, ''), +(8894,0,0, 'I need to fly to the Windrunner Official business!',1,1,0,0,0,0, ''), +(9045,0,0, 'I don''t have time for chit-chat, Lou. Take me to Scalawag Point.',1,1,0,0,0,0, ''), +(9621,0,0, 'Harry said I could use his bomber to Bael''gun''s. I''m ready to go!',1,1,0,0,0,0, ''), +(9879,0,3, 'Train me',5,16,0,0,0,0, ''), +(9879,1,1, 'Let me browse your goods.',3,128,0,0,0,0, ''), +(9895,0,3, 'Train me',5,16,0,0,0,0, ''), +(9987,0,3, 'Train me',5,16,0,0,0,0, ''), +(10117,0,3, 'Train me',5,16,0,0,0,0, ''), +(10218,0,0, '<Get in the bomber and return to Scalawag Point.>',1,1,0,0,0,0, ''); +-- Insert gossip menu from sniff +DELETE FROM `gossip_menu` WHERE `entry`=8803 AND `text_id`=11287; +DELETE FROM `gossip_menu` WHERE `entry`=8808 AND `text_id`=11297; +DELETE FROM `gossip_menu` WHERE `entry`=8820 AND `text_id`=11352; +DELETE FROM `gossip_menu` WHERE `entry`=8832 AND `text_id`=11418; +DELETE FROM `gossip_menu` WHERE `entry`=8839 AND `text_id`=11436; +DELETE FROM `gossip_menu` WHERE `entry`=8893 AND `text_id`=11655; +DELETE FROM `gossip_menu` WHERE `entry`=8900 AND `text_id`=11691; +DELETE FROM `gossip_menu` WHERE `entry`=8957 AND `text_id`=11746; +DELETE FROM `gossip_menu` WHERE `entry`=8985 AND `text_id`=12130; +DELETE FROM `gossip_menu` WHERE `entry`=9008 AND `text_id`=12170; +DELETE FROM `gossip_menu` WHERE `entry`=9045 AND `text_id`=12222; +DELETE FROM `gossip_menu` WHERE `entry`=9346 AND `text_id`=12646; +DELETE FROM `gossip_menu` WHERE `entry`=9895 AND `text_id`=13738; +DELETE FROM `gossip_menu` WHERE `entry`=9987 AND `text_id`=13841; +DELETE FROM `gossip_menu` WHERE `entry`=10117 AND `text_id`=14043; +DELETE FROM `gossip_menu` WHERE `entry`=10218 AND `text_id`=14205; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES +(8803,11287), +(8808,11297), +(8820,11352), +(8832,11418), +(8839,11436), +(8893,11655), +(8900,11691), +(8957,11746), +(8985,12130), +(9008,12170), +(9045,12222), +(9346,12646), +(9895,13738), +(9987,13841), +(10117,14043), +(10218,14205); +-- Insert creature gossip_menu_id Update from sniff +UPDATE `creature_template` SET `gossip_menu_id`=8803 WHERE `entry`=23737; -- Coot "The Stranger" Albertson +UPDATE `creature_template` SET `gossip_menu_id`=8808 WHERE `entry`=23732; -- Sorely Twitchblade +UPDATE `creature_template` SET `gossip_menu_id`=8820 WHERE `entry`=23862; -- Finlay Fletcher +UPDATE `creature_template` SET `gossip_menu_id`=8832 WHERE `entry`=23770; -- Cannoneer Ely +UPDATE `creature_template` SET `gossip_menu_id`=8839 WHERE `entry`=23906; -- Scout Knowles +UPDATE `creature_template` SET `gossip_menu_id`=8893 WHERE `entry`=24106; -- Scout Valory +UPDATE `creature_template` SET `gossip_menu_id`=8900 WHERE `entry`=24135; -- Greatmother Ankha +UPDATE `creature_template` SET `gossip_menu_id`=8957 WHERE `entry`=23833; -- Explorer Jaren +UPDATE `creature_template` SET `gossip_menu_id`=8985 WHERE `entry`=24544; -- Old Icefin +UPDATE `creature_template` SET `gossip_menu_id`=9008, `npcflag`=`npcflag`|1 WHERE `entry`=24643; -- Grezzix Spindlesnap +UPDATE `creature_template` SET `gossip_menu_id`=9045, `npcflag`=1, `AIName`='SmartAI' WHERE `entry`=24896; -- Lou the Cabin Boy +UPDATE `creature_template` SET `gossip_menu_id`=9346 WHERE `entry`=26540; -- Drenk Spannerspark +UPDATE `creature_template` SET `gossip_menu_id`=9821 WHERE `entry` IN (24067,24154,24350); -- Mahana Frosthoof, Mary Darrow, Robert Clarke +UPDATE `creature_template` SET `gossip_menu_id`=9879 WHERE `entry`=26959; -- Booker Kells +UPDATE `creature_template` SET `gossip_menu_id`=9895 WHERE `entry`=26960; -- Carter Tiffens +UPDATE `creature_template` SET `gossip_menu_id`=9987 WHERE `entry`=26953; -- Thomas Kolichio +UPDATE `creature_template` SET `gossip_menu_id`=10117 WHERE `entry`=26964; -- Alexandra McQueen +UPDATE `creature_template` SET `gossip_menu_id`=10218, `AIName`='SmartAI' WHERE `entry`=28277; -- Harry's Bomber +-- Insert npc_text from sniff +DELETE FROM `npc_text` WHERE `ID` IN (12130,13702); +INSERT INTO `npc_text` (`ID`,`text0_0`,`text0_1`,`lang0`,`prob0`,`em0_0`,`em0_1`,`em0_2`,`em0_3`,`em0_4`,`em0_5`,`text1_0`,`text1_1`,`lang1`,`prob1`,`em1_0`,`em1_1`,`em1_2`,`em1_3`,`em1_4`,`em1_5`,`text2_0`,`text2_1`,`lang2`,`prob2`,`em2_0`,`em2_1`,`em2_2`,`em2_3`,`em2_4`,`em2_5`,`text3_0`,`text3_1`,`lang3`,`prob3`,`em3_0`,`em3_1`,`em3_2`,`em3_3`,`em3_4`,`em3_5`,`text4_0`,`text4_1`,`lang4`,`prob4`,`em4_0`,`em4_1`,`em4_2`,`em4_3`,`em4_4`,`em4_5`,`text5_0`,`text5_1`,`lang5`,`prob5`,`em5_0`,`em5_1`,`em5_2`,`em5_3`,`em5_4`,`em5_5`,`text6_0`,`text6_1`,`lang6`,`prob6`,`em6_0`,`em6_1`,`em6_2`,`em6_3`,`em6_4`,`em6_5`,`text7_0`,`text7_1`,`lang7`,`prob7`,`em7_0`,`em7_1`,`em7_2`,`em7_3`,`em7_4`,`em7_5`,`WDBVerified`) VALUES +(12130,'<Old Icefin eyes you warily, his fishy eye blinking as he bobs his head up and down once in a curt dismissal.>','',0,1,0,396,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,12340), +(13702,'How may I help you?','',0,1,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,12340); +-- Insert creature_text from sniff +DELETE FROM `creature_text` WHERE `entry` IN (27923,27933); +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(27923,0,0,'Hang on to your hat, $N! To Scalawag we go!',12,0,100,0,0,0,'Lou the Cabin Boy'), +(27923,1,0,'YAAARRRRR! Here we be, matey! Scalawag Point!',12,0,100,0,0,0,'Lou the Cabin Boy'), +(27933,0,0,'Enjoy the ride! It''s a one way trip!',12,0,100,3,0,0,'Alanya'); +-- Conditions +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (8894,9045,9621,10218) AND `SourceEntry`=0; +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (8894,9546) AND `SourceEntry`=1; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15,8894,0,0,0,9,0,11229,0,0,0,0,'','Bathandler Camille - Show gossip option only if player has taken quest 11229'), +(15,8894,1,0,0,9,0,11170,0,0,0,0,'','Bathandler Camille - Show gossip option only if player has taken quest 11170'), +(15,9045,0,0,0,9,0,11509,0,0,0,0,'','Lou the Cabin Boy - Show gossip option only if player has taken quest 11509'), +(15,9546,1,0,0,9,0,12298,0,0,0,0,'','Greer Orehammer - Show gossip option only if player has taken quest 12298'), +(15,9621,0,0,0,9,0,11567,0,0,0,0,'','Alanya - Show gossip option only if player has taken quest 11567'), +(15,10218,0,0,0,9,0,11567,0,0,0,0,'','Harry''s Bomber - Show gossip option if player has taken quest 11567'); +-- SmartAIs +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=27933; +UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=23816; +DELETE FROM `smart_scripts` WHERE `entryorguid`=23859 AND `source_type`=0 AND `id` IN (3,4); -- this npc had already a SmartAI so deleting just the new lines +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23816,24896,27933,28277) AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(23816,0,0,2,62,0,100,0,8894,0,0,0,85,43074,0,0,0,0,0,7,0,0,0,0,0,0,0,'Bathandler Camille - On gossip select - Invoker spellcast'), +(23816,0,1,2,62,0,100,0,8894,1,0,0,85,43136,0,0,0,0,0,7,0,0,0,0,0,0,0,'Bathandler Camille - On gossip select - Invoker spellcast'), +(23816,0,2,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Bathandler Camille - On gossip select - Close gossip'), +(23859,0,3,4,62,0,100,0,9546,1,0,0,11,48862,0,0,0,0,0,7,0,0,0,0,0,0,0,'Greer Orehammer - On gossip select - Invoker spellcast'), +(23859,0,4,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Greer Orehammer - On gossip select - Close gossip'), +(24896,0,0,1,62,0,100,0,9045,0,0,0,11,50004,0,0,0,0,0,7,0,0,0,0,0,0,0,'Lou the Cabin Boy - On gossip select - Spellcast'), +(24896,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Lou the Cabin Boy - On gossip select - Close gossip'), +(27933,0,0,1,62,0,100,0,9621,0,0,0,11,50038,0,0,0,0,0,7,0,0,0,0,0,0,0,'Alanya - On gossip select - Spellcast'), +(27933,0,1,2,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Alanya - On gossip select - Close gossip'), +(27933,0,2,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Alanya - On gossip select - Say line'), +(28277,0,0,1,62,0,100,0,10218,0,0,0,11,61604,0,0,0,0,0,7,0,0,0,0,0,0,0,'Harry''s Bomber - On gossip select - Spellcast'), +(28277,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Harry''s Bomber - On gossip select - Close gossip'); +DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=24896; -- that was absolutely not correct +DELETE FROM `spell_target_position` WHERE `id` IN (50005,50039,61605); +INSERT INTO `spell_target_position` (`id`,`target_map`,`target_position_x`,`target_position_y`,`target_position_z`,`target_orientation`) VALUES +(50005,571,595.208,-2796.47,-0.124098,3.66519), -- Summon Lou the Cabin Boy +(50039,571,-170.469,-3588.19,-0.221146,4.2586), -- Summon Harry's Bomber +(61605,571,89.7416,-6286.08,1.17903,1.58825); -- Summon Harry's Bomber diff --git a/sql/updates/world/2012_11_11_01_world_quest_template.sql b/sql/updates/world/2012_11_11_01_world_quest_template.sql new file mode 100644 index 00000000000..9abf2ea3cd1 --- /dev/null +++ b/sql/updates/world/2012_11_11_01_world_quest_template.sql @@ -0,0 +1,2 @@ +-- Fix a typo in RewardText table for quest Spooky Lighthouse (1687) +UPDATE `quest_template` SET `OfferRewardText`="WOW, that was a real life ghost! That was so awesome - I can't wait to tell everyone back at the orphanage. Captain Grayson... he even looked like a pirate! When I grow up I wanna be a ghost pirate too!$B$BThanks for taking me to Westfall, $N. I know there are scary things out there in the wilds of Westfall, and I hope I wasn't too much of a pain. You're awesome!" WHERE `Id`=1687; diff --git a/sql/updates/world/2012_11_11_02_world_gossip_menu.sql b/sql/updates/world/2012_11_11_02_world_gossip_menu.sql new file mode 100644 index 00000000000..59d1a10b337 --- /dev/null +++ b/sql/updates/world/2012_11_11_02_world_gossip_menu.sql @@ -0,0 +1,109 @@ +UPDATE `creature_template` SET `gossip_menu_id`=9260 WHERE `entry`=25754; +DELETE FROM `gossip_menu` WHERE `entry`=9260 AND `text_id`=12572; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9260,12572); + +UPDATE `creature_template` SET `gossip_menu_id`=11417 WHERE `entry`=25697; +DELETE FROM `gossip_menu` WHERE `entry`=11417 AND `text_id`=12390; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (11417,12390); + +UPDATE `creature_template` SET `gossip_menu_id`=9298 WHERE `entry`=16818; +DELETE FROM `gossip_menu` WHERE `entry`=9298 AND `text_id`=12609; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9298,12609); + +UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=26113; +UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=25994; +DELETE FROM `gossip_menu` WHERE `entry`=9204 AND `text_id`=12506; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9204,12506); + +UPDATE `creature_template` SET `gossip_menu_id`=9148 WHERE `entry`=16781; +DELETE FROM `gossip_menu` WHERE `entry`=9148 AND `text_id`=12376; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9148,12376); + +UPDATE `creature_template` SET `gossip_menu_id`=9157 WHERE `entry`=26221; +DELETE FROM `gossip_menu` WHERE `entry`=9157 AND `text_id`=12390; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9157,12390); + +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25884; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25918; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25919; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25920; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25921; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25922; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25924; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25926; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25928; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25929; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25930; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25932; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25934; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25936; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25937; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25938; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25940; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25943; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25947; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32809; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32810; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32811; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32812; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32813; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32814; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32815; +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32816; +DELETE FROM `gossip_menu` WHERE `entry`=9278 AND `text_id`=12582; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9278,12582); + +DELETE FROM `gossip_menu` WHERE `entry`=9354 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9354,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9384 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9384,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9385 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9385,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9386 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9386,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9387 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9387,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9389 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9389,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9390 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9390,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9393 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9393,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9395 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9395,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9396 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9396,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9399 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9399,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9401 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9401,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9403 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9403,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9408 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9408,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9409 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9409,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9410 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9410,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9411 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9411,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9412 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9412,12377); +DELETE FROM `gossip_menu` WHERE `entry`=9413 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9413,12377); +DELETE FROM `gossip_menu` WHERE `entry`=10230 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10230,12377); +DELETE FROM `gossip_menu` WHERE `entry`=10232 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10232,12377); +DELETE FROM `gossip_menu` WHERE `entry`=10233 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10233,12377); +DELETE FROM `gossip_menu` WHERE `entry`=10234 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10234,12377); +DELETE FROM `gossip_menu` WHERE `entry`=10237 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10237,12377); +DELETE FROM `gossip_menu` WHERE `entry`=10238 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10238,12377); +DELETE FROM `gossip_menu` WHERE `entry`=10240 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10240,12377); +DELETE FROM `gossip_menu` WHERE `entry`=10243 AND `text_id`=12377; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (10243,12377); diff --git a/sql/updates/world/2012_11_11_03_world_gossip_menu.sql b/sql/updates/world/2012_11_11_03_world_gossip_menu.sql new file mode 100644 index 00000000000..4f250597388 --- /dev/null +++ b/sql/updates/world/2012_11_11_03_world_gossip_menu.sql @@ -0,0 +1,280 @@ +-- Creature Gossip Update for midsummer event from sniff +UPDATE `creature_template` SET `gossip_menu_id`=9148 WHERE `entry`=16781; -- Midsummer Celebrant +UPDATE `creature_template` SET `gossip_menu_id`=7326 WHERE `entry`=16817; -- Festival Loremaster +UPDATE `creature_template` SET `gossip_menu_id`=11417 WHERE `entry`=25697; -- Luma Skymother <The Earthen Ring> +UPDATE `creature_template` SET `gossip_menu_id`=9260 WHERE `entry`=25754; -- Earthen Ring Flamecaller <The Earthen Ring> +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25883; -- Ashenvale Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25884; -- Ashenvale Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25887; -- Arathi Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25888; -- Azuremyst Isle Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25889; -- Blade's Edge Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25890; -- Blasted Lands Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25891; -- Bloodmyst Isle Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25892; -- Burning Steppes Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25893; -- Darkshore Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25894; -- Desolace Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25895; -- Dun Morogh Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25896; -- Duskwood Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25897; -- Dustwallow Marsh Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25898; -- Elwynn Forest Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25899; -- Feralas Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25900; -- Hellfire Peninsula Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25901; -- Hillsbrad Flame Warden -> Deleted in cata, taking from 3.x sniff +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25902; -- Loch Modan Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25903; -- Nagrand Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25904; -- Redridge Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25905; -- Shadowmoon Valley Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25906; -- Teldrassil Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25907; -- Terokkar Forest Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25908; -- The Hinterlands Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25909; -- Western Plaguelands Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25910; -- Westfall Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25911; -- Wetlands Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25912; -- Zangarmarsh Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25913; -- Netherstorm Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25914; -- Silithus Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25915; -- Cape of Stranglethorn Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25916; -- Tanaris Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=25917; -- Winterspring Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25918; -- Netherstorm Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25919; -- Silithus Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25920; -- Cape of Stranglethorn Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25921; -- Tanaris Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25922; -- Winterspring Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25923; -- Arathi Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25925; -- Badlands Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25926; -- Blade's Edge Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25927; -- Burning Steppes Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25928; -- Desolace Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25929; -- Durotar Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25930; -- Dustwallow Marsh Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25931; -- Eversong Woods Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25932; -- Feralas Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25933; -- Ghostlands Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25934; -- Hellfire Peninsula Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25935; -- Hillsbrad Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25936; -- Mulgore Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25937; -- Nagrand Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25938; -- Shadowmoon Valley Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25939; -- Silverpine Forest Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25940; -- Stonetalon Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25941; -- Swamp of Sorrows Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25942; -- Terokkar Forest Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25943; -- The Northern Barrens Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25944; -- The Hinterlands Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25945; -- Thousand Needles Flame Keeper -> Deleted in cata, taking from 3.x sniff +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25946; -- Tirisfal Glades Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=25947; -- Zangarmarsh Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=25962; -- Fire Eater +UPDATE `creature_template` SET `gossip_menu_id`=9204 WHERE `entry`=25975; -- Master Fire Eater +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32801; -- Borean Tundra Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32802; -- Sholazar Basin Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32806; -- Storm Peaks Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32807; -- Crystalsong Forest Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9203 WHERE `entry`=32808; -- Zul'Drak Flame Warden +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32809; -- Borean Tundra Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32810; -- Sholazar Basin Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32811; -- Dragonblight Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32812; -- Howling Fjord Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32813; -- Grizzly Hills Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32814; -- Storm Peaks Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32815; -- Crystalsong Forest Flame Keeper +UPDATE `creature_template` SET `gossip_menu_id`=9278 WHERE `entry`=32816; -- Zul'Drak Flame Keeper +-- Gossip insert from sniff +DELETE FROM `gossip_menu` WHERE (`entry`=9148 AND `text_id`=12376) OR (`entry`=7326 AND `text_id`=8703) OR (`entry`=11417 AND `text_id`=12390) OR (`entry`=9260 AND `text_id`=12571) OR (`entry`=9260 AND `text_id`=12572) OR (`entry`=9203 AND `text_id`=12504) OR (`entry`=9278 AND `text_id`=12582) OR (`entry`=9204 AND `text_id`=12506) OR (`entry`=9370 AND `text_id`=12374) OR (`entry`=9406 AND `text_id`=12377) OR (`entry`=9352 AND `text_id`=12377) OR (`entry`=9354 AND `text_id`=12377) OR (`entry`=9384 AND `text_id`=12377) OR (`entry`=9385 AND `text_id`=12377) OR (`entry`=9386 AND `text_id`=12377) OR (`entry`=9387 AND `text_id`=12377) OR (`entry`=9388 AND `text_id`=12377) OR (`entry`=9389 AND `text_id`=12377) OR (`entry`=9390 AND `text_id`=12377) OR (`entry`=9391 AND `text_id`=12377) OR (`entry`=9392 AND `text_id`=12377) OR (`entry`=9393 AND `text_id`=12377) OR (`entry`=9394 AND `text_id`=12377) OR (`entry`=9395 AND `text_id`=12377) OR (`entry`=9396 AND `text_id`=12377) OR (`entry`=9397 AND `text_id`=12377) OR (`entry`=9398 AND `text_id`=12377) OR (`entry`=9399 AND `text_id`=12377) OR (`entry`=9400 AND `text_id`=12377) OR (`entry`=9401 AND `text_id`=12377) OR (`entry`=9402 AND `text_id`=12377) OR (`entry`=9403 AND `text_id`=12377) OR (`entry`=9404 AND `text_id`=12377) OR (`entry`=9405 AND `text_id`=12377) OR (`entry`=9407 AND `text_id`=12377) OR (`entry`=9408 AND `text_id`=12377) OR (`entry`=9409 AND `text_id`=12377) OR(`entry`=9410 AND `text_id`=12377) OR (`entry`=9411 AND `text_id`=12377) OR (`entry`=9412 AND `text_id`=12377) OR (`entry`=9413 AND `text_id`=12377) OR (`entry`=9353 AND `text_id`=12374) OR (`entry`=9355 AND `text_id`=12374) OR (`entry`=9379 AND `text_id`=12374) OR (`entry`=9380 AND `text_id`=12374) OR (`entry`=9381 AND `text_id`=12374) OR (`entry`=9382 AND `text_id`=12374) OR (`entry`=9383 AND `text_id`=12374) OR (`entry`=9356 AND `text_id`=12374) OR (`entry`=9357 AND `text_id`=12374) OR (`entry`=9358 AND `text_id`=12374) OR (`entry`=9359 AND `text_id`=12374) OR (`entry`=9360 AND `text_id`=12374) OR (`entry`=9361 AND `text_id`=12374) OR (`entry`=9362 AND `text_id`=12374) OR (`entry`=9363 AND `text_id`=12374) OR (`entry`=9364 AND `text_id`=12374) OR (`entry`=9365 AND `text_id`=12374) OR (`entry`=9366 AND `text_id`=12374) OR (`entry`=9367 AND `text_id`=12374) OR (`entry`=9368 AND `text_id`=12374) OR (`entry`=9369 AND `text_id`=12374) OR (`entry`=9371 AND `text_id`=12374) OR (`entry`=9372 AND `text_id`=12374) OR (`entry`=9373 AND `text_id`=12374) OR (`entry`=9374 AND `text_id`=12374) OR (`entry`=9375 AND `text_id`=12374) OR (`entry`=9377 AND `text_id`=12374) OR (`entry`=9378 AND `text_id`=12374) OR (`entry`=10227 AND `text_id`=12377) OR (`entry`=10228 AND `text_id`=12374) OR (`entry`=10231 AND `text_id`=12374) OR (`entry`=10230 AND `text_id`=12377) OR (`entry`=10239 AND `text_id`=12374) OR (`entry`=10238 AND `text_id`=12377) OR (`entry`=10240 AND `text_id`=12377) OR (`entry`=10241 AND `text_id`=12374) OR (`entry`=10242 AND `text_id`=12374) OR (`entry`=10243 AND `text_id`=12377); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +(9148, 12376), -- 16781 +(7326, 8703), -- 16817 +(11417, 12390), -- 25697 +(9260, 12571), -- 25754 +(9260, 12572), -- 25754 +(9203, 12504), -- 25883, 25887, 25888, 25889, 25890, 25891, 25892, 25893, 25894, 25895, 25896, 25897, 25898, 25899, 25900, 25901, 25902, 25903, 25904, 25905, 25906, 25907, 25908, 25909, 25910, 25911, 25912, 25913, 25914, 25915, 25916, 25917, 32801, 32802, 32806, 32807, 32808 +(9278, 12582), -- 25884, 25918, 25919, 25920, 25921, 25922, 25923, 25925, 25926, 25927, 25928, 25929, 25930, 25931, 25932, 25933, 25934, 25935, 25936, 25937, 25938, 25939, 25940, 25941, 25942, 25943, 25944, 25945, 25946, 25947, 32809, 32810, 32811, 32812, 32813, 32814, 32815, 32816 +(9204, 12506), -- 25962, 25975 +(9370, 12374), -- 187559 +(9406, 12377), -- 187564 +(9352, 12377), -- 187914 +(9354, 12377), -- 187916 +(9384, 12377), -- 187917 +(9385, 12377), -- 187919 +(9386, 12377), -- 187920 +(9387, 12377), -- 187921 +(9388, 12377), -- 187922 +(9389, 12377), -- 187923 +(9390, 12377), -- 187924 +(9391, 12377), -- 187925 +(9392, 12377), -- 187926 +(9393, 12377), -- 187927 +(9394, 12377), -- 187928 +(9395, 12377), -- 187929 +(9396, 12377), -- 187930 +(9397, 12377), -- 187931 -> Deleted in cata, taking from 3.x sniff +(9398, 12377), -- 187932 +(9399, 12377), -- 187933 +(9400, 12377), -- 187934 +(9401, 12377), -- 187935 +(9402, 12377), -- 187936 +(9403, 12377), -- 187937 +(9404, 12377), -- 187938 +(9405, 12377), -- 187939 +(9407, 12377), -- 187940 +(9408, 12377), -- 187941 +(9409, 12377), -- 187942 +(9410, 12377), -- 187943 +(9411, 12377), -- 187944 +(9412, 12377), -- 187945 +(9413, 12377), -- 187946 +(9353, 12374), -- 187947 +(9355, 12374), -- 187948 +(9379, 12374), -- 187949 +(9380, 12374), -- 187950 +(9381, 12374), -- 187951 +(9382, 12374), -- 187952 +(9383, 12374), -- 187953 +(9356, 12374), -- 187954 +(9357, 12374), -- 187955 +(9358, 12374), -- 187956 +(9359, 12374), -- 187957 +(9360, 12374), -- 187958 +(9361, 12374), -- 187959 +(9362, 12374), -- 187960 +(9363, 12374), -- 187961 +(9364, 12374), -- 187962 +(9365, 12374), -- 187963 +(9366, 12374), -- 187964 +(9367, 12374), -- 187965 +(9368, 12374), -- 187966 +(9369, 12374), -- 187967 +(9371, 12374), -- 187968 +(9372, 12374), -- 187969 +(9373, 12374), -- 187970 +(9374, 12374), -- 187971 +(9375, 12374), -- 187972 +(9377, 12374), -- 187974 +(9378, 12374), -- 187975 +(10227, 12377), -- 194032 +(10228, 12374), -- 194033 +(10231, 12374), -- 194034 +(10230, 12377), -- 194035 +(10239, 12374), -- 194043 +(10238, 12377), -- 194044 +(10240, 12377), -- 194045 +(10241, 12374), -- 194046 +(10242, 12374), -- 194048 +(10243, 12377); -- 194049 +-- Add quest to creature (warden) +DELETE FROM `game_event_creature_quest` WHERE (`id`=25883 AND `quest`=11805) OR (`id`=25887 AND `quest`=11804) OR (`id`=25888 AND `quest`=11806) OR (`id`=25889 AND `quest`=11807) OR (`id`=25890 AND `quest`=11808) OR (`id`=25891 AND `quest`=11809) OR (`id`=25892 AND `quest`=11810) OR (`id`=25893 AND `quest`=11811) OR (`id`=25894 AND `quest`=11812) OR (`id`=25895 AND `quest`=11813) OR (`id`=25896 AND `quest`=11814) OR (`id`=25897 AND `quest`=11815) OR (`id`=25898 AND `quest`=11816) OR (`id`=25899 AND `quest`=11817) OR (`id`=25900 AND `quest`=11818) OR (`id`=25901 AND `quest`=11819) OR (`id`=25902 AND `quest`=11820) OR (`id`=25903 AND `quest`=11821) OR (`id`=25904 AND `quest`=11822) OR (`id`=25905 AND `quest`=11823) OR (`id`=25906 AND `quest`=11824) OR (`id`=25907 AND `quest`=11825) OR (`id`=25908 AND `quest`=11826) OR (`id`=25909 AND `quest`=11827) OR (`id`=25910 AND `quest`=11583) OR (`id`=25911 AND `quest`=11828) OR (`id`=25912 AND `quest`=11829) OR (`id`=25913 AND `quest`=11830) OR (`id`=25914 AND `quest`=11831) OR (`id`=25915 AND `quest`=11832) OR (`id`=25916 AND `quest`=11833) OR (`id`=25917 AND `quest`=11834) OR (`id`=32801 AND `quest`=13485) OR (`id`=32802 AND `quest`=13486) OR (`id`=32806 AND `quest`=13490) OR (`id`=32807 AND `quest`=13491) OR (`id`=32808 AND `quest`=13492); +INSERT INTO `game_event_creature_quest` (`eventEntry`, `id`, `quest`) VALUES +(1, 25883, 11805), +(1, 25887, 11804), +(1, 25888, 11806), +(1, 25889, 11807), +(1, 25890, 11808), +(1, 25891, 11809), +(1, 25892, 11810), +(1, 25893, 11811), +(1, 25894, 11812), +(1, 25895, 11813), +(1, 25896, 11814), +(1, 25897, 11815), +(1, 25898, 11816), +(1, 25899, 11817), +(1, 25900, 11818), +(1, 25901, 11819), -- Deleted in cata, taking from 3.x sniff +(1, 25902, 11820), +(1, 25903, 11821), +(1, 25904, 11822), +(1, 25905, 11823), +(1, 25906, 11824), +(1, 25907, 11825), +(1, 25908, 11826), +(1, 25909, 11827), +(1, 25910, 11583), +(1, 25911, 11828), +(1, 25912, 11829), +(1, 25913, 11830), +(1, 25914, 11831), +(1, 25915, 11832), +(1, 25916, 11833), +(1, 25917, 11834), +(1, 32801, 13485), +(1, 32802, 13486), +(1, 32806, 13490), +(1, 32807, 13491), +(1, 32808, 13492); +-- Delete double quest +DELETE FROM `creature_questrelation` WHERE `id`=25889 AND `quest` =11807; +-- Add quest relation to Gameobject (fire) +DELETE FROM `game_event_gameobject_quest` WHERE (`id`=187559 AND `quest`=11580) OR (`id`=187564 AND `quest`=11581) OR (`id`=187914 AND `quest`=11732) OR (`id`=187916 AND `quest`=11734) OR (`id`=187917 AND `quest`=11735) OR (`id`=187919 AND `quest`=11736) OR (`id`=187920 AND `quest`=11737) OR (`id`=187921 AND `quest`=11738) OR (`id`=187922 AND `quest`=11739) OR (`id`=187923 AND `quest`=11740) OR (`id`=187924 AND `quest`=11741) OR (`id`=187925 AND `quest`=11742) OR (`id`=187926 AND `quest`=11743) OR (`id`=187927 AND `quest`=11744) OR (`id`=187928 AND `quest`=11745) OR (`id`=187929 AND `quest`=11746) OR (`id`=187930 AND `quest`=11747) OR (`id`=187931 AND `quest`=11748) OR (`id`=187932 AND `quest`=11749) OR (`id`=187933 AND `quest`=11750) OR (`id`=187934 AND `quest`=11751) OR (`id`=187935 AND `quest`=11752) OR (`id`=187936 AND `quest`=11753) OR (`id`=187937 AND `quest`=11754) OR (`id`=187938 AND `quest`=11755) OR (`id`=187939 AND `quest`=11756) OR (`id`=187940 AND `quest`=11757) OR (`id`=187941 AND `quest`=11758) OR (`id`=187942 AND `quest`=11759) OR(`id`=187943 AND `quest`=11760) OR (`id`=187944 AND `quest`=11761) OR (`id`=187945 AND `quest`=11762) OR (`id`=187946 AND `quest`=11763) OR (`id`=187947 AND `quest`=11764) OR (`id`=187948 AND `quest`=11765) OR (`id`=187949 AND `quest`=11799) OR (`id`=187950 AND `quest`=11800) OR (`id`=187951 AND `quest`=11801) OR (`id`=187952 AND `quest`=11802) OR (`id`=187953 AND `quest`=11803) OR (`id`=187954 AND `quest`=11766) OR (`id`=187955 AND `quest`=11767) OR (`id`=187956 AND `quest`=11768) OR (`id`=187957 AND `quest`=11769) OR (`id`=187958 AND `quest`=11770) OR (`id`=187959 AND `quest`=11771) OR (`id`=187960 AND `quest`=11772) OR (`id`=187961 AND `quest`=11773) OR (`id`=187962 AND `quest`=11774) OR (`id`=187963 AND `quest`=11775) OR (`id`=187964 AND `quest`=11776) OR (`id`=187965 AND `quest`=11777) OR (`id`=187966 AND `quest`=11778) OR (`id`=187967 AND `quest`=11779) OR (`id`=187968 AND `quest`=11780) OR (`id`=187969 AND `quest`=11781) OR (`id`=187970 AND `quest`=11782) OR (`id`=187971 AND `quest`=11783) OR (`id`=187972 AND `quest`=11784) OR (`id`=187974 AND `quest`=11786) OR (`id`=187975 AND `quest`=11787) OR (`id`=194032 AND `quest`=13440) OR (`id`=194033 AND `quest`=13441) OR (`id`=194034 AND `quest`=13450) OR (`id`=194035 AND `quest`=13442) OR (`id`=194043 AND `quest`=13455) OR (`id`=194044 AND `quest`=13446) OR (`id`=194045 AND `quest`=13447) OR (`id`=194046 AND `quest`=13457) OR (`id`=194048 AND `quest`=13458) OR (`id`=194049 AND `quest`=13449); +INSERT INTO `game_event_gameobject_quest` (`eventEntry`, `id`, `quest`) VALUES +(1, 187559, 11580), +(1, 187564, 11581), +(1, 187914, 11732), +(1, 187916, 11734), +(1, 187917, 11735), +(1, 187919, 11736), +(1, 187920, 11737), +(1, 187921, 11738), +(1, 187922, 11739), +(1, 187923, 11740), +(1, 187924, 11741), +(1, 187925, 11742), +(1, 187926, 11743), +(1, 187927, 11744), +(1, 187928, 11745), +(1, 187929, 11746), +(1, 187930, 11747), +(1, 187931, 11748), -- Deleted in cata, taking from 3.x sniff +(1, 187932, 11749), +(1, 187933, 11750), +(1, 187934, 11751), +(1, 187935, 11752), +(1, 187936, 11753), +(1, 187937, 11754), +(1, 187938, 11755), +(1, 187939, 11756), +(1, 187940, 11757), +(1, 187941, 11758), +(1, 187942, 11759), +(1, 187943, 11760), +(1, 187944, 11761), +(1, 187945, 11762), +(1, 187946, 11763), +(1, 187947, 11764), +(1, 187948, 11765), +(1, 187949, 11799), +(1, 187950, 11800), +(1, 187951, 11801), +(1, 187952, 11802), +(1, 187953, 11803), +(1, 187954, 11766), +(1, 187955, 11767), +(1, 187956, 11768), +(1, 187957, 11769), +(1, 187958, 11770), +(1, 187959, 11771), +(1, 187960, 11772), +(1, 187961, 11773), +(1, 187962, 11774), +(1, 187963, 11775), +(1, 187964, 11776), +(1, 187965, 11777), +(1, 187966, 11778), +(1, 187967, 11779), +(1, 187968, 11780), +(1, 187969, 11781), +(1, 187970, 11782), +(1, 187971, 11783), +(1, 187972, 11784), +(1, 187974, 11786), +(1, 187975, 11787), +(1, 194032, 13440), +(1, 194033, 13441), +(1, 194034, 13450), +(1, 194035, 13442), +(1, 194043, 13455), +(1, 194044, 13446), +(1, 194045, 13447), +(1, 194046, 13457), +(1, 194048, 13458), +(1, 194049, 13449); diff --git a/src/server/authserver/CMakeLists.txt b/src/server/authserver/CMakeLists.txt index 0d94dc47407..581b48f571c 100644 --- a/src/server/authserver/CMakeLists.txt +++ b/src/server/authserver/CMakeLists.txt @@ -15,15 +15,9 @@ file(GLOB_RECURSE sources_realms Realms/*.cpp Realms/*.h) file(GLOB_RECURSE sources_server Server/*.cpp Server/*.h) file(GLOB sources_localdir *.cpp *.h) -if( USE_COREPCH ) - include_directories(${CMAKE_CURRENT_BINARY_DIR}) -endif() - -if ( USE_COREPCH AND MSVC ) - set(authserver_SRCS - PrecompiledHeaders/authPCH.cpp - PrecompiledHeaders/authPCH.h - ) +if (USE_COREPCH) + set(authserver_PCH_HDR PrecompiledHeaders/authPCH.h) + set(authserver_PCH_SRC PrecompiledHeaders/authPCH.cpp) endif() set(authserver_SRCS @@ -62,34 +56,23 @@ include_directories( ${OPENSSL_INCLUDE_DIR} ) -set(authserver_LINK_FLAGS "") - add_executable(authserver ${authserver_SRCS} + ${authserver_PCH_SRC} ) add_dependencies(authserver revision.h) if( NOT WIN32 ) - add_definitions(-D_TRINITY_REALM_CONFIG='"${CONF_DIR}/authserver.conf"') -endif() - -if( UNIX ) - set(authserver_LINK_FLAGS "-pthread ${authserver_LINK_FLAGS}") -endif() - -if( CMAKE_SYSTEM_NAME MATCHES "Darwin" ) - set(authserver_LINK_FLAGS "-framework Carbon ${authserver_LINK_FLAGS}") + set_target_properties(authserver PROPERTIES + COMPILE_DEFINITIONS _TRINITY_REALM_CONFIG="${CONF_DIR}/authserver.conf" + ) endif() -set_target_properties(authserver PROPERTIES LINK_FLAGS "${authserver_LINK_FLAGS}") - target_link_libraries(authserver shared ${MYSQL_LIBRARY} ${OPENSSL_LIBRARIES} - ${OPENSSL_EXTRA_LIBRARIES} - ${OSX_LIBS} ) if( WIN32 ) @@ -108,11 +91,6 @@ elseif( WIN32 ) endif() # Generate precompiled header -if( USE_COREPCH ) - if(CMAKE_COMPILER_IS_GNUCXX) - add_precompiled_header(authserver ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/authPCH.h) - elseif(MSVC) - add_native_precompiled_header(authserver ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/authPCH) - endif() +if (USE_COREPCH) + add_cxx_pch(authserver ${authserver_PCH_HDR} ${authserver_PCH_SRC}) endif() - diff --git a/src/server/authserver/Server/AuthSocket.cpp b/src/server/authserver/Server/AuthSocket.cpp index fc4d4dfcc9b..ed3b3cf4145 100755 --- a/src/server/authserver/Server/AuthSocket.cpp +++ b/src/server/authserver/Server/AuthSocket.cpp @@ -280,7 +280,7 @@ void AuthSocket::_SetVSFields(const std::string& rI) v = g.ModExp(x, N); // No SQL injection (username escaped) - const char *v_hex, *s_hex; + char *v_hex, *s_hex; v_hex = v.AsHexStr(); s_hex = s.AsHexStr(); @@ -290,8 +290,8 @@ void AuthSocket::_SetVSFields(const std::string& rI) stmt->setString(2, _login); LoginDatabase.Execute(stmt); - OPENSSL_free((void*)v_hex); - OPENSSL_free((void*)s_hex); + OPENSSL_free(v_hex); + OPENSSL_free(s_hex); } // Logon Challenge command handler diff --git a/src/server/authserver/Server/RealmSocket.cpp b/src/server/authserver/Server/RealmSocket.cpp index c868bb43777..d65431eca44 100755 --- a/src/server/authserver/Server/RealmSocket.cpp +++ b/src/server/authserver/Server/RealmSocket.cpp @@ -79,7 +79,7 @@ int RealmSocket::open(void * arg) return 0; } -int RealmSocket::close(int) +int RealmSocket::close(u_long) { shutdown(); diff --git a/src/server/authserver/Server/RealmSocket.h b/src/server/authserver/Server/RealmSocket.h index c03a0e3ad1e..b093691047c 100755 --- a/src/server/authserver/Server/RealmSocket.h +++ b/src/server/authserver/Server/RealmSocket.h @@ -59,7 +59,7 @@ public: virtual int open(void *); - virtual int close(int); + virtual int close(u_long); virtual int handle_input(ACE_HANDLE = ACE_INVALID_HANDLE); virtual int handle_output(ACE_HANDLE = ACE_INVALID_HANDLE); diff --git a/src/server/collision/CMakeLists.txt b/src/server/collision/CMakeLists.txt index 9fc696ab19a..3182b20d008 100644 --- a/src/server/collision/CMakeLists.txt +++ b/src/server/collision/CMakeLists.txt @@ -17,12 +17,10 @@ file(GLOB_RECURSE sources_Maps Maps/*.cpp Maps/*.h) file(GLOB_RECURSE sources_Models Models/*.cpp Models/*.h) file(GLOB sources_localdir *.cpp *.h) -if( USE_COREPCH AND MSVC ) - set(collision_STAT_SRCS - PrecompiledHeaders/collisionPCH.cpp - PrecompiledHeaders/collisionPCH.h - ) -endif() +if (USE_COREPCH) + set(collision_STAT_PCH_HDR PrecompiledHeaders/collisionPCH.h) + set(collision_STAT_PCH_SRC PrecompiledHeaders/collisionPCH.cpp) +endif () set(collision_STAT_SRCS ${collision_STAT_SRCS} @@ -33,6 +31,7 @@ set(collision_STAT_SRCS ) include_directories( + ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/dep/g3dlite/include ${CMAKE_SOURCE_DIR}/src/server/shared ${CMAKE_SOURCE_DIR}/src/server/shared/Debugging @@ -73,20 +72,16 @@ include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/Management ${CMAKE_CURRENT_SOURCE_DIR}/Maps ${CMAKE_CURRENT_SOURCE_DIR}/Models - ${CMAKE_BINARY_DIR} ${ACE_INCLUDE_DIR} ${MYSQL_INCLUDE_DIR} - ${OPENSSL_INCLUDE_DIR} ) -add_library(collision STATIC ${collision_STAT_SRCS}) +add_library(collision STATIC + ${collision_STAT_SRCS} + ${collision_STAT_PCH_SRC} +) # Generate precompiled header -if( USE_COREPCH ) - if(CMAKE_COMPILER_IS_GNUCXX) - add_precompiled_header(collision ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/collisionPCH.h) - elseif(MSVC) - add_native_precompiled_header(collision ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/collisionPCH) - endif() -endif() - +if (USE_COREPCH) + add_cxx_pch(collision ${collision_STAT_PCH_HDR} ${collision_STAT_PCH_SRC}) +endif () diff --git a/src/server/collision/RegularGrid.h b/src/server/collision/RegularGrid.h index 00d7b0cd209..5b7d1d74987 100644 --- a/src/server/collision/RegularGrid.h +++ b/src/server/collision/RegularGrid.h @@ -86,7 +86,7 @@ public: static Cell ComputeCell(float fx, float fy) { - Cell c = {fx * (1.f/CELL_SIZE) + (CELL_NUMBER/2), fy * (1.f/CELL_SIZE) + (CELL_NUMBER/2)}; + Cell c = { int(fx * (1.f/CELL_SIZE) + (CELL_NUMBER/2)), int(fy * (1.f/CELL_SIZE) + (CELL_NUMBER/2)) }; return c; } diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index 0ee133edce9..0504effa651 100755 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -1617,7 +1617,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK: case ACHIEVEMENT_CRITERIA_TYPE_EARNED_PVP_TITLE: case ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE: - case ACHIEVEMENT_CRITERIA_TYPE_TOTAL: break; // Not implemented yet :( } diff --git a/src/server/game/Battlefield/Battlefield.h b/src/server/game/Battlefield/Battlefield.h index 0752fa88fc1..77525b7d06e 100644 --- a/src/server/game/Battlefield/Battlefield.h +++ b/src/server/game/Battlefield/Battlefield.h @@ -79,6 +79,8 @@ class BfCapturePoint public: BfCapturePoint(Battlefield* bf); + virtual ~BfCapturePoint() { } + virtual void FillInitialWorldStates(WorldPacket& /*data*/) {} // Send world state update to all players present diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h index 49ea25a5e04..68072a68249 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.h +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h @@ -153,10 +153,10 @@ class BfGraveyardWG : public BfGraveyard public: BfGraveyardWG(BattlefieldWG* Bf); - void SetTextId(uint32 textid) { m_GossipTextId = textid; } - uint32 GetTextId() { return m_GossipTextId; } + void SetTextId(int32 textid) { m_GossipTextId = textid; } + int32 GetTextId() { return m_GossipTextId; } protected: - uint32 m_GossipTextId; + int32 m_GossipTextId; }; enum WGGraveyardId @@ -227,7 +227,7 @@ struct BfWGCoordGY float o; uint32 gyid; uint8 type; - uint32 textid; // for gossip menu + int32 textid; // for gossip menu TeamId startcontrol; }; diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt index 68ae2d8ea38..cf71bb1b2fa 100644 --- a/src/server/game/CMakeLists.txt +++ b/src/server/game/CMakeLists.txt @@ -8,10 +8,6 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -if( USE_COREPCH ) - include_directories(${CMAKE_CURRENT_BINARY_DIR}) -endif() - file(GLOB_RECURSE sources_Accounts Accounts/*.cpp Accounts/*.h) file(GLOB_RECURSE sources_Achievements Achievements/*.cpp Achievements/*.h) file(GLOB_RECURSE sources_Addons Addons/*.cpp Addons/*.h) @@ -55,12 +51,10 @@ file(GLOB_RECURSE sources_World World/*.cpp World/*.h) # Create game-libary -if( USE_COREPCH AND MSVC ) - set(game_STAT_SRCS - PrecompiledHeaders/gamePCH.cpp - PrecompiledHeaders/gamePCH.h - ) -endif() +if (USE_COREPCH) + set(game_STAT_PCH_HDR PrecompiledHeaders/gamePCH.h) + set(game_STAT_PCH_SRC PrecompiledHeaders/gamePCH.cpp) +endif () set(game_STAT_SRCS ${game_STAT_SRCS} @@ -205,15 +199,14 @@ include_directories( ${OPENSSL_INCLUDE_DIR} ) -add_library(game STATIC ${game_STAT_SRCS}) +add_library(game STATIC + ${game_STAT_SRCS} + ${game_STAT_PCH_SRC} +) add_dependencies(game revision.h) # Generate precompiled header -if( USE_COREPCH ) - if(CMAKE_COMPILER_IS_GNUCXX) - add_precompiled_header(game ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/gamePCH.h) - elseif(MSVC) - add_native_precompiled_header(game ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/gamePCH) - endif() -endif() +if (USE_COREPCH) + add_cxx_pch(game ${game_STAT_PCH_HDR} ${game_STAT_PCH_SRC}) +endif () diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index 12ec7206141..4fa2e3e748e 100755 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -19,18 +19,21 @@ #ifndef DBCENUMS_H #define DBCENUMS_H -// Client expected level limitation, like as used in DBC item max levels for "until max player level" -// use as default max player level, must be fit max level for used client -// also see MAX_LEVEL and STRONG_MAX_LEVEL define -#define DEFAULT_MAX_LEVEL 80 - -// client supported max level for player/pets/etc. Avoid overflow or client stability affected. -// also see GT_MAX_LEVEL define -#define MAX_LEVEL 100 - -// Server side limitation. Base at used code requirements. -// also see MAX_LEVEL and GT_MAX_LEVEL define -#define STRONG_MAX_LEVEL 255 +enum LevelLimit +{ + // Client expected level limitation, like as used in DBC item max levels for "until max player level" + // use as default max player level, must be fit max level for used client + // also see MAX_LEVEL and STRONG_MAX_LEVEL define + DEFAULT_MAX_LEVEL = 80, + + // client supported max level for player/pets/etc. Avoid overflow or client stability affected. + // also see GT_MAX_LEVEL define + MAX_LEVEL = 100, + + // Server side limitation. Base at used code requirements. + // also see MAX_LEVEL and GT_MAX_LEVEL define + STRONG_MAX_LEVEL = 255, +}; enum BattlegroundBracketId // bracketId for level ranges { @@ -58,16 +61,16 @@ enum AchievementFaction enum AchievementFlags { - ACHIEVEMENT_FLAG_COUNTER = 0x00000001, // Just count statistic (never stop and complete) - ACHIEVEMENT_FLAG_HIDDEN = 0x00000002, // Not sent to client - internal use only - ACHIEVEMENT_FLAG_STORE_MAX_VALUE = 0x00000004, // Store only max value? used only in "Reach level xx" - ACHIEVEMENT_FLAG_SUMM = 0x00000008, // Use summ criteria value from all reqirements (and calculate max value) - ACHIEVEMENT_FLAG_MAX_USED = 0x00000010, // Show max criteria (and calculate max value ??) - ACHIEVEMENT_FLAG_REQ_COUNT = 0x00000020, // Use not zero req count (and calculate max value) - ACHIEVEMENT_FLAG_AVERAGE = 0x00000040, // Show as average value (value / time_in_days) depend from other flag (by def use last criteria value) - ACHIEVEMENT_FLAG_BAR = 0x00000080, // Show as progress bar (value / max vale) depend from other flag (by def use last criteria value) - ACHIEVEMENT_FLAG_REALM_FIRST_REACH = 0x00000100, // - ACHIEVEMENT_FLAG_REALM_FIRST_KILL = 0x00000200 // + ACHIEVEMENT_FLAG_COUNTER = 0x00000001, // Just count statistic (never stop and complete) + ACHIEVEMENT_FLAG_HIDDEN = 0x00000002, // Not sent to client - internal use only + ACHIEVEMENT_FLAG_STORE_MAX_VALUE = 0x00000004, // Store only max value? used only in "Reach level xx" + ACHIEVEMENT_FLAG_SUMM = 0x00000008, // Use summ criteria value from all requirements (and calculate max value) + ACHIEVEMENT_FLAG_MAX_USED = 0x00000010, // Show max criteria (and calculate max value ??) + ACHIEVEMENT_FLAG_REQ_COUNT = 0x00000020, // Use not zero req count (and calculate max value) + ACHIEVEMENT_FLAG_AVERAGE = 0x00000040, // Show as average value (value / time_in_days) depend from other flag (by def use last criteria value) + ACHIEVEMENT_FLAG_BAR = 0x00000080, // Show as progress bar (value / max vale) depend from other flag (by def use last criteria value) + ACHIEVEMENT_FLAG_REALM_FIRST_REACH = 0x00000100, // + ACHIEVEMENT_FLAG_REALM_FIRST_KILL = 0x00000200 // }; #define MAX_CRITERIA_REQUIREMENTS 2 @@ -108,124 +111,117 @@ enum AchievementCriteriaTimedTypes enum AchievementCriteriaTypes { - ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE = 0, - ACHIEVEMENT_CRITERIA_TYPE_WIN_BG = 1, - ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL = 5, - ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL = 7, - ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT = 8, - ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT = 9, - // you have to complete a daily quest x times in a row - ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY = 10, - ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE = 11, - ACHIEVEMENT_CRITERIA_TYPE_DAMAGE_DONE = 13, - ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST = 14, - ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND= 15, - ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP= 16, - ACHIEVEMENT_CRITERIA_TYPE_DEATH= 17, - ACHIEVEMENT_CRITERIA_TYPE_DEATH_IN_DUNGEON = 18, - ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID = 19, - ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE = 20, - ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_PLAYER = 23, - ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING = 24, - ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM = 26, - ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST = 27, - ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET = 28, - ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL= 29, - ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE = 30, - ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA = 31, - ACHIEVEMENT_CRITERIA_TYPE_WIN_ARENA = 32, - ACHIEVEMENT_CRITERIA_TYPE_PLAY_ARENA = 33, - ACHIEVEMENT_CRITERIA_TYPE_LEARN_SPELL = 34, - ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL = 35, - ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM = 36, - // TODO: the archievements 1162 and 1163 requires a special rating which can't be found in the dbc - ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA = 37, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING = 38, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_PERSONAL_RATING = 39, - ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL = 40, - ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM = 41, - ACHIEVEMENT_CRITERIA_TYPE_LOOT_ITEM= 42, - ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA = 43, - ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK= 44, - ACHIEVEMENT_CRITERIA_TYPE_BUY_BANK_SLOT= 45, - ACHIEVEMENT_CRITERIA_TYPE_GAIN_REPUTATION= 46, - ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION= 47, - // noted: rewarded as soon as the player payed, not at taking place at the seat - ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP= 48, - ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49, - // TODO: itemlevel is mentioned in text but not present in dbc - ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT = 50, - ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT= 51, - ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS = 52, - ACHIEVEMENT_CRITERIA_TYPE_HK_RACE = 53, - ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE = 54, - ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE = 55, - // TODO: in some cases map not present, and in some cases need do without die - ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS = 56, - ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM = 57, - ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS = 59, - ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS = 60, - ACHIEVEMENT_CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS = 61, - ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD = 62, - ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING = 63, - ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_AT_BARBER = 65, - ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL = 66, - ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY = 67, - ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT = 68, - ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2= 69, - ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL= 70, - ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT = 72, - // TODO: title id is not mentioned in dbc - ACHIEVEMENT_CRITERIA_TYPE_EARNED_PVP_TITLE = 74, - ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS= 75, - ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL = 76, - ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL = 77, - // TODO: creature type (demon, undead etc.) is not stored in dbc - ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE = 78, - ACHIEVEMENT_CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS= 80, - ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION= 82, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_BID= 83, - ACHIEVEMENT_CRITERIA_TYPE_WON_AUCTIONS= 84, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_SOLD = 85, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED = 86, - ACHIEVEMENT_CRITERIA_TYPE_GAIN_REVERED_REPUTATION = 87, - ACHIEVEMENT_CRITERIA_TYPE_GAIN_HONORED_REPUTATION = 88, - ACHIEVEMENT_CRITERIA_TYPE_KNOWN_FACTIONS = 89, - ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM = 90, - ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM = 91, - ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED = 93, - ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED = 94, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH = 95, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_POWER = 96, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_STAT = 97, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER = 98, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_ARMOR = 99, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_RATING = 100, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_DEALT = 101, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_RECEIVED = 102, - ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED = 103, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEAL_CASTED = 104, - ACHIEVEMENT_CRITERIA_TYPE_TOTAL_HEALING_RECEIVED = 105, - ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED = 106, - ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED = 107, - ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN = 108, - ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE = 109, - // TODO: target entry is missing - ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2 = 110, - ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE= 112, - ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL = 113, - ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS = 114, - // 0..115 => 116 criteria types total - ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS = 115, + ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE = 0, + ACHIEVEMENT_CRITERIA_TYPE_WIN_BG = 1, + ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL = 5, + ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL = 7, + ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT = 8, + ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT = 9, + ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY = 10, // you have to complete a daily quest x times in a row + ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE = 11, + ACHIEVEMENT_CRITERIA_TYPE_DAMAGE_DONE = 13, + ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST = 14, + ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND = 15, + ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP = 16, + ACHIEVEMENT_CRITERIA_TYPE_DEATH = 17, + ACHIEVEMENT_CRITERIA_TYPE_DEATH_IN_DUNGEON = 18, + ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID = 19, + ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE = 20, + ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_PLAYER = 23, + ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING = 24, + ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM = 26, + ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST = 27, + ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET = 28, + ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL = 29, + ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE = 30, + ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA = 31, + ACHIEVEMENT_CRITERIA_TYPE_WIN_ARENA = 32, + ACHIEVEMENT_CRITERIA_TYPE_PLAY_ARENA = 33, + ACHIEVEMENT_CRITERIA_TYPE_LEARN_SPELL = 34, + ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL = 35, + ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM = 36, + ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA = 37, // TODO: the archievements 1162 and 1163 requires a special rating which can't be found in the dbc + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING = 38, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_PERSONAL_RATING = 39, + ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL = 40, + ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM = 41, + ACHIEVEMENT_CRITERIA_TYPE_LOOT_ITEM = 42, + ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA = 43, + ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK = 44, + ACHIEVEMENT_CRITERIA_TYPE_BUY_BANK_SLOT = 45, + ACHIEVEMENT_CRITERIA_TYPE_GAIN_REPUTATION = 46, + ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION = 47, + ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP = 48, + ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49, + ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT = 50, // TODO: itemlevel is mentioned in text but not present in dbc + ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT = 51, + ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS = 52, + ACHIEVEMENT_CRITERIA_TYPE_HK_RACE = 53, + ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE = 54, + ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE = 55, + ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS = 56, // TODO: in some cases map not present, and in some cases need do without die + ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM = 57, + ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS = 59, + ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS = 60, + ACHIEVEMENT_CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS = 61, + ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD = 62, + ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING = 63, + ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_AT_BARBER = 65, + ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL = 66, + ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY = 67, + ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT = 68, + ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2 = 69, + ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL = 70, + ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT = 72, + // TODO 73: Achievements 1515, 1241, 1103 (Name: Mal'Ganis) + ACHIEVEMENT_CRITERIA_TYPE_EARNED_PVP_TITLE = 74, // TODO: title id is not mentioned in dbc + ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS = 75, + ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL = 76, + ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL = 77, + ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE = 78, + ACHIEVEMENT_CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS = 80, + ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION = 82, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_BID = 83, + ACHIEVEMENT_CRITERIA_TYPE_WON_AUCTIONS = 84, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_SOLD = 85, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED = 86, + ACHIEVEMENT_CRITERIA_TYPE_GAIN_REVERED_REPUTATION = 87, + ACHIEVEMENT_CRITERIA_TYPE_GAIN_HONORED_REPUTATION = 88, + ACHIEVEMENT_CRITERIA_TYPE_KNOWN_FACTIONS = 89, + ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM = 90, + ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM = 91, + ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED = 93, + ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED = 94, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH = 95, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_POWER = 96, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_STAT = 97, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER = 98, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_ARMOR = 99, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_RATING = 100, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_DEALT = 101, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_RECEIVED = 102, + ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED = 103, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEAL_CASTED = 104, + ACHIEVEMENT_CRITERIA_TYPE_TOTAL_HEALING_RECEIVED = 105, + ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED = 106, + ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED = 107, + ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN = 108, + ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE = 109, + ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2 = 110, // TODO: target entry is missing + ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE = 112, + ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL = 113, + ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS = 114, + ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS = 115, ACHIEVEMENT_CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS = 119, // 120 // 121 // 122 // 123 // 0..123 => 124 criteria types total - ACHIEVEMENT_CRITERIA_TYPE_TOTAL = 124 }; +#define ACHIEVEMENT_CRITERIA_TYPE_TOTAL 124 + enum AchievementCategory { CATEGORY_CHILDRENS_WEEK = 163 @@ -286,7 +282,7 @@ enum Difficulty enum SpawnMask { - SPAWNMASK_CONTINENT = (1 << REGULAR_DIFFICULTY), // any any maps without spawn modes + SPAWNMASK_CONTINENT = (1 << REGULAR_DIFFICULTY), // any maps without spawn modes SPAWNMASK_DUNGEON_NORMAL = (1 << DUNGEON_DIFFICULTY_NORMAL), SPAWNMASK_DUNGEON_HEROIC = (1 << DUNGEON_DIFFICULTY_HEROIC), @@ -349,19 +345,19 @@ enum ItemEnchantmentType enum ItemLimitCategoryMode { - ITEM_LIMIT_CATEGORY_MODE_HAVE = 0, // limit applied to amount items in inventory/bank - ITEM_LIMIT_CATEGORY_MODE_EQUIP = 1 // limit applied to amount equipped items (including used gems) + ITEM_LIMIT_CATEGORY_MODE_HAVE = 0, // limit applied to amount items in inventory/bank + ITEM_LIMIT_CATEGORY_MODE_EQUIP = 1 // limit applied to amount equipped items (including used gems) }; enum TotemCategoryType { - TOTEM_CATEGORY_TYPE_KNIFE = 1, - TOTEM_CATEGORY_TYPE_TOTEM = 2, - TOTEM_CATEGORY_TYPE_ROD = 3, - TOTEM_CATEGORY_TYPE_PICK = 21, - TOTEM_CATEGORY_TYPE_STONE = 22, - TOTEM_CATEGORY_TYPE_HAMMER = 23, - TOTEM_CATEGORY_TYPE_SPANNER = 24 + TOTEM_CATEGORY_TYPE_KNIFE = 1, + TOTEM_CATEGORY_TYPE_TOTEM = 2, + TOTEM_CATEGORY_TYPE_ROD = 3, + TOTEM_CATEGORY_TYPE_PICK = 21, + TOTEM_CATEGORY_TYPE_STONE = 22, + TOTEM_CATEGORY_TYPE_HAMMER = 23, + TOTEM_CATEGORY_TYPE_SPANNER = 24 }; // SummonProperties.dbc, col 1 diff --git a/src/server/game/DungeonFinding/LFGQueue.cpp b/src/server/game/DungeonFinding/LFGQueue.cpp index cf600b0645f..3bcd1ee5643 100644 --- a/src/server/game/DungeonFinding/LFGQueue.cpp +++ b/src/server/game/DungeonFinding/LFGQueue.cpp @@ -639,7 +639,7 @@ void LFGQueue::FindBestCompatibleInQueue(LfgQueueDataContainer::iterator itrQueu std::string sguid = o.str(); for (LfgCompatibleContainer::const_iterator itr = CompatibleMapStore.begin(); itr != CompatibleMapStore.end(); ++itr) - if (itr->second.compatibility == LFG_COMPATIBLES_WITH_LESS_PLAYERS && + if (itr->second.compatibility == LFG_COMPATIBLES_WITH_LESS_PLAYERS && std::string::npos != itr->first.find(sguid)) { UpdateBestCompatibleInQueue(itrQueue, itr->first, itr->second.roles); @@ -650,7 +650,7 @@ void LFGQueue::UpdateBestCompatibleInQueue(LfgQueueDataContainer::iterator itrQu { LfgQueueData& queueData = itrQueue->second; - uint8 storedSize = queueData.bestCompatible.empty() ? 0 : + uint8 storedSize = queueData.bestCompatible.empty() ? 0 : std::count(queueData.bestCompatible.begin(), queueData.bestCompatible.end(), '|') + 1; uint8 size = std::count(key.begin(), key.end(), '|') + 1; diff --git a/src/server/game/DungeonFinding/LFGQueue.h b/src/server/game/DungeonFinding/LFGQueue.h index f937ac0d21a..e6ba038a9e6 100644 --- a/src/server/game/DungeonFinding/LFGQueue.h +++ b/src/server/game/DungeonFinding/LFGQueue.h @@ -42,7 +42,7 @@ struct LfgCompatibilityData compatibility(_compatibility), roles(_roles) { } LfgCompatibility compatibility; - LfgRolesMap roles; + LfgRolesMap roles; }; /// Stores player or group queue info diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index e41b8ff4ac8..4db293f0e89 100755 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -29,6 +29,56 @@ #define MAX_GUILD_BANK_TAB_TEXT_LEN 500 #define EMBLEM_PRICE 10 * GOLD +std::string _GetGuildEventString(GuildEvents event) +{ + switch (event) + { + case GE_PROMOTION: + return "Member promotion"; + case GE_DEMOTION: + return "Member demotion"; + case GE_MOTD: + return "Guild MOTD"; + case GE_JOINED: + return "Member joined"; + case GE_LEFT: + return "Member left"; + case GE_REMOVED: + return "Member removed"; + case GE_LEADER_IS: + return "Leader is"; + case GE_LEADER_CHANGED: + return "Leader changed"; + case GE_DISBANDED: + return "Guild disbanded"; + case GE_TABARDCHANGE: + return "Tabard change"; + case GE_RANK_UPDATED: + return "Rank updated"; + case GE_RANK_DELETED: + return "Rank deleted"; + case GE_SIGNED_ON: + return "Member signed on"; + case GE_SIGNED_OFF: + return "Member signed off"; + case GE_GUILDBANKBAGSLOTS_CHANGED: + return "Bank bag slots changed"; + case GE_BANK_TAB_PURCHASED: + return "Bank tab purchased"; + case GE_BANK_TAB_UPDATED: + return "Bank tab updated"; + case GE_BANK_MONEY_SET: + return "Bank money set"; + case GE_BANK_MONEY_CHANGED: + return "Bank money changed"; + case GE_BANK_TEXT_CHANGED: + return "Bank tab text changed"; + default: + break; + } + return "<None>"; +} + inline uint32 _GetGuildBankTabPrice(uint8 tabId) { switch (tabId) @@ -223,10 +273,9 @@ void Guild::RankInfo::SaveToDB(SQLTransaction& trans) const CharacterDatabase.ExecuteOrAppend(trans, stmt); } -bool Guild::RankInfo::CreateMissingTabsIfNeeded(uint8 ranks, SQLTransaction& trans) +void Guild::RankInfo::CreateMissingTabsIfNeeded(uint8 tabs, SQLTransaction& trans, bool logOnCreate /* = false */) { - bool ret = false; - for (uint8 i = 0; i < ranks; ++i) + for (uint8 i = 0; i < tabs; ++i) { GuildBankRightsAndSlots& rightsAndSlots = m_bankTabRightsAndSlots[i]; if (rightsAndSlots.GetTabId() == i) @@ -236,17 +285,17 @@ bool Guild::RankInfo::CreateMissingTabsIfNeeded(uint8 ranks, SQLTransaction& tra if (m_rankId == GR_GUILDMASTER) rightsAndSlots.SetGuildMasterValues(); - ret = true; + if (logOnCreate) + sLog->outError(LOG_FILTER_GUILD, "Guild %u has broken Tab %u for rank %u. Created default tab.", m_guildId, i, m_rankId); + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GUILD_BANK_RIGHT); stmt->setUInt32(0, m_guildId); - stmt->setUInt8 (1, i); - stmt->setUInt8 (2, m_rankId); - stmt->setUInt32(3, rightsAndSlots.GetRights()); + stmt->setUInt8(1, i); + stmt->setUInt8(2, m_rankId); + stmt->setUInt8(3, rightsAndSlots.GetRights()); stmt->setUInt32(4, rightsAndSlots.GetSlots()); trans->Append(stmt); } - - return ret; } void Guild::RankInfo::WritePacket(WorldPacket& data) const @@ -1429,24 +1478,21 @@ void Guild::HandleBuyBankTab(WorldSession* session, uint8 tabId) if (_GetPurchasedTabsSize() >= GUILD_BANK_MAX_TABS) return; - if (tabId != _GetPurchasedTabsSize()) - return; + if (tabId != _GetPurchasedTabsSize()) + return; - uint32 tabCost = _GetGuildBankTabPrice(tabId) * GOLD; - if (!tabCost) - return; + uint32 tabCost = _GetGuildBankTabPrice(tabId) * GOLD; + if (!tabCost) + return; - if (!player->HasEnoughMoney(tabCost)) // Should not happen, this is checked by client - return; + if (!player->HasEnoughMoney(tabCost)) // Should not happen, this is checked by client + return; - player->ModifyMoney(-int32(tabCost)); + player->ModifyMoney(-int32(tabCost)); - uint8 rankId = member->GetRankId(); _CreateNewBankTab(); - _SetRankBankMoneyPerDay(rankId, uint32(GUILD_WITHDRAW_MONEY_UNLIMITED)); - GuildBankRightsAndSlots rightsAndSlots(tabId); - _SetRankBankTabRightsAndSlots(rankId, rightsAndSlots); - SendBankTabsInfo(session); + _BroadcastEvent(GE_BANK_TAB_PURCHASED, 0); + SendPermissions(session); /// Hack to force client to update permissions } void Guild::HandleInviteMember(WorldSession* session, std::string const& name) @@ -2018,11 +2064,8 @@ bool Guild::Validate() else { SQLTransaction trans = CharacterDatabase.BeginTransaction(); - if (rankInfo->CreateMissingTabsIfNeeded(_GetPurchasedTabsSize(), trans)) - { - sLog->outError(LOG_FILTER_GUILD, "Guild %u has broken Tabs for rank id %u, creating default tab...", m_id, rankId); - CharacterDatabase.CommitTransaction(trans); - } + rankInfo->CreateMissingTabsIfNeeded(_GetPurchasedTabsSize(), trans, true); + CharacterDatabase.CommitTransaction(trans); } } } @@ -2303,6 +2346,10 @@ void Guild::_CreateNewBankTab() stmt->setUInt8 (1, tabId); trans->Append(stmt); + ++tabId; + for (Ranks::iterator itr = m_ranks.begin(); itr != m_ranks.end(); ++itr) + (*itr).CreateMissingTabsIfNeeded(tabId, trans, false); + CharacterDatabase.CommitTransaction(trans); } @@ -2738,7 +2785,9 @@ void Guild::_BroadcastEvent(GuildEvents guildEvent, uint64 guid, const char* par data << uint64(guid); BroadcastPacket(&data); - sLog->outDebug(LOG_FILTER_GUILD, "SMSG_GUILD_EVENT [Broadcast] Event: %u", guildEvent); + + if (sLog->ShouldLog(LOG_FILTER_GUILD, LOG_LEVEL_DEBUG)) + sLog->outDebug(LOG_FILTER_GUILD, "SMSG_GUILD_EVENT [Broadcast] Event: %s (%u)", _GetGuildEventString(guildEvent).c_str(), guildEvent); } void Guild::_SendBankList(WorldSession* session /* = NULL*/, uint8 tabId /*= 0*/, bool sendAllSlots /*= false*/, SlotIds *slots /*= NULL*/) const diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h index deb89c169b6..a8bf5dcdb62 100755 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -500,7 +500,7 @@ private: } void SetBankTabSlotsAndRights(GuildBankRightsAndSlots rightsAndSlots, bool saveToDB); - bool CreateMissingTabsIfNeeded(uint8 ranks, SQLTransaction& trans); + void CreateMissingTabsIfNeeded(uint8 ranks, SQLTransaction& trans, bool logOnCreate = false); private: uint32 m_guildId; diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index 8b7fc5542ab..e4989816998 100755 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -114,7 +114,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData) return; break; default: - sLog->outError(LOG_FILTER_NETWORKIO, "Player %s (GUID: %u) sent a chatmessage with an invalid language/message type combination", + sLog->outError(LOG_FILTER_NETWORKIO, "Player %s (GUID: %u) sent a chatmessage with an invalid language/message type combination", GetPlayer()->GetName().c_str(), GetPlayer()->GetGUIDLow()); recvData.rfinish(); @@ -561,8 +561,8 @@ void WorldSession::HandleTextEmoteOpcode(WorldPacket& recvData) // Only allow text-emotes for "dead" entities (feign death included) if (GetPlayer()->HasUnitState(UNIT_STATE_DIED)) break; - GetPlayer()->HandleEmoteCommand(emote_anim); - break; + GetPlayer()->HandleEmoteCommand(emote_anim); + break; } Unit* unit = ObjectAccessor::GetUnit(*_player, guid); diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index cb6e5265c76..5b690a1b9a2 100755 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -32,7 +32,7 @@ #include "Group.h" #include "SpellInfo.h" -void WorldSession::HandleDismissCritter(WorldPacket &recvData) +void WorldSession::HandleDismissCritter(WorldPacket& recvData) { uint64 guid; recvData >> guid; @@ -138,7 +138,7 @@ void WorldSession::HandlePetStopAttack(WorldPacket &recvData) pet->AttackStop(); } -void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint16 spellid, uint16 flag, uint64 guid2) +void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid, uint16 flag, uint64 guid2) { CharmInfo* charmInfo = pet->GetCharmInfo(); if (!charmInfo) @@ -855,15 +855,15 @@ void WorldSession::SendPetNameInvalid(uint32 error, const std::string& name, Dec SendPacket(&data); } -void WorldSession::HandlePetLearnTalent(WorldPacket & recvData) +void WorldSession::HandlePetLearnTalent(WorldPacket& recvData) { sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: CMSG_PET_LEARN_TALENT"); uint64 guid; - uint32 talent_id, requested_rank; - recvData >> guid >> talent_id >> requested_rank; + uint32 talentId, requestedRank; + recvData >> guid >> talentId >> requestedRank; - _player->LearnPetTalent(guid, talent_id, requested_rank); + _player->LearnPetTalent(guid, talentId, requestedRank); _player->SendTalentsInfoData(true); } diff --git a/src/server/game/Maps/MapUpdater.cpp b/src/server/game/Maps/MapUpdater.cpp index b747d065a14..5e5f520505c 100644 --- a/src/server/game/Maps/MapUpdater.cpp +++ b/src/server/game/Maps/MapUpdater.cpp @@ -69,7 +69,7 @@ MapUpdater::~MapUpdater() int MapUpdater::activate(size_t num_threads) { - return m_executor.activate((int)num_threads, new WDBThreadStartReq1, new WDBThreadEndReq1); + return m_executor.start((int)num_threads, new WDBThreadStartReq1, new WDBThreadEndReq1); } int MapUpdater::deactivate() diff --git a/src/server/game/Movement/MovementGenerator.h b/src/server/game/Movement/MovementGenerator.h index 0a2ebcfaeee..0c1fc8114ca 100755 --- a/src/server/game/Movement/MovementGenerator.h +++ b/src/server/game/Movement/MovementGenerator.h @@ -52,29 +52,23 @@ class MovementGeneratorMedium : public MovementGenerator void Initialize(Unit &u) { //u->AssertIsType<T>(); - (static_cast<D*>(this))->Initialize(*((T*)&u)); + (static_cast<D*>(this))->DoInitialize(*((T*)&u)); } void Finalize(Unit &u) { //u->AssertIsType<T>(); - (static_cast<D*>(this))->Finalize(*((T*)&u)); + (static_cast<D*>(this))->DoFinalize(*((T*)&u)); } void Reset(Unit &u) { //u->AssertIsType<T>(); - (static_cast<D*>(this))->Reset(*((T*)&u)); + (static_cast<D*>(this))->DoReset(*((T*)&u)); } bool Update(Unit &u, const uint32& time_diff) { //u->AssertIsType<T>(); - return (static_cast<D*>(this))->Update(*((T*)&u), time_diff); + return (static_cast<D*>(this))->DoUpdate(*((T*)&u), time_diff); } - public: - // will not link if not overridden in the generators - void Initialize(T &u); - void Finalize(T &u); - void Reset(T &u); - bool Update(T &u, const uint32& time_diff); }; struct SelectableMovement : public FactoryHolder<MovementGenerator, MovementGeneratorType> diff --git a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp index bd75e1c8912..b8925c8b512 100755 --- a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp @@ -30,7 +30,7 @@ #endif template<class T> -void ConfusedMovementGenerator<T>::Initialize(T &unit) +void ConfusedMovementGenerator<T>::DoInitialize(T &unit) { unit.StopMoving(); float const wander_distance = 4; @@ -100,7 +100,7 @@ void ConfusedMovementGenerator<Player>::_InitSpecific(Player &, bool &is_water_o } template<class T> -void ConfusedMovementGenerator<T>::Reset(T &unit) +void ConfusedMovementGenerator<T>::DoReset(T &unit) { i_nextMove = 1; i_nextMoveTime.Reset(0); @@ -109,7 +109,7 @@ void ConfusedMovementGenerator<T>::Reset(T &unit) } template<class T> -bool ConfusedMovementGenerator<T>::Update(T &unit, const uint32 &diff) +bool ConfusedMovementGenerator<T>::DoUpdate(T &unit, const uint32 &diff) { if (unit.HasUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED | UNIT_STATE_DISTRACTED)) return true; @@ -149,14 +149,14 @@ bool ConfusedMovementGenerator<T>::Update(T &unit, const uint32 &diff) } template<> -void ConfusedMovementGenerator<Player>::Finalize(Player &unit) +void ConfusedMovementGenerator<Player>::DoFinalize(Player &unit) { unit.RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED); unit.ClearUnitState(UNIT_STATE_CONFUSED | UNIT_STATE_CONFUSED_MOVE); } template<> -void ConfusedMovementGenerator<Creature>::Finalize(Creature &unit) +void ConfusedMovementGenerator<Creature>::DoFinalize(Creature &unit) { unit.RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED); unit.ClearUnitState(UNIT_STATE_CONFUSED | UNIT_STATE_CONFUSED_MOVE); @@ -164,10 +164,10 @@ void ConfusedMovementGenerator<Creature>::Finalize(Creature &unit) unit.SetTarget(unit.getVictim()->GetGUID()); } -template void ConfusedMovementGenerator<Player>::Initialize(Player &player); -template void ConfusedMovementGenerator<Creature>::Initialize(Creature &creature); -template void ConfusedMovementGenerator<Player>::Reset(Player &player); -template void ConfusedMovementGenerator<Creature>::Reset(Creature &creature); -template bool ConfusedMovementGenerator<Player>::Update(Player &player, const uint32 &diff); -template bool ConfusedMovementGenerator<Creature>::Update(Creature &creature, const uint32 &diff); +template void ConfusedMovementGenerator<Player>::DoInitialize(Player &player); +template void ConfusedMovementGenerator<Creature>::DoInitialize(Creature &creature); +template void ConfusedMovementGenerator<Player>::DoReset(Player &player); +template void ConfusedMovementGenerator<Creature>::DoReset(Creature &creature); +template bool ConfusedMovementGenerator<Player>::DoUpdate(Player &player, const uint32 &diff); +template bool ConfusedMovementGenerator<Creature>::DoUpdate(Creature &creature, const uint32 &diff); diff --git a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.h b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.h index 7f2226ea069..1943b113888 100755 --- a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.h +++ b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.h @@ -30,10 +30,10 @@ class ConfusedMovementGenerator : public MovementGeneratorMedium< T, ConfusedMov public: explicit ConfusedMovementGenerator() : i_nextMoveTime(0) {} - void Initialize(T &); - void Finalize(T &); - void Reset(T &); - bool Update(T &, const uint32 &); + void DoInitialize(T &); + void DoFinalize(T &); + void DoReset(T &); + bool DoUpdate(T &, const uint32 &); MovementGeneratorType GetMovementGeneratorType() { return CONFUSED_MOTION_TYPE; } private: diff --git a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp index c9497784988..e57e8ac7390 100755 --- a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp @@ -282,7 +282,7 @@ bool FleeingMovementGenerator<T>::_setMoveData(T &owner) } template<class T> -void FleeingMovementGenerator<T>::Initialize(T &owner) +void FleeingMovementGenerator<T>::DoInitialize(T &owner) { if (!&owner) return; @@ -331,7 +331,7 @@ void FleeingMovementGenerator<Player>::_Init(Player &) } template<> -void FleeingMovementGenerator<Player>::Finalize(Player &owner) +void FleeingMovementGenerator<Player>::DoFinalize(Player &owner) { owner.RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING); owner.ClearUnitState(UNIT_STATE_FLEEING|UNIT_STATE_FLEEING_MOVE); @@ -339,7 +339,7 @@ void FleeingMovementGenerator<Player>::Finalize(Player &owner) } template<> -void FleeingMovementGenerator<Creature>::Finalize(Creature &owner) +void FleeingMovementGenerator<Creature>::DoFinalize(Creature &owner) { owner.RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING); owner.ClearUnitState(UNIT_STATE_FLEEING|UNIT_STATE_FLEEING_MOVE); @@ -348,13 +348,13 @@ void FleeingMovementGenerator<Creature>::Finalize(Creature &owner) } template<class T> -void FleeingMovementGenerator<T>::Reset(T &owner) +void FleeingMovementGenerator<T>::DoReset(T &owner) { - Initialize(owner); + DoInitialize(owner); } template<class T> -bool FleeingMovementGenerator<T>::Update(T &owner, const uint32 &time_diff) +bool FleeingMovementGenerator<T>::DoUpdate(T &owner, const uint32 &time_diff) { if (!&owner || !owner.isAlive()) return false; @@ -371,18 +371,18 @@ bool FleeingMovementGenerator<T>::Update(T &owner, const uint32 &time_diff) return true; } -template void FleeingMovementGenerator<Player>::Initialize(Player &); -template void FleeingMovementGenerator<Creature>::Initialize(Creature &); +template void FleeingMovementGenerator<Player>::DoInitialize(Player &); +template void FleeingMovementGenerator<Creature>::DoInitialize(Creature &); template bool FleeingMovementGenerator<Player>::_setMoveData(Player &); template bool FleeingMovementGenerator<Creature>::_setMoveData(Creature &); template bool FleeingMovementGenerator<Player>::_getPoint(Player &, float &, float &, float &); template bool FleeingMovementGenerator<Creature>::_getPoint(Creature &, float &, float &, float &); template void FleeingMovementGenerator<Player>::_setTargetLocation(Player &); template void FleeingMovementGenerator<Creature>::_setTargetLocation(Creature &); -template void FleeingMovementGenerator<Player>::Reset(Player &); -template void FleeingMovementGenerator<Creature>::Reset(Creature &); -template bool FleeingMovementGenerator<Player>::Update(Player &, const uint32 &); -template bool FleeingMovementGenerator<Creature>::Update(Creature &, const uint32 &); +template void FleeingMovementGenerator<Player>::DoReset(Player &); +template void FleeingMovementGenerator<Creature>::DoReset(Creature &); +template bool FleeingMovementGenerator<Player>::DoUpdate(Player &, const uint32 &); +template bool FleeingMovementGenerator<Creature>::DoUpdate(Creature &, const uint32 &); void TimedFleeingMovementGenerator::Finalize(Unit &owner) { diff --git a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.h b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.h index aec93ad3375..288abbb5753 100755 --- a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.h +++ b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.h @@ -27,10 +27,10 @@ class FleeingMovementGenerator : public MovementGeneratorMedium< T, FleeingMovem public: FleeingMovementGenerator(uint64 fright) : i_frightGUID(fright), i_nextCheckTime(0) {} - void Initialize(T &); - void Finalize(T &); - void Reset(T &); - bool Update(T &, const uint32 &); + void DoInitialize(T &); + void DoFinalize(T &); + void DoReset(T &); + bool DoUpdate(T &, const uint32 &); MovementGeneratorType GetMovementGeneratorType() { return FLEEING_MOTION_TYPE; } diff --git a/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp index a8bdb698432..1e9ea3156d8 100755 --- a/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp @@ -23,12 +23,12 @@ #include "MoveSplineInit.h" #include "MoveSpline.h" -void HomeMovementGenerator<Creature>::Initialize(Creature & owner) +void HomeMovementGenerator<Creature>::DoInitialize(Creature & owner) { _setTargetLocation(owner); } -void HomeMovementGenerator<Creature>::Reset(Creature &) +void HomeMovementGenerator<Creature>::DoReset(Creature &) { } @@ -53,13 +53,13 @@ void HomeMovementGenerator<Creature>::_setTargetLocation(Creature & owner) owner.ClearUnitState(UNIT_STATE_ALL_STATE & ~UNIT_STATE_EVADE); } -bool HomeMovementGenerator<Creature>::Update(Creature &owner, const uint32 /*time_diff*/) +bool HomeMovementGenerator<Creature>::DoUpdate(Creature &owner, const uint32 /*time_diff*/) { arrived = owner.movespline->Finalized(); return !arrived; } -void HomeMovementGenerator<Creature>::Finalize(Creature& owner) +void HomeMovementGenerator<Creature>::DoFinalize(Creature& owner) { if (arrived) { diff --git a/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.h b/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.h index 95eb05f281c..a3d53e24510 100755 --- a/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.h +++ b/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.h @@ -34,10 +34,10 @@ class HomeMovementGenerator<Creature> : public MovementGeneratorMedium< Creature HomeMovementGenerator() : arrived(false) {} ~HomeMovementGenerator() {} - void Initialize(Creature &); - void Finalize(Creature &); - void Reset(Creature &); - bool Update(Creature &, const uint32); + void DoInitialize(Creature &); + void DoFinalize(Creature &); + void DoReset(Creature &); + bool DoUpdate(Creature &, const uint32); MovementGeneratorType GetMovementGeneratorType() { return HOME_MOTION_TYPE; } private: diff --git a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp index 07a5761517e..91f77e8ebfe 100755 --- a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp @@ -27,7 +27,7 @@ //----- Point Movement Generator template<class T> -void PointMovementGenerator<T>::Initialize(T &unit) +void PointMovementGenerator<T>::DoInitialize(T &unit) { if (!unit.IsStopped()) unit.StopMoving(); @@ -42,7 +42,7 @@ void PointMovementGenerator<T>::Initialize(T &unit) } template<class T> -bool PointMovementGenerator<T>::Update(T &unit, const uint32 & /*diff*/) +bool PointMovementGenerator<T>::DoUpdate(T &unit, const uint32 & /*diff*/) { if (!&unit) return false; @@ -69,7 +69,7 @@ bool PointMovementGenerator<T>::Update(T &unit, const uint32 & /*diff*/) } template<class T> -void PointMovementGenerator<T>::Finalize(T &unit) +void PointMovementGenerator<T>::DoFinalize(T &unit) { unit.ClearUnitState(UNIT_STATE_ROAMING|UNIT_STATE_ROAMING_MOVE); @@ -78,7 +78,7 @@ void PointMovementGenerator<T>::Finalize(T &unit) } template<class T> -void PointMovementGenerator<T>::Reset(T &unit) +void PointMovementGenerator<T>::DoReset(T &unit) { if (!unit.IsStopped()) unit.StopMoving(); @@ -97,14 +97,14 @@ template <> void PointMovementGenerator<Creature>::MovementInform(Creature &unit unit.AI()->MovementInform(POINT_MOTION_TYPE, id); } -template void PointMovementGenerator<Player>::Initialize(Player&); -template void PointMovementGenerator<Creature>::Initialize(Creature&); -template void PointMovementGenerator<Player>::Finalize(Player&); -template void PointMovementGenerator<Creature>::Finalize(Creature&); -template void PointMovementGenerator<Player>::Reset(Player&); -template void PointMovementGenerator<Creature>::Reset(Creature&); -template bool PointMovementGenerator<Player>::Update(Player &, const uint32 &); -template bool PointMovementGenerator<Creature>::Update(Creature&, const uint32 &); +template void PointMovementGenerator<Player>::DoInitialize(Player&); +template void PointMovementGenerator<Creature>::DoInitialize(Creature&); +template void PointMovementGenerator<Player>::DoFinalize(Player&); +template void PointMovementGenerator<Creature>::DoFinalize(Creature&); +template void PointMovementGenerator<Player>::DoReset(Player&); +template void PointMovementGenerator<Creature>::DoReset(Creature&); +template bool PointMovementGenerator<Player>::DoUpdate(Player &, const uint32 &); +template bool PointMovementGenerator<Creature>::DoUpdate(Creature&, const uint32 &); void AssistanceMovementGenerator::Finalize(Unit &unit) { diff --git a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.h b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.h index d2833a5ee10..62ffb931e6d 100755 --- a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.h +++ b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.h @@ -29,10 +29,10 @@ class PointMovementGenerator : public MovementGeneratorMedium< T, PointMovementG PointMovementGenerator(uint32 _id, float _x, float _y, float _z, float _speed = 0.0f) : id(_id), i_x(_x), i_y(_y), i_z(_z), speed(_speed) {} - void Initialize(T &); - void Finalize(T &); - void Reset(T &); - bool Update(T &, const uint32 &); + void DoInitialize(T &); + void DoFinalize(T &); + void DoReset(T &); + bool DoUpdate(T &, const uint32 &); void MovementInform(T &); diff --git a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp index 72725570826..4d74ba20d96 100755 --- a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp @@ -114,7 +114,7 @@ void RandomMovementGenerator<Creature>::_setRandomLocation(Creature& creature) } template<> -void RandomMovementGenerator<Creature>::Initialize(Creature &creature) +void RandomMovementGenerator<Creature>::DoInitialize(Creature &creature) { if (!creature.isAlive()) return; @@ -127,20 +127,20 @@ void RandomMovementGenerator<Creature>::Initialize(Creature &creature) } template<> -void RandomMovementGenerator<Creature>::Reset(Creature &creature) +void RandomMovementGenerator<Creature>::DoReset(Creature &creature) { - Initialize(creature); + DoInitialize(creature); } template<> -void RandomMovementGenerator<Creature>::Finalize(Creature &creature) +void RandomMovementGenerator<Creature>::DoFinalize(Creature &creature) { creature.ClearUnitState(UNIT_STATE_ROAMING|UNIT_STATE_ROAMING_MOVE); creature.SetWalk(false); } template<> -bool RandomMovementGenerator<Creature>::Update(Creature &creature, const uint32 diff) +bool RandomMovementGenerator<Creature>::DoUpdate(Creature &creature, const uint32 diff) { if (creature.HasUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED | UNIT_STATE_DISTRACTED)) { diff --git a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.h b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.h index 07ec3647052..449b2686a2d 100755 --- a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.h +++ b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.h @@ -28,10 +28,10 @@ class RandomMovementGenerator : public MovementGeneratorMedium< T, RandomMovemen RandomMovementGenerator(float spawn_dist = 0.0f) : i_nextMoveTime(0), wander_distance(spawn_dist) {} void _setRandomLocation(T &); - void Initialize(T &); - void Finalize(T &); - void Reset(T &); - bool Update(T &, const uint32); + void DoInitialize(T &); + void DoFinalize(T &); + void DoReset(T &); + bool DoUpdate(T &, const uint32); bool GetResetPosition(T&, float& x, float& y, float& z); MovementGeneratorType GetMovementGeneratorType() { return RANDOM_MOTION_TYPE; } private: diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp index fdff5a92564..7e74907040f 100755 --- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp @@ -120,7 +120,7 @@ void TargetedMovementGeneratorMedium<Creature,FollowMovementGenerator<Creature> } template<class T, typename D> -bool TargetedMovementGeneratorMedium<T,D>::Update(T &owner, const uint32 & time_diff) +bool TargetedMovementGeneratorMedium<T,D>::DoUpdate(T &owner, const uint32 & time_diff) { if (!i_target.isValid() || !i_target->IsInWorld()) return false; @@ -189,14 +189,14 @@ void ChaseMovementGenerator<T>::_reachTarget(T &owner) } template<> -void ChaseMovementGenerator<Player>::Initialize(Player &owner) +void ChaseMovementGenerator<Player>::DoInitialize(Player &owner) { owner.AddUnitState(UNIT_STATE_CHASE|UNIT_STATE_CHASE_MOVE); _setTargetLocation(owner); } template<> -void ChaseMovementGenerator<Creature>::Initialize(Creature &owner) +void ChaseMovementGenerator<Creature>::DoInitialize(Creature &owner) { owner.SetWalk(false); owner.AddUnitState(UNIT_STATE_CHASE|UNIT_STATE_CHASE_MOVE); @@ -204,15 +204,15 @@ void ChaseMovementGenerator<Creature>::Initialize(Creature &owner) } template<class T> -void ChaseMovementGenerator<T>::Finalize(T &owner) +void ChaseMovementGenerator<T>::DoFinalize(T &owner) { owner.ClearUnitState(UNIT_STATE_CHASE|UNIT_STATE_CHASE_MOVE); } template<class T> -void ChaseMovementGenerator<T>::Reset(T &owner) +void ChaseMovementGenerator<T>::DoReset(T &owner) { - Initialize(owner); + DoInitialize(owner); } template<class T> @@ -260,7 +260,7 @@ void FollowMovementGenerator<Creature>::_updateSpeed(Creature &u) } template<> -void FollowMovementGenerator<Player>::Initialize(Player &owner) +void FollowMovementGenerator<Player>::DoInitialize(Player &owner) { owner.AddUnitState(UNIT_STATE_FOLLOW|UNIT_STATE_FOLLOW_MOVE); _updateSpeed(owner); @@ -268,7 +268,7 @@ void FollowMovementGenerator<Player>::Initialize(Player &owner) } template<> -void FollowMovementGenerator<Creature>::Initialize(Creature &owner) +void FollowMovementGenerator<Creature>::DoInitialize(Creature &owner) { owner.AddUnitState(UNIT_STATE_FOLLOW|UNIT_STATE_FOLLOW_MOVE); _updateSpeed(owner); @@ -276,16 +276,16 @@ void FollowMovementGenerator<Creature>::Initialize(Creature &owner) } template<class T> -void FollowMovementGenerator<T>::Finalize(T &owner) +void FollowMovementGenerator<T>::DoFinalize(T &owner) { owner.ClearUnitState(UNIT_STATE_FOLLOW|UNIT_STATE_FOLLOW_MOVE); _updateSpeed(owner); } template<class T> -void FollowMovementGenerator<T>::Reset(T &owner) +void FollowMovementGenerator<T>::DoReset(T &owner) { - Initialize(owner); + DoInitialize(owner); } template<class T> @@ -306,21 +306,21 @@ template void TargetedMovementGeneratorMedium<Player,ChaseMovementGenerator<Play template void TargetedMovementGeneratorMedium<Player,FollowMovementGenerator<Player> >::_setTargetLocation(Player &); template void TargetedMovementGeneratorMedium<Creature,ChaseMovementGenerator<Creature> >::_setTargetLocation(Creature &); template void TargetedMovementGeneratorMedium<Creature,FollowMovementGenerator<Creature> >::_setTargetLocation(Creature &); -template bool TargetedMovementGeneratorMedium<Player,ChaseMovementGenerator<Player> >::Update(Player &, const uint32 &); -template bool TargetedMovementGeneratorMedium<Player,FollowMovementGenerator<Player> >::Update(Player &, const uint32 &); -template bool TargetedMovementGeneratorMedium<Creature,ChaseMovementGenerator<Creature> >::Update(Creature &, const uint32 &); -template bool TargetedMovementGeneratorMedium<Creature,FollowMovementGenerator<Creature> >::Update(Creature &, const uint32 &); +template bool TargetedMovementGeneratorMedium<Player,ChaseMovementGenerator<Player> >::DoUpdate(Player &, const uint32 &); +template bool TargetedMovementGeneratorMedium<Player,FollowMovementGenerator<Player> >::DoUpdate(Player &, const uint32 &); +template bool TargetedMovementGeneratorMedium<Creature,ChaseMovementGenerator<Creature> >::DoUpdate(Creature &, const uint32 &); +template bool TargetedMovementGeneratorMedium<Creature,FollowMovementGenerator<Creature> >::DoUpdate(Creature &, const uint32 &); template void ChaseMovementGenerator<Player>::_reachTarget(Player &); template void ChaseMovementGenerator<Creature>::_reachTarget(Creature &); -template void ChaseMovementGenerator<Player>::Finalize(Player &); -template void ChaseMovementGenerator<Creature>::Finalize(Creature &); -template void ChaseMovementGenerator<Player>::Reset(Player &); -template void ChaseMovementGenerator<Creature>::Reset(Creature &); +template void ChaseMovementGenerator<Player>::DoFinalize(Player &); +template void ChaseMovementGenerator<Creature>::DoFinalize(Creature &); +template void ChaseMovementGenerator<Player>::DoReset(Player &); +template void ChaseMovementGenerator<Creature>::DoReset(Creature &); template void ChaseMovementGenerator<Player>::MovementInform(Player &unit); -template void FollowMovementGenerator<Player>::Finalize(Player &); -template void FollowMovementGenerator<Creature>::Finalize(Creature &); -template void FollowMovementGenerator<Player>::Reset(Player &); -template void FollowMovementGenerator<Creature>::Reset(Creature &); +template void FollowMovementGenerator<Player>::DoFinalize(Player &); +template void FollowMovementGenerator<Creature>::DoFinalize(Creature &); +template void FollowMovementGenerator<Player>::DoReset(Player &); +template void FollowMovementGenerator<Creature>::DoReset(Creature &); template void FollowMovementGenerator<Player>::MovementInform(Player &unit); diff --git a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.h b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.h index 29fd73624e1..94b4078efbd 100755 --- a/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.h +++ b/src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.h @@ -46,7 +46,7 @@ class TargetedMovementGeneratorMedium : public MovementGeneratorMedium< T, D >, ~TargetedMovementGeneratorMedium() {} public: - bool Update(T &, const uint32 &); + bool DoUpdate(T &, const uint32 &); Unit* GetTarget() const { return i_target.getTarget(); } void unitSpeedChanged() { i_recalculateTravel=true; } @@ -74,9 +74,9 @@ class ChaseMovementGenerator : public TargetedMovementGeneratorMedium<T, ChaseMo MovementGeneratorType GetMovementGeneratorType() { return CHASE_MOTION_TYPE; } - void Initialize(T &); - void Finalize(T &); - void Reset(T &); + void DoInitialize(T &); + void DoFinalize(T &); + void DoReset(T &); void MovementInform(T &); static void _clearUnitStateMove(T &u) { u.ClearUnitState(UNIT_STATE_CHASE_MOVE); } @@ -98,9 +98,9 @@ class FollowMovementGenerator : public TargetedMovementGeneratorMedium<T, Follow MovementGeneratorType GetMovementGeneratorType() { return FOLLOW_MOTION_TYPE; } - void Initialize(T &); - void Finalize(T &); - void Reset(T &); + void DoInitialize(T &); + void DoFinalize(T &); + void DoReset(T &); void MovementInform(T &); static void _clearUnitStateMove(T &u) { u.ClearUnitState(UNIT_STATE_FOLLOW_MOVE); } diff --git a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp index 37a1fa84d80..5a65e6e3493 100755 --- a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp @@ -48,19 +48,19 @@ void WaypointMovementGenerator<Creature>::LoadPath(Creature &creature) StartMoveNow(creature); } -void WaypointMovementGenerator<Creature>::Initialize(Creature &creature) +void WaypointMovementGenerator<Creature>::DoInitialize(Creature &creature) { LoadPath(creature); creature.AddUnitState(UNIT_STATE_ROAMING|UNIT_STATE_ROAMING_MOVE); } -void WaypointMovementGenerator<Creature>::Finalize(Creature &creature) +void WaypointMovementGenerator<Creature>::DoFinalize(Creature &creature) { creature.ClearUnitState(UNIT_STATE_ROAMING|UNIT_STATE_ROAMING_MOVE); creature.SetWalk(false); } -void WaypointMovementGenerator<Creature>::Reset(Creature &creature) +void WaypointMovementGenerator<Creature>::DoReset(Creature &creature) { creature.AddUnitState(UNIT_STATE_ROAMING|UNIT_STATE_ROAMING_MOVE); StartMoveNow(creature); @@ -130,7 +130,7 @@ bool WaypointMovementGenerator<Creature>::StartMove(Creature &creature) return true; } -bool WaypointMovementGenerator<Creature>::Update(Creature &creature, const uint32 &diff) +bool WaypointMovementGenerator<Creature>::DoUpdate(Creature &creature, const uint32 &diff) { // Waypoint movement can be switched on/off // This is quite handy for escort quests and other stuff @@ -196,13 +196,13 @@ uint32 FlightPathMovementGenerator::GetPathAtMapEnd() const return i_path->size(); } -void FlightPathMovementGenerator::Initialize(Player &player) +void FlightPathMovementGenerator::DoInitialize(Player &player) { - Reset(player); + DoReset(player); InitEndGridInfo(); } -void FlightPathMovementGenerator::Finalize(Player& player) +void FlightPathMovementGenerator::DoFinalize(Player& player) { // remove flag to prevent send object build movement packets for flight state and crash (movement generator already not at top of stack) player.ClearUnitState(UNIT_STATE_IN_FLIGHT); @@ -222,7 +222,7 @@ void FlightPathMovementGenerator::Finalize(Player& player) #define PLAYER_FLIGHT_SPEED 32.0f -void FlightPathMovementGenerator::Reset(Player & player) +void FlightPathMovementGenerator::DoReset(Player & player) { player.getHostileRefManager().setOnlineOfflineState(false); player.AddUnitState(UNIT_STATE_IN_FLIGHT); @@ -241,7 +241,7 @@ void FlightPathMovementGenerator::Reset(Player & player) init.Launch(); } -bool FlightPathMovementGenerator::Update(Player &player, const uint32& /*diff*/) +bool FlightPathMovementGenerator::DoUpdate(Player &player, const uint32& /*diff*/) { uint32 pointId = (uint32)player.movespline->currentPathIdx(); if (pointId > i_currentNode) diff --git a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.h b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.h index 0d8f047c83a..bb6381da2f0 100755 --- a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.h +++ b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.h @@ -65,10 +65,10 @@ class WaypointMovementGenerator<Creature> : public MovementGeneratorMedium< Crea WaypointMovementGenerator(uint32 _path_id = 0, bool _repeating = true) : i_nextMoveTime(0), m_isArrivalDone(false), path_id(_path_id), repeating(_repeating) {} ~WaypointMovementGenerator() { i_path = NULL; } - void Initialize(Creature &); - void Finalize(Creature &); - void Reset(Creature &); - bool Update(Creature &, const uint32 &diff); + void DoInitialize(Creature &); + void DoFinalize(Creature &); + void DoReset(Creature &); + bool DoUpdate(Creature &, const uint32 &diff); void MovementInform(Creature &); @@ -118,10 +118,10 @@ class FlightPathMovementGenerator : public MovementGeneratorMedium< Player, Flig i_path = &pathnodes; i_currentNode = startNode; } - void Initialize(Player &); - void Reset(Player &); - void Finalize(Player &); - bool Update(Player &, const uint32&); + void DoInitialize(Player &); + void DoReset(Player &); + void DoFinalize(Player &); + bool DoUpdate(Player &, const uint32&); MovementGeneratorType GetMovementGeneratorType() { return FLIGHT_MOTION_TYPE; } TaxiPathNodeList const& GetPath() { return *i_path; } diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 7d5dba847d4..1158559f315 100755 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -750,7 +750,7 @@ class WorldSession //Pet void HandlePetAction(WorldPacket& recvData); void HandlePetStopAttack(WorldPacket& recvData); - void HandlePetActionHelper(Unit* pet, uint64 guid1, uint16 spellid, uint16 flag, uint64 guid2); + void HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid, uint16 flag, uint64 guid2); void HandlePetNameQuery(WorldPacket& recvData); void HandlePetSetAction(WorldPacket& recvData); void HandlePetAbandon(WorldPacket& recvData); diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp index 5c2639175d2..d50757868ed 100755 --- a/src/server/game/Texts/CreatureTextMgr.cpp +++ b/src/server/game/Texts/CreatureTextMgr.cpp @@ -170,7 +170,7 @@ void CreatureTextMgr::LoadCreatureTextLocales() } -uint32 CreatureTextMgr::SendChat(Creature* source, uint8 textGroup, uint64 whisperGuid /*= 0*/, ChatMsg msgType /*= CHAT_MSG_ADDON*/, Language language /*= LANG_ADDON*/, TextRange range /*= TEXT_RANGE_NORMAL*/, uint32 sound /*= 0*/, Team team /*= TEAM_OTHER*/, bool gmOnly /*= false*/, Player* srcPlr /*= NULL*/) +uint32 CreatureTextMgr::SendChat(Creature* source, uint8 textGroup, uint64 whisperGuid /*= 0*/, ChatMsg msgType /*= CHAT_MSG_ADDON*/, Language language /*= LANG_ADDON*/, CreatureTextRange range /*= TEXT_RANGE_NORMAL*/, uint32 sound /*= 0*/, Team team /*= TEAM_OTHER*/, bool gmOnly /*= false*/, Player* srcPlr /*= NULL*/) { if (!source) return 0; @@ -288,7 +288,7 @@ float CreatureTextMgr::GetRangeForChatType(ChatMsg msgType) const return dist; } -void CreatureTextMgr::SendSound(Creature* source, uint32 sound, ChatMsg msgType, uint64 whisperGuid, TextRange range, Team team, bool gmOnly) +void CreatureTextMgr::SendSound(Creature* source, uint32 sound, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly) { if (!sound || !source) return; @@ -298,7 +298,7 @@ void CreatureTextMgr::SendSound(Creature* source, uint32 sound, ChatMsg msgType, SendNonChatPacket(source, &data, msgType, whisperGuid, range, team, gmOnly); } -void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, uint64 whisperGuid, TextRange range, Team team, bool gmOnly) const +void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly) const { float dist = GetRangeForChatType(msgType); diff --git a/src/server/game/Texts/CreatureTextMgr.h b/src/server/game/Texts/CreatureTextMgr.h index 8ed0b01fcd5..a86a1059e7d 100755 --- a/src/server/game/Texts/CreatureTextMgr.h +++ b/src/server/game/Texts/CreatureTextMgr.h @@ -37,7 +37,7 @@ struct CreatureTextEntry uint32 sound; }; -enum TextRange +enum CreatureTextRange { TEXT_RANGE_NORMAL = 0, TEXT_RANGE_AREA = 1, @@ -89,21 +89,21 @@ class CreatureTextMgr void LoadCreatureTextLocales(); CreatureTextMap const& GetTextMap() const { return mTextMap; } - void SendSound(Creature* source, uint32 sound, ChatMsg msgType, uint64 whisperGuid, TextRange range, Team team, bool gmOnly); + void SendSound(Creature* source, uint32 sound, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly); void SendEmote(Unit* source, uint32 emote); //if sent, returns the 'duration' of the text else 0 if error - uint32 SendChat(Creature* source, uint8 textGroup, uint64 whisperGuid = 0, ChatMsg msgType = CHAT_MSG_ADDON, Language language = LANG_ADDON, TextRange range = TEXT_RANGE_NORMAL, uint32 sound = 0, Team team = TEAM_OTHER, bool gmOnly = false, Player* srcPlr = NULL); + uint32 SendChat(Creature* source, uint8 textGroup, uint64 whisperGuid = 0, ChatMsg msgType = CHAT_MSG_ADDON, Language language = LANG_ADDON, CreatureTextRange range = TEXT_RANGE_NORMAL, uint32 sound = 0, Team team = TEAM_OTHER, bool gmOnly = false, Player* srcPlr = NULL); bool TextExist(uint32 sourceEntry, uint8 textGroup); std::string GetLocalizedChatString(uint32 entry, uint8 textGroup, uint32 id, LocaleConstant locale) const; template<class Builder> - void SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, uint64 whisperGuid = 0, TextRange range = TEXT_RANGE_NORMAL, Team team = TEAM_OTHER, bool gmOnly = false) const; + void SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, uint64 whisperGuid = 0, CreatureTextRange range = TEXT_RANGE_NORMAL, Team team = TEAM_OTHER, bool gmOnly = false) const; private: CreatureTextRepeatIds GetRepeatGroup(Creature* source, uint8 textGroup); void SetRepeatId(Creature* source, uint8 textGroup, uint8 id); - void SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, uint64 whisperGuid, TextRange range, Team team, bool gmOnly) const; + void SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly) const; float GetRangeForChatType(ChatMsg msgType) const; CreatureTextMap mTextMap; @@ -172,7 +172,7 @@ class CreatureTextLocalizer }; template<class Builder> -void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, uint64 whisperGuid, TextRange range, Team team, bool gmOnly) const +void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly) const { if (!source) return; diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt index 59dfc0f990f..8e636ee1208 100644 --- a/src/server/scripts/CMakeLists.txt +++ b/src/server/scripts/CMakeLists.txt @@ -9,18 +9,11 @@ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # Enable precompiled headers when using the GCC compiler. -if( USE_SCRIPTPCH ) - include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ) -endif() -if( USE_SCRIPTPCH AND MSVC ) - set(scripts_STAT_SRCS - PrecompiledHeaders/ScriptPCH.cpp - PrecompiledHeaders/ScriptPCH.h - ) -endif() +if (USE_SCRIPTPCH) + set(scripts_STAT_PCH_HDR PrecompiledHeaders/ScriptPCH.h) + set(scripts_STAT_PCH_SRC PrecompiledHeaders/ScriptPCH.cpp) +endif () message(STATUS "SCRIPT PREPARATIONS") include(Spells/CMakeLists.txt) @@ -148,15 +141,14 @@ include_directories( ${MYSQL_INCLUDE_DIR} ) -add_library(scripts STATIC ${scripts_STAT_SRCS}) +add_library(scripts STATIC + ${scripts_STAT_SRCS} + ${scripts_STAT_PCH_SRC} +) add_dependencies(scripts revision.h) # Generate precompiled header -if( USE_SCRIPTPCH ) - if(CMAKE_COMPILER_IS_GNUCXX) - add_precompiled_header(scripts ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/ScriptPCH.h) - elseif(MSVC) - add_native_precompiled_header(scripts ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/ScriptPCH) - endif() +if (USE_SCRIPTPCH) + add_cxx_pch(scripts ${scripts_STAT_PCH_HDR} ${scripts_STAT_PCH_SRC}) endif() diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp index e3cd185e4a3..10a18c3ed36 100644 --- a/src/server/scripts/Commands/cs_wp.cpp +++ b/src/server/scripts/Commands/cs_wp.cpp @@ -941,7 +941,7 @@ public: { wpCreature->SetDisplayId(target->GetDisplayId()); wpCreature->SetObjectScale(0.5f); - wpCreature->SetLevel(point > STRONG_MAX_LEVEL ? STRONG_MAX_LEVEL : point); + wpCreature->SetLevel(std::min<uint32>(point, STRONG_MAX_LEVEL)); } } while (result->NextRow()); diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index 82739c0026a..1d0b0fd6ee6 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -1375,7 +1375,7 @@ class spell_halion_combustion_consumption : public SpellScriptLoader public: spell_halion_combustion_consumption_AuraScript(uint32 spellID) : AuraScript(), _markSpell(spellID) { } - bool Validate(SpellEntry const* /*spell*/) + bool Validate(SpellInfo const* /*spell*/) { if (!sSpellMgr->GetSpellInfo(_markSpell)) return false; @@ -1434,7 +1434,7 @@ class spell_halion_marks : public SpellScriptLoader spell_halion_marks_AuraScript(uint32 summonSpell, uint32 removeSpell) : AuraScript(), _summonSpellId(summonSpell), _removeSpellId(removeSpell) { } - bool Validate(SpellEntry const* /*spell*/) + bool Validate(SpellInfo const* /*spell*/) { if (!sSpellMgr->GetSpellInfo(_summonSpellId)) return false; diff --git a/src/server/scripts/Northrend/wintergrasp.cpp b/src/server/scripts/Northrend/wintergrasp.cpp index d4a3f83ab70..b7901f1a44a 100644 --- a/src/server/scripts/Northrend/wintergrasp.cpp +++ b/src/server/scripts/Northrend/wintergrasp.cpp @@ -560,7 +560,7 @@ public: if (Battlefield* wg = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG)) if (Player* target = GetExplTargetUnit()->ToPlayer()) // check if we are in Wintergrasp at all, SotA uses same teleport spells - if ((target->GetZoneId() == 4197) && target->GetTeamId() != wg->GetDefenderTeam() || target->HasAura(SPELL_WINTERGRASP_TELEPORT_TRIGGER)) + if ((target->GetZoneId() == 4197 && target->GetTeamId() != wg->GetDefenderTeam()) || target->HasAura(SPELL_WINTERGRASP_TELEPORT_TRIGGER)) return SPELL_FAILED_BAD_TARGETS; return SPELL_CAST_OK; } diff --git a/src/server/scripts/World/npc_taxi.cpp b/src/server/scripts/World/npc_taxi.cpp index efdd4da73d6..18f776e7171 100644 --- a/src/server/scripts/World/npc_taxi.cpp +++ b/src/server/scripts/World/npc_taxi.cpp @@ -51,8 +51,6 @@ EndScriptData #define GOSSIP_TARIOLSTRASZ2 "Can you spare a drake to travel to Lord Of Afrasastrasz, in the middle of the temple?" #define GOSSIP_TORASTRASZA1 "I would like to see Lord Of Afrasastrasz, in the middle of the temple." #define GOSSIP_TORASTRASZA2 "Yes, Please. I would like to return to the ground floor of the temple." -#define GOSSIP_CAMILLE1 "I need to fly to the Windrunner Official business!" -#define GOSSIP_CAMILLE2 "<The riding bat for the special task is necessary to me.>" #define GOSSIP_CRIMSONWING "<Ride the gryphons to Survey Alcaz Island>" #define GOSSIP_THRICESTAR1 "Do you think I could take a ride on one of those flying machines?" #define GOSSIP_THRICESTAR2 "Kara, I need to be flown out the Dens of Dying to find Bixie." @@ -159,12 +157,6 @@ public: // top -> ground player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_TORASTRASZA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22); break; - case 23816: // Howling Fjord - Bat Handler Camille - if (!player->GetQuestRewardStatus(11229)) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CAMILLE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 23); - if (player->GetQuestStatus(11170) == QUEST_STATUS_INCOMPLETE) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CAMILLE2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 24); - break; case 23704: // Dustwallow Marsh - Cassa Crimsonwing if (player->GetQuestStatus(11142) == QUEST_STATUS_INCOMPLETE) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_CRIMSONWING, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+25); diff --git a/src/server/shared/AutoPtr.h b/src/server/shared/AutoPtr.h index f4199880abd..9afa05325c9 100644 --- a/src/server/shared/AutoPtr.h +++ b/src/server/shared/AutoPtr.h @@ -22,32 +22,32 @@ namespace Trinity { - template <class Pointer, class Lock> - class AutoPtr : public ACE_Strong_Bound_Ptr<Pointer, Lock> + +template <class Pointer, class Lock> +class AutoPtr : public ACE_Strong_Bound_Ptr<Pointer, Lock> +{ + typedef ACE_Strong_Bound_Ptr<Pointer, Lock> Base; + +public: + AutoPtr() + : Base() + { } + + AutoPtr(Pointer* x) + : Base(x) + { } + + operator bool() const + { + return !Base::null(); + } + + bool operator !() const { - public: - AutoPtr() : ACE_Strong_Bound_Ptr<Pointer, Lock>() {} - - AutoPtr(Pointer* x) - { - ACE_Strong_Bound_Ptr<Pointer, Lock>::reset(x); - } - - operator bool() const - { - return ACE_Strong_Bound_Ptr<Pointer, Lock>::get() != NULL; - } - - bool operator !() const - { - return ACE_Strong_Bound_Ptr<Pointer, Lock>::get() == NULL; - } - - bool operator !=(Pointer* x) const - { - return ACE_Strong_Bound_Ptr<Pointer, Lock>::get() != x; - } - }; -} + return Base::null(); + } +}; + +} // namespace Trinity #endif diff --git a/src/server/shared/CMakeLists.txt b/src/server/shared/CMakeLists.txt index de998442419..e9f414d34e5 100644 --- a/src/server/shared/CMakeLists.txt +++ b/src/server/shared/CMakeLists.txt @@ -28,11 +28,9 @@ file(GLOB sources_localdir *.cpp *.h) # Build shared sourcelist # -if( USE_COREPCH AND MSVC ) - set(shared_STAT_SRCS - PrecompiledHeaders/sharedPCH.cpp - PrecompiledHeaders/sharedPCH.h - ) +if (USE_COREPCH) + set(shared_STAT_PCH_HDR PrecompiledHeaders/sharedPCH.h) + set(shared_STAT_PCH_SRC PrecompiledHeaders/sharedPCH.cpp) endif() set(shared_STAT_SRCS @@ -73,18 +71,16 @@ include_directories( ${OPENSSL_INCLUDE_DIR} ) -add_library(shared STATIC ${shared_STAT_SRCS}) +add_library(shared STATIC + ${shared_STAT_SRCS} + ${shared_STAT_PCH_SRC} +) target_link_libraries(shared ${ACE_LIBRARY} ) # Generate precompiled header -if( USE_COREPCH ) - if(CMAKE_COMPILER_IS_GNUCXX) - add_precompiled_header(shared ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/sharedPCH.h) - elseif(MSVC) - add_native_precompiled_header(shared ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/sharedPCH) - endif() -endif() - +if (USE_COREPCH) + add_cxx_pch(shared ${shared_STAT_PCH_HDR} ${shared_STAT_PCH_SRC}) +endif () diff --git a/src/server/shared/Cryptography/BigNumber.cpp b/src/server/shared/Cryptography/BigNumber.cpp index 8e424e9bcdb..def0a7fd02e 100755 --- a/src/server/shared/Cryptography/BigNumber.cpp +++ b/src/server/shared/Cryptography/BigNumber.cpp @@ -192,12 +192,12 @@ uint8 *BigNumber::AsByteArray(int minSize, bool reverse) return _array; } -const char *BigNumber::AsHexStr() +char * BigNumber::AsHexStr() const { return BN_bn2hex(_bn); } -const char *BigNumber::AsDecStr() +char * BigNumber::AsDecStr() const { return BN_bn2dec(_bn); } diff --git a/src/server/shared/Cryptography/BigNumber.h b/src/server/shared/Cryptography/BigNumber.h index a27d74fb5c7..36a618056a5 100755 --- a/src/server/shared/Cryptography/BigNumber.h +++ b/src/server/shared/Cryptography/BigNumber.h @@ -84,8 +84,8 @@ class BigNumber uint32 AsDword(); uint8* AsByteArray(int minSize = 0, bool reverse = true); - const char *AsHexStr(); - const char *AsDecStr(); + char * AsHexStr() const; + char * AsDecStr() const; private: struct bignum_st *_bn; diff --git a/src/server/shared/Database/PreparedStatement.h b/src/server/shared/Database/PreparedStatement.h index 11ece3e3032..90ea435d1f9 100755 --- a/src/server/shared/Database/PreparedStatement.h +++ b/src/server/shared/Database/PreparedStatement.h @@ -21,6 +21,10 @@ #include "SQLOperation.h" #include <ace/Future.h> +#ifdef __APPLE__ +#undef TYPE_BOOL +#endif + //- Union for data buffer (upper-level bind -> queue -> lower-level bind) union PreparedStatementDataUnion { @@ -157,4 +161,4 @@ class PreparedStatementTask : public SQLOperation bool m_has_result; PreparedQueryResultFuture m_result; }; -#endif
\ No newline at end of file +#endif diff --git a/src/server/shared/Database/QueryResult.h b/src/server/shared/Database/QueryResult.h index e32b16555bc..be7fa7b649c 100755 --- a/src/server/shared/Database/QueryResult.h +++ b/src/server/shared/Database/QueryResult.h @@ -23,7 +23,6 @@ #include <ace/Thread_Mutex.h> #include "Field.h" -#include "Log.h" #ifdef _WIN32 #include <winsock2.h> diff --git a/src/server/shared/Threading/DelayExecutor.cpp b/src/server/shared/Threading/DelayExecutor.cpp index cfc4987387f..685e86e2a2f 100644 --- a/src/server/shared/Threading/DelayExecutor.cpp +++ b/src/server/shared/Threading/DelayExecutor.cpp @@ -59,7 +59,7 @@ int DelayExecutor::svc() return 0; } -int DelayExecutor::activate(int num_threads, ACE_Method_Request* pre_svc_hook, ACE_Method_Request* post_svc_hook) +int DelayExecutor::start(int num_threads, ACE_Method_Request* pre_svc_hook, ACE_Method_Request* post_svc_hook) { if (activated()) return -1; diff --git a/src/server/shared/Threading/DelayExecutor.h b/src/server/shared/Threading/DelayExecutor.h index 664d8ca78a2..5eaaacdb98b 100644 --- a/src/server/shared/Threading/DelayExecutor.h +++ b/src/server/shared/Threading/DelayExecutor.h @@ -16,7 +16,7 @@ class DelayExecutor : protected ACE_Task_Base int execute(ACE_Method_Request* new_req); - int activate(int num_threads = 1, ACE_Method_Request* pre_svc_hook = NULL, ACE_Method_Request* post_svc_hook = NULL); + int start(int num_threads = 1, ACE_Method_Request* pre_svc_hook = NULL, ACE_Method_Request* post_svc_hook = NULL); int deactivate(); diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt index eb5bb04d766..58167aad703 100644 --- a/src/server/worldserver/CMakeLists.txt +++ b/src/server/worldserver/CMakeLists.txt @@ -14,15 +14,9 @@ file(GLOB_RECURSE sources_TCSoap TCSoap/*.cpp TCSoap/*.h) file(GLOB_RECURSE sources_WorldThread WorldThread/*.cpp WorldThread/*.h) file(GLOB sources_localdir *.cpp *.h) -if( USE_COREPCH ) - include_directories(${CMAKE_CURRENT_BINARY_DIR}) -endif() - -if ( USE_COREPCH AND MSVC ) - set(worldserver_SRCS - PrecompiledHeaders/worldPCH.cpp - PrecompiledHeaders/worldPCH.h - ) +if (USE_COREPCH) + set(worldserver_PCH_HDR PrecompiledHeaders/worldPCH.h) + set(worldserver_PCH_SRC PrecompiledHeaders/worldPCH.cpp) endif() set(worldserver_SRCS @@ -143,17 +137,21 @@ include_directories( ${OPENSSL_INCLUDE_DIR} ) -set(worldserver_LINK_FLAGS "") - -add_executable(worldserver ${worldserver_SRCS}) +add_executable(worldserver + ${worldserver_SRCS} + ${worldserver_PCH_SRC} +) if( NOT WIN32 ) - add_definitions(-D_TRINITY_CORE_CONFIG='"${CONF_DIR}/worldserver.conf"') + set_target_properties(worldserver PROPERTIES + COMPILE_DEFINITIONS _TRINITY_CORE_CONFIG="${CONF_DIR}/worldserver.conf" + ) endif() add_dependencies(worldserver revision.h) -if( UNIX ) + +if( UNIX AND NOT NOJEM ) set(worldserver_LINK_FLAGS "-pthread -lncurses ${worldserver_LINK_FLAGS}") endif() @@ -172,9 +170,7 @@ target_link_libraries(worldserver ${ACE_LIBRARY} ${MYSQL_LIBRARY} ${OPENSSL_LIBRARIES} - ${OPENSSL_EXTRA_LIBRARIES} ${ZLIB_LIBRARIES} - ${OSX_LIBS} ) if( WIN32 ) @@ -194,9 +190,5 @@ endif() # Generate precompiled header if( USE_COREPCH ) - if(CMAKE_COMPILER_IS_GNUCXX) - add_precompiled_header(worldserver ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/worldPCH.h) - elseif(MSVC) - add_native_precompiled_header(worldserver ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/worldPCH) - endif() + add_cxx_pch(worldserver ${worldserver_PCH_HDR} ${worldserver_PCH_SRC}) endif() |
