From 1b259e2d3309cc3868f97b3bb5ca685e2d17ba50 Mon Sep 17 00:00:00 2001 From: Koncord Date: Tue, 12 Jan 2016 11:41:44 +0800 Subject: [PATCH] Syncing inventory, animations, position, 8 key attributes Created Package system --- .gitignore | 1 + CMakeLists.txt | 12 + OpenMW-mp changelog | 47 + TES3MPTeam.md | 25 + apps/opencs/main.cpp | 90 + apps/openmw-mp/CMakeLists.txt | 124 + apps/openmw-mp/Networking.cpp | 395 ++ apps/openmw-mp/Networking.hpp | 45 + apps/openmw-mp/Player.cpp | 80 + apps/openmw-mp/Player.hpp | 56 + apps/openmw-mp/Script/API/PublicFnAPI.cpp | 93 + apps/openmw-mp/Script/API/PublicFnAPI.hpp | 42 + apps/openmw-mp/Script/API/TimerAPI.cpp | 238 ++ apps/openmw-mp/Script/API/TimerAPI.hpp | 70 + apps/openmw-mp/Script/Functions/Chat.cpp | 31 + apps/openmw-mp/Script/Functions/Items.cpp | 56 + apps/openmw-mp/Script/Functions/Stats.cpp | 408 ++ apps/openmw-mp/Script/Functions/Timer.cpp | 49 + .../Script/Functions/Translocations.cpp | 106 + apps/openmw-mp/Script/LangLua/LangLua.cpp | 235 + apps/openmw-mp/Script/LangLua/LangLua.hpp | 56 + apps/openmw-mp/Script/LangLua/LuaFunc.cpp | 182 + .../Script/LangNative/LangNative.cpp | 99 + .../Script/LangNative/LangNative.hpp | 28 + apps/openmw-mp/Script/LangPawn/LangPAWN.cpp | 458 ++ apps/openmw-mp/Script/LangPawn/LangPAWN.hpp | 46 + apps/openmw-mp/Script/LangPawn/PawnFunc.cpp | 154 + apps/openmw-mp/Script/Language.hpp | 27 + apps/openmw-mp/Script/Platform.hpp | 20 + apps/openmw-mp/Script/Script.cpp | 109 + apps/openmw-mp/Script/Script.hpp | 155 + apps/openmw-mp/Script/ScriptFunction.cpp | 225 + apps/openmw-mp/Script/ScriptFunction.hpp | 72 + apps/openmw-mp/Script/ScriptFunctions.cpp | 120 + apps/openmw-mp/Script/ScriptFunctions.hpp | 227 + apps/openmw-mp/Script/SystemInterface.hpp | 44 + apps/openmw-mp/Script/Types.hpp | 101 + apps/openmw-mp/Utils.cpp | 201 + apps/openmw-mp/Utils.hpp | 69 + apps/openmw-mp/amx/CMakeLists.txt | 23 + apps/openmw-mp/amx/amx.c | 3798 +++++++++++++++++ apps/openmw-mp/amx/amx.h | 545 +++ apps/openmw-mp/amx/amxaux.c | 164 + apps/openmw-mp/amx/amxaux.h | 50 + apps/openmw-mp/amx/amxcons.c | 1448 +++++++ apps/openmw-mp/amx/amxcons.h | 17 + apps/openmw-mp/amx/amxcore.c | 500 +++ apps/openmw-mp/amx/amxexec_gcc.c | 1361 ++++++ apps/openmw-mp/amx/amxfile.c | 1274 ++++++ apps/openmw-mp/amx/amxfloat.c | 379 ++ apps/openmw-mp/amx/amxstring.c | 1012 +++++ apps/openmw-mp/amx/amxtime.c | 480 +++ apps/openmw-mp/amx/fpattern.c | 1334 ++++++ apps/openmw-mp/amx/fpattern.h | 184 + apps/openmw-mp/amx/linux/binreloc.c | 766 ++++ apps/openmw-mp/amx/linux/binreloc.h | 80 + apps/openmw-mp/amx/linux/getch.c | 104 + apps/openmw-mp/amx/linux/getch.h | 15 + apps/openmw-mp/amx/linux/sclinux.h | 49 + apps/openmw-mp/amx/minGlue.h | 31 + apps/openmw-mp/amx/minIni.c | 877 ++++ apps/openmw-mp/amx/minIni.h | 152 + apps/openmw-mp/amx/osdefs.h | 159 + apps/openmw-mp/main.cpp | 136 + apps/openmw/CMakeLists.txt | 3 +- apps/openmw/engine.cpp | 10 +- apps/openmw/mwclass/npc.cpp | 64 +- apps/openmw/mwinput/inputmanagerimp.cpp | 2 + apps/openmw/mwmechanics/actors.cpp | 13 +- apps/openmw/mwmechanics/character.cpp | 4 +- apps/openmw/mwmechanics/combat.cpp | 21 +- apps/openmw/mwmechanics/spellcasting.cpp | 29 +- apps/openmw/mwmp/DedicatedPlayer.cpp | 404 ++ apps/openmw/mwmp/DedicatedPlayer.hpp | 60 + apps/openmw/mwmp/GUIChat.cpp | 237 + apps/openmw/mwmp/GUIChat.hpp | 101 + apps/openmw/mwmp/GUILogin.cpp | 22 + apps/openmw/mwmp/GUILogin.hpp | 23 + apps/openmw/mwmp/LocalPlayer.cpp | 453 ++ apps/openmw/mwmp/LocalPlayer.hpp | 48 + apps/openmw/mwmp/Main.cpp | 203 + apps/openmw/mwmp/Main.hpp | 46 + apps/openmw/mwmp/Networking.cpp | 596 ++- apps/openmw/mwmp/Networking.hpp | 62 +- apps/openmw/mwmp/Player.cpp | 152 - apps/openmw/mwmp/Player.hpp | 40 - cmake/FindTerra.cmake | 79 + components/CMakeLists.txt | 6 + components/openmw-mp/Base/BasePlayer.hpp | 148 + components/openmw-mp/NetworkMessages.hpp | 43 + components/openmw-mp/Packets/BasePacket.cpp | 82 + components/openmw-mp/Packets/BasePacket.hpp | 101 + components/openmw-mp/Packets/PacketAttack.cpp | 29 + components/openmw-mp/Packets/PacketAttack.hpp | 22 + .../openmw-mp/Packets/PacketAttribute.cpp | 21 + .../openmw-mp/Packets/PacketAttribute.hpp | 22 + .../Packets/PacketAttributesAndStats.cpp | 25 + .../Packets/PacketAttributesAndStats.hpp | 23 + .../openmw-mp/Packets/PacketBaseInfo.cpp | 29 + .../openmw-mp/Packets/PacketBaseInfo.hpp | 21 + components/openmw-mp/Packets/PacketCell.cpp | 29 + components/openmw-mp/Packets/PacketCell.hpp | 24 + .../openmw-mp/Packets/PacketCharGen.cpp | 19 + .../openmw-mp/Packets/PacketCharGen.hpp | 24 + .../openmw-mp/Packets/PacketChatMessage.cpp | 18 + .../openmw-mp/Packets/PacketChatMessage.hpp | 21 + .../Packets/PacketCreateProjectile.cpp | 18 + .../Packets/PacketCreateProjectile.hpp | 23 + components/openmw-mp/Packets/PacketDie.hpp | 29 + .../openmw-mp/Packets/PacketDisconnect.hpp | 24 + .../openmw-mp/Packets/PacketDrawState.cpp | 20 + .../openmw-mp/Packets/PacketDrawState.hpp | 23 + .../openmw-mp/Packets/PacketEquiped.cpp | 24 + .../openmw-mp/Packets/PacketEquiped.hpp | 21 + .../openmw-mp/Packets/PacketHandshake.cpp | 20 + .../openmw-mp/Packets/PacketHandshake.hpp | 21 + .../openmw-mp/Packets/PacketMainStats.cpp | 21 + .../openmw-mp/Packets/PacketMainStats.hpp | 22 + .../openmw-mp/Packets/PacketPosition.cpp | 24 + .../openmw-mp/Packets/PacketPosition.hpp | 21 + .../openmw-mp/Packets/PacketResurrect.hpp | 30 + .../openmw-mp/Packets/PacketRotation.cpp | 5 + .../openmw-mp/Packets/PacketRotation.hpp | 15 + .../openmw-mp/Packets/PacketSendMyID.hpp | 24 + components/openmw-mp/Packets/PacketSkill.cpp | 24 + components/openmw-mp/Packets/PacketSkill.hpp | 25 + components/openmw-mp/PacketsController.cpp | 137 + components/openmw-mp/PacketsController.hpp | 67 + extern/LuaBridge/LuaBridge.h | 142 + extern/LuaBridge/Manual.html | 1794 ++++++++ extern/LuaBridge/RefCountedObject.h | 363 ++ extern/LuaBridge/RefCountedPtr.h | 251 ++ extern/LuaBridge/detail/CFunctions.h | 442 ++ extern/LuaBridge/detail/ClassInfo.h | 73 + extern/LuaBridge/detail/Constructor.h | 204 + extern/LuaBridge/detail/FuncTraits.h | 852 ++++ extern/LuaBridge/detail/Iterator.h | 114 + extern/LuaBridge/detail/LuaException.h | 113 + extern/LuaBridge/detail/LuaHelpers.h | 143 + extern/LuaBridge/detail/LuaRef.h | 1215 ++++++ extern/LuaBridge/detail/Namespace.h | 1136 +++++ extern/LuaBridge/detail/Stack.h | 469 ++ extern/LuaBridge/detail/TypeList.h | 174 + extern/LuaBridge/detail/TypeTraits.h | 125 + extern/LuaBridge/detail/Userdata.h | 817 ++++ extern/LuaBridge/detail/dump.h | 28 + files/mygui/CMakeLists.txt | 3 + files/mygui/tes3mp_login.layout | 23 + files/mygui/tes3mp_login.skin.xml | 4 + .../scripts/include/tes3mp.callbacks.inc | 23 + .../scripts/include/tes3mp.functions.inc | 30 + files/tes3mp/files/scripts/include/tes3mp.inc | 0 .../files/scripts/include/tes3mp.transloc.inc | 10 + .../files/scripts/include/tes3mp.world.inc | 15 + files/tes3mp/files/scripts/script.pwn | 96 + files/tes3mp/tes3mp-client-default.cfg | 16 + files/tes3mp/tes3mp-server-default.cfg | 12 + 157 files changed, 31940 insertions(+), 298 deletions(-) create mode 100644 OpenMW-mp changelog create mode 100644 TES3MPTeam.md create mode 100644 apps/opencs/main.cpp create mode 100644 apps/openmw-mp/CMakeLists.txt create mode 100644 apps/openmw-mp/Networking.cpp create mode 100644 apps/openmw-mp/Networking.hpp create mode 100644 apps/openmw-mp/Player.cpp create mode 100644 apps/openmw-mp/Player.hpp create mode 100644 apps/openmw-mp/Script/API/PublicFnAPI.cpp create mode 100644 apps/openmw-mp/Script/API/PublicFnAPI.hpp create mode 100644 apps/openmw-mp/Script/API/TimerAPI.cpp create mode 100644 apps/openmw-mp/Script/API/TimerAPI.hpp create mode 100644 apps/openmw-mp/Script/Functions/Chat.cpp create mode 100644 apps/openmw-mp/Script/Functions/Items.cpp create mode 100644 apps/openmw-mp/Script/Functions/Stats.cpp create mode 100644 apps/openmw-mp/Script/Functions/Timer.cpp create mode 100644 apps/openmw-mp/Script/Functions/Translocations.cpp create mode 100644 apps/openmw-mp/Script/LangLua/LangLua.cpp create mode 100644 apps/openmw-mp/Script/LangLua/LangLua.hpp create mode 100644 apps/openmw-mp/Script/LangLua/LuaFunc.cpp create mode 100644 apps/openmw-mp/Script/LangNative/LangNative.cpp create mode 100644 apps/openmw-mp/Script/LangNative/LangNative.hpp create mode 100644 apps/openmw-mp/Script/LangPawn/LangPAWN.cpp create mode 100644 apps/openmw-mp/Script/LangPawn/LangPAWN.hpp create mode 100644 apps/openmw-mp/Script/LangPawn/PawnFunc.cpp create mode 100644 apps/openmw-mp/Script/Language.hpp create mode 100644 apps/openmw-mp/Script/Platform.hpp create mode 100644 apps/openmw-mp/Script/Script.cpp create mode 100644 apps/openmw-mp/Script/Script.hpp create mode 100644 apps/openmw-mp/Script/ScriptFunction.cpp create mode 100644 apps/openmw-mp/Script/ScriptFunction.hpp create mode 100644 apps/openmw-mp/Script/ScriptFunctions.cpp create mode 100644 apps/openmw-mp/Script/ScriptFunctions.hpp create mode 100644 apps/openmw-mp/Script/SystemInterface.hpp create mode 100644 apps/openmw-mp/Script/Types.hpp create mode 100644 apps/openmw-mp/Utils.cpp create mode 100644 apps/openmw-mp/Utils.hpp create mode 100644 apps/openmw-mp/amx/CMakeLists.txt create mode 100644 apps/openmw-mp/amx/amx.c create mode 100644 apps/openmw-mp/amx/amx.h create mode 100644 apps/openmw-mp/amx/amxaux.c create mode 100644 apps/openmw-mp/amx/amxaux.h create mode 100644 apps/openmw-mp/amx/amxcons.c create mode 100644 apps/openmw-mp/amx/amxcons.h create mode 100644 apps/openmw-mp/amx/amxcore.c create mode 100644 apps/openmw-mp/amx/amxexec_gcc.c create mode 100644 apps/openmw-mp/amx/amxfile.c create mode 100644 apps/openmw-mp/amx/amxfloat.c create mode 100644 apps/openmw-mp/amx/amxstring.c create mode 100644 apps/openmw-mp/amx/amxtime.c create mode 100644 apps/openmw-mp/amx/fpattern.c create mode 100644 apps/openmw-mp/amx/fpattern.h create mode 100644 apps/openmw-mp/amx/linux/binreloc.c create mode 100644 apps/openmw-mp/amx/linux/binreloc.h create mode 100644 apps/openmw-mp/amx/linux/getch.c create mode 100644 apps/openmw-mp/amx/linux/getch.h create mode 100644 apps/openmw-mp/amx/linux/sclinux.h create mode 100644 apps/openmw-mp/amx/minGlue.h create mode 100644 apps/openmw-mp/amx/minIni.c create mode 100644 apps/openmw-mp/amx/minIni.h create mode 100644 apps/openmw-mp/amx/osdefs.h create mode 100644 apps/openmw-mp/main.cpp create mode 100644 apps/openmw/mwmp/DedicatedPlayer.cpp create mode 100644 apps/openmw/mwmp/DedicatedPlayer.hpp create mode 100644 apps/openmw/mwmp/GUIChat.cpp create mode 100644 apps/openmw/mwmp/GUIChat.hpp create mode 100644 apps/openmw/mwmp/GUILogin.cpp create mode 100644 apps/openmw/mwmp/GUILogin.hpp create mode 100644 apps/openmw/mwmp/LocalPlayer.cpp create mode 100644 apps/openmw/mwmp/LocalPlayer.hpp create mode 100644 apps/openmw/mwmp/Main.cpp create mode 100644 apps/openmw/mwmp/Main.hpp delete mode 100644 apps/openmw/mwmp/Player.cpp delete mode 100644 apps/openmw/mwmp/Player.hpp create mode 100644 cmake/FindTerra.cmake create mode 100644 components/openmw-mp/Base/BasePlayer.hpp create mode 100644 components/openmw-mp/NetworkMessages.hpp create mode 100644 components/openmw-mp/Packets/BasePacket.cpp create mode 100644 components/openmw-mp/Packets/BasePacket.hpp create mode 100644 components/openmw-mp/Packets/PacketAttack.cpp create mode 100644 components/openmw-mp/Packets/PacketAttack.hpp create mode 100644 components/openmw-mp/Packets/PacketAttribute.cpp create mode 100644 components/openmw-mp/Packets/PacketAttribute.hpp create mode 100644 components/openmw-mp/Packets/PacketAttributesAndStats.cpp create mode 100644 components/openmw-mp/Packets/PacketAttributesAndStats.hpp create mode 100644 components/openmw-mp/Packets/PacketBaseInfo.cpp create mode 100644 components/openmw-mp/Packets/PacketBaseInfo.hpp create mode 100644 components/openmw-mp/Packets/PacketCell.cpp create mode 100644 components/openmw-mp/Packets/PacketCell.hpp create mode 100644 components/openmw-mp/Packets/PacketCharGen.cpp create mode 100644 components/openmw-mp/Packets/PacketCharGen.hpp create mode 100644 components/openmw-mp/Packets/PacketChatMessage.cpp create mode 100644 components/openmw-mp/Packets/PacketChatMessage.hpp create mode 100644 components/openmw-mp/Packets/PacketCreateProjectile.cpp create mode 100644 components/openmw-mp/Packets/PacketCreateProjectile.hpp create mode 100644 components/openmw-mp/Packets/PacketDie.hpp create mode 100644 components/openmw-mp/Packets/PacketDisconnect.hpp create mode 100644 components/openmw-mp/Packets/PacketDrawState.cpp create mode 100644 components/openmw-mp/Packets/PacketDrawState.hpp create mode 100644 components/openmw-mp/Packets/PacketEquiped.cpp create mode 100644 components/openmw-mp/Packets/PacketEquiped.hpp create mode 100644 components/openmw-mp/Packets/PacketHandshake.cpp create mode 100644 components/openmw-mp/Packets/PacketHandshake.hpp create mode 100644 components/openmw-mp/Packets/PacketMainStats.cpp create mode 100644 components/openmw-mp/Packets/PacketMainStats.hpp create mode 100644 components/openmw-mp/Packets/PacketPosition.cpp create mode 100644 components/openmw-mp/Packets/PacketPosition.hpp create mode 100644 components/openmw-mp/Packets/PacketResurrect.hpp create mode 100644 components/openmw-mp/Packets/PacketRotation.cpp create mode 100644 components/openmw-mp/Packets/PacketRotation.hpp create mode 100644 components/openmw-mp/Packets/PacketSendMyID.hpp create mode 100644 components/openmw-mp/Packets/PacketSkill.cpp create mode 100644 components/openmw-mp/Packets/PacketSkill.hpp create mode 100644 components/openmw-mp/PacketsController.cpp create mode 100644 components/openmw-mp/PacketsController.hpp create mode 100644 extern/LuaBridge/LuaBridge.h create mode 100644 extern/LuaBridge/Manual.html create mode 100644 extern/LuaBridge/RefCountedObject.h create mode 100644 extern/LuaBridge/RefCountedPtr.h create mode 100644 extern/LuaBridge/detail/CFunctions.h create mode 100644 extern/LuaBridge/detail/ClassInfo.h create mode 100644 extern/LuaBridge/detail/Constructor.h create mode 100644 extern/LuaBridge/detail/FuncTraits.h create mode 100644 extern/LuaBridge/detail/Iterator.h create mode 100644 extern/LuaBridge/detail/LuaException.h create mode 100644 extern/LuaBridge/detail/LuaHelpers.h create mode 100644 extern/LuaBridge/detail/LuaRef.h create mode 100644 extern/LuaBridge/detail/Namespace.h create mode 100644 extern/LuaBridge/detail/Stack.h create mode 100644 extern/LuaBridge/detail/TypeList.h create mode 100644 extern/LuaBridge/detail/TypeTraits.h create mode 100644 extern/LuaBridge/detail/Userdata.h create mode 100644 extern/LuaBridge/detail/dump.h create mode 100644 files/mygui/tes3mp_login.layout create mode 100644 files/mygui/tes3mp_login.skin.xml create mode 100644 files/tes3mp/files/scripts/include/tes3mp.callbacks.inc create mode 100644 files/tes3mp/files/scripts/include/tes3mp.functions.inc create mode 100644 files/tes3mp/files/scripts/include/tes3mp.inc create mode 100644 files/tes3mp/files/scripts/include/tes3mp.transloc.inc create mode 100644 files/tes3mp/files/scripts/include/tes3mp.world.inc create mode 100644 files/tes3mp/files/scripts/script.pwn create mode 100644 files/tes3mp/tes3mp-client-default.cfg create mode 100644 files/tes3mp/tes3mp-server-default.cfg diff --git a/.gitignore b/.gitignore index e1abcaa6394..ce3c9122743 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ Doxygen .project .settings .directory +.idea ## qt-creator CMakeLists.txt.user* diff --git a/CMakeLists.txt b/CMakeLists.txt index 8486666c0dc..143e03b9054 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -345,6 +345,12 @@ endif (APPLE) # Other files +configure_file(${OpenMW_SOURCE_DIR}/files/tes3mp/tes3mp-client-default.cfg + "${OpenMW_BINARY_DIR}/tes3mp-client-default.cfg") + +configure_file(${OpenMW_SOURCE_DIR}/files/tes3mp/tes3mp-server-default.cfg + "${OpenMW_BINARY_DIR}/tes3mp-server-default.cfg") + configure_file(${OpenMW_SOURCE_DIR}/files/settings-default.cfg "${OpenMW_BINARY_DIR}/settings-default.cfg") @@ -454,6 +460,11 @@ IF(NOT WIN32 AND NOT APPLE) INSTALL(FILES "${OpenMW_BINARY_DIR}/resources/version" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw") INSTALL(FILES "${OpenMW_BINARY_DIR}/gamecontrollerdb.txt" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw") + INSTALL(FILES "${OpenMW_BINARY_DIR}/tes3mp-client-default" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw") + INSTALL(FILES "${OpenMW_BINARY_DIR}/tes3mp-client.install" DESTINATION "${SYSCONFDIR}" RENAME "tes3mp-client.cfg" COMPONENT "openmw") + INSTALL(FILES "${OpenMW_BINARY_DIR}/tes3mp-server-default" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw-mp") + INSTALL(FILES "${OpenMW_BINARY_DIR}/tes3mp-server.install" DESTINATION "${SYSCONFDIR}" RENAME "tes3mp-server.cfg" COMPONENT "openmw-mp") + IF(BUILD_OPENCS) INSTALL(FILES "${OpenMW_BINARY_DIR}/openmw-cs.cfg" DESTINATION "${SYSCONFDIR}" COMPONENT "opencs") ENDIF(BUILD_OPENCS) @@ -473,6 +484,7 @@ if(WIN32) "${OpenMW_SOURCE_DIR}/Docs/license/GPL3.txt" "${OpenMW_SOURCE_DIR}/Docs/license/DejaVu Font License.txt" "${OpenMW_BINARY_DIR}/settings-default.cfg" + "${OpenMW_BINARY_DIR}/tes3mp-client-default.cfg" "${OpenMW_BINARY_DIR}/gamecontrollerdb.txt" "${OpenMW_BINARY_DIR}/Release/openmw.exe" DESTINATION ".") diff --git a/OpenMW-mp changelog b/OpenMW-mp changelog new file mode 100644 index 00000000000..a7ba0ec1b86 --- /dev/null +++ b/OpenMW-mp changelog @@ -0,0 +1,47 @@ +Сделано: +0.0.1b +Пофикшен сегфолт при атаке НПЦ +Интерполляция движения +Lua скриптинг +Чат +0.0.1a +Анимация атаки. +Синхронизация атаки melee/throw/bow/crossbow +Синхронизация здоровья/маны/стамины/смерти +Синхронизация характеристик и навыков +0.0.1 +Синхронизация рассовых признаков +Синхронизация положения в мире +Синхронизация состояния (оружие/заклинание/ничего) +Синхронизация анимации перемещния и прыжков + + +Сделать: +0.0.1b +Закончить пакет атаки (нокаут, нокдаун, заклинания и зачарования) +Улучшить синхронизацию координат при нокауте/нокдауне/смерти +Частичная синхронизация состояния предметов (не ломаемые) +Синхронизация заклинаний +0.0.2 +Вампиризм +Оборотни +Синхронизация состояния предметов +Синхронизация замков +Открывание дверей +Отпирание дверей +Взаимодействие с активаторами (хук?) +0.0.2b +Чистка кода +0.0.3 +Синхронизция контейнеров +Лут +Воровство у др. игроков. +Выбрасывание/подбор вещей. + +Future +Отключаемая консоль (~) +клиентские скриптовые функции для синхронизации +Синхронизация погоды +Синхронизация времени +Синхронизация НПЦ +Трейд diff --git a/TES3MPTeam.md b/TES3MPTeam.md new file mode 100644 index 00000000000..2e06e387076 --- /dev/null +++ b/TES3MPTeam.md @@ -0,0 +1,25 @@ +Tes3mp Team +============ + +Programmers +----------- + + Stanislav (Koncord) Zhukov - The main loafer and part-time Project Leader + + +Testers: +-------- + + Volk Milit aka Ja'Virr-Dar - Team Manager, Debian Linux + Shnatsel - Debian Linux + Goodevil - Mint and Xubuntu Linux + + +Public Relations and Translations +--------------------------------- + + Volk Milit aka Ja'Virr-Dar - Public relations & News Writer + Shnatsel - Translator & News Writer + + +Thanks to developers of OpenMW. They do amazing things. diff --git a/apps/opencs/main.cpp b/apps/opencs/main.cpp new file mode 100644 index 00000000000..c6fe3483565 --- /dev/null +++ b/apps/opencs/main.cpp @@ -0,0 +1,90 @@ +#include "editor.hpp" + +#include +#include +#include + +#include +#include +#include + +#include "model/doc/messages.hpp" + +#include "model/world/universalid.hpp" + +#ifdef Q_OS_MAC +#include +#endif + +Q_DECLARE_METATYPE (std::string) + +class Application : public QApplication +{ + private: + + bool notify (QObject *receiver, QEvent *event) + { + try + { + return QApplication::notify (receiver, event); + } + catch (const std::exception& exception) + { + std::cerr << "An exception has been caught: " << exception.what() << std::endl; + } + + return false; + } + + public: + + Application (int& argc, char *argv[]) : QApplication (argc, argv) {} +}; + +int main(int argc, char *argv[]) +{ + #ifdef Q_OS_MAC + setenv("OSG_GL_TEXTURE_STORAGE", "OFF", 0); + #endif + + try + { + // To allow background thread drawing in OSG + QApplication::setAttribute(Qt::AA_X11InitThreads, true); + + Q_INIT_RESOURCE (resources); + + qRegisterMetaType ("std::string"); + qRegisterMetaType ("CSMWorld::UniversalId"); + qRegisterMetaType ("CSMDoc::Message"); + + Application application (argc, argv); + + #ifdef Q_OS_MAC + QDir dir(QCoreApplication::applicationDirPath()); + if (dir.dirName() == "MacOS") { + dir.cdUp(); + dir.cdUp(); + dir.cdUp(); + } + QDir::setCurrent(dir.absolutePath()); + #endif + + application.setWindowIcon (QIcon (":./openmw-cs.png")); + + CS::Editor editor; + + if(!editor.makeIPCServer()) + { + editor.connectToIPCServer(); + return 0; + } + return editor.run(); + } + catch (std::exception& e) + { + std::cerr << "ERROR: " << e.what() << std::endl; + return 0; + } + +} diff --git a/apps/openmw-mp/CMakeLists.txt b/apps/openmw-mp/CMakeLists.txt new file mode 100644 index 00000000000..2219de99ba3 --- /dev/null +++ b/apps/openmw-mp/CMakeLists.txt @@ -0,0 +1,124 @@ +project(openmw-mp) + +add_subdirectory(amx) + +option(BUILD_WITH_PAWN "Enable Pawn language" OFF) +if(BUILD_WITH_PAWN) + #set(Pawn_ROOT ${CMAKE_SOURCE_DIR}/external/pawn/) + set(Pawn_INCLUDES ${Pawn_ROOT}/include) + set(Pawn_LIBRARY ${Pawn_ROOT}/lib/libamx.a) + set(PawnScript_Sources + Script/LangPawn/LangPAWN.cpp + Script/LangPawn/PawnFunc.cpp) + set(PawnScript_Headers ${Pawn_INCLUDES} + Script/LangPawn/LangPAWN.hpp + ) + + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_PAWN -DPAWN_CELL_SIZE=64") + #include_directories(${Pawn_INCLUDES}) + include_directories("./amx/linux") +endif(BUILD_WITH_PAWN) + +option(BUILD_WITH_LUA "Enable Terra/Lua language" ON) +if(BUILD_WITH_LUA) + #set(Terra_ROOT ${CMAKE_SOURCE_DIR}/external/terra/) + find_package(Terra REQUIRED) + set(LuaScript_Sources + Script/LangLua/LangLua.cpp + Script/LangLua/LuaFunc.cpp) + set(LuaScript_Headers ${Terra_INCLUDES} ${CMAKE_SOURCE_DIR}/extern/LuaBridge ${CMAKE_SOURCE_DIR}/extern/LuaBridge/detail + Script/LangLua/LangLua.hpp) + + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_LUA") + include_directories(${Terra_INCLUDES} ${CMAKE_SOURCE_DIR}/extern/LuaBridge) +endif(BUILD_WITH_LUA) + +set(NativeScript_Sources + Script/LangNative/LangNative.cpp + ) +set(NativeScript_Headers + Script/LangNative/LangNative.hpp + ) + +# local files +set(SERVER + main.cpp + Player.cpp + Networking.cpp + Utils.cpp + Script/Script.cpp Script/ScriptFunction.cpp + Script/ScriptFunctions.cpp + Script/Functions/Translocations.cpp Script/Functions/Stats.cpp Script/Functions/Items.cpp + Script/Functions/Timer.cpp Script/Functions/Chat.cpp + Script/API/TimerAPI.cpp Script/API/PublicFnAPI.cpp + ${PawnScript_Sources} + ${LuaScript_Sources} + ${NativeScript_Sources} + +) + +set(SERVER_HEADER + Script/Types.hpp Script/Script.hpp Script/SystemInterface.hpp + Script/ScriptFunction.hpp Script/Platform.hpp + Script/ScriptFunctions.hpp Script/API/TimerAPI.hpp Script/API/PublicFnAPI.hpp + ${PawnScript_Headers} + ${LuaScript_Headers} + ${NativeScript_Headers} +) +source_group(openmw-mp FILES ${SERVER} ${SERVER_HEADER}) + +include_directories("./") + +# Main executable + +add_executable(openmw-mp +${SERVER_FILES} +${SERVER} ${SERVER_HEADER} +${APPLE_BUNDLE_RESOURCES} +) +add_definitions(-std=gnu++11) + +target_link_libraries(openmw-mp + ${OSG_LIBRARIES} + ${OPENTHREADS_LIBRARIES} + ${OSGPARTICLE_LIBRARIES} + ${OSGUTIL_LIBRARIES} + ${OSGDB_LIBRARIES} + ${OSGVIEWER_LIBRARIES} + ${OSGGA_LIBRARIES} + ${Boost_SYSTEM_LIBRARY} + ${Boost_THREAD_LIBRARY} + ${Boost_FILESYSTEM_LIBRARY} + ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${BULLET_LIBRARIES} + ${RakNet_LIBRARY} + components + amx + ${Terra_LIBRARY} + ${Pawn_LIBRARY} +) + +if (USE_SYSTEM_TINYXML) + target_link_libraries(openmw-mp ${TINYXML_LIBRARIES}) +endif() + +if (UNIX) + target_link_libraries(openmw-mp dl) + # Fix for not visible pthreads functions for linker with glibc 2.15 + if(NOT APPLE) + target_link_libraries(openmw-mp ${CMAKE_THREAD_LIBS_INIT}) + endif(NOT APPLE) +endif(UNIX) + +if (BUILD_WITH_CODE_COVERAGE) + add_definitions (--coverage) + target_link_libraries(openmw-mp gcov) +endif() + +if (MSVC) + # Debug version needs increased number of sections beyond 2^16 + if (CMAKE_CL_64) + set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj") + endif (CMAKE_CL_64) + add_definitions("-D_USE_MATH_DEFINES") +endif (MSVC) diff --git a/apps/openmw-mp/Networking.cpp b/apps/openmw-mp/Networking.cpp new file mode 100644 index 00000000000..90ba16c8887 --- /dev/null +++ b/apps/openmw-mp/Networking.cpp @@ -0,0 +1,395 @@ +// +// Created by koncord on 12.01.16. +// + +#include "Player.hpp" +#include +#include +#include +#include +#include