diff --git a/CMakeLists.txt b/CMakeLists.txt index 90e0b5841..721537b8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,39 +57,67 @@ SET(NATS_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/nats") #Try to find protobuf automatically FIND_PACKAGE(Protobuf QUIET) -IF(NOT PROTOBUF_FOUND) +#IF(NOT PROTOBUF_FOUND) SET(Protobuf_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/protobuf" CACHE PATH "Root protobuf directory" FORCE) - SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/bin/protoc.exe" CACHE PATH "Executable path" FORCE) - SET(Protobuf_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/protobuf/include" CACHE PATH "Include dir" FORCE) - SET(Protobuf_SRC_ROOT_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/protobuf/include" CACHE PATH "Include dir" FORCE) SET(PROTOBUF_FOUND TRUE CACHE BOOL "" FORCE) - - IF(NOT MSVC) - MESSAGE(STATUS "Could not find protobuf library, setting to ${Protobuf_DIR}") - ENDIF() - IF(MSVC) - IF(CMAKE_CL_64) - SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/lib_x64/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE) - SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/lib_x64/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE) - ELSE(CMAKE_CL_64) - SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/lib_x86/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE) - SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/lib_x86/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE) - ENDIF() + IF(CMAKE_CL_64) + SET(Protobuf_INCLUDE_DIR "${Protobuf_DIR}/windows/x64/include" CACHE PATH "Include dir" FORCE) + SET(Protobuf_SRC_ROOT_FOLDER "${Protobuf_DIR}/windows/x64/include" CACHE PATH "Include dir" FORCE) + SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/windows/x64/bin/protoc.exe" CACHE PATH "Executable path" FORCE) + SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/windows/x64/lib/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE) + SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/windows/x64/lib/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE) + ELSE(CMAKE_CL_64) + SET(Protobuf_INCLUDE_DIR "${Protobuf_DIR}/windows/x86/include" CACHE PATH "Include dir" FORCE) + SET(Protobuf_SRC_ROOT_FOLDER "${Protobuf_DIR}/windows/x86/include" CACHE PATH "Include dir" FORCE) + SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/windows/x86/bin/protoc.exe" CACHE PATH "Executable path" FORCE) + SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/windows/x86/lib/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE) + SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/windows/x86/lib/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE) + ENDIF(CMAKE_CL_64) ELSE(MSVC) - SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/lib_x64/libprotobuf.so.15" CACHE PATH "Root protobuf directory" FORCE) - SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/lib_x64/libprotobuf.so.15" CACHE PATH "Root protobuf directory" FORCE) + IF(CMAKE_CL_64) + SET(Protobuf_INCLUDE_DIR "${Protobuf_DIR}/linux/x86/include" CACHE PATH "Include dir" FORCE) + SET(Protobuf_SRC_ROOT_FOLDER "${Protobuf_DIR}/linux/x86/include" CACHE PATH "Include dir" FORCE) + SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/linux/x86/bin/protoc" CACHE PATH "Executable path" FORCE) + SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/linux/x86/lib/libprotobuf.so.16" CACHE PATH "Root protobuf directory" FORCE) + SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/linux/x86/lib/libprotobuf.so.16" CACHE PATH "Root protobuf directory" FORCE) + ELSE(CMAKE_CL_64) + SET(Protobuf_INCLUDE_DIR "${Protobuf_DIR}/linux/x64/include" CACHE PATH "Include dir" FORCE) + SET(Protobuf_SRC_ROOT_FOLDER "${Protobuf_DIR}/linux/x64/include" CACHE PATH "Include dir" FORCE) + SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/linux/x64/bin/protoc" CACHE PATH "Executable path" FORCE) + SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/linux/x64/lib/libprotobuf.so.16" CACHE PATH "Root protobuf directory" FORCE) + SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/linux/x64/lib/libprotobuf.so.16" CACHE PATH "Root protobuf directory" FORCE) + ENDIF(CMAKE_CL_64) ENDIF() - - #SET(Protobuf_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/protobuf/include" CACHE PATH "Include dir") - #SET(Protobuf_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/protobuf/include") - #SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/bin/protoc.exe") - -ENDIF() + IF(NOT Protobuf_LIBRARY_DEBUG) + MESSAGE(ERROR "Protobuf library was not found in ${Protobuf_LIBRARY_DEBUG}. Please download the depenencies and extract them as noted.") + ENDIF() + FILE(COPY ${Protobuf_LIBRARY_DEBUG} DESTINATION ${CMAKE_HOME_DIRECTORY}/bin) +#ENDIF() INCLUDE_DIRECTORIES(SYSTEM "${Protobuf_INCLUDE_DIR}") -SET(NATS_INCLUDE_DIR "${NATS_ROOT}/include") +IF(MSVC) + IF(CMAKE_CL_64) + SET(NATS_INCLUDE_DIR "${NATS_ROOT}/windows/x64/include") + SET(NATS_LIBRARY_DEBUG "${NATS_ROOT}/windows/x64/lib/nats.lib") + ELSE(CMAKE_CL_64) + SET(NATS_INCLUDE_DIR "${NATS_ROOT}/windows/x86/include") + SET(NATS_LIBRARY_DEBUG "${NATS_ROOT}/windows/x86/lib/nats.lib") + ENDIF(CMAKE_CL_64) +ELSE(MSVC) + IF(CMAKE_CL_64) + SET(NATS_INCLUDE_DIR "${NATS_ROOT}/linux/x86/include") + SET(NATS_LIBRARY_DEBUG "${NATS_ROOT}/linux/x86/lib/libnats.so") + ELSE(CMAKE_CL_64) + SET(NATS_INCLUDE_DIR "${NATS_ROOT}/linux/x64/include") + SET(NATS_LIBRARY_DEBUG "${NATS_ROOT}/linux/x64/lib/libnats.so") + ENDIF(CMAKE_CL_64) +ENDIF() +IF(${NATS_LIBRARY_DEBUG}) + MESSAGE(ERROR " NATS library was not found in ${NATS_LIBRARY_DEBUG}/libnats.so. Please download the depenencies and extract them as noted.") +ENDIF() +FILE(COPY ${NATS_LIBRARY_DEBUG} DESTINATION ${CMAKE_HOME_DIRECTORY}/bin) IF(MSVC) #Set our default locations for zlib/mysql based on x86/x64 @@ -106,7 +134,6 @@ IF(MSVC) ELSE() SET(SODIUM_LIBRARY_HINTS "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/libsodium/x64/Release/v110/dynamic") ENDIF() - SET(NATS_LIBRARY "${NATS_ROOT}/lib_x64/nats.lib") ELSE(CMAKE_CL_64) SET(ZLIB_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/zlib_x86") SET(MYSQL_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/mysql_x86") @@ -121,7 +148,6 @@ IF(MSVC) ELSE() SET(SODIUM_LIBRARY_HINTS "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/libsodium/Win32/Release/v110/dynamic") ENDIF() - SET(NATS_LIBRARY "${NATS_ROOT}/lib_x86/nats.lib") ENDIF(CMAKE_CL_64) #disable CRT warnings on windows cause they're annoying as shit and we use C functions everywhere @@ -174,7 +200,6 @@ IF(MSVC) ADD_DEFINITIONS(-DNOMINMAX) ELSE(MSVC) - SET(NATS_LIBRARY "${NATS_ROOT}/lib_x64/libnats.so") #Normally set by perl but we don't use the perl flags anymore so we set it. ADD_DEFINITIONS(-DHAS_UNION_SEMUN) @@ -354,7 +379,7 @@ IF(EQEMU_BUILD_PERL) INCLUDE_DIRECTORIES(SYSTEM "${PERL_INCLUDE_PATH}") ENDIF(EQEMU_BUILD_PERL) -SET(SERVER_LIBS common debug ${MySQL_LIBRARY_DEBUG} optimized ${MySQL_LIBRARY_RELEASE} ${ZLIB_LIBRARY} libuv fmt ${NATS_LIBRARY} ${PROTOBUF_LIBRARY_DEBUG}) +SET(SERVER_LIBS common debug ${MySQL_LIBRARY_DEBUG} optimized ${MySQL_LIBRARY_RELEASE} ${ZLIB_LIBRARY} libuv fmt ${NATS_LIBRARY_DEBUG} ${PROTOBUF_LIBRARY_DEBUG}) FIND_PACKAGE(Sodium REQUIRED) IF(SODIUM_FOUND) diff --git a/cmake/FindProtobuf.cmake b/cmake/FindProtobuf.cmake index d73480eb5..6d2798faa 100644 --- a/cmake/FindProtobuf.cmake +++ b/cmake/FindProtobuf.cmake @@ -402,7 +402,7 @@ mark_as_advanced(Protobuf_INCLUDE_DIR) find_program(Protobuf_PROTOC_EXECUTABLE NAMES protoc DOC "The Google Protocol Buffers Compiler" - PATHS + PATHS /usr/bin ${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Release ${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Debug ) diff --git a/common/message.proto b/common/message.proto index 12dc0c787..334cd015a 100644 --- a/common/message.proto +++ b/common/message.proto @@ -230,7 +230,7 @@ message ChannelMessageEvent { //OP_SpecialMesg message SpecialMessageEvent { string header = 1; // 04 04 00 <-- for #emote style msg - MessageType number = 2; // Color of text (see MT_*** below) + MessageType number = 2; // Color of text (see *** below) uint32 target_spawn_id = 3; // Who is it being said to? string sayer = 4; // Who is the source of the info uint32 unknown12 = 5; @@ -522,104 +522,104 @@ enum DeityTypeBit { enum MessageType { //option allow_alias = true; - MT_Auction = 0; - MT_Group = 2; // FF|F0F0F0 - MT_Shout = 3; - MT_Auction4 = 4; - MT_OOC = 5; - MT_Broadcast = 6; - MT_Tell = 7; - MT_Say = 8; - MT_Tell14 = 14; - MT_Raid = 15; - MT_Guild = 17; - MT_GMSayWeird18 = 18; - MT_LocalEmote20 = 20; - MT_Fellowship = 21; - MT_Emote = 22; - MT_Say256 = 256; - MT_Tell257 = 257; - MT_Group258 = 258; - MT_Shout259 = 259; - MT_Auction260 = 260; - MT_OOC261 = 261; - MT_Broadcast262 = 262; - MT_Tell263 = 263; - MT_Say264 = 264; - MT_YouHitOther = 265; - MT_OtherHitsYou = 266; - MT_YouMissOther = 267; - MT_OtherMissesYou = 268; - MT_Skills = 270; - MT_Disciplines = 271; - MT_Guild273 = 273; - MT_GMSay = 274; - MT_MerchantOffer = 275; - MT_MerchantBuySell = 276; - MT_Fellowship277 = 277; - MT_Emote278 = 278; - MT_OtherHits = 279; - MT_OtherMisses = 280; - MT_Who = 281; - MT_YellForHelp = 282; - MT_NonMelee = 283; - MT_WornOff = 284; - MT_MoneySplit = 285; - MT_LootMessages = 286; - MT_DiceRoll = 287; - MT_OtherSpells = 288; - MT_SpellFailure = 289; - MT_Chat = 290; - MT_Channel1 = 291; - MT_Channel2 = 292; - MT_Channel3 = 293; - MT_Channel4 = 294; - MT_Channel5 = 295; - MT_Channel6 = 296; - MT_Channel7 = 297; - MT_Channel8 = 298; - MT_Channel9 = 299; - MT_Channel10 = 300; - MT_CritMelee = 301; - MT_SpellCrits = 302; - MT_TooFarAway = 303; - MT_NPCRampage = 304; - MT_NPCFlurry = 305; - MT_NPCEnrage = 306; - MT_SayEcho = 307; - MT_TellEcho = 308; - MT_GroupEcho = 309; - MT_GuildEcho = 310; - MT_OOCEcho = 311; - MT_MT_Auction2 = 312; - MT_ShoutECho = 313; - MT_EmoteEcho = 314; - MT_Chat1Echo = 315; - MT_Chat2Echo = 316; - MT_Chat3Echo = 317; - MT_Chat4Echo = 318; - MT_Chat5Echo = 319; - MT_Chat6Echo = 320; - MT_Chat7Echo = 321; - MT_Chat8Echo = 322; - MT_Chat9Echo = 323; - MT_Chat10Echo = 324; - MT_DoTDamage = 325; - MT_ItemLink = 326; - MT_RaidSay = 327; - MT_MyPet = 328; - MT_DS = 329; - MT_Leadership = 330; - MT_PetFlurry = 331; - MT_PetCrit = 332; - MT_FocusEffect = 333; - MT_Experience = 334; - MT_System = 335; - MT_PetSpell = 336; - MT_PetResponse = 337; - MT_ItemSpeech = 338; - MT_StrikeThrough = 339; - MT_Stun = 340; + Auction = 0; + Group = 2; // FF|F0F0F0 + Shout = 3; + Auction4 = 4; + OOC = 5; + Broadcast = 6; + Tell = 7; + Say = 8; + Tell14 = 14; + Raid = 15; + Guild = 17; + GMSayWeird18 = 18; + LocalEmote20 = 20; + Fellowship = 21; + Emote = 22; + Say256 = 256; + Tell257 = 257; + Group258 = 258; + Shout259 = 259; + Auction260 = 260; + OOC261 = 261; + Broadcast262 = 262; + Tell263 = 263; + Say264 = 264; + YouHitOther = 265; + OtherHitsYou = 266; + YouMissOther = 267; + OtherMissesYou = 268; + Skills = 270; + Disciplines = 271; + Guild273 = 273; + GMSay = 274; + MerchantOffer = 275; + MerchantBuySell = 276; + Fellowship277 = 277; + Emote278 = 278; + OtherHits = 279; + OtherMisses = 280; + Who = 281; + YellForHelp = 282; + NonMelee = 283; + WornOff = 284; + MoneySplit = 285; + LootMessages = 286; + DiceRoll = 287; + OtherSpells = 288; + SpellFailure = 289; + Chat = 290; + Channel1 = 291; + Channel2 = 292; + Channel3 = 293; + Channel4 = 294; + Channel5 = 295; + Channel6 = 296; + Channel7 = 297; + Channel8 = 298; + Channel9 = 299; + Channel10 = 300; + CritMelee = 301; + SpellCrits = 302; + TooFarAway = 303; + NPCRampage = 304; + NPCFlurry = 305; + NPCEnrage = 306; + SayEcho = 307; + TellEcho = 308; + GroupEcho = 309; + GuildEcho = 310; + OOCEcho = 311; + Auction2 = 312; + ShoutECho = 313; + EmoteEcho = 314; + Chat1Echo = 315; + Chat2Echo = 316; + Chat3Echo = 317; + Chat4Echo = 318; + Chat5Echo = 319; + Chat6Echo = 320; + Chat7Echo = 321; + Chat8Echo = 322; + Chat9Echo = 323; + Chat10Echo = 324; + DoTDamage = 325; + ItemLink = 326; + RaidSay = 327; + MyPet = 328; + DS = 329; + Leadership = 330; + PetFlurry = 331; + PetCrit = 332; + FocusEffect = 333; + Experience = 334; + System = 335; + PetSpell = 336; + PetResponse = 337; + ItemSpeech = 338; + StrikeThrough = 339; + Stun = 340; } enum BodyType {