forked from teamnwah/openmw-tes3coop
Compare commits
20 commits
0.7.0
...
experiment
Author | SHA1 | Date | |
---|---|---|---|
|
4225cbae02 | ||
|
5282541d3a | ||
|
9b6bdf3ae8 | ||
|
6b3b5cdab4 | ||
|
1248741da6 | ||
|
796717bab0 | ||
|
af228c0539 | ||
|
9d58b2459d | ||
|
30eaabb7ce | ||
|
e766c6fb01 | ||
|
7bbf81b74d | ||
|
10d7e68dd5 | ||
|
fba99071f8 | ||
|
20b328ec67 | ||
|
447a0ee8b2 | ||
|
6cbf6f05a1 | ||
|
f37c252dbe | ||
|
4601884931 | ||
|
c36b692e91 | ||
|
5840c7bba2 |
131 changed files with 4400 additions and 4502 deletions
|
@ -16,6 +16,8 @@ option(BUILD_NIFTEST "build nif file tester" OFF)
|
||||||
option(BUILD_MYGUI_PLUGIN "build MyGUI plugin for OpenMW resources, to use with MyGUI tools" ON)
|
option(BUILD_MYGUI_PLUGIN "build MyGUI plugin for OpenMW resources, to use with MyGUI tools" ON)
|
||||||
option(BUILD_DOCS "build documentation." OFF )
|
option(BUILD_DOCS "build documentation." OFF )
|
||||||
|
|
||||||
|
option(ENABLE_PVS "Enable PVS Studio Analyzer" FALSE)
|
||||||
|
|
||||||
if (NOT BUILD_LAUNCHER AND NOT BUILD_BROWSER AND NOT BUILD_OPENCS AND NOT BUILD_WIZARD)
|
if (NOT BUILD_LAUNCHER AND NOT BUILD_BROWSER AND NOT BUILD_OPENCS AND NOT BUILD_WIZARD)
|
||||||
set(USE_QT FALSE)
|
set(USE_QT FALSE)
|
||||||
else()
|
else()
|
||||||
|
@ -79,6 +81,8 @@ endif(EXISTS ${PROJECT_SOURCE_DIR}/.git)
|
||||||
# Macros
|
# Macros
|
||||||
include(OpenMWMacros)
|
include(OpenMWMacros)
|
||||||
|
|
||||||
|
include(PVS-Studio.cmake)
|
||||||
|
|
||||||
# doxygen main page
|
# doxygen main page
|
||||||
|
|
||||||
configure_file ("${OpenMW_SOURCE_DIR}/docs/mainpage.hpp.cmake" "${OpenMW_BINARY_DIR}/docs/mainpage.hpp")
|
configure_file ("${OpenMW_SOURCE_DIR}/docs/mainpage.hpp.cmake" "${OpenMW_BINARY_DIR}/docs/mainpage.hpp")
|
||||||
|
@ -591,6 +595,7 @@ add_subdirectory (components)
|
||||||
|
|
||||||
# Apps and tools
|
# Apps and tools
|
||||||
if (BUILD_OPENMW_MP)
|
if (BUILD_OPENMW_MP)
|
||||||
|
add_subdirectory (extern/LuaBridge)
|
||||||
add_subdirectory( apps/openmw-mp )
|
add_subdirectory( apps/openmw-mp )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
545
PVS-Studio.cmake
Executable file
545
PVS-Studio.cmake
Executable file
|
@ -0,0 +1,545 @@
|
||||||
|
# 2006-2008 (c) Viva64.com Team
|
||||||
|
# 2008-2018 (c) OOO "Program Verification Systems"
|
||||||
|
#
|
||||||
|
# Version 12
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 2.8.12)
|
||||||
|
cmake_policy(SET CMP0054 NEW)
|
||||||
|
|
||||||
|
if (PVS_STUDIO_AS_SCRIPT)
|
||||||
|
# This code runs at build time.
|
||||||
|
# It executes pvs-studio-analyzer and propagates its return value.
|
||||||
|
|
||||||
|
set(in_cl_params FALSE)
|
||||||
|
set(additional_args)
|
||||||
|
|
||||||
|
foreach (arg ${PVS_STUDIO_COMMAND})
|
||||||
|
if (NOT in_cl_params)
|
||||||
|
if ("${arg}" STREQUAL "--cl-params")
|
||||||
|
set(in_cl_params TRUE)
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
# A workaround for macOS frameworks (e.g. QtWidgets.framework)
|
||||||
|
# You can test this workaround on this project: https://github.com/easyaspi314/MidiEditor/tree/gba
|
||||||
|
if (APPLE AND "${arg}" MATCHES "^-I(.*)\\.framework$")
|
||||||
|
STRING(REGEX REPLACE "^-I(.*)\\.framework$" "\\1.framework" framework "${arg}")
|
||||||
|
if (IS_ABSOLUTE "${framework}")
|
||||||
|
get_filename_component(framework "${framework}" DIRECTORY)
|
||||||
|
list(APPEND additional_args "-iframework")
|
||||||
|
list(APPEND additional_args "${framework}")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
|
||||||
|
execute_process(COMMAND ${PVS_STUDIO_COMMAND} ${additional_args}
|
||||||
|
ERROR_VARIABLE error
|
||||||
|
RESULT_VARIABLE result)
|
||||||
|
|
||||||
|
set(stderr_type "")
|
||||||
|
|
||||||
|
if (result)
|
||||||
|
set(stderr_type FATAL_ERROR)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (result OR error)
|
||||||
|
message(${stderr_type} "${error}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
return()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (__PVS_STUDIO_INCLUDED)
|
||||||
|
return()
|
||||||
|
endif ()
|
||||||
|
set(__PVS_STUDIO_INCLUDED TRUE)
|
||||||
|
|
||||||
|
set(PVS_STUDIO_SCRIPT "${CMAKE_CURRENT_LIST_FILE}")
|
||||||
|
|
||||||
|
function(pvs_studio_log TEXT)
|
||||||
|
if (PVS_STUDIO_DEBUG)
|
||||||
|
message("PVS-Studio: ${TEXT}")
|
||||||
|
endif ()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(pvs_studio_relative_path VAR ROOT FILEPATH)
|
||||||
|
set("${VAR}" "${FILEPATH}" PARENT_SCOPE)
|
||||||
|
if ("${FILEPATH}" MATCHES "^/.*$" OR "${FILEPATH}" MATCHES "^.:/.*$")
|
||||||
|
file(RELATIVE_PATH RPATH "${ROOT}" "${FILEPATH}")
|
||||||
|
if (NOT "${RPATH}" MATCHES "^\\.\\..*$")
|
||||||
|
set("${VAR}" "${RPATH}" PARENT_SCOPE)
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(pvs_studio_join_path VAR DIR1 DIR2)
|
||||||
|
if ("${DIR2}" MATCHES "^(/|~|.:/).*$" OR "${DIR1}" STREQUAL "")
|
||||||
|
set("${VAR}" "${DIR2}" PARENT_SCOPE)
|
||||||
|
else ()
|
||||||
|
set("${VAR}" "${DIR1}/${DIR2}" PARENT_SCOPE)
|
||||||
|
endif ()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
macro(pvs_studio_append_flags_from_property CXX C DIR PREFIX)
|
||||||
|
if (NOT "${PROPERTY}" STREQUAL "NOTFOUND" AND NOT "${PROPERTY}" STREQUAL "PROPERTY-NOTFOUND")
|
||||||
|
foreach (PROP ${PROPERTY})
|
||||||
|
pvs_studio_join_path(PROP "${DIR}" "${PROP}")
|
||||||
|
|
||||||
|
if (APPLE AND "${PREFIX}" STREQUAL "-I" AND IS_ABSOLUTE "${PROP}" AND "${PROP}" MATCHES "\\.framework$")
|
||||||
|
get_filename_component(FRAMEWORK "${PROP}" DIRECTORY)
|
||||||
|
list(APPEND "${CXX}" "-iframework")
|
||||||
|
list(APPEND "${CXX}" "${FRAMEWORK}")
|
||||||
|
list(APPEND "${C}" "-iframework")
|
||||||
|
list(APPEND "${C}" "${FRAMEWORK}")
|
||||||
|
pvs_studio_log("framework: ${FRAMEWORK}")
|
||||||
|
elseif (NOT "${PROP}" STREQUAL "")
|
||||||
|
list(APPEND "${CXX}" "${PREFIX}${PROP}")
|
||||||
|
list(APPEND "${C}" "${PREFIX}${PROP}")
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
endif ()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
macro(pvs_studio_append_standard_flag FLAGS STANDARD)
|
||||||
|
if ("${STANDARD}" MATCHES "^(99|11|14|17)$")
|
||||||
|
if ("${PVS_STUDIO_PREPROCESSOR}" MATCHES "gcc|clang")
|
||||||
|
list(APPEND "${FLAGS}" "-std=c++${STANDARD}")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
function(pvs_studio_set_directory_flags DIRECTORY CXX C)
|
||||||
|
set(CXX_FLAGS "${${CXX}}")
|
||||||
|
set(C_FLAGS "${${C}}")
|
||||||
|
|
||||||
|
get_directory_property(PROPERTY DIRECTORY "${DIRECTORY}" INCLUDE_DIRECTORIES)
|
||||||
|
pvs_studio_append_flags_from_property(CXX_FLAGS C_FLAGS "${DIRECTORY}" "-I")
|
||||||
|
|
||||||
|
get_directory_property(PROPERTY DIRECTORY "${DIRECTORY}" COMPILE_DEFINITIONS)
|
||||||
|
pvs_studio_append_flags_from_property(CXX_FLAGS C_FLAGS "" "-D")
|
||||||
|
|
||||||
|
set("${CXX}" "${CXX_FLAGS}" PARENT_SCOPE)
|
||||||
|
set("${C}" "${C_FLAGS}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(pvs_studio_set_target_flags TARGET CXX C)
|
||||||
|
set(CXX_FLAGS "${${CXX}}")
|
||||||
|
set(C_FLAGS "${${C}}")
|
||||||
|
|
||||||
|
set(prop_incdirs "$<TARGET_PROPERTY:${TARGET},INCLUDE_DIRECTORIES>")
|
||||||
|
list(APPEND CXX_FLAGS "$<$<BOOL:${prop_incdirs}>:-I$<JOIN:${prop_incdirs},$<SEMICOLON>-I>>")
|
||||||
|
list(APPEND C_FLAGS "$<$<BOOL:${prop_incdirs}>:-I$<JOIN:${prop_incdirs},$<SEMICOLON>-I>>")
|
||||||
|
|
||||||
|
set(prop_compdefs "$<TARGET_PROPERTY:${TARGET},COMPILE_DEFINITIONS>")
|
||||||
|
list(APPEND CXX_FLAGS "$<$<BOOL:${prop_compdefs}>:-D$<JOIN:${prop_compdefs},$<SEMICOLON>-D>>")
|
||||||
|
list(APPEND C_FLAGS "$<$<BOOL:${prop_compdefs}>:-D$<JOIN:${prop_compdefs},$<SEMICOLON>-D>>")
|
||||||
|
|
||||||
|
set("${CXX}" "${CXX_FLAGS}" PARENT_SCOPE)
|
||||||
|
set("${C}" "${C_FLAGS}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(pvs_studio_set_source_file_flags SOURCE)
|
||||||
|
set(LANGUAGE "")
|
||||||
|
|
||||||
|
string(TOLOWER "${SOURCE}" SOURCE_LOWER)
|
||||||
|
if ("${LANGUAGE}" STREQUAL "" AND "${SOURCE_LOWER}" MATCHES "^.*\\.(c|cpp|cc|cx|cxx|cp|c\\+\\+)$")
|
||||||
|
if ("${SOURCE}" MATCHES "^.*\\.c$")
|
||||||
|
set(LANGUAGE C)
|
||||||
|
else ()
|
||||||
|
set(LANGUAGE CXX)
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if ("${LANGUAGE}" STREQUAL "C")
|
||||||
|
set(CL_PARAMS ${PVS_STUDIO_C_FLAGS} ${PVS_STUDIO_TARGET_C_FLAGS} -DPVS_STUDIO)
|
||||||
|
elseif ("${LANGUAGE}" STREQUAL "CXX")
|
||||||
|
set(CL_PARAMS ${PVS_STUDIO_CXX_FLAGS} ${PVS_STUDIO_TARGET_CXX_FLAGS} -DPVS_STUDIO)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set(PVS_STUDIO_LANGUAGE "${LANGUAGE}" PARENT_SCOPE)
|
||||||
|
set(PVS_STUDIO_CL_PARAMS "${CL_PARAMS}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(pvs_studio_analyze_file SOURCE SOURCE_DIR BINARY_DIR)
|
||||||
|
set(PLOGS ${PVS_STUDIO_PLOGS})
|
||||||
|
pvs_studio_set_source_file_flags("${SOURCE}")
|
||||||
|
|
||||||
|
get_filename_component(SOURCE "${SOURCE}" REALPATH)
|
||||||
|
|
||||||
|
get_source_file_property(PROPERTY "${SOURCE}" HEADER_FILE_ONLY)
|
||||||
|
if (PROPERTY)
|
||||||
|
return()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
pvs_studio_relative_path(SOURCE_RELATIVE "${SOURCE_DIR}" "${SOURCE}")
|
||||||
|
pvs_studio_join_path(SOURCE "${SOURCE_DIR}" "${SOURCE}")
|
||||||
|
|
||||||
|
set(LOG "${BINARY_DIR}/PVS-Studio/${SOURCE_RELATIVE}.plog")
|
||||||
|
get_filename_component(LOG "${LOG}" REALPATH)
|
||||||
|
get_filename_component(PARENT_DIR "${LOG}" DIRECTORY)
|
||||||
|
|
||||||
|
if (EXISTS "${SOURCE}" AND NOT TARGET "${LOG}" AND NOT "${PVS_STUDIO_LANGUAGE}" STREQUAL "")
|
||||||
|
# A workaround to support implicit dependencies for ninja generators.
|
||||||
|
set(depPvsArg)
|
||||||
|
set(depCommandArg)
|
||||||
|
if (CMAKE_VERSION VERSION_GREATER 3.6 AND "${CMAKE_GENERATOR}" STREQUAL "Ninja")
|
||||||
|
pvs_studio_relative_path(relLog "${CMAKE_BINARY_DIR}" "${LOG}")
|
||||||
|
set(depPvsArg --dep-file "${LOG}.d" --dep-file-target "${relLog}")
|
||||||
|
set(depCommandArg DEPFILE "${LOG}.d")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# https://public.kitware.com/Bug/print_bug_page.php?bug_id=14353
|
||||||
|
# https://public.kitware.com/Bug/file/5436/expand_command.cmake
|
||||||
|
#
|
||||||
|
# It is a workaround to expand generator expressions.
|
||||||
|
set(cmdline "${PVS_STUDIO_BIN}" analyze
|
||||||
|
--output-file "${LOG}"
|
||||||
|
--source-file "${SOURCE}"
|
||||||
|
${depPvsArg}
|
||||||
|
${PVS_STUDIO_ARGS}
|
||||||
|
--cl-params "${PVS_STUDIO_CL_PARAMS}" "${SOURCE}")
|
||||||
|
|
||||||
|
string(REPLACE ";" "$<SEMICOLON>" cmdline "${cmdline}")
|
||||||
|
set(pvscmd "${CMAKE_COMMAND}"
|
||||||
|
-D PVS_STUDIO_AS_SCRIPT=TRUE
|
||||||
|
-D "PVS_STUDIO_COMMAND=${cmdline}"
|
||||||
|
-P "${PVS_STUDIO_SCRIPT}"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT "${LOG}"
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PARENT_DIR}"
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E remove_directory "${LOG}"
|
||||||
|
COMMAND ${pvscmd}
|
||||||
|
WORKING_DIRECTORY "${BINARY_DIR}"
|
||||||
|
DEPENDS "${SOURCE}" "${PVS_STUDIO_CONFIG}"
|
||||||
|
IMPLICIT_DEPENDS "${PVS_STUDIO_LANGUAGE}" "${SOURCE}"
|
||||||
|
${depCommandArg}
|
||||||
|
VERBATIM
|
||||||
|
COMMENT "Analyzing ${PVS_STUDIO_LANGUAGE} file ${SOURCE_RELATIVE}")
|
||||||
|
list(APPEND PLOGS "${LOG}")
|
||||||
|
endif ()
|
||||||
|
set(PVS_STUDIO_PLOGS "${PLOGS}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(pvs_studio_analyze_target TARGET DIR)
|
||||||
|
set(PVS_STUDIO_PLOGS "${PVS_STUDIO_PLOGS}")
|
||||||
|
set(PVS_STUDIO_TARGET_CXX_FLAGS "")
|
||||||
|
set(PVS_STUDIO_TARGET_C_FLAGS "")
|
||||||
|
|
||||||
|
get_target_property(PROPERTY "${TARGET}" SOURCES)
|
||||||
|
pvs_studio_relative_path(BINARY_DIR "${CMAKE_SOURCE_DIR}" "${DIR}")
|
||||||
|
if ("${BINARY_DIR}" MATCHES "^/.*$")
|
||||||
|
pvs_studio_join_path(BINARY_DIR "${CMAKE_BINARY_DIR}" "PVS-Studio/__${BINARY_DIR}")
|
||||||
|
else ()
|
||||||
|
pvs_studio_join_path(BINARY_DIR "${CMAKE_BINARY_DIR}" "${BINARY_DIR}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
file(MAKE_DIRECTORY "${BINARY_DIR}")
|
||||||
|
|
||||||
|
pvs_studio_set_directory_flags("${DIR}" PVS_STUDIO_TARGET_CXX_FLAGS PVS_STUDIO_TARGET_C_FLAGS)
|
||||||
|
pvs_studio_set_target_flags("${TARGET}" PVS_STUDIO_TARGET_CXX_FLAGS PVS_STUDIO_TARGET_C_FLAGS)
|
||||||
|
|
||||||
|
if (NOT "${PROPERTY}" STREQUAL "NOTFOUND" AND NOT "${PROPERTY}" STREQUAL "PROPERTY-NOTFOUND")
|
||||||
|
foreach (SOURCE ${PROPERTY})
|
||||||
|
pvs_studio_join_path(SOURCE "${DIR}" "${SOURCE}")
|
||||||
|
pvs_studio_analyze_file("${SOURCE}" "${DIR}" "${BINARY_DIR}")
|
||||||
|
endforeach ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set(PVS_STUDIO_PLOGS "${PVS_STUDIO_PLOGS}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
set(PVS_STUDIO_RECURSIVE_TARGETS)
|
||||||
|
set(PVS_STUDIO_RECURSIVE_TARGETS_NEW)
|
||||||
|
|
||||||
|
macro(pvs_studio_get_recursive_targets TARGET)
|
||||||
|
get_target_property(libs "${TARGET}" LINK_LIBRARIES)
|
||||||
|
foreach (lib IN LISTS libs)
|
||||||
|
list(FIND PVS_STUDIO_RECURSIVE_TARGETS "${lib}" index)
|
||||||
|
if (TARGET "${lib}" AND "${index}" STREQUAL -1)
|
||||||
|
get_target_property(target_type "${lib}" TYPE)
|
||||||
|
if (NOT "${target_type}" STREQUAL "INTERFACE_LIBRARY")
|
||||||
|
list(APPEND PVS_STUDIO_RECURSIVE_TARGETS "${lib}")
|
||||||
|
list(APPEND PVS_STUDIO_RECURSIVE_TARGETS_NEW "${lib}")
|
||||||
|
pvs_studio_get_recursive_targets("${lib}")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
option(PVS_STUDIO_DISABLE OFF "Disable PVS-Studio targets")
|
||||||
|
option(PVS_STUDIO_DEBUG OFF "Add debug info")
|
||||||
|
|
||||||
|
# pvs_studio_add_target
|
||||||
|
# Target options:
|
||||||
|
# ALL add this target to default build (default: off)
|
||||||
|
# TARGET target name of analysis target (default: pvs)
|
||||||
|
# ANALYZE targets... targets to analyze
|
||||||
|
# RECURSIVE analyze target's dependencies (requires CMake 3.5+)
|
||||||
|
# COMPILE_COMMANDS use compile_commands.json mode
|
||||||
|
#
|
||||||
|
# Output options:
|
||||||
|
# OUTPUT prints report to stdout
|
||||||
|
# LOG path path to report (default: ${CMAKE_CURRENT_BINARY_DIR}/PVS-Studio.log)
|
||||||
|
# FORMAT format format of report
|
||||||
|
# MODE mode analyzers/levels filter (default: GA:1,2)
|
||||||
|
# HIDE_HELP do not print help message
|
||||||
|
#
|
||||||
|
# Analyzer options:
|
||||||
|
# PLATFORM name linux32/linux64 (default: linux64)
|
||||||
|
# PREPROCESSOR name preprocessor type: gcc/clang (default: auto detected)
|
||||||
|
# LICENSE path path to PVS-Studio.lic (default: ~/.config/PVS-Studio/PVS-Studio.lic)
|
||||||
|
# CONFIG path path to PVS-Studio.cfg
|
||||||
|
# CFG_TEXT text embedded PVS-Studio.cfg
|
||||||
|
# KEEP_COMBINED_PLOG do not delete combined plog file *.pvs.raw for further processing with plog-converter
|
||||||
|
#
|
||||||
|
# Misc options:
|
||||||
|
# DEPENDS targets.. additional target dependencies
|
||||||
|
# SOURCES path... list of source files to analyze
|
||||||
|
# BIN path path to pvs-studio-analyzer (Unix) or CompilerCommandsAnalyzer.exe (Windows)
|
||||||
|
# CONVERTER path path to plog-converter (Unix) or HtmlGenerator.exe (Windows)
|
||||||
|
# C_FLAGS flags... additional C_FLAGS
|
||||||
|
# CXX_FLAGS flags... additional CXX_FLAGS
|
||||||
|
# ARGS args... additional pvs-studio-analyzer/CompilerCommandsAnalyzer.exe flags
|
||||||
|
function(pvs_studio_add_target)
|
||||||
|
macro(default VAR VALUE)
|
||||||
|
if ("${${VAR}}" STREQUAL "")
|
||||||
|
set("${VAR}" "${VALUE}")
|
||||||
|
endif ()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
set(PVS_STUDIO_SUPPORTED_PREPROCESSORS "gcc|clang|visualcpp")
|
||||||
|
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||||
|
set(DEFAULT_PREPROCESSOR "clang")
|
||||||
|
elseif (MSVC)
|
||||||
|
set(DEFAULT_PREPROCESSOR "visualcpp")
|
||||||
|
else ()
|
||||||
|
set(DEFAULT_PREPROCESSOR "gcc")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set(OPTIONAL OUTPUT ALL RECURSIVE HIDE_HELP KEEP_COMBINED_PLOG COMPILE_COMMANDS)
|
||||||
|
set(SINGLE LICENSE CONFIG TARGET LOG FORMAT BIN CONVERTER PLATFORM PREPROCESSOR CFG_TEXT)
|
||||||
|
set(MULTI SOURCES C_FLAGS CXX_FLAGS ARGS DEPENDS ANALYZE MODE)
|
||||||
|
cmake_parse_arguments(PVS_STUDIO "${OPTIONAL}" "${SINGLE}" "${MULTI}" ${ARGN})
|
||||||
|
|
||||||
|
if ("${PVS_STUDIO_CONFIG}" STREQUAL "" OR NOT "${PVS_STUDIO_CFG_TEXT}" STREQUAL "")
|
||||||
|
set(PVS_STUDIO_EMPTY_CONFIG ON)
|
||||||
|
else ()
|
||||||
|
set(PVS_STUDIO_EMPTY_CONFIG OFF)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
default(PVS_STUDIO_CFG_TEXT "analysis-mode=31")
|
||||||
|
default(PVS_STUDIO_CONFIG "${CMAKE_BINARY_DIR}/PVS-Studio.cfg")
|
||||||
|
default(PVS_STUDIO_C_FLAGS "")
|
||||||
|
default(PVS_STUDIO_CXX_FLAGS "")
|
||||||
|
default(PVS_STUDIO_TARGET "pvs")
|
||||||
|
default(PVS_STUDIO_LOG "PVS-Studio.log")
|
||||||
|
|
||||||
|
set(PATHS)
|
||||||
|
if (WIN32)
|
||||||
|
set(ROOT "PROGRAMFILES(X86)")
|
||||||
|
set(ROOT "$ENV{${ROOT}}/PVS-Studio")
|
||||||
|
string(REPLACE \\ / ROOT "${ROOT}")
|
||||||
|
|
||||||
|
if (EXISTS "${ROOT}")
|
||||||
|
set(PATHS "${ROOT}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
default(PVS_STUDIO_BIN "CompilerCommandsAnalyzer.exe")
|
||||||
|
default(PVS_STUDIO_CONVERTER "HtmlGenerator.exe")
|
||||||
|
else ()
|
||||||
|
default(PVS_STUDIO_BIN "pvs-studio-analyzer")
|
||||||
|
default(PVS_STUDIO_CONVERTER "plog-converter")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
find_program(PVS_STUDIO_BIN_PATH "${PVS_STUDIO_BIN}" ${PATHS})
|
||||||
|
set(PVS_STUDIO_BIN "${PVS_STUDIO_BIN_PATH}")
|
||||||
|
|
||||||
|
if (NOT EXISTS "${PVS_STUDIO_BIN}")
|
||||||
|
message(FATAL_ERROR "pvs-studio-analyzer is not found")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
find_program(PVS_STUDIO_CONVERTER_PATH "${PVS_STUDIO_CONVERTER}" ${PATHS})
|
||||||
|
set(PVS_STUDIO_CONVERTER "${PVS_STUDIO_CONVERTER_PATH}")
|
||||||
|
|
||||||
|
if (NOT EXISTS "${PVS_STUDIO_CONVERTER}")
|
||||||
|
message(FATAL_ERROR "plog-converter is not found")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
default(PVS_STUDIO_MODE "GA:1,2")
|
||||||
|
default(PVS_STUDIO_PREPROCESSOR "${DEFAULT_PREPROCESSOR}")
|
||||||
|
if (WIN32)
|
||||||
|
default(PVS_STUDIO_PLATFORM "x64")
|
||||||
|
else ()
|
||||||
|
default(PVS_STUDIO_PLATFORM "linux64")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
string(REPLACE ";" "+" PVS_STUDIO_MODE "${PVS_STUDIO_MODE}")
|
||||||
|
|
||||||
|
if (PVS_STUDIO_EMPTY_CONFIG)
|
||||||
|
set(PVS_STUDIO_CONFIG_COMMAND "${CMAKE_COMMAND}" -E echo "${PVS_STUDIO_CFG_TEXT}" > "${PVS_STUDIO_CONFIG}")
|
||||||
|
else ()
|
||||||
|
set(PVS_STUDIO_CONFIG_COMMAND "${CMAKE_COMMAND}" -E touch "${PVS_STUDIO_CONFIG}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT "${PVS_STUDIO_CONFIG}"
|
||||||
|
COMMAND ${PVS_STUDIO_CONFIG_COMMAND}
|
||||||
|
WORKING_DIRECTORY "${BINARY_DIR}"
|
||||||
|
COMMENT "Generating PVS-Studio.cfg")
|
||||||
|
|
||||||
|
if (NOT "${PVS_STUDIO_PREPROCESSOR}" MATCHES "^${PVS_STUDIO_SUPPORTED_PREPROCESSORS}$")
|
||||||
|
message(FATAL_ERROR "Preprocessor ${PVS_STUDIO_PREPROCESSOR} isn't supported. Available options: ${PVS_STUDIO_SUPPORTED_PREPROCESSORS}.")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
pvs_studio_append_standard_flag(PVS_STUDIO_CXX_FLAGS "${CMAKE_CXX_STANDARD}")
|
||||||
|
pvs_studio_set_directory_flags("${CMAKE_CURRENT_SOURCE_DIR}" PVS_STUDIO_CXX_FLAGS PVS_STUDIO_C_FLAGS)
|
||||||
|
|
||||||
|
if (NOT "${PVS_STUDIO_LICENSE}" STREQUAL "")
|
||||||
|
pvs_studio_join_path(PVS_STUDIO_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}" "${PVS_STUDIO_LICENSE}")
|
||||||
|
list(APPEND PVS_STUDIO_ARGS --lic-file "${PVS_STUDIO_LICENSE}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
list(APPEND PVS_STUDIO_ARGS --cfg "${PVS_STUDIO_CONFIG}"
|
||||||
|
--platform "${PVS_STUDIO_PLATFORM}"
|
||||||
|
--preprocessor "${PVS_STUDIO_PREPROCESSOR}")
|
||||||
|
|
||||||
|
if (NOT "${CMAKE_CXX_COMPILER}" STREQUAL "")
|
||||||
|
list(APPEND PVS_STUDIO_ARGS --cxx "${CMAKE_CXX_COMPILER}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT "${CMAKE_C_COMPILER}" STREQUAL "")
|
||||||
|
list(APPEND PVS_STUDIO_ARGS --cc "${CMAKE_C_COMPILER}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set(PVS_STUDIO_PLOGS "")
|
||||||
|
|
||||||
|
set(PVS_STUDIO_RECURSIVE_TARGETS_NEW)
|
||||||
|
if (${PVS_STUDIO_RECURSIVE})
|
||||||
|
foreach (TARGET IN LISTS PVS_STUDIO_ANALYZE)
|
||||||
|
list(APPEND PVS_STUDIO_RECURSIVE_TARGETS_NEW "${TARGET}")
|
||||||
|
pvs_studio_get_recursive_targets("${TARGET}")
|
||||||
|
endforeach ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set(inc_path)
|
||||||
|
|
||||||
|
foreach (TARGET ${PVS_STUDIO_ANALYZE})
|
||||||
|
set(DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
string(FIND "${TARGET}" ":" DELIM)
|
||||||
|
if ("${DELIM}" GREATER "-1")
|
||||||
|
math(EXPR DELIMI "${DELIM}+1")
|
||||||
|
string(SUBSTRING "${TARGET}" "${DELIMI}" "-1" DIR)
|
||||||
|
string(SUBSTRING "${TARGET}" "0" "${DELIM}" TARGET)
|
||||||
|
pvs_studio_join_path(DIR "${CMAKE_CURRENT_SOURCE_DIR}" "${DIR}")
|
||||||
|
else ()
|
||||||
|
get_target_property(TARGET_SOURCE_DIR "${TARGET}" SOURCE_DIR)
|
||||||
|
if (EXISTS "${TARGET_SOURCE_DIR}")
|
||||||
|
set(DIR "${TARGET_SOURCE_DIR}")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
pvs_studio_analyze_target("${TARGET}" "${DIR}")
|
||||||
|
list(APPEND PVS_STUDIO_DEPENDS "${TARGET}")
|
||||||
|
|
||||||
|
if ("${inc_path}" STREQUAL "")
|
||||||
|
set(inc_path "$<TARGET_PROPERTY:${TARGET},INCLUDE_DIRECTORIES>")
|
||||||
|
else ()
|
||||||
|
set(inc_path "${inc_path}$<SEMICOLON>$<TARGET_PROPERTY:${TARGET},INCLUDE_DIRECTORIES>")
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
|
||||||
|
foreach (TARGET ${PVS_STUDIO_RECURSIVE_TARGETS_NEW})
|
||||||
|
set(DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
get_target_property(TARGET_SOURCE_DIR "${TARGET}" SOURCE_DIR)
|
||||||
|
if (EXISTS "${TARGET_SOURCE_DIR}")
|
||||||
|
set(DIR "${TARGET_SOURCE_DIR}")
|
||||||
|
endif ()
|
||||||
|
pvs_studio_analyze_target("${TARGET}" "${DIR}")
|
||||||
|
list(APPEND PVS_STUDIO_DEPENDS "${TARGET}")
|
||||||
|
endforeach ()
|
||||||
|
|
||||||
|
set(PVS_STUDIO_TARGET_CXX_FLAGS "")
|
||||||
|
set(PVS_STUDIO_TARGET_C_FLAGS "")
|
||||||
|
foreach (SOURCE ${PVS_STUDIO_SOURCES})
|
||||||
|
pvs_studio_analyze_file("${SOURCE}" "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
|
endforeach ()
|
||||||
|
|
||||||
|
if (PVS_STUDIO_COMPILE_COMMANDS)
|
||||||
|
set(COMPILE_COMMANDS_LOG "${PVS_STUDIO_LOG}.pvs.analyzer.raw")
|
||||||
|
if (NOT CMAKE_EXPORT_COMPILE_COMMANDS)
|
||||||
|
message(FATAL_ERROR "You should set CMAKE_EXPORT_COMPILE_COMMANDS to TRUE")
|
||||||
|
endif ()
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT "${COMPILE_COMMANDS_LOG}"
|
||||||
|
COMMAND "${PVS_STUDIO_BIN}" analyze -i
|
||||||
|
--output-file "${COMPILE_COMMANDS_LOG}.always"
|
||||||
|
${PVS_STUDIO_ARGS}
|
||||||
|
COMMENT "Analyzing with PVS-Studio"
|
||||||
|
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||||
|
DEPENDS "${PVS_STUDIO_CONFIG}"
|
||||||
|
)
|
||||||
|
list(APPEND PVS_STUDIO_PLOGS_LOGS "${COMPILE_COMMANDS_LOG}.always")
|
||||||
|
list(APPEND PVS_STUDIO_PLOGS_DEPENDENCIES "${COMPILE_COMMANDS_LOG}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
pvs_studio_relative_path(LOG_RELATIVE "${CMAKE_BINARY_DIR}" "${PVS_STUDIO_LOG}")
|
||||||
|
if (PVS_STUDIO_PLOGS OR PVS_STUDIO_COMPILE_COMMANDS)
|
||||||
|
if (WIN32)
|
||||||
|
string(REPLACE / \\ PVS_STUDIO_PLOGS "${PVS_STUDIO_PLOGS}")
|
||||||
|
endif ()
|
||||||
|
if (WIN32)
|
||||||
|
set(COMMANDS COMMAND type ${PVS_STUDIO_PLOGS} ${PVS_STUDIO_PLOGS_LOGS} > "${PVS_STUDIO_LOG}")
|
||||||
|
else ()
|
||||||
|
set(COMMANDS COMMAND cat ${PVS_STUDIO_PLOGS} ${PVS_STUDIO_PLOGS_LOGS} > "${PVS_STUDIO_LOG}")
|
||||||
|
endif ()
|
||||||
|
set(COMMENT "Generating ${LOG_RELATIVE}")
|
||||||
|
if (NOT "${PVS_STUDIO_FORMAT}" STREQUAL "" OR PVS_STUDIO_OUTPUT)
|
||||||
|
if ("${PVS_STUDIO_FORMAT}" STREQUAL "")
|
||||||
|
set(PVS_STUDIO_FORMAT "errorfile")
|
||||||
|
endif ()
|
||||||
|
list(APPEND COMMANDS
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E remove -f "${PVS_STUDIO_LOG}.pvs.raw"
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E rename "${PVS_STUDIO_LOG}" "${PVS_STUDIO_LOG}.pvs.raw"
|
||||||
|
COMMAND "${PVS_STUDIO_CONVERTER}" -t "${PVS_STUDIO_FORMAT}" "${PVS_STUDIO_LOG}.pvs.raw" -o "${PVS_STUDIO_LOG}" -a "${PVS_STUDIO_MODE}"
|
||||||
|
)
|
||||||
|
if (NOT PVS_STUDIO_KEEP_COMBINED_PLOG)
|
||||||
|
list(APPEND COMMANDS COMMAND "${CMAKE_COMMAND}" -E remove -f "${PVS_STUDIO_LOG}.pvs.raw")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
set(COMMANDS COMMAND "${CMAKE_COMMAND}" -E touch "${PVS_STUDIO_LOG}")
|
||||||
|
set(COMMENT "Generating ${LOG_RELATIVE}: no sources found")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
string(REPLACE / \\ PVS_STUDIO_LOG "${PVS_STUDIO_LOG}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT "${PVS_STUDIO_LOG}"
|
||||||
|
${COMMANDS}
|
||||||
|
COMMENT "${COMMENT}"
|
||||||
|
DEPENDS ${PVS_STUDIO_PLOGS} ${PVS_STUDIO_PLOGS_DEPENDENCIES}
|
||||||
|
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}")
|
||||||
|
|
||||||
|
if (PVS_STUDIO_ALL)
|
||||||
|
set(ALL "ALL")
|
||||||
|
else ()
|
||||||
|
set(ALL "")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (PVS_STUDIO_OUTPUT)
|
||||||
|
if (PVS_STUDIO_HIDE_HELP AND NOT WIN32)
|
||||||
|
set(COMMANDS COMMAND grep -v " error: Help:" ${PVS_STUDIO_LOG} 1>&2 || exit 0)
|
||||||
|
elseif (WIN32)
|
||||||
|
set(COMMANDS COMMAND type "${PVS_STUDIO_LOG}" 1>&2)
|
||||||
|
else ()
|
||||||
|
set(COMMANDS COMMAND cat "${PVS_STUDIO_LOG}" 1>&2)
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
set(COMMANDS "")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
add_custom_target("${PVS_STUDIO_TARGET}" ${ALL} ${COMMANDS} WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" DEPENDS ${PVS_STUDIO_DEPENDS} "${PVS_STUDIO_LOG}")
|
||||||
|
|
||||||
|
# A workaround to add implicit dependencies of source files from include directories
|
||||||
|
set_target_properties("${PVS_STUDIO_TARGET}" PROPERTIES INCLUDE_DIRECTORIES "${inc_path}")
|
||||||
|
endfunction()
|
|
@ -25,13 +25,28 @@ if(BUILD_WITH_LUA)
|
||||||
set(LuaScript_Sources
|
set(LuaScript_Sources
|
||||||
Script/LangLua/LangLua.cpp
|
Script/LangLua/LangLua.cpp
|
||||||
Script/LangLua/LuaFunc.cpp)
|
Script/LangLua/LuaFunc.cpp)
|
||||||
set(LuaScript_Headers ${LUA_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/extern/LuaBridge ${CMAKE_SOURCE_DIR}/extern/LuaBridge/detail
|
set(LuaScript_Headers
|
||||||
Script/LangLua/LangLua.hpp)
|
Script/LangLua/LangLua.hpp)
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_LUA")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_LUA")
|
||||||
include_directories(SYSTEM ${LuaJit_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/extern/LuaBridge)
|
include_directories(SYSTEM ${LuaJit_INCLUDE_DIRS} SYSTEM ${CMAKE_SOURCE_DIR}/extern/LuaBridge)
|
||||||
endif(BUILD_WITH_LUA)
|
endif(BUILD_WITH_LUA)
|
||||||
|
|
||||||
|
option(BUILD_WITH_MONO "Enable Mono languages" ON)
|
||||||
|
if(BUILD_WITH_MONO)
|
||||||
|
message(STATUS "Mono enabled")
|
||||||
|
find_package(Mono REQUIRED)
|
||||||
|
include_directories(SYSTEM ${MONO_INCLUDE_DIR})
|
||||||
|
|
||||||
|
set(MonoScript_Sources
|
||||||
|
Script/LangMono/LangMono.cpp
|
||||||
|
)
|
||||||
|
set(MonoScript_Headers
|
||||||
|
Script/LangMono/LangMono.hpp
|
||||||
|
)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_MONO")
|
||||||
|
endif(BUILD_WITH_MONO)
|
||||||
|
|
||||||
set(NativeScript_Sources
|
set(NativeScript_Sources
|
||||||
Script/LangNative/LangNative.cpp
|
Script/LangNative/LangNative.cpp
|
||||||
)
|
)
|
||||||
|
@ -60,11 +75,12 @@ set(SERVER
|
||||||
Script/Functions/Positions.cpp Script/Functions/Quests.cpp Script/Functions/RecordsDynamic.cpp
|
Script/Functions/Positions.cpp Script/Functions/Quests.cpp Script/Functions/RecordsDynamic.cpp
|
||||||
Script/Functions/Server.cpp Script/Functions/Settings.cpp Script/Functions/Shapeshift.cpp
|
Script/Functions/Server.cpp Script/Functions/Settings.cpp Script/Functions/Shapeshift.cpp
|
||||||
Script/Functions/Spells.cpp Script/Functions/Stats.cpp Script/Functions/Timer.cpp
|
Script/Functions/Spells.cpp Script/Functions/Stats.cpp Script/Functions/Timer.cpp
|
||||||
|
Script/Functions/Public.cpp
|
||||||
|
|
||||||
Script/API/TimerAPI.cpp Script/API/PublicFnAPI.cpp
|
Script/API/TimerAPI.cpp Script/API/PublicFnAPI.cpp
|
||||||
${LuaScript_Sources}
|
${LuaScript_Sources}
|
||||||
${NativeScript_Sources}
|
${NativeScript_Sources}
|
||||||
|
${MonoScript_Sources}
|
||||||
)
|
)
|
||||||
|
|
||||||
set(SERVER_HEADER
|
set(SERVER_HEADER
|
||||||
|
@ -73,6 +89,7 @@ set(SERVER_HEADER
|
||||||
Script/ScriptFunctions.hpp Script/API/TimerAPI.hpp Script/API/PublicFnAPI.hpp
|
Script/ScriptFunctions.hpp Script/API/TimerAPI.hpp Script/API/PublicFnAPI.hpp
|
||||||
${LuaScript_Headers}
|
${LuaScript_Headers}
|
||||||
${NativeScript_Headers}
|
${NativeScript_Headers}
|
||||||
|
${MonoScript_Headers}
|
||||||
)
|
)
|
||||||
source_group(tes3mp-server FILES ${SERVER} ${SERVER_HEADER})
|
source_group(tes3mp-server FILES ${SERVER} ${SERVER_HEADER})
|
||||||
|
|
||||||
|
@ -165,10 +182,6 @@ set_target_properties(tes3mp-server PROPERTIES
|
||||||
CXX_EXTENSIONS YES
|
CXX_EXTENSIONS YES
|
||||||
)
|
)
|
||||||
|
|
||||||
if (UNIX)
|
|
||||||
target_compile_options(tes3mp-server PRIVATE -Wno-ignored-qualifiers)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
target_link_libraries(tes3mp-server
|
target_link_libraries(tes3mp-server
|
||||||
#${Boost_SYSTEM_LIBRARY}
|
#${Boost_SYSTEM_LIBRARY}
|
||||||
#${Boost_THREAD_LIBRARY}
|
#${Boost_THREAD_LIBRARY}
|
||||||
|
@ -177,13 +190,19 @@ target_link_libraries(tes3mp-server
|
||||||
${RakNet_LIBRARY}
|
${RakNet_LIBRARY}
|
||||||
components
|
components
|
||||||
${LuaJit_LIBRARIES}
|
${LuaJit_LIBRARIES}
|
||||||
|
${MONO_LIBRARY}
|
||||||
${Breakpad_Library}
|
${Breakpad_Library}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (BUILD_WITH_LUA)
|
||||||
|
target_link_libraries(tes3mp-server LuaBridge)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
target_link_libraries(tes3mp-server dl)
|
target_link_libraries(tes3mp-server dl)
|
||||||
# Fix for not visible pthreads functions for linker with glibc 2.15
|
# Fix for not visible pthreads functions for linker with glibc 2.15
|
||||||
if(NOT APPLE)
|
if(NOT APPLE)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--exclude-libs,ALL -rdynamic -fvisibility=hidden")
|
||||||
target_link_libraries(tes3mp-server ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(tes3mp-server ${CMAKE_THREAD_LIBS_INIT})
|
||||||
endif(NOT APPLE)
|
endif(NOT APPLE)
|
||||||
endif(UNIX)
|
endif(UNIX)
|
||||||
|
@ -200,3 +219,10 @@ if (MSVC)
|
||||||
endif (CMAKE_CL_64)
|
endif (CMAKE_CL_64)
|
||||||
add_definitions("-D_USE_MATH_DEFINES")
|
add_definitions("-D_USE_MATH_DEFINES")
|
||||||
endif (MSVC)
|
endif (MSVC)
|
||||||
|
|
||||||
|
if (ENABLE_PVS)
|
||||||
|
pvs_studio_add_target(TARGET tes3mp-server.analyze ALL
|
||||||
|
OUTPUT FORMAT errorfile
|
||||||
|
ANALYZE tes3mp-server
|
||||||
|
LOG target_tes3mp-server.err)
|
||||||
|
endif()
|
||||||
|
|
|
@ -55,7 +55,7 @@ void Cell::addPlayer(Player *player)
|
||||||
|
|
||||||
void Cell::removePlayer(Player *player, bool cleanPlayer)
|
void Cell::removePlayer(Player *player, bool cleanPlayer)
|
||||||
{
|
{
|
||||||
for (Iterator it = begin(); it != end(); it++)
|
for (auto it = begin(); it != end(); ++it)
|
||||||
{
|
{
|
||||||
if (*it == player)
|
if (*it == player)
|
||||||
{
|
{
|
||||||
|
@ -161,7 +161,7 @@ void Cell::removeActors(const mwmp::BaseActorList *newActorList)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!foundActor)
|
if (!foundActor)
|
||||||
it++;
|
++it;
|
||||||
}
|
}
|
||||||
|
|
||||||
cellActorList.count = cellActorList.baseActors.size();
|
cellActorList.count = cellActorList.baseActors.size();
|
||||||
|
|
|
@ -64,7 +64,7 @@ Cell *CellController::getCellByXY(int x, int y)
|
||||||
return *it;
|
return *it;
|
||||||
}
|
}
|
||||||
|
|
||||||
Cell *CellController::getCellByName(std::string cellName)
|
Cell *CellController::getCellByName(const std::string &cellName)
|
||||||
{
|
{
|
||||||
auto it = find_if(cells.begin(), cells.end(), [cellName](const Cell *c)
|
auto it = find_if(cells.begin(), cells.end(), [cellName](const Cell *c)
|
||||||
{
|
{
|
||||||
|
@ -80,7 +80,7 @@ Cell *CellController::getCellByName(std::string cellName)
|
||||||
return *it;
|
return *it;
|
||||||
}
|
}
|
||||||
|
|
||||||
Cell *CellController::addCell(ESM::Cell cellData)
|
Cell *CellController::addCell(const ESM::Cell &cellData)
|
||||||
{
|
{
|
||||||
LOG_APPEND(Log::LOG_INFO, "- Loaded cells: %d", cells.size());
|
LOG_APPEND(Log::LOG_INFO, "- Loaded cells: %d", cells.size());
|
||||||
auto it = find_if(cells.begin(), cells.end(), [cellData](const Cell *c) {
|
auto it = find_if(cells.begin(), cells.end(), [cellData](const Cell *c) {
|
||||||
|
|
|
@ -27,14 +27,14 @@ public:
|
||||||
typedef std::deque<Cell*> TContainer;
|
typedef std::deque<Cell*> TContainer;
|
||||||
typedef TContainer::iterator TIter;
|
typedef TContainer::iterator TIter;
|
||||||
|
|
||||||
Cell * addCell(ESM::Cell cell);
|
Cell * addCell(const ESM::Cell &cell);
|
||||||
void removeCell(Cell *);
|
void removeCell(Cell *);
|
||||||
|
|
||||||
void deletePlayer(Player *player);
|
void deletePlayer(Player *player);
|
||||||
|
|
||||||
Cell *getCell(ESM::Cell *esmCell);
|
Cell *getCell(ESM::Cell *esmCell);
|
||||||
Cell *getCellByXY(int x, int y);
|
Cell *getCellByXY(int x, int y);
|
||||||
Cell *getCellByName(std::string cellName);
|
Cell *getCellByName(const std::string &cellName);
|
||||||
|
|
||||||
void update(Player *player);
|
void update(Player *player);
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ void MasterClient::SetMaxPlayers(unsigned pl)
|
||||||
mutexData.unlock();
|
mutexData.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MasterClient::SetHostname(std::string hostname)
|
void MasterClient::SetHostname(const std::string &hostname)
|
||||||
{
|
{
|
||||||
mutexData.lock();
|
mutexData.lock();
|
||||||
string substr = hostname.substr(0, 200);
|
string substr = hostname.substr(0, 200);
|
||||||
|
@ -63,7 +63,7 @@ void MasterClient::SetHostname(std::string hostname)
|
||||||
mutexData.unlock();
|
mutexData.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MasterClient::SetModname(std::string modname)
|
void MasterClient::SetModname(const std::string &modname)
|
||||||
{
|
{
|
||||||
mutexData.lock();
|
mutexData.lock();
|
||||||
string substr = modname.substr(0, 200);
|
string substr = modname.substr(0, 200);
|
||||||
|
@ -75,7 +75,7 @@ void MasterClient::SetModname(std::string modname)
|
||||||
mutexData.unlock();
|
mutexData.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MasterClient::SetRuleString(std::string key, std::string value)
|
void MasterClient::SetRuleString(const std::string &key, std::string value)
|
||||||
{
|
{
|
||||||
mutexData.lock();
|
mutexData.lock();
|
||||||
if (queryData.rules.find(key) == queryData.rules.end() || queryData.rules[key].type != 's'
|
if (queryData.rules.find(key) == queryData.rules.end() || queryData.rules[key].type != 's'
|
||||||
|
@ -90,7 +90,7 @@ void MasterClient::SetRuleString(std::string key, std::string value)
|
||||||
mutexData.unlock();
|
mutexData.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MasterClient::SetRuleValue(std::string key, double value)
|
void MasterClient::SetRuleValue(const std::string &key, double value)
|
||||||
{
|
{
|
||||||
mutexData.lock();
|
mutexData.lock();
|
||||||
if (queryData.rules.find(key) == queryData.rules.end() || queryData.rules[key].type != 'v'
|
if (queryData.rules.find(key) == queryData.rules.end() || queryData.rules[key].type != 'v'
|
||||||
|
@ -105,7 +105,7 @@ void MasterClient::SetRuleValue(std::string key, double value)
|
||||||
mutexData.unlock();
|
mutexData.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MasterClient::PushPlugin(Plugin plugin)
|
void MasterClient::PushPlugin(const Plugin &plugin)
|
||||||
{
|
{
|
||||||
mutexData.lock();
|
mutexData.lock();
|
||||||
queryData.plugins.push_back(plugin);
|
queryData.plugins.push_back(plugin);
|
||||||
|
@ -208,7 +208,7 @@ void MasterClient::Thread()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (int i = 0; pIt != players->end(); i++, pIt++)
|
for (int i = 0; pIt != players->end(); i++, ++pIt)
|
||||||
{
|
{
|
||||||
if (queryData.players[i] != pIt->second->npc.mName)
|
if (queryData.players[i] != pIt->second->npc.mName)
|
||||||
{
|
{
|
||||||
|
@ -258,5 +258,6 @@ void MasterClient::SetUpdateRate(unsigned int rate)
|
||||||
timeout = min_rate;
|
timeout = min_rate;
|
||||||
else if (timeout > max_rate)
|
else if (timeout > max_rate)
|
||||||
timeout = max_rate;
|
timeout = max_rate;
|
||||||
timeout = rate;
|
else
|
||||||
|
timeout = rate;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,11 +22,11 @@ public:
|
||||||
MasterClient(RakNet::RakPeerInterface *peer, std::string queryAddr, unsigned short queryPort);
|
MasterClient(RakNet::RakPeerInterface *peer, std::string queryAddr, unsigned short queryPort);
|
||||||
void SetPlayers(unsigned pl);
|
void SetPlayers(unsigned pl);
|
||||||
void SetMaxPlayers(unsigned pl);
|
void SetMaxPlayers(unsigned pl);
|
||||||
void SetHostname(std::string hostname);
|
void SetHostname(const std::string &hostname);
|
||||||
void SetModname(std::string hostname);
|
void SetModname(const std::string &hostname);
|
||||||
void SetRuleString(std::string key, std::string value);
|
void SetRuleString(const std::string &key, std::string value);
|
||||||
void SetRuleValue(std::string key, double value);
|
void SetRuleValue(const std::string &key, double value);
|
||||||
void PushPlugin(Plugin plugin);
|
void PushPlugin(const Plugin &plugin);
|
||||||
|
|
||||||
bool Process(RakNet::Packet *packet);
|
bool Process(RakNet::Packet *packet);
|
||||||
void Start();
|
void Start();
|
||||||
|
|
|
@ -75,7 +75,7 @@ Networking::~Networking()
|
||||||
delete worldstatePacketController;
|
delete worldstatePacketController;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Networking::setServerPassword(std::string passw) noexcept
|
void Networking::setServerPassword(const std::string &passw) noexcept
|
||||||
{
|
{
|
||||||
serverPassword = passw.empty() ? TES3MP_DEFAULT_PASSW : passw;
|
serverPassword = passw.empty() ? TES3MP_DEFAULT_PASSW : passw;
|
||||||
}
|
}
|
||||||
|
@ -239,7 +239,7 @@ bool Networking::preInit(RakNet::Packet *packet, RakNet::BitStream &bsIn)
|
||||||
auto plugin = plugins.begin();
|
auto plugin = plugins.begin();
|
||||||
if (samples.size() == plugins.size())
|
if (samples.size() == plugins.size())
|
||||||
{
|
{
|
||||||
for (int i = 0; plugin != plugins.end(); plugin++, i++)
|
for (int i = 0; plugin != plugins.end(); ++plugin, i++)
|
||||||
{
|
{
|
||||||
LOG_APPEND(Log::LOG_VERBOSE, "- %X\t%s", plugin->second[0], plugin->first.c_str());
|
LOG_APPEND(Log::LOG_VERBOSE, "- %X\t%s", plugin->second[0], plugin->first.c_str());
|
||||||
// Check if the filenames match, ignoring case
|
// Check if the filenames match, ignoring case
|
||||||
|
@ -311,7 +311,7 @@ void Networking::update(RakNet::Packet *packet, RakNet::BitStream &bsIn)
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_WARN, "Unhandled RakNet packet with identifier %i has arrived", packet->data[0]);
|
LOG_MESSAGE_SIMPLE(Log::LOG_WARN, "Unhandled RakNet packet with identifier %i has arrived", packet->data[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Networking::newPlayer(RakNet::RakNetGUID guid)
|
void Networking::newPlayer(const RakNet::RakNetGUID &guid)
|
||||||
{
|
{
|
||||||
playerPacketController->GetPacket(ID_PLAYER_BASEINFO)->RequestData(guid);
|
playerPacketController->GetPacket(ID_PLAYER_BASEINFO)->RequestData(guid);
|
||||||
playerPacketController->GetPacket(ID_PLAYER_STATS_DYNAMIC)->RequestData(guid);
|
playerPacketController->GetPacket(ID_PLAYER_STATS_DYNAMIC)->RequestData(guid);
|
||||||
|
@ -321,27 +321,27 @@ void Networking::newPlayer(RakNet::RakNetGUID guid)
|
||||||
|
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_WARN, "Sending info about other players to %lu", guid.g);
|
LOG_MESSAGE_SIMPLE(Log::LOG_WARN, "Sending info about other players to %lu", guid.g);
|
||||||
|
|
||||||
for (TPlayers::iterator pl = players->begin(); pl != players->end(); pl++) //sending other players to new player
|
for (auto &player : *players) //sending other players to new player
|
||||||
{
|
{
|
||||||
// If we are iterating over the new player, don't send the packets below
|
// If we are iterating over the new player, don't send the packets below
|
||||||
if (pl->first == guid) continue;
|
if (player.first == guid) continue;
|
||||||
|
|
||||||
// If an invalid key makes it into the Players map, ignore it
|
// If an invalid key makes it into the Players map, ignore it
|
||||||
else if (pl->first == RakNet::UNASSIGNED_CRABNET_GUID) continue;
|
else if (player.first == RakNet::UNASSIGNED_CRABNET_GUID) continue;
|
||||||
|
|
||||||
// if player not fully connected
|
// if player not fully connected
|
||||||
else if (pl->second == nullptr) continue;
|
else if (player.second == nullptr) continue;
|
||||||
|
|
||||||
// If we are iterating over a player who has inputted their name, proceed
|
// If we are iterating over a player who has inputted their name, proceed
|
||||||
else if (pl->second->getLoadState() == Player::POSTLOADED)
|
else if (player.second->getLoadState() == Player::POSTLOADED)
|
||||||
{
|
{
|
||||||
playerPacketController->GetPacket(ID_PLAYER_BASEINFO)->setPlayer(pl->second);
|
playerPacketController->GetPacket(ID_PLAYER_BASEINFO)->setPlayer(player.second);
|
||||||
playerPacketController->GetPacket(ID_PLAYER_STATS_DYNAMIC)->setPlayer(pl->second);
|
playerPacketController->GetPacket(ID_PLAYER_STATS_DYNAMIC)->setPlayer(player.second);
|
||||||
playerPacketController->GetPacket(ID_PLAYER_ATTRIBUTE)->setPlayer(pl->second);
|
playerPacketController->GetPacket(ID_PLAYER_ATTRIBUTE)->setPlayer(player.second);
|
||||||
playerPacketController->GetPacket(ID_PLAYER_SKILL)->setPlayer(pl->second);
|
playerPacketController->GetPacket(ID_PLAYER_SKILL)->setPlayer(player.second);
|
||||||
playerPacketController->GetPacket(ID_PLAYER_POSITION)->setPlayer(pl->second);
|
playerPacketController->GetPacket(ID_PLAYER_POSITION)->setPlayer(player.second);
|
||||||
playerPacketController->GetPacket(ID_PLAYER_CELL_CHANGE)->setPlayer(pl->second);
|
playerPacketController->GetPacket(ID_PLAYER_CELL_CHANGE)->setPlayer(player.second);
|
||||||
playerPacketController->GetPacket(ID_PLAYER_EQUIPMENT)->setPlayer(pl->second);
|
playerPacketController->GetPacket(ID_PLAYER_EQUIPMENT)->setPlayer(player.second);
|
||||||
|
|
||||||
playerPacketController->GetPacket(ID_PLAYER_BASEINFO)->Send(guid);
|
playerPacketController->GetPacket(ID_PLAYER_BASEINFO)->Send(guid);
|
||||||
playerPacketController->GetPacket(ID_PLAYER_STATS_DYNAMIC)->Send(guid);
|
playerPacketController->GetPacket(ID_PLAYER_STATS_DYNAMIC)->Send(guid);
|
||||||
|
@ -357,7 +357,7 @@ void Networking::newPlayer(RakNet::RakNetGUID guid)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Networking::disconnectPlayer(RakNet::RakNetGUID guid)
|
void Networking::disconnectPlayer(const RakNet::RakNetGUID &guid)
|
||||||
{
|
{
|
||||||
Player *player = Players::getPlayer(guid);
|
Player *player = Players::getPlayer(guid);
|
||||||
if (!player)
|
if (!player)
|
||||||
|
@ -452,7 +452,7 @@ Networking *Networking::getPtr()
|
||||||
return sThis;
|
return sThis;
|
||||||
}
|
}
|
||||||
|
|
||||||
RakNet::SystemAddress Networking::getSystemAddress(RakNet::RakNetGUID guid)
|
RakNet::SystemAddress Networking::getSystemAddress(const RakNet::RakNetGUID &guid)
|
||||||
{
|
{
|
||||||
return peer->GetSystemAddressFromGuid(guid);
|
return peer->GetSystemAddressFromGuid(guid);
|
||||||
}
|
}
|
||||||
|
@ -532,7 +532,7 @@ int Networking::mainLoop()
|
||||||
return exitCode;
|
return exitCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Networking::kickPlayer(RakNet::RakNetGUID guid, bool sendNotification)
|
void Networking::kickPlayer(const RakNet::RakNetGUID &guid, bool sendNotification)
|
||||||
{
|
{
|
||||||
peer->CloseConnection(guid, sendNotification);
|
peer->CloseConnection(guid, sendNotification);
|
||||||
}
|
}
|
||||||
|
@ -557,7 +557,7 @@ unsigned int Networking::maxConnections() const
|
||||||
return peer->GetMaximumIncomingConnections();
|
return peer->GetMaximumIncomingConnections();
|
||||||
}
|
}
|
||||||
|
|
||||||
int Networking::getAvgPing(RakNet::AddressOrGUID addr) const
|
int Networking::getAvgPing(const RakNet::AddressOrGUID &addr) const
|
||||||
{
|
{
|
||||||
return peer->GetAveragePing(addr);
|
return peer->GetAveragePing(addr);
|
||||||
}
|
}
|
||||||
|
@ -572,7 +572,7 @@ MasterClient *Networking::getMasterClient()
|
||||||
return mclient;
|
return mclient;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Networking::InitQuery(std::string queryAddr, unsigned short queryPort)
|
void Networking::InitQuery(const std::string &queryAddr, unsigned short queryPort)
|
||||||
{
|
{
|
||||||
mclient = new MasterClient(peer, queryAddr, queryPort);
|
mclient = new MasterClient(peer, queryAddr, queryPort);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,13 +17,13 @@ namespace mwmp
|
||||||
Networking(RakNet::RakPeerInterface *peer);
|
Networking(RakNet::RakPeerInterface *peer);
|
||||||
~Networking();
|
~Networking();
|
||||||
|
|
||||||
void newPlayer(RakNet::RakNetGUID guid);
|
void newPlayer(const RakNet::RakNetGUID &guid);
|
||||||
void disconnectPlayer(RakNet::RakNetGUID guid);
|
void disconnectPlayer(const RakNet::RakNetGUID &guid);
|
||||||
void kickPlayer(RakNet::RakNetGUID guid, bool sendNotification = true);
|
void kickPlayer(const RakNet::RakNetGUID &guid, bool sendNotification = true);
|
||||||
|
|
||||||
void banAddress(const char *ipAddress);
|
void banAddress(const char *ipAddress);
|
||||||
void unbanAddress(const char *ipAddress);
|
void unbanAddress(const char *ipAddress);
|
||||||
RakNet::SystemAddress getSystemAddress(RakNet::RakNetGUID guid);
|
RakNet::SystemAddress getSystemAddress(const RakNet::RakNetGUID &guid);
|
||||||
|
|
||||||
void processPlayerPacket(RakNet::Packet *packet);
|
void processPlayerPacket(RakNet::Packet *packet);
|
||||||
void processActorPacket(RakNet::Packet *packet);
|
void processActorPacket(RakNet::Packet *packet);
|
||||||
|
@ -33,7 +33,7 @@ namespace mwmp
|
||||||
|
|
||||||
unsigned short numberOfConnections() const;
|
unsigned short numberOfConnections() const;
|
||||||
unsigned int maxConnections() const;
|
unsigned int maxConnections() const;
|
||||||
int getAvgPing(RakNet::AddressOrGUID) const;
|
int getAvgPing(const RakNet::AddressOrGUID &) const;
|
||||||
unsigned short getPort() const;
|
unsigned short getPort() const;
|
||||||
|
|
||||||
int mainLoop();
|
int mainLoop();
|
||||||
|
@ -60,8 +60,8 @@ namespace mwmp
|
||||||
void setScriptErrorIgnoringState(bool state);
|
void setScriptErrorIgnoringState(bool state);
|
||||||
|
|
||||||
MasterClient *getMasterClient();
|
MasterClient *getMasterClient();
|
||||||
void InitQuery(std::string queryAddr, unsigned short queryPort);
|
void InitQuery(const std::string &queryAddr, unsigned short queryPort);
|
||||||
void setServerPassword(std::string passw) noexcept;
|
void setServerPassword(const std::string &passw) noexcept;
|
||||||
bool isPassworded() const;
|
bool isPassworded() const;
|
||||||
|
|
||||||
static const Networking &get();
|
static const Networking &get();
|
||||||
|
|
|
@ -10,7 +10,7 @@ TSlots Players::slots;
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
void Players::deletePlayer(RakNet::RakNetGUID guid)
|
void Players::deletePlayer(const RakNet::RakNetGUID &guid)
|
||||||
{
|
{
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_INFO, "Deleting player with guid %lu", guid.g);
|
LOG_MESSAGE_SIMPLE(Log::LOG_INFO, "Deleting player with guid %lu", guid.g);
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ void Players::deletePlayer(RakNet::RakNetGUID guid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Players::newPlayer(RakNet::RakNetGUID guid)
|
void Players::newPlayer(const RakNet::RakNetGUID &guid)
|
||||||
{
|
{
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_INFO, "Creating new player with guid %lu", guid.g);
|
LOG_MESSAGE_SIMPLE(Log::LOG_INFO, "Creating new player with guid %lu", guid.g);
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ void Players::newPlayer(RakNet::RakNetGUID guid)
|
||||||
|
|
||||||
for (unsigned int i = 0; i < mwmp::Networking::get().maxConnections(); i++)
|
for (unsigned int i = 0; i < mwmp::Networking::get().maxConnections(); i++)
|
||||||
{
|
{
|
||||||
if (slots[i] == 0)
|
if (slots[i] == nullptr)
|
||||||
{
|
{
|
||||||
LOG_APPEND(Log::LOG_INFO, "- Storing in slot %i", i);
|
LOG_APPEND(Log::LOG_INFO, "- Storing in slot %i", i);
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ void Players::newPlayer(RakNet::RakNetGUID guid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Player *Players::getPlayer(RakNet::RakNetGUID guid)
|
Player *Players::getPlayer(const RakNet::RakNetGUID &guid)
|
||||||
{
|
{
|
||||||
auto it = players.find(guid);
|
auto it = players.find(guid);
|
||||||
if (it == players.end())
|
if (it == players.end())
|
||||||
|
@ -70,7 +70,7 @@ unsigned short Players::getLastPlayerId()
|
||||||
return slots.rbegin()->first;
|
return slots.rbegin()->first;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player::Player(RakNet::RakNetGUID guid) : BasePlayer(guid)
|
Player::Player(const RakNet::RakNetGUID &guid) : BasePlayer(guid), id(InvalidID)
|
||||||
{
|
{
|
||||||
handshakeCounter = 0;
|
handshakeCounter = 0;
|
||||||
loadState = NOTLOADED;
|
loadState = NOTLOADED;
|
||||||
|
@ -81,7 +81,7 @@ Player::~Player()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short Player::getId()
|
unsigned int Player::getId()
|
||||||
{
|
{
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
@ -177,7 +177,7 @@ void Player::forEachLoaded(std::function<void(Player *pl, Player *other)> func)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Players::doesPlayerExist(RakNet::RakNetGUID guid)
|
bool Players::doesPlayerExist(const RakNet::RakNetGUID &guid)
|
||||||
{
|
{
|
||||||
return players.find(guid) != players.end();
|
return players.find(guid) != players.end();
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,13 +28,13 @@ typedef std::map<unsigned short, Player*> TSlots;
|
||||||
class Players
|
class Players
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static void newPlayer(RakNet::RakNetGUID guid);
|
static void newPlayer(const RakNet::RakNetGUID &guid);
|
||||||
static void deletePlayer(RakNet::RakNetGUID guid);
|
static void deletePlayer(const RakNet::RakNetGUID &guid);
|
||||||
static Player *getPlayer(RakNet::RakNetGUID guid);
|
static Player *getPlayer(const RakNet::RakNetGUID &guid);
|
||||||
static Player *getPlayer(unsigned short id);
|
static Player *getPlayer(unsigned short id);
|
||||||
static TPlayers *getPlayers();
|
static TPlayers *getPlayers();
|
||||||
static unsigned short getLastPlayerId();
|
static unsigned short getLastPlayerId();
|
||||||
static bool doesPlayerExist(RakNet::RakNetGUID guid);
|
static bool doesPlayerExist(const RakNet::RakNetGUID &guid);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static TPlayers players;
|
static TPlayers players;
|
||||||
|
@ -44,9 +44,8 @@ private:
|
||||||
class Player : public mwmp::BasePlayer
|
class Player : public mwmp::BasePlayer
|
||||||
{
|
{
|
||||||
friend class Cell;
|
friend class Cell;
|
||||||
unsigned short id;
|
|
||||||
public:
|
public:
|
||||||
|
const unsigned int InvalidID = (unsigned int) -1;
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
NOTLOADED=0,
|
NOTLOADED=0,
|
||||||
|
@ -54,9 +53,9 @@ public:
|
||||||
POSTLOADED,
|
POSTLOADED,
|
||||||
KICKED
|
KICKED
|
||||||
};
|
};
|
||||||
Player(RakNet::RakNetGUID guid);
|
Player(const RakNet::RakNetGUID &guid);
|
||||||
|
|
||||||
unsigned short getId();
|
unsigned int getId();
|
||||||
void setId(unsigned short id);
|
void setId(unsigned short id);
|
||||||
|
|
||||||
bool isHandshaked();
|
bool isHandshaked();
|
||||||
|
@ -78,6 +77,7 @@ private:
|
||||||
CellController::TContainer cells;
|
CellController::TContainer cells;
|
||||||
int loadState;
|
int loadState;
|
||||||
int handshakeCounter;
|
int handshakeCounter;
|
||||||
|
unsigned int id;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -19,11 +19,21 @@ Public::Public(ScriptFunc _public, const std::string &name, char ret_type, const
|
||||||
publics.emplace(name, this);
|
publics.emplace(name, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_LUA
|
||||||
Public::Public(ScriptFuncLua _public, lua_State *lua, const std::string &name, char ret_type, const std::string &def) : ScriptFunction(
|
Public::Public(ScriptFuncLua _public, lua_State *lua, const std::string &name, char ret_type, const std::string &def) : ScriptFunction(
|
||||||
_public, lua, ret_type, def)
|
_public, lua, ret_type, def)
|
||||||
{
|
{
|
||||||
publics.emplace(name, this);
|
publics.emplace(name, this);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_MONO
|
||||||
|
Public::Public(MonoObject *delegate, const std::string &name, char ret_type, const std::string &def) :
|
||||||
|
ScriptFunction(delegate, ret_type, def)
|
||||||
|
{
|
||||||
|
publics.emplace(name, this);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
boost::any Public::Call(const std::string &name, const std::vector<boost::any> &args)
|
boost::any Public::Call(const std::string &name, const std::vector<boost::any> &args)
|
||||||
{
|
{
|
||||||
|
@ -45,6 +55,15 @@ const std::string &Public::GetDefinition(const std::string &name)
|
||||||
return it->second->def;
|
return it->second->def;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Public *Public::GetPublic(const std::string &name)
|
||||||
|
{
|
||||||
|
auto it = publics.find(name);
|
||||||
|
|
||||||
|
if (it == publics.end())
|
||||||
|
throw runtime_error("Public with name \"" + name + "\" does not exist");
|
||||||
|
return it->second;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Public::IsLua(const std::string &name)
|
bool Public::IsLua(const std::string &name)
|
||||||
{
|
{
|
||||||
|
@ -61,7 +80,7 @@ bool Public::IsLua(const std::string &name)
|
||||||
|
|
||||||
void Public::DeleteAll()
|
void Public::DeleteAll()
|
||||||
{
|
{
|
||||||
for (auto it = publics.begin(); it != publics.end(); it++)
|
for (auto it = publics.begin(); it != publics.end(); ++it)
|
||||||
{
|
{
|
||||||
Public *_public = it->second;
|
Public *_public = it->second;
|
||||||
delete _public;
|
delete _public;
|
||||||
|
|
|
@ -20,6 +20,9 @@ private:
|
||||||
#if defined(ENABLE_LUA)
|
#if defined(ENABLE_LUA)
|
||||||
Public(ScriptFuncLua _public, lua_State *lua, const std::string &name, char ret_type, const std::string &def);
|
Public(ScriptFuncLua _public, lua_State *lua, const std::string &name, char ret_type, const std::string &def);
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(ENABLE_MONO)
|
||||||
|
Public(MonoObject *delegate, const std::string &name, char ret_type, const std::string &def);
|
||||||
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
|
@ -30,6 +33,8 @@ public:
|
||||||
|
|
||||||
static const std::string& GetDefinition(const std::string& name);
|
static const std::string& GetDefinition(const std::string& name);
|
||||||
|
|
||||||
|
static Public * GetPublic(const std::string& name);
|
||||||
|
|
||||||
static bool IsLua(const std::string &name);
|
static bool IsLua(const std::string &name);
|
||||||
|
|
||||||
static void DeleteAll();
|
static void DeleteAll();
|
||||||
|
|
|
@ -10,18 +10,27 @@
|
||||||
using namespace mwmp;
|
using namespace mwmp;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
Timer::Timer(ScriptFunc callback, long msec, const std::string& def, std::vector<boost::any> args) : ScriptFunction(callback, 'v', def)
|
Timer::Timer(ScriptFunc callback, long msec, const std::string& def, std::vector<boost::any> args) : ScriptFunction(callback, 'v', def), args(args)
|
||||||
{
|
{
|
||||||
|
startTime = 0;
|
||||||
targetMsec = msec;
|
targetMsec = msec;
|
||||||
this->args = args;
|
|
||||||
end = true;
|
end = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(ENABLE_LUA)
|
#if defined(ENABLE_LUA)
|
||||||
Timer::Timer(lua_State *lua, ScriptFuncLua callback, long msec, const std::string& def, std::vector<boost::any> args): ScriptFunction(callback, lua, 'v', def)
|
Timer::Timer(lua_State *lua, ScriptFuncLua callback, long msec, const std::string& def, std::vector<boost::any> args): ScriptFunction(callback, lua, 'v', def), args(args)
|
||||||
{
|
{
|
||||||
|
startTime = 0;
|
||||||
|
targetMsec = msec;
|
||||||
|
end = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_MONO
|
||||||
|
Timer::Timer(MonoObject *callback, long msec, const std::string &def, std::vector<boost::any> args) : ScriptFunction(callback, 'v', def), args(args)
|
||||||
|
{
|
||||||
|
startTime = 0;
|
||||||
targetMsec = msec;
|
targetMsec = msec;
|
||||||
this->args = args;
|
|
||||||
end = true;
|
end = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -93,8 +102,30 @@ int TimerAPI::CreateTimerLua(lua_State *lua, ScriptFuncLua callback, long msec,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(ENABLE_MONO)
|
||||||
|
int TimerAPI::CreateTimerMono(MonoObject *callback, long msec, const std::string& def, std::vector<boost::any> args)
|
||||||
|
{
|
||||||
|
int id = -1;
|
||||||
|
|
||||||
int TimerAPI::CreateTimer(ScriptFunc callback, long msec, const std::string &def, std::vector<boost::any> args)
|
for (auto timer : timers)
|
||||||
|
{
|
||||||
|
if (timer.second != nullptr)
|
||||||
|
continue;
|
||||||
|
timer.second = new Timer(callback, msec, def, args);
|
||||||
|
id = timer.first;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (id == -1)
|
||||||
|
{
|
||||||
|
timers[pointer] = new Timer(callback, msec, def, args);
|
||||||
|
id = pointer;
|
||||||
|
pointer++;
|
||||||
|
}
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int TimerAPI::CreateTimer(ScriptFunc callback, long msec, const std::string &def, const std::vector<boost::any> &args)
|
||||||
{
|
{
|
||||||
int id = -1;
|
int id = -1;
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,10 @@
|
||||||
#include <Script/Script.hpp>
|
#include <Script/Script.hpp>
|
||||||
#include <Script/ScriptFunction.hpp>
|
#include <Script/ScriptFunction.hpp>
|
||||||
|
|
||||||
|
#ifdef ENABLE_MONO
|
||||||
|
#include <mono/metadata/object.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace mwmp
|
namespace mwmp
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -24,6 +28,9 @@ namespace mwmp
|
||||||
Timer(ScriptFunc callback, long msec, const std::string& def, std::vector<boost::any> args);
|
Timer(ScriptFunc callback, long msec, const std::string& def, std::vector<boost::any> args);
|
||||||
#if defined(ENABLE_LUA)
|
#if defined(ENABLE_LUA)
|
||||||
Timer(lua_State *lua, ScriptFuncLua callback, long msec, const std::string& def, std::vector<boost::any> args);
|
Timer(lua_State *lua, ScriptFuncLua callback, long msec, const std::string& def, std::vector<boost::any> args);
|
||||||
|
#endif
|
||||||
|
#ifdef ENABLE_MONO
|
||||||
|
Timer(MonoObject *callback, long msec, const std::string& def, std::vector<boost::any> args);
|
||||||
#endif
|
#endif
|
||||||
void Tick();
|
void Tick();
|
||||||
|
|
||||||
|
@ -33,9 +40,9 @@ namespace mwmp
|
||||||
void Restart(int msec);
|
void Restart(int msec);
|
||||||
private:
|
private:
|
||||||
double startTime, targetMsec;
|
double startTime, targetMsec;
|
||||||
std::string publ, arg_types;
|
//std::string publ, arg_types;
|
||||||
std::vector<boost::any> args;
|
std::vector<boost::any> args;
|
||||||
Script *scr;
|
//Script *scr;
|
||||||
bool end;
|
bool end;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -45,7 +52,10 @@ namespace mwmp
|
||||||
#if defined(ENABLE_LUA)
|
#if defined(ENABLE_LUA)
|
||||||
static int CreateTimerLua(lua_State *lua, ScriptFuncLua callback, long msec, const std::string& def, std::vector<boost::any> args);
|
static int CreateTimerLua(lua_State *lua, ScriptFuncLua callback, long msec, const std::string& def, std::vector<boost::any> args);
|
||||||
#endif
|
#endif
|
||||||
static int CreateTimer(ScriptFunc callback, long msec, const std::string& def, std::vector<boost::any> args);
|
#if defined(ENABLE_MONO)
|
||||||
|
static int CreateTimerMono(MonoObject *callback, long msec, const std::string& def, std::vector<boost::any> args);
|
||||||
|
#endif
|
||||||
|
static int CreateTimer(ScriptFunc callback, long msec, const std::string& def, const std::vector<boost::any> &args);
|
||||||
static void FreeTimer(int timerid);
|
static void FreeTimer(int timerid);
|
||||||
static void ResetTimer(int timerid, long msec);
|
static void ResetTimer(int timerid, long msec);
|
||||||
static void StartTimer(int timerid);
|
static void StartTimer(int timerid);
|
||||||
|
|
|
@ -20,25 +20,25 @@ const BaseActor emptyActor = {};
|
||||||
|
|
||||||
static std::string tempCellDescription;
|
static std::string tempCellDescription;
|
||||||
|
|
||||||
void ActorFunctions::ReadReceivedActorList() noexcept
|
extern "C" void ActorFunctions::ReadReceivedActorList() noexcept
|
||||||
{
|
{
|
||||||
readActorList = mwmp::Networking::getPtr()->getReceivedActorList();
|
readActorList = mwmp::Networking::getPtr()->getReceivedActorList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::ReadCellActorList(const char* cellDescription) noexcept
|
extern "C" void ActorFunctions::ReadCellActorList(const char* cellDescription) noexcept
|
||||||
{
|
{
|
||||||
ESM::Cell esmCell = Utils::getCellFromDescription(cellDescription);
|
ESM::Cell esmCell = Utils::getCellFromDescription(cellDescription);
|
||||||
Cell *serverCell = CellController::get()->getCell(&esmCell);
|
Cell *serverCell = CellController::get()->getCell(&esmCell);
|
||||||
readActorList = serverCell->getActorList();
|
readActorList = serverCell->getActorList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::ClearActorList() noexcept
|
extern "C" void ActorFunctions::ClearActorList() noexcept
|
||||||
{
|
{
|
||||||
writeActorList.cell.blank();
|
writeActorList.cell.blank();
|
||||||
writeActorList.baseActors.clear();
|
writeActorList.baseActors.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorListPid(unsigned short pid) noexcept
|
extern "C" void ActorFunctions::SetActorListPid(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -46,143 +46,143 @@ void ActorFunctions::SetActorListPid(unsigned short pid) noexcept
|
||||||
writeActorList.guid = player->guid;
|
writeActorList.guid = player->guid;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::CopyReceivedActorListToStore() noexcept
|
extern "C" void ActorFunctions::CopyReceivedActorListToStore() noexcept
|
||||||
{
|
{
|
||||||
writeActorList = *readActorList;
|
writeActorList = *readActorList;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ActorFunctions::GetActorListSize() noexcept
|
extern "C" unsigned int ActorFunctions::GetActorListSize() noexcept
|
||||||
{
|
{
|
||||||
return readActorList->count;
|
return readActorList->count;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char ActorFunctions::GetActorListAction() noexcept
|
extern "C" unsigned char ActorFunctions::GetActorListAction() noexcept
|
||||||
{
|
{
|
||||||
return readActorList->action;
|
return readActorList->action;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ActorFunctions::GetActorCell(unsigned int index) noexcept
|
extern "C" const char *ActorFunctions::GetActorCell(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
tempCellDescription = readActorList->baseActors.at(index).cell.getDescription();
|
tempCellDescription = readActorList->baseActors.at(index).cell.getDescription();
|
||||||
return tempCellDescription.c_str();
|
return tempCellDescription.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ActorFunctions::GetActorRefId(unsigned int index) noexcept
|
extern "C" const char *ActorFunctions::GetActorRefId(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).refId.c_str();
|
return readActorList->baseActors.at(index).refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ActorFunctions::GetActorRefNum(unsigned int index) noexcept
|
extern "C" unsigned int ActorFunctions::GetActorRefNum(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).refNum;
|
return readActorList->baseActors.at(index).refNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ActorFunctions::GetActorMpNum(unsigned int index) noexcept
|
extern "C" unsigned int ActorFunctions::GetActorMpNum(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).mpNum;
|
return readActorList->baseActors.at(index).mpNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorPosX(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorPosX(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).position.pos[0];
|
return readActorList->baseActors.at(index).position.pos[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorPosY(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorPosY(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).position.pos[1];
|
return readActorList->baseActors.at(index).position.pos[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorPosZ(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorPosZ(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).position.pos[2];
|
return readActorList->baseActors.at(index).position.pos[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorRotX(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorRotX(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).position.rot[0];
|
return readActorList->baseActors.at(index).position.rot[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorRotY(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorRotY(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).position.rot[1];
|
return readActorList->baseActors.at(index).position.rot[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorRotZ(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorRotZ(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).position.rot[2];
|
return readActorList->baseActors.at(index).position.rot[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorHealthBase(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorHealthBase(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).creatureStats.mDynamic[0].mBase;
|
return readActorList->baseActors.at(index).creatureStats.mDynamic[0].mBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorHealthCurrent(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorHealthCurrent(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).creatureStats.mDynamic[0].mCurrent;
|
return readActorList->baseActors.at(index).creatureStats.mDynamic[0].mCurrent;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorHealthModified(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorHealthModified(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).creatureStats.mDynamic[0].mMod;
|
return readActorList->baseActors.at(index).creatureStats.mDynamic[0].mMod;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorMagickaBase(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorMagickaBase(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).creatureStats.mDynamic[1].mBase;
|
return readActorList->baseActors.at(index).creatureStats.mDynamic[1].mBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorMagickaCurrent(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorMagickaCurrent(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).creatureStats.mDynamic[1].mCurrent;
|
return readActorList->baseActors.at(index).creatureStats.mDynamic[1].mCurrent;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorMagickaModified(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorMagickaModified(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).creatureStats.mDynamic[1].mMod;
|
return readActorList->baseActors.at(index).creatureStats.mDynamic[1].mMod;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorFatigueBase(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorFatigueBase(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).creatureStats.mDynamic[2].mBase;
|
return readActorList->baseActors.at(index).creatureStats.mDynamic[2].mBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorFatigueCurrent(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorFatigueCurrent(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).creatureStats.mDynamic[2].mCurrent;
|
return readActorList->baseActors.at(index).creatureStats.mDynamic[2].mCurrent;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorFatigueModified(unsigned int index) noexcept
|
extern "C" double ActorFunctions::GetActorFatigueModified(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).creatureStats.mDynamic[2].mMod;
|
return readActorList->baseActors.at(index).creatureStats.mDynamic[2].mMod;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ActorFunctions::GetActorEquipmentItemRefId(unsigned int index, unsigned short slot) noexcept
|
extern "C" const char *ActorFunctions::GetActorEquipmentItemRefId(unsigned int index, unsigned short slot) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).equipmentItems[slot].refId.c_str();
|
return readActorList->baseActors.at(index).equipmentItems[slot].refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int ActorFunctions::GetActorEquipmentItemCount(unsigned int index, unsigned short slot) noexcept
|
extern "C" int ActorFunctions::GetActorEquipmentItemCount(unsigned int index, unsigned short slot) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).equipmentItems[slot].count;
|
return readActorList->baseActors.at(index).equipmentItems[slot].count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ActorFunctions::GetActorEquipmentItemCharge(unsigned int index, unsigned short slot) noexcept
|
extern "C" int ActorFunctions::GetActorEquipmentItemCharge(unsigned int index, unsigned short slot) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).equipmentItems[slot].charge;
|
return readActorList->baseActors.at(index).equipmentItems[slot].charge;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ActorFunctions::GetActorEquipmentItemEnchantmentCharge(unsigned int index, unsigned short slot) noexcept
|
extern "C" double ActorFunctions::GetActorEquipmentItemEnchantmentCharge(unsigned int index, unsigned short slot) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).equipmentItems[slot].enchantmentCharge;
|
return readActorList->baseActors.at(index).equipmentItems[slot].enchantmentCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ActorFunctions::DoesActorHavePlayerKiller(unsigned int index) noexcept
|
extern "C" bool ActorFunctions::DoesActorHavePlayerKiller(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).killer.isPlayer;
|
return readActorList->baseActors.at(index).killer.isPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ActorFunctions::GetActorKillerPid(unsigned int index) noexcept
|
extern "C" int ActorFunctions::GetActorKillerPid(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player = Players::getPlayer(readActorList->baseActors.at(index).killer.guid);
|
Player *player = Players::getPlayer(readActorList->baseActors.at(index).killer.guid);
|
||||||
|
|
||||||
|
@ -192,136 +192,136 @@ int ActorFunctions::GetActorKillerPid(unsigned int index) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ActorFunctions::GetActorKillerRefId(unsigned int index) noexcept
|
extern "C" const char *ActorFunctions::GetActorKillerRefId(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).killer.refId.c_str();
|
return readActorList->baseActors.at(index).killer.refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ActorFunctions::GetActorKillerRefNum(unsigned int index) noexcept
|
extern "C" unsigned int ActorFunctions::GetActorKillerRefNum(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).killer.refNum;
|
return readActorList->baseActors.at(index).killer.refNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ActorFunctions::GetActorKillerMpNum(unsigned int index) noexcept
|
extern "C" unsigned int ActorFunctions::GetActorKillerMpNum(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).killer.mpNum;
|
return readActorList->baseActors.at(index).killer.mpNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ActorFunctions::GetActorKillerName(unsigned int index) noexcept
|
extern "C" const char *ActorFunctions::GetActorKillerName(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).killer.name.c_str();
|
return readActorList->baseActors.at(index).killer.name.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ActorFunctions::DoesActorHavePosition(unsigned int index) noexcept
|
extern "C" bool ActorFunctions::DoesActorHavePosition(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).hasPositionData;
|
return readActorList->baseActors.at(index).hasPositionData;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ActorFunctions::DoesActorHaveStatsDynamic(unsigned int index) noexcept
|
extern "C" bool ActorFunctions::DoesActorHaveStatsDynamic(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readActorList->baseActors.at(index).hasStatsDynamicData;
|
return readActorList->baseActors.at(index).hasStatsDynamicData;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorListCell(const char* cellDescription) noexcept
|
extern "C" void ActorFunctions::SetActorListCell(const char* cellDescription) noexcept
|
||||||
{
|
{
|
||||||
writeActorList.cell = Utils::getCellFromDescription(cellDescription);
|
writeActorList.cell = Utils::getCellFromDescription(cellDescription);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorListAction(unsigned char action) noexcept
|
extern "C" void ActorFunctions::SetActorListAction(unsigned char action) noexcept
|
||||||
{
|
{
|
||||||
writeActorList.action = action;
|
writeActorList.action = action;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorCell(const char* cellDescription) noexcept
|
extern "C" void ActorFunctions::SetActorCell(const char* cellDescription) noexcept
|
||||||
{
|
{
|
||||||
tempActor.cell = Utils::getCellFromDescription(cellDescription);
|
tempActor.cell = Utils::getCellFromDescription(cellDescription);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorRefId(const char* refId) noexcept
|
extern "C" void ActorFunctions::SetActorRefId(const char* refId) noexcept
|
||||||
{
|
{
|
||||||
tempActor.refId = refId;
|
tempActor.refId = refId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorRefNum(int refNum) noexcept
|
extern "C" void ActorFunctions::SetActorRefNum(int refNum) noexcept
|
||||||
{
|
{
|
||||||
tempActor.refNum = refNum;
|
tempActor.refNum = refNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorMpNum(int mpNum) noexcept
|
extern "C" void ActorFunctions::SetActorMpNum(int mpNum) noexcept
|
||||||
{
|
{
|
||||||
tempActor.mpNum = mpNum;
|
tempActor.mpNum = mpNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorPosition(double x, double y, double z) noexcept
|
extern "C" void ActorFunctions::SetActorPosition(double x, double y, double z) noexcept
|
||||||
{
|
{
|
||||||
tempActor.position.pos[0] = x;
|
tempActor.position.pos[0] = x;
|
||||||
tempActor.position.pos[1] = y;
|
tempActor.position.pos[1] = y;
|
||||||
tempActor.position.pos[2] = z;
|
tempActor.position.pos[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorRotation(double x, double y, double z) noexcept
|
extern "C" void ActorFunctions::SetActorRotation(double x, double y, double z) noexcept
|
||||||
{
|
{
|
||||||
tempActor.position.rot[0] = x;
|
tempActor.position.rot[0] = x;
|
||||||
tempActor.position.rot[1] = y;
|
tempActor.position.rot[1] = y;
|
||||||
tempActor.position.rot[2] = z;
|
tempActor.position.rot[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorHealthBase(double value) noexcept
|
extern "C" void ActorFunctions::SetActorHealthBase(double value) noexcept
|
||||||
{
|
{
|
||||||
tempActor.creatureStats.mDynamic[0].mBase = value;
|
tempActor.creatureStats.mDynamic[0].mBase = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorHealthCurrent(double value) noexcept
|
extern "C" void ActorFunctions::SetActorHealthCurrent(double value) noexcept
|
||||||
{
|
{
|
||||||
tempActor.creatureStats.mDynamic[0].mCurrent = value;
|
tempActor.creatureStats.mDynamic[0].mCurrent = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorHealthModified(double value) noexcept
|
extern "C" void ActorFunctions::SetActorHealthModified(double value) noexcept
|
||||||
{
|
{
|
||||||
tempActor.creatureStats.mDynamic[0].mMod = value;
|
tempActor.creatureStats.mDynamic[0].mMod = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorMagickaBase(double value) noexcept
|
extern "C" void ActorFunctions::SetActorMagickaBase(double value) noexcept
|
||||||
{
|
{
|
||||||
tempActor.creatureStats.mDynamic[1].mBase = value;
|
tempActor.creatureStats.mDynamic[1].mBase = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorMagickaCurrent(double value) noexcept
|
extern "C" void ActorFunctions::SetActorMagickaCurrent(double value) noexcept
|
||||||
{
|
{
|
||||||
tempActor.creatureStats.mDynamic[1].mCurrent = value;
|
tempActor.creatureStats.mDynamic[1].mCurrent = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorMagickaModified(double value) noexcept
|
extern "C" void ActorFunctions::SetActorMagickaModified(double value) noexcept
|
||||||
{
|
{
|
||||||
tempActor.creatureStats.mDynamic[1].mMod = value;
|
tempActor.creatureStats.mDynamic[1].mMod = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorFatigueBase(double value) noexcept
|
extern "C" void ActorFunctions::SetActorFatigueBase(double value) noexcept
|
||||||
{
|
{
|
||||||
tempActor.creatureStats.mDynamic[2].mBase = value;
|
tempActor.creatureStats.mDynamic[2].mBase = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorFatigueCurrent(double value) noexcept
|
extern "C" void ActorFunctions::SetActorFatigueCurrent(double value) noexcept
|
||||||
{
|
{
|
||||||
tempActor.creatureStats.mDynamic[2].mCurrent = value;
|
tempActor.creatureStats.mDynamic[2].mCurrent = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorFatigueModified(double value) noexcept
|
extern "C" void ActorFunctions::SetActorFatigueModified(double value) noexcept
|
||||||
{
|
{
|
||||||
tempActor.creatureStats.mDynamic[2].mMod = value;
|
tempActor.creatureStats.mDynamic[2].mMod = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorSound(const char* sound) noexcept
|
extern "C" void ActorFunctions::SetActorSound(const char* sound) noexcept
|
||||||
{
|
{
|
||||||
tempActor.sound = sound;
|
tempActor.sound = sound;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorAIAction(unsigned int action) noexcept
|
extern "C" void ActorFunctions::SetActorAIAction(unsigned int action) noexcept
|
||||||
{
|
{
|
||||||
tempActor.aiAction = action;
|
tempActor.aiAction = action;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorAITargetToPlayer(unsigned short pid) noexcept
|
extern "C" void ActorFunctions::SetActorAITargetToPlayer(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -332,7 +332,7 @@ void ActorFunctions::SetActorAITargetToPlayer(unsigned short pid) noexcept
|
||||||
tempActor.aiTarget.guid = player->guid;
|
tempActor.aiTarget.guid = player->guid;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorAITargetToObject(int refNum, int mpNum) noexcept
|
extern "C" void ActorFunctions::SetActorAITargetToObject(int refNum, int mpNum) noexcept
|
||||||
{
|
{
|
||||||
tempActor.hasAiTarget = true;
|
tempActor.hasAiTarget = true;
|
||||||
tempActor.aiTarget.isPlayer = false;
|
tempActor.aiTarget.isPlayer = false;
|
||||||
|
@ -341,29 +341,29 @@ void ActorFunctions::SetActorAITargetToObject(int refNum, int mpNum) noexcept
|
||||||
tempActor.aiTarget.mpNum = mpNum;
|
tempActor.aiTarget.mpNum = mpNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorAICoordinates(double x, double y, double z) noexcept
|
extern "C" void ActorFunctions::SetActorAICoordinates(double x, double y, double z) noexcept
|
||||||
{
|
{
|
||||||
tempActor.aiCoordinates.pos[0] = x;
|
tempActor.aiCoordinates.pos[0] = x;
|
||||||
tempActor.aiCoordinates.pos[1] = y;
|
tempActor.aiCoordinates.pos[1] = y;
|
||||||
tempActor.aiCoordinates.pos[2] = z;
|
tempActor.aiCoordinates.pos[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorAIDistance(unsigned int distance) noexcept
|
extern "C" void ActorFunctions::SetActorAIDistance(unsigned int distance) noexcept
|
||||||
{
|
{
|
||||||
tempActor.aiDistance = distance;
|
tempActor.aiDistance = distance;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorAIDuration(unsigned int duration) noexcept
|
extern "C" void ActorFunctions::SetActorAIDuration(unsigned int duration) noexcept
|
||||||
{
|
{
|
||||||
tempActor.aiDuration = duration;
|
tempActor.aiDuration = duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorAIRepetition(bool shouldRepeat) noexcept
|
extern "C" void ActorFunctions::SetActorAIRepetition(bool shouldRepeat) noexcept
|
||||||
{
|
{
|
||||||
tempActor.aiShouldRepeat = shouldRepeat;
|
tempActor.aiShouldRepeat = shouldRepeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::EquipActorItem(unsigned short slot, const char *refId, unsigned int count, int charge, double enchantmentCharge) noexcept
|
extern "C" void ActorFunctions::EquipActorItem(unsigned short slot, const char *refId, unsigned int count, int charge, double enchantmentCharge) noexcept
|
||||||
{
|
{
|
||||||
tempActor.equipmentItems[slot].refId = refId;
|
tempActor.equipmentItems[slot].refId = refId;
|
||||||
tempActor.equipmentItems[slot].count = count;
|
tempActor.equipmentItems[slot].count = count;
|
||||||
|
@ -371,26 +371,26 @@ void ActorFunctions::EquipActorItem(unsigned short slot, const char *refId, unsi
|
||||||
tempActor.equipmentItems[slot].enchantmentCharge = enchantmentCharge;
|
tempActor.equipmentItems[slot].enchantmentCharge = enchantmentCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::UnequipActorItem(unsigned short slot) noexcept
|
extern "C" void ActorFunctions::UnequipActorItem(unsigned short slot) noexcept
|
||||||
{
|
{
|
||||||
ActorFunctions::EquipActorItem(slot, "", 0, -1, -1);
|
ActorFunctions::EquipActorItem(slot, "", 0, -1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::AddActor() noexcept
|
extern "C" void ActorFunctions::AddActor() noexcept
|
||||||
{
|
{
|
||||||
writeActorList.baseActors.push_back(tempActor);
|
writeActorList.baseActors.push_back(tempActor);
|
||||||
|
|
||||||
tempActor = emptyActor;
|
tempActor = emptyActor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SendActorList() noexcept
|
extern "C" void ActorFunctions::SendActorList() noexcept
|
||||||
{
|
{
|
||||||
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_LIST);
|
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_LIST);
|
||||||
actorPacket->setActorList(&writeActorList);
|
actorPacket->setActorList(&writeActorList);
|
||||||
actorPacket->Send(writeActorList.guid);
|
actorPacket->Send(writeActorList.guid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SendActorAuthority() noexcept
|
extern "C" void ActorFunctions::SendActorAuthority() noexcept
|
||||||
{
|
{
|
||||||
Cell *serverCell = CellController::get()->getCell(&writeActorList.cell);
|
Cell *serverCell = CellController::get()->getCell(&writeActorList.cell);
|
||||||
|
|
||||||
|
@ -407,7 +407,7 @@ void ActorFunctions::SendActorAuthority() noexcept
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SendActorPosition(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
extern "C" void ActorFunctions::SendActorPosition(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_POSITION);
|
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_POSITION);
|
||||||
actorPacket->setActorList(&writeActorList);
|
actorPacket->setActorList(&writeActorList);
|
||||||
|
@ -426,7 +426,7 @@ void ActorFunctions::SendActorPosition(bool sendToOtherVisitors, bool skipAttach
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SendActorStatsDynamic(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
extern "C" void ActorFunctions::SendActorStatsDynamic(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_STATS_DYNAMIC);
|
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_STATS_DYNAMIC);
|
||||||
actorPacket->setActorList(&writeActorList);
|
actorPacket->setActorList(&writeActorList);
|
||||||
|
@ -445,7 +445,7 @@ void ActorFunctions::SendActorStatsDynamic(bool sendToOtherVisitors, bool skipAt
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SendActorEquipment(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
extern "C" void ActorFunctions::SendActorEquipment(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_EQUIPMENT);
|
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_EQUIPMENT);
|
||||||
actorPacket->setActorList(&writeActorList);
|
actorPacket->setActorList(&writeActorList);
|
||||||
|
@ -464,7 +464,7 @@ void ActorFunctions::SendActorEquipment(bool sendToOtherVisitors, bool skipAttac
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SendActorSpeech(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
extern "C" void ActorFunctions::SendActorSpeech(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_SPEECH);
|
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_SPEECH);
|
||||||
actorPacket->setActorList(&writeActorList);
|
actorPacket->setActorList(&writeActorList);
|
||||||
|
@ -483,7 +483,7 @@ void ActorFunctions::SendActorSpeech(bool sendToOtherVisitors, bool skipAttached
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SendActorAI(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
extern "C" void ActorFunctions::SendActorAI(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_AI);
|
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_AI);
|
||||||
actorPacket->setActorList(&writeActorList);
|
actorPacket->setActorList(&writeActorList);
|
||||||
|
@ -502,7 +502,7 @@ void ActorFunctions::SendActorAI(bool sendToOtherVisitors, bool skipAttachedPlay
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SendActorCellChange(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
extern "C" void ActorFunctions::SendActorCellChange(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_CELL_CHANGE);
|
mwmp::ActorPacket *actorPacket = mwmp::Networking::get().getActorPacketController()->GetPacket(ID_ACTOR_CELL_CHANGE);
|
||||||
actorPacket->setActorList(&writeActorList);
|
actorPacket->setActorList(&writeActorList);
|
||||||
|
@ -521,36 +521,35 @@ void ActorFunctions::SendActorCellChange(bool sendToOtherVisitors, bool skipAtta
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" // All methods below are deprecated versions of methods from above
|
||||||
// All methods below are deprecated versions of methods from above
|
|
||||||
|
|
||||||
void ActorFunctions::ReadLastActorList() noexcept
|
void ActorFunctions::ReadLastActorList() noexcept
|
||||||
{
|
{
|
||||||
ReadReceivedActorList();
|
ReadReceivedActorList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::InitializeActorList(unsigned short pid) noexcept
|
extern "C" void ActorFunctions::InitializeActorList(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
ClearActorList();
|
ClearActorList();
|
||||||
SetActorListPid(pid);
|
SetActorListPid(pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::CopyLastActorListToStore() noexcept
|
extern "C" void ActorFunctions::CopyLastActorListToStore() noexcept
|
||||||
{
|
{
|
||||||
CopyLastActorListToStore();
|
CopyLastActorListToStore();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ActorFunctions::GetActorRefNumIndex(unsigned int index) noexcept
|
extern "C" unsigned int ActorFunctions::GetActorRefNumIndex(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return GetActorRefNum(index);
|
return GetActorRefNum(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ActorFunctions::GetActorKillerRefNumIndex(unsigned int index) noexcept
|
extern "C" unsigned int ActorFunctions::GetActorKillerRefNumIndex(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return GetActorKillerRefNum(index);
|
return GetActorKillerRefNum(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActorFunctions::SetActorRefNumIndex(int refNum) noexcept
|
extern "C" void ActorFunctions::SetActorRefNumIndex(int refNum) noexcept
|
||||||
{
|
{
|
||||||
tempActor.refNum = refNum;
|
tempActor.refNum = refNum;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef OPENMW_ACTORAPI_HPP
|
#ifndef OPENMW_ACTORAPI_HPP
|
||||||
#define OPENMW_ACTORAPI_HPP
|
#define OPENMW_ACTORAPI_HPP
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define ACTORAPI \
|
#define ACTORAPI \
|
||||||
{"ReadReceivedActorList", ActorFunctions::ReadReceivedActorList},\
|
{"ReadReceivedActorList", ActorFunctions::ReadReceivedActorList},\
|
||||||
{"ReadCellActorList", ActorFunctions::ReadCellActorList},\
|
{"ReadCellActorList", ActorFunctions::ReadCellActorList},\
|
||||||
|
@ -102,16 +104,14 @@
|
||||||
{"GetActorKillerRefNumIndex", ActorFunctions::GetActorKillerRefNumIndex},\
|
{"GetActorKillerRefNumIndex", ActorFunctions::GetActorKillerRefNumIndex},\
|
||||||
{"SetActorRefNumIndex", ActorFunctions::SetActorRefNumIndex}
|
{"SetActorRefNumIndex", ActorFunctions::SetActorRefNumIndex}
|
||||||
|
|
||||||
class ActorFunctions
|
namespace ActorFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Use the last actor list received by the server as the one being read.
|
* \brief Use the last actor list received by the server as the one being read.
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ReadReceivedActorList() noexcept;
|
EXPORT_APIFUNCTION void CDECL ReadReceivedActorList() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Use the temporary actor list stored for a cell as the one being read.
|
* \brief Use the temporary actor list stored for a cell as the one being read.
|
||||||
|
@ -122,14 +122,14 @@ public:
|
||||||
* \param cellDescription The description of the cell whose actor list should be read.
|
* \param cellDescription The description of the cell whose actor list should be read.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ReadCellActorList(const char* cellDescription) noexcept;
|
EXPORT_APIFUNCTION void CDECL ReadCellActorList(const char* cellDescription) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the data from the actor list stored on the server.
|
* \brief Clear the data from the actor list stored on the server.
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearActorList() noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearActorList() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the pid attached to the ActorList.
|
* \brief Set the pid attached to the ActorList.
|
||||||
|
@ -137,7 +137,7 @@ public:
|
||||||
* \param pid The player ID to whom the actor list should be attached.
|
* \param pid The player ID to whom the actor list should be attached.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorListPid(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorListPid(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Take the contents of the read-only actor list last received by the
|
* \brief Take the contents of the read-only actor list last received by the
|
||||||
|
@ -146,21 +146,21 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void CopyReceivedActorListToStore() noexcept;
|
EXPORT_APIFUNCTION void CDECL CopyReceivedActorListToStore() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in the read actor list.
|
* \brief Get the number of indexes in the read actor list.
|
||||||
*
|
*
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetActorListSize() noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetActorListSize() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the action type used in the read actor list.
|
* \brief Get the action type used in the read actor list.
|
||||||
*
|
*
|
||||||
* \return The action type (0 for SET, 1 for ADD, 2 for REMOVE, 3 for REQUEST).
|
* \return The action type (0 for SET, 1 for ADD, 2 for REMOVE, 3 for REQUEST).
|
||||||
*/
|
*/
|
||||||
static unsigned char GetActorListAction() noexcept;
|
EXPORT_APIFUNCTION unsigned char CDECL GetActorListAction() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the cell description of the actor at a certain index in the read actor list.
|
* \brief Get the cell description of the actor at a certain index in the read actor list.
|
||||||
|
@ -168,7 +168,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The cell description.
|
* \return The cell description.
|
||||||
*/
|
*/
|
||||||
static const char *GetActorCell(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetActorCell(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the actor at a certain index in the read actor list.
|
* \brief Get the refId of the actor at a certain index in the read actor list.
|
||||||
|
@ -176,7 +176,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The refId.
|
* \return The refId.
|
||||||
*/
|
*/
|
||||||
static const char *GetActorRefId(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetActorRefId(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refNum of the actor at a certain index in the read actor list.
|
* \brief Get the refNum of the actor at a certain index in the read actor list.
|
||||||
|
@ -184,7 +184,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The refNum.
|
* \return The refNum.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetActorRefNum(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetActorRefNum(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the mpNum of the actor at a certain index in the read actor list.
|
* \brief Get the mpNum of the actor at a certain index in the read actor list.
|
||||||
|
@ -192,7 +192,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The mpNum.
|
* \return The mpNum.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetActorMpNum(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetActorMpNum(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the X position of the actor at a certain index in the read actor list.
|
* \brief Get the X position of the actor at a certain index in the read actor list.
|
||||||
|
@ -200,7 +200,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The X position.
|
* \return The X position.
|
||||||
*/
|
*/
|
||||||
static double GetActorPosX(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorPosX(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Y position of the actor at a certain index in the read actor list.
|
* \brief Get the Y position of the actor at a certain index in the read actor list.
|
||||||
|
@ -208,7 +208,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The Y position.
|
* \return The Y position.
|
||||||
*/
|
*/
|
||||||
static double GetActorPosY(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorPosY(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Z position of the actor at a certain index in the read actor list.
|
* \brief Get the Z position of the actor at a certain index in the read actor list.
|
||||||
|
@ -216,7 +216,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The Z position.
|
* \return The Z position.
|
||||||
*/
|
*/
|
||||||
static double GetActorPosZ(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorPosZ(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the X rotation of the actor at a certain index in the read actor list.
|
* \brief Get the X rotation of the actor at a certain index in the read actor list.
|
||||||
|
@ -224,7 +224,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The X rotation.
|
* \return The X rotation.
|
||||||
*/
|
*/
|
||||||
static double GetActorRotX(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorRotX(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Y rotation of the actor at a certain index in the read actor list.
|
* \brief Get the Y rotation of the actor at a certain index in the read actor list.
|
||||||
|
@ -232,7 +232,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The Y rotation.
|
* \return The Y rotation.
|
||||||
*/
|
*/
|
||||||
static double GetActorRotY(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorRotY(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Z rotation of the actor at a certain index in the read actor list.
|
* \brief Get the Z rotation of the actor at a certain index in the read actor list.
|
||||||
|
@ -240,7 +240,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The Z rotation.
|
* \return The Z rotation.
|
||||||
*/
|
*/
|
||||||
static double GetActorRotZ(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorRotZ(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the base health of the actor at a certain index in the read actor list.
|
* \brief Get the base health of the actor at a certain index in the read actor list.
|
||||||
|
@ -248,7 +248,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The base health.
|
* \return The base health.
|
||||||
*/
|
*/
|
||||||
static double GetActorHealthBase(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorHealthBase(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the current health of the actor at a certain index in the read actor list.
|
* \brief Get the current health of the actor at a certain index in the read actor list.
|
||||||
|
@ -256,7 +256,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The current health.
|
* \return The current health.
|
||||||
*/
|
*/
|
||||||
static double GetActorHealthCurrent(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorHealthCurrent(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the modified health of the actor at a certain index in the read actor list.
|
* \brief Get the modified health of the actor at a certain index in the read actor list.
|
||||||
|
@ -264,7 +264,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The modified health.
|
* \return The modified health.
|
||||||
*/
|
*/
|
||||||
static double GetActorHealthModified(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorHealthModified(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the base magicka of the actor at a certain index in the read actor list.
|
* \brief Get the base magicka of the actor at a certain index in the read actor list.
|
||||||
|
@ -272,7 +272,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The base magicka.
|
* \return The base magicka.
|
||||||
*/
|
*/
|
||||||
static double GetActorMagickaBase(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorMagickaBase(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the current magicka of the actor at a certain index in the read actor list.
|
* \brief Get the current magicka of the actor at a certain index in the read actor list.
|
||||||
|
@ -280,7 +280,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The current magicka.
|
* \return The current magicka.
|
||||||
*/
|
*/
|
||||||
static double GetActorMagickaCurrent(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorMagickaCurrent(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the modified magicka of the actor at a certain index in the read actor list.
|
* \brief Get the modified magicka of the actor at a certain index in the read actor list.
|
||||||
|
@ -288,7 +288,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The modified magicka.
|
* \return The modified magicka.
|
||||||
*/
|
*/
|
||||||
static double GetActorMagickaModified(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorMagickaModified(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the base fatigue of the actor at a certain index in the read actor list.
|
* \brief Get the base fatigue of the actor at a certain index in the read actor list.
|
||||||
|
@ -296,7 +296,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The base fatigue.
|
* \return The base fatigue.
|
||||||
*/
|
*/
|
||||||
static double GetActorFatigueBase(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorFatigueBase(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the current fatigue of the actor at a certain index in the read actor list.
|
* \brief Get the current fatigue of the actor at a certain index in the read actor list.
|
||||||
|
@ -304,7 +304,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The current fatigue.
|
* \return The current fatigue.
|
||||||
*/
|
*/
|
||||||
static double GetActorFatigueCurrent(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorFatigueCurrent(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the modified fatigue of the actor at a certain index in the read actor list.
|
* \brief Get the modified fatigue of the actor at a certain index in the read actor list.
|
||||||
|
@ -312,7 +312,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The modified fatigue.
|
* \return The modified fatigue.
|
||||||
*/
|
*/
|
||||||
static double GetActorFatigueModified(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorFatigueModified(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the item in a certain slot of the equipment of the actor at a
|
* \brief Get the refId of the item in a certain slot of the equipment of the actor at a
|
||||||
|
@ -322,7 +322,7 @@ public:
|
||||||
* \param slot The slot of the equipment item.
|
* \param slot The slot of the equipment item.
|
||||||
* \return The refId.
|
* \return The refId.
|
||||||
*/
|
*/
|
||||||
static const char *GetActorEquipmentItemRefId(unsigned int index, unsigned short slot) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetActorEquipmentItemRefId(unsigned int index, unsigned short slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the count of the item in a certain slot of the equipment of the actor at a
|
* \brief Get the count of the item in a certain slot of the equipment of the actor at a
|
||||||
|
@ -332,7 +332,7 @@ public:
|
||||||
* \param slot The slot of the equipment item.
|
* \param slot The slot of the equipment item.
|
||||||
* \return The item count.
|
* \return The item count.
|
||||||
*/
|
*/
|
||||||
static int GetActorEquipmentItemCount(unsigned int index, unsigned short slot) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetActorEquipmentItemCount(unsigned int index, unsigned short slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the charge of the item in a certain slot of the equipment of the actor at a
|
* \brief Get the charge of the item in a certain slot of the equipment of the actor at a
|
||||||
|
@ -342,7 +342,7 @@ public:
|
||||||
* \param slot The slot of the equipment item.
|
* \param slot The slot of the equipment item.
|
||||||
* \return The charge.
|
* \return The charge.
|
||||||
*/
|
*/
|
||||||
static int GetActorEquipmentItemCharge(unsigned int index, unsigned short slot) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetActorEquipmentItemCharge(unsigned int index, unsigned short slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the enchantment charge of the item in a certain slot of the equipment of the actor at a
|
* \brief Get the enchantment charge of the item in a certain slot of the equipment of the actor at a
|
||||||
|
@ -352,7 +352,7 @@ public:
|
||||||
* \param slot The slot of the equipment item.
|
* \param slot The slot of the equipment item.
|
||||||
* \return The enchantment charge.
|
* \return The enchantment charge.
|
||||||
*/
|
*/
|
||||||
static double GetActorEquipmentItemEnchantmentCharge(unsigned int index, unsigned short slot) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetActorEquipmentItemEnchantmentCharge(unsigned int index, unsigned short slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether the killer of the actor at a certain index in the read actor list is a player.
|
* \brief Check whether the killer of the actor at a certain index in the read actor list is a player.
|
||||||
|
@ -360,7 +360,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return Whether the actor was killed by a player.
|
* \return Whether the actor was killed by a player.
|
||||||
*/
|
*/
|
||||||
static bool DoesActorHavePlayerKiller(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION bool CDECL DoesActorHavePlayerKiller(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the player ID of the killer of the actor at a certain index in the read actor list.
|
* \brief Get the player ID of the killer of the actor at a certain index in the read actor list.
|
||||||
|
@ -368,7 +368,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The player ID of the killer.
|
* \return The player ID of the killer.
|
||||||
*/
|
*/
|
||||||
static int GetActorKillerPid(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetActorKillerPid(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the actor killer of the actor at a certain index in the read actor list.
|
* \brief Get the refId of the actor killer of the actor at a certain index in the read actor list.
|
||||||
|
@ -376,7 +376,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The refId of the killer.
|
* \return The refId of the killer.
|
||||||
*/
|
*/
|
||||||
static const char *GetActorKillerRefId(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetActorKillerRefId(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refNum of the actor killer of the actor at a certain index in the read actor list.
|
* \brief Get the refNum of the actor killer of the actor at a certain index in the read actor list.
|
||||||
|
@ -384,7 +384,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The refNum of the killer.
|
* \return The refNum of the killer.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetActorKillerRefNum(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetActorKillerRefNum(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the mpNum of the actor killer of the actor at a certain index in the read actor list.
|
* \brief Get the mpNum of the actor killer of the actor at a certain index in the read actor list.
|
||||||
|
@ -392,7 +392,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The mpNum of the killer.
|
* \return The mpNum of the killer.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetActorKillerMpNum(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetActorKillerMpNum(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the name of the actor killer of the actor at a certain index in the read actor list.
|
* \brief Get the name of the actor killer of the actor at a certain index in the read actor list.
|
||||||
|
@ -400,7 +400,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return The name of the killer.
|
* \return The name of the killer.
|
||||||
*/
|
*/
|
||||||
static const char *GetActorKillerName(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetActorKillerName(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether there is any positional data for the actor at a certain index in
|
* \brief Check whether there is any positional data for the actor at a certain index in
|
||||||
|
@ -411,7 +411,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return Whether the read actor list contains positional data.
|
* \return Whether the read actor list contains positional data.
|
||||||
*/
|
*/
|
||||||
static bool DoesActorHavePosition(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION bool CDECL DoesActorHavePosition(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether there is any dynamic stats data for the actor at a certain index in
|
* \brief Check whether there is any dynamic stats data for the actor at a certain index in
|
||||||
|
@ -422,7 +422,7 @@ public:
|
||||||
* \param index The index of the actor.
|
* \param index The index of the actor.
|
||||||
* \return Whether the read actor list contains dynamic stats data.
|
* \return Whether the read actor list contains dynamic stats data.
|
||||||
*/
|
*/
|
||||||
static bool DoesActorHaveStatsDynamic(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION bool CDECL DoesActorHaveStatsDynamic(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the cell of the temporary actor list stored on the server.
|
* \brief Set the cell of the temporary actor list stored on the server.
|
||||||
|
@ -433,7 +433,7 @@ public:
|
||||||
* \param cellDescription The description of the cell.
|
* \param cellDescription The description of the cell.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorListCell(const char* cellDescription) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorListCell(const char* cellDescription) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the action type of the temporary actor list stored on the server.
|
* \brief Set the action type of the temporary actor list stored on the server.
|
||||||
|
@ -441,7 +441,7 @@ public:
|
||||||
* \param action The action type (0 for SET, 1 for ADD, 2 for REMOVE, 3 for REQUEST).
|
* \param action The action type (0 for SET, 1 for ADD, 2 for REMOVE, 3 for REQUEST).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorListAction(unsigned char action) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorListAction(unsigned char action) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the cell of the temporary actor stored on the server.
|
* \brief Set the cell of the temporary actor stored on the server.
|
||||||
|
@ -455,7 +455,7 @@ public:
|
||||||
* \param cellDescription The description of the cell.
|
* \param cellDescription The description of the cell.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorCell(const char* cellDescription) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorCell(const char* cellDescription) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the refId of the temporary actor stored on the server.
|
* \brief Set the refId of the temporary actor stored on the server.
|
||||||
|
@ -463,7 +463,7 @@ public:
|
||||||
* \param refId The refId.
|
* \param refId The refId.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorRefId(const char* refId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorRefId(const char* refId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the refNum of the temporary actor stored on the server.
|
* \brief Set the refNum of the temporary actor stored on the server.
|
||||||
|
@ -471,7 +471,7 @@ public:
|
||||||
* \param refNum The refNum.
|
* \param refNum The refNum.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorRefNum(int refNum) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorRefNum(int refNum) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the mpNum of the temporary actor stored on the server.
|
* \brief Set the mpNum of the temporary actor stored on the server.
|
||||||
|
@ -479,7 +479,7 @@ public:
|
||||||
* \param mpNum The mpNum.
|
* \param mpNum The mpNum.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorMpNum(int mpNum) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorMpNum(int mpNum) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the position of the temporary actor stored on the server.
|
* \brief Set the position of the temporary actor stored on the server.
|
||||||
|
@ -489,7 +489,7 @@ public:
|
||||||
* \param z The Z position.
|
* \param z The Z position.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorPosition(double x, double y, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorPosition(double x, double y, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the rotation of the temporary actor stored on the server.
|
* \brief Set the rotation of the temporary actor stored on the server.
|
||||||
|
@ -499,7 +499,7 @@ public:
|
||||||
* \param z The Z rotation.
|
* \param z The Z rotation.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorRotation(double x, double y, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorRotation(double x, double y, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the base health of the temporary actor stored on the server.
|
* \brief Set the base health of the temporary actor stored on the server.
|
||||||
|
@ -507,7 +507,7 @@ public:
|
||||||
* \param value The new value.
|
* \param value The new value.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorHealthBase(double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorHealthBase(double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the current health of the temporary actor stored on the server.
|
* \brief Set the current health of the temporary actor stored on the server.
|
||||||
|
@ -515,7 +515,7 @@ public:
|
||||||
* \param value The new value.
|
* \param value The new value.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorHealthCurrent(double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorHealthCurrent(double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the modified health of the temporary actor stored on the server.
|
* \brief Set the modified health of the temporary actor stored on the server.
|
||||||
|
@ -523,7 +523,7 @@ public:
|
||||||
* \param value The new value.
|
* \param value The new value.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorHealthModified(double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorHealthModified(double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the base magicka of the temporary actor stored on the server.
|
* \brief Set the base magicka of the temporary actor stored on the server.
|
||||||
|
@ -531,7 +531,7 @@ public:
|
||||||
* \param value The new value.
|
* \param value The new value.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorMagickaBase(double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorMagickaBase(double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the current magicka of the temporary actor stored on the server.
|
* \brief Set the current magicka of the temporary actor stored on the server.
|
||||||
|
@ -539,7 +539,7 @@ public:
|
||||||
* \param value The new value.
|
* \param value The new value.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorMagickaCurrent(double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorMagickaCurrent(double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the modified magicka of the temporary actor stored on the server.
|
* \brief Set the modified magicka of the temporary actor stored on the server.
|
||||||
|
@ -547,7 +547,7 @@ public:
|
||||||
* \param value The new value.
|
* \param value The new value.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorMagickaModified(double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorMagickaModified(double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the base fatigue of the temporary actor stored on the server.
|
* \brief Set the base fatigue of the temporary actor stored on the server.
|
||||||
|
@ -555,7 +555,7 @@ public:
|
||||||
* \param value The new value.
|
* \param value The new value.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorFatigueBase(double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorFatigueBase(double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the current fatigue of the temporary actor stored on the server.
|
* \brief Set the current fatigue of the temporary actor stored on the server.
|
||||||
|
@ -563,7 +563,7 @@ public:
|
||||||
* \param value The new value.
|
* \param value The new value.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorFatigueCurrent(double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorFatigueCurrent(double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the modified fatigue of the temporary actor stored on the server.
|
* \brief Set the modified fatigue of the temporary actor stored on the server.
|
||||||
|
@ -571,7 +571,7 @@ public:
|
||||||
* \param value The new value.
|
* \param value The new value.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorFatigueModified(double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorFatigueModified(double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the sound of the temporary actor stored on the server.
|
* \brief Set the sound of the temporary actor stored on the server.
|
||||||
|
@ -579,7 +579,7 @@ public:
|
||||||
* \param sound The sound.
|
* \param sound The sound.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorSound(const char* sound) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorSound(const char* sound) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the AI action of the temporary actor stored on the server.
|
* \brief Set the AI action of the temporary actor stored on the server.
|
||||||
|
@ -587,7 +587,7 @@ public:
|
||||||
* \param action The new action.
|
* \param action The new action.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorAIAction(unsigned int action) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorAIAction(unsigned int action) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set a player as the AI target of the temporary actor stored on the server.
|
* \brief Set a player as the AI target of the temporary actor stored on the server.
|
||||||
|
@ -595,7 +595,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorAITargetToPlayer(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorAITargetToPlayer(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set another object as the AI target of the temporary actor stored on the server.
|
* \brief Set another object as the AI target of the temporary actor stored on the server.
|
||||||
|
@ -604,7 +604,7 @@ public:
|
||||||
* \param mpNum The mpNum of the target object.
|
* \param mpNum The mpNum of the target object.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorAITargetToObject(int refNum, int mpNum) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorAITargetToObject(int refNum, int mpNum) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the coordinates for the AI package associated with the current AI action.
|
* \brief Set the coordinates for the AI package associated with the current AI action.
|
||||||
|
@ -614,7 +614,7 @@ public:
|
||||||
* \param z The Z coordinate.
|
* \param z The Z coordinate.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorAICoordinates(double x, double y, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorAICoordinates(double x, double y, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the distance of the AI package associated with the current AI action.
|
* \brief Set the distance of the AI package associated with the current AI action.
|
||||||
|
@ -622,7 +622,7 @@ public:
|
||||||
* \param duration The distance of the package.
|
* \param duration The distance of the package.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorAIDistance(unsigned int distance) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorAIDistance(unsigned int distance) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the duration of the AI package associated with the current AI action.
|
* \brief Set the duration of the AI package associated with the current AI action.
|
||||||
|
@ -630,7 +630,7 @@ public:
|
||||||
* \param duration The duration of the package.
|
* \param duration The duration of the package.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorAIDuration(unsigned int duration) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorAIDuration(unsigned int duration) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set whether the current AI package should be repeated.
|
* \brief Set whether the current AI package should be repeated.
|
||||||
|
@ -640,7 +640,7 @@ public:
|
||||||
* \param shouldRepeat Whether the package should be repeated.
|
* \param shouldRepeat Whether the package should be repeated.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorAIRepetition(bool shouldRepeat) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorAIRepetition(bool shouldRepeat) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Equip an item in a certain slot of the equipment of the temporary actor stored
|
* \brief Equip an item in a certain slot of the equipment of the temporary actor stored
|
||||||
|
@ -653,7 +653,7 @@ public:
|
||||||
* \param enchantmentCharge The enchantment charge of the item.
|
* \param enchantmentCharge The enchantment charge of the item.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void EquipActorItem(unsigned short slot, const char* refId, unsigned int count, int charge, double enchantmentCharge = -1) noexcept;
|
EXPORT_APIFUNCTION void CDECL EquipActorItem(unsigned short slot, const char* refId, unsigned int count, int charge, double enchantmentCharge = -1) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Unequip the item in a certain slot of the equipment of the temporary actor stored
|
* \brief Unequip the item in a certain slot of the equipment of the temporary actor stored
|
||||||
|
@ -662,7 +662,7 @@ public:
|
||||||
* \param slot The equipment slot.
|
* \param slot The equipment slot.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void UnequipActorItem(unsigned short slot) noexcept;
|
EXPORT_APIFUNCTION void CDECL UnequipActorItem(unsigned short slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a copy of the server's temporary actor to the server's temporary actor list.
|
* \brief Add a copy of the server's temporary actor to the server's temporary actor list.
|
||||||
|
@ -672,7 +672,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddActor() noexcept;
|
EXPORT_APIFUNCTION void CDECL AddActor() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ActorList packet.
|
* \brief Send an ActorList packet.
|
||||||
|
@ -681,7 +681,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendActorList() noexcept;
|
EXPORT_APIFUNCTION void CDECL SendActorList() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ActorAuthority packet.
|
* \brief Send an ActorAuthority packet.
|
||||||
|
@ -693,7 +693,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendActorAuthority() noexcept;
|
EXPORT_APIFUNCTION void CDECL SendActorAuthority() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ActorPosition packet.
|
* \brief Send an ActorPosition packet.
|
||||||
|
@ -705,7 +705,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendActorPosition(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendActorPosition(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ActorStatsDynamic packet.
|
* \brief Send an ActorStatsDynamic packet.
|
||||||
|
@ -717,7 +717,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendActorStatsDynamic(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendActorStatsDynamic(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ActorEquipment packet.
|
* \brief Send an ActorEquipment packet.
|
||||||
|
@ -729,7 +729,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendActorEquipment(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendActorEquipment(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ActorSpeech packet.
|
* \brief Send an ActorSpeech packet.
|
||||||
|
@ -740,7 +740,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendActorSpeech(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendActorSpeech(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ActorAI packet.
|
* \brief Send an ActorAI packet.
|
||||||
|
@ -751,7 +751,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendActorAI(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendActorAI(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ActorCellChange packet.
|
* \brief Send an ActorCellChange packet.
|
||||||
|
@ -763,18 +763,18 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendActorCellChange(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendActorCellChange(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
static void ReadLastActorList() noexcept;
|
EXPORT_APIFUNCTION void CDECL ReadLastActorList() noexcept;
|
||||||
static void InitializeActorList(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL InitializeActorList(unsigned short pid) noexcept;
|
||||||
static void CopyLastActorListToStore() noexcept;
|
EXPORT_APIFUNCTION void CDECL CopyLastActorListToStore() noexcept;
|
||||||
static unsigned int GetActorRefNumIndex(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetActorRefNumIndex(unsigned int index) noexcept;
|
||||||
static unsigned int GetActorKillerRefNumIndex(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetActorKillerRefNumIndex(unsigned int index) noexcept;
|
||||||
static void SetActorRefNumIndex(int refNum) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorRefNumIndex(int refNum) noexcept;
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif //OPENMW_ACTORAPI_HPP
|
#endif //OPENMW_ACTORAPI_HPP
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
using namespace mwmp;
|
using namespace mwmp;
|
||||||
|
|
||||||
void BookFunctions::ClearBookChanges(unsigned short pid) noexcept
|
extern "C" void BookFunctions::ClearBookChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -15,7 +15,7 @@ void BookFunctions::ClearBookChanges(unsigned short pid) noexcept
|
||||||
player->bookChanges.books.clear();
|
player->bookChanges.books.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int BookFunctions::GetBookChangesSize(unsigned short pid) noexcept
|
extern "C" unsigned int BookFunctions::GetBookChangesSize(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -23,7 +23,7 @@ unsigned int BookFunctions::GetBookChangesSize(unsigned short pid) noexcept
|
||||||
return player->bookChanges.count;
|
return player->bookChanges.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BookFunctions::AddBook(unsigned short pid, const char* bookId) noexcept
|
extern "C" void BookFunctions::AddBook(unsigned short pid, const char* bookId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -34,7 +34,7 @@ void BookFunctions::AddBook(unsigned short pid, const char* bookId) noexcept
|
||||||
player->bookChanges.books.push_back(book);
|
player->bookChanges.books.push_back(book);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *BookFunctions::GetBookId(unsigned short pid, unsigned int index) noexcept
|
extern "C" const char *BookFunctions::GetBookId(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -45,7 +45,7 @@ const char *BookFunctions::GetBookId(unsigned short pid, unsigned int index) noe
|
||||||
return player->bookChanges.books.at(index).bookId.c_str();
|
return player->bookChanges.books.at(index).bookId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BookFunctions::SendBookChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void BookFunctions::SendBookChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -62,7 +62,7 @@ void BookFunctions::SendBookChanges(unsigned short pid, bool sendToOtherPlayers,
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
void BookFunctions::InitializeBookChanges(unsigned short pid) noexcept
|
extern "C" void BookFunctions::InitializeBookChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
ClearBookChanges(pid);
|
ClearBookChanges(pid);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef OPENMW_BOOKAPI_HPP
|
#ifndef OPENMW_BOOKAPI_HPP
|
||||||
#define OPENMW_BOOKAPI_HPP
|
#define OPENMW_BOOKAPI_HPP
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define BOOKAPI \
|
#define BOOKAPI \
|
||||||
{"ClearBookChanges", BookFunctions::ClearBookChanges},\
|
{"ClearBookChanges", BookFunctions::ClearBookChanges},\
|
||||||
\
|
\
|
||||||
|
@ -14,9 +16,8 @@
|
||||||
\
|
\
|
||||||
{"InitializeBookChanges", BookFunctions::InitializeBookChanges}
|
{"InitializeBookChanges", BookFunctions::InitializeBookChanges}
|
||||||
|
|
||||||
class BookFunctions
|
namespace BookFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the last recorded book changes for a player.
|
* \brief Clear the last recorded book changes for a player.
|
||||||
|
@ -26,7 +27,7 @@ public:
|
||||||
* \param pid The player ID whose book changes should be used.
|
* \param pid The player ID whose book changes should be used.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearBookChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearBookChanges(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in a player's latest book changes.
|
* \brief Get the number of indexes in a player's latest book changes.
|
||||||
|
@ -34,7 +35,7 @@ public:
|
||||||
* \param pid The player ID whose book changes should be used.
|
* \param pid The player ID whose book changes should be used.
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetBookChangesSize(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetBookChangesSize(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a new book to the book changes for a player.
|
* \brief Add a new book to the book changes for a player.
|
||||||
|
@ -43,7 +44,7 @@ public:
|
||||||
* \param bookId The bookId of the book.
|
* \param bookId The bookId of the book.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddBook(unsigned short pid, const char* bookId) noexcept;
|
EXPORT_APIFUNCTION void CDECL AddBook(unsigned short pid, const char* bookId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the bookId at a certain index in a player's latest book changes.
|
* \brief Get the bookId at a certain index in a player's latest book changes.
|
||||||
|
@ -52,7 +53,7 @@ public:
|
||||||
* \param index The index of the book.
|
* \param index The index of the book.
|
||||||
* \return The bookId.
|
* \return The bookId.
|
||||||
*/
|
*/
|
||||||
static const char *GetBookId(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetBookId(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerBook packet with a player's recorded book changes.
|
* \brief Send a PlayerBook packet with a player's recorded book changes.
|
||||||
|
@ -64,12 +65,11 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendBookChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendBookChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
static void InitializeBookChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL InitializeBookChanges(unsigned short pid) noexcept;
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
||||||
#endif //OPENMW_BOOKAPI_HPP
|
#endif //OPENMW_BOOKAPI_HPP
|
||||||
|
|
|
@ -12,7 +12,7 @@ using namespace std;
|
||||||
|
|
||||||
static std::string tempCellDescription;
|
static std::string tempCellDescription;
|
||||||
|
|
||||||
unsigned int CellFunctions::GetCellStateChangesSize(unsigned short pid) noexcept
|
extern "C" unsigned int CellFunctions::GetCellStateChangesSize(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -20,7 +20,7 @@ unsigned int CellFunctions::GetCellStateChangesSize(unsigned short pid) noexcept
|
||||||
return player->cellStateChanges.count;
|
return player->cellStateChanges.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int CellFunctions::GetCellStateType(unsigned short pid, unsigned int index) noexcept
|
extern "C" unsigned int CellFunctions::GetCellStateType(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -28,7 +28,7 @@ unsigned int CellFunctions::GetCellStateType(unsigned short pid, unsigned int in
|
||||||
return player->cellStateChanges.cellStates.at(index).type;
|
return player->cellStateChanges.cellStates.at(index).type;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *CellFunctions::GetCellStateDescription(unsigned short pid, unsigned int index) noexcept
|
extern "C" const char *CellFunctions::GetCellStateDescription(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -40,30 +40,30 @@ const char *CellFunctions::GetCellStateDescription(unsigned short pid, unsigned
|
||||||
return tempCellDescription.c_str();
|
return tempCellDescription.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *CellFunctions::GetCell(unsigned short pid) noexcept
|
extern "C" const char *CellFunctions::GetCell(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
|
||||||
tempCellDescription = player->cell.getDescription().c_str();
|
tempCellDescription = player->cell.getDescription();
|
||||||
return tempCellDescription.c_str();
|
return tempCellDescription.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int CellFunctions::GetExteriorX(unsigned short pid) noexcept
|
extern "C" int CellFunctions::GetExteriorX(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
return player->cell.mData.mX;
|
return player->cell.mData.mX;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CellFunctions::GetExteriorY(unsigned short pid) noexcept
|
extern "C" int CellFunctions::GetExteriorY(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
return player->cell.mData.mY;
|
return player->cell.mData.mY;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CellFunctions::IsInExterior(unsigned short pid) noexcept
|
extern "C" bool CellFunctions::IsInExterior(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, false);
|
GET_PLAYER(pid, player, false);
|
||||||
|
@ -71,7 +71,7 @@ bool CellFunctions::IsInExterior(unsigned short pid) noexcept
|
||||||
return player->cell.isExterior();
|
return player->cell.isExterior();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *CellFunctions::GetRegion(unsigned short pid) noexcept
|
extern "C" const char *CellFunctions::GetRegion(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -79,7 +79,7 @@ const char *CellFunctions::GetRegion(unsigned short pid) noexcept
|
||||||
return player->cell.mRegion.c_str();
|
return player->cell.mRegion.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CellFunctions::IsChangingRegion(unsigned short pid) noexcept
|
extern "C" bool CellFunctions::IsChangingRegion(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, false);
|
GET_PLAYER(pid, player, false);
|
||||||
|
@ -87,7 +87,7 @@ bool CellFunctions::IsChangingRegion(unsigned short pid) noexcept
|
||||||
return player->isChangingRegion;
|
return player->isChangingRegion;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CellFunctions::SetCell(unsigned short pid, const char *cellDescription) noexcept
|
extern "C" void CellFunctions::SetCell(unsigned short pid, const char *cellDescription) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -98,7 +98,7 @@ void CellFunctions::SetCell(unsigned short pid, const char *cellDescription) noe
|
||||||
player->cell = Utils::getCellFromDescription(cellDescription);
|
player->cell = Utils::getCellFromDescription(cellDescription);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CellFunctions::SetExteriorCell(unsigned short pid, int x, int y) noexcept
|
extern "C" void CellFunctions::SetExteriorCell(unsigned short pid, int x, int y) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -115,7 +115,7 @@ void CellFunctions::SetExteriorCell(unsigned short pid, int x, int y) noexcept
|
||||||
player->cell.mData.mY = y;
|
player->cell.mData.mY = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CellFunctions::SendCell(unsigned short pid) noexcept
|
extern "C" void CellFunctions::SendCell(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include "../Types.hpp"
|
#include "../Types.hpp"
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define CELLAPI \
|
#define CELLAPI \
|
||||||
{"GetCellStateChangesSize", CellFunctions::GetCellStateChangesSize},\
|
{"GetCellStateChangesSize", CellFunctions::GetCellStateChangesSize},\
|
||||||
\
|
\
|
||||||
|
@ -23,17 +25,15 @@
|
||||||
{"SendCell", CellFunctions::SendCell}
|
{"SendCell", CellFunctions::SendCell}
|
||||||
|
|
||||||
|
|
||||||
class CellFunctions
|
namespace CellFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in a player's latest cell state changes.
|
* \brief Get the number of indexes in a player's latest cell state changes.
|
||||||
*
|
*
|
||||||
* \param pid The player ID whose cell state changes should be used.
|
* \param pid The player ID whose cell state changes should be used.
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetCellStateChangesSize(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetCellStateChangesSize(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the cell state type at a certain index in a player's latest cell state changes.
|
* \brief Get the cell state type at a certain index in a player's latest cell state changes.
|
||||||
|
@ -42,7 +42,7 @@ public:
|
||||||
* \param index The index of the cell state.
|
* \param index The index of the cell state.
|
||||||
* \return The cell state type (0 for LOAD, 1 for UNLOAD).
|
* \return The cell state type (0 for LOAD, 1 for UNLOAD).
|
||||||
*/
|
*/
|
||||||
static unsigned int GetCellStateType(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetCellStateType(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the cell description at a certain index in a player's latest cell state changes.
|
* \brief Get the cell description at a certain index in a player's latest cell state changes.
|
||||||
|
@ -51,7 +51,7 @@ public:
|
||||||
* \param index The index of the cell state.
|
* \param index The index of the cell state.
|
||||||
* \return The cell description.
|
* \return The cell description.
|
||||||
*/
|
*/
|
||||||
static const char *GetCellStateDescription(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetCellStateDescription(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the cell description of a player's cell.
|
* \brief Get the cell description of a player's cell.
|
||||||
|
@ -59,7 +59,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The cell description.
|
* \return The cell description.
|
||||||
*/
|
*/
|
||||||
static const char *GetCell(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetCell(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the X coordinate of the player's exterior cell.
|
* \brief Get the X coordinate of the player's exterior cell.
|
||||||
|
@ -67,7 +67,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The X coordinate of the cell.
|
* \return The X coordinate of the cell.
|
||||||
*/
|
*/
|
||||||
static int GetExteriorX(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetExteriorX(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Y coordinate of the player's exterior cell.
|
* \brief Get the Y coordinate of the player's exterior cell.
|
||||||
|
@ -75,7 +75,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The Y coordinate of the cell.
|
* \return The Y coordinate of the cell.
|
||||||
*/
|
*/
|
||||||
static int GetExteriorY(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetExteriorY(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether the player is in an exterior cell or not.
|
* \brief Check whether the player is in an exterior cell or not.
|
||||||
|
@ -83,7 +83,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return Whether the player is in an exterior cell.
|
* \return Whether the player is in an exterior cell.
|
||||||
*/
|
*/
|
||||||
static bool IsInExterior(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION bool CDECL IsInExterior(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the region of the player's exterior cell.
|
* \brief Get the region of the player's exterior cell.
|
||||||
|
@ -93,7 +93,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The region.
|
* \return The region.
|
||||||
*/
|
*/
|
||||||
static const char *GetRegion(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetRegion(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether the player's last cell change has involved a region change.
|
* \brief Check whether the player's last cell change has involved a region change.
|
||||||
|
@ -101,7 +101,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return Whether the player has changed their region.
|
* \return Whether the player has changed their region.
|
||||||
*/
|
*/
|
||||||
static bool IsChangingRegion(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION bool CDECL IsChangingRegion(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the cell of a player.
|
* \brief Set the cell of a player.
|
||||||
|
@ -116,7 +116,7 @@ public:
|
||||||
* \param cellDescription The cell description.
|
* \param cellDescription The cell description.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetCell(unsigned short pid, const char *cellDescription) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetCell(unsigned short pid, const char *cellDescription) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the cell of a player to an exterior cell.
|
* \brief Set the cell of a player to an exterior cell.
|
||||||
|
@ -129,7 +129,7 @@ public:
|
||||||
* \param y The Y coordinate of the cell.
|
* \param y The Y coordinate of the cell.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetExteriorCell(unsigned short pid, int x, int y) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetExteriorCell(unsigned short pid, int x, int y) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerCellChange packet about a player.
|
* \brief Send a PlayerCellChange packet about a player.
|
||||||
|
@ -139,8 +139,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendCell(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendCell(unsigned short pid) noexcept;
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
||||||
#endif //OPENMW_CELLAPI_HPP
|
#endif //OPENMW_CELLAPI_HPP
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace ESM;
|
using namespace ESM;
|
||||||
|
|
||||||
const char *CharClassFunctions::GetDefaultClass(unsigned short pid) noexcept
|
extern "C" const char *CharClassFunctions::GetDefaultClass(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -20,7 +20,7 @@ const char *CharClassFunctions::GetDefaultClass(unsigned short pid) noexcept
|
||||||
return player->charClass.mId.c_str();
|
return player->charClass.mId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *CharClassFunctions::GetClassName(unsigned short pid) noexcept
|
extern "C" const char *CharClassFunctions::GetClassName(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -28,7 +28,7 @@ const char *CharClassFunctions::GetClassName(unsigned short pid) noexcept
|
||||||
return player->charClass.mName.c_str();
|
return player->charClass.mName.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *CharClassFunctions::GetClassDesc(unsigned short pid) noexcept
|
extern "C" const char *CharClassFunctions::GetClassDesc(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -36,7 +36,7 @@ const char *CharClassFunctions::GetClassDesc(unsigned short pid) noexcept
|
||||||
return player->charClass.mDescription.c_str();
|
return player->charClass.mDescription.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int CharClassFunctions::GetClassMajorAttribute(unsigned short pid, unsigned char slot) noexcept
|
extern "C" int CharClassFunctions::GetClassMajorAttribute(unsigned short pid, unsigned char slot) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -47,7 +47,7 @@ int CharClassFunctions::GetClassMajorAttribute(unsigned short pid, unsigned char
|
||||||
return player->charClass.mData.mAttribute[slot];
|
return player->charClass.mData.mAttribute[slot];
|
||||||
}
|
}
|
||||||
|
|
||||||
int CharClassFunctions::GetClassSpecialization(unsigned short pid) noexcept
|
extern "C" int CharClassFunctions::GetClassSpecialization(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -55,7 +55,7 @@ int CharClassFunctions::GetClassSpecialization(unsigned short pid) noexcept
|
||||||
return player->charClass.mData.mSpecialization;
|
return player->charClass.mData.mSpecialization;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CharClassFunctions::GetClassMajorSkill(unsigned short pid, unsigned char slot) noexcept
|
extern "C" int CharClassFunctions::GetClassMajorSkill(unsigned short pid, unsigned char slot) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -66,7 +66,7 @@ int CharClassFunctions::GetClassMajorSkill(unsigned short pid, unsigned char slo
|
||||||
return player->charClass.mData.mSkills[slot][1];
|
return player->charClass.mData.mSkills[slot][1];
|
||||||
}
|
}
|
||||||
|
|
||||||
int CharClassFunctions::GetClassMinorSkill(unsigned short pid, unsigned char slot) noexcept
|
extern "C" int CharClassFunctions::GetClassMinorSkill(unsigned short pid, unsigned char slot) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -77,7 +77,7 @@ int CharClassFunctions::GetClassMinorSkill(unsigned short pid, unsigned char slo
|
||||||
return player->charClass.mData.mSkills[slot][0];
|
return player->charClass.mData.mSkills[slot][0];
|
||||||
}
|
}
|
||||||
|
|
||||||
int CharClassFunctions::IsClassDefault(unsigned short pid) noexcept
|
extern "C" int CharClassFunctions::IsClassDefault(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -85,29 +85,32 @@ int CharClassFunctions::IsClassDefault(unsigned short pid) noexcept
|
||||||
return !player->charClass.mId.empty(); // true if default
|
return !player->charClass.mId.empty(); // true if default
|
||||||
}
|
}
|
||||||
|
|
||||||
void CharClassFunctions::SetDefaultClass(unsigned short pid, const char *id) noexcept
|
extern "C" void CharClassFunctions::SetDefaultClass(unsigned short pid, const char *id) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
|
||||||
player->charClass.mId = id;
|
player->charClass.mId = id;
|
||||||
}
|
}
|
||||||
void CharClassFunctions::SetClassName(unsigned short pid, const char *name) noexcept
|
|
||||||
|
extern "C" void CharClassFunctions::SetClassName(unsigned short pid, const char *name) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
|
||||||
player->charClass.mName = name;
|
player->charClass.mName = name;
|
||||||
player->charClass.mId = "";
|
player->charClass.mId.clear();
|
||||||
}
|
}
|
||||||
void CharClassFunctions::SetClassDesc(unsigned short pid, const char *desc) noexcept
|
|
||||||
|
extern "C" void CharClassFunctions::SetClassDesc(unsigned short pid, const char *desc) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
|
||||||
player->charClass.mDescription = desc;
|
player->charClass.mDescription = desc;
|
||||||
}
|
}
|
||||||
void CharClassFunctions::SetClassMajorAttribute(unsigned short pid, unsigned char slot, int attrId) noexcept
|
|
||||||
|
extern "C" void CharClassFunctions::SetClassMajorAttribute(unsigned short pid, unsigned char slot, int attrId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -118,14 +121,16 @@ void CharClassFunctions::SetClassMajorAttribute(unsigned short pid, unsigned cha
|
||||||
player->charClass.mData.mAttribute[slot] = attrId;
|
player->charClass.mData.mAttribute[slot] = attrId;
|
||||||
|
|
||||||
}
|
}
|
||||||
void CharClassFunctions::SetClassSpecialization(unsigned short pid, int spec) noexcept
|
|
||||||
|
extern "C" void CharClassFunctions::SetClassSpecialization(unsigned short pid, int spec) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
|
||||||
player->charClass.mData.mSpecialization = spec;
|
player->charClass.mData.mSpecialization = spec;
|
||||||
}
|
}
|
||||||
void CharClassFunctions::SetClassMajorSkill(unsigned short pid, unsigned char slot, int skillId) noexcept
|
|
||||||
|
extern "C" void CharClassFunctions::SetClassMajorSkill(unsigned short pid, unsigned char slot, int skillId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -135,7 +140,8 @@ void CharClassFunctions::SetClassMajorSkill(unsigned short pid, unsigned char sl
|
||||||
|
|
||||||
player->charClass.mData.mSkills[slot][1] = skillId;
|
player->charClass.mData.mSkills[slot][1] = skillId;
|
||||||
}
|
}
|
||||||
void CharClassFunctions::SetClassMinorSkill(unsigned short pid, unsigned char slot, int skillId) noexcept
|
|
||||||
|
extern "C" void CharClassFunctions::SetClassMinorSkill(unsigned short pid, unsigned char slot, int skillId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -146,7 +152,7 @@ void CharClassFunctions::SetClassMinorSkill(unsigned short pid, unsigned char sl
|
||||||
player->charClass.mData.mSkills[slot][0] = skillId;
|
player->charClass.mData.mSkills[slot][0] = skillId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CharClassFunctions::SendClass(unsigned short pid) noexcept
|
extern "C" void CharClassFunctions::SendClass(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
|
|
||||||
#include "../Types.hpp"
|
#include "../Types.hpp"
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define CHARCLASSAPI \
|
#define CHARCLASSAPI \
|
||||||
{"GetDefaultClass", CharClassFunctions::GetDefaultClass},\
|
{"GetDefaultClass", CharClassFunctions::GetDefaultClass},\
|
||||||
{"GetClassName", CharClassFunctions::GetClassName},\
|
{"GetClassName", CharClassFunctions::GetClassName},\
|
||||||
|
@ -28,17 +30,15 @@
|
||||||
{"SendClass", CharClassFunctions::SendClass}
|
{"SendClass", CharClassFunctions::SendClass}
|
||||||
|
|
||||||
|
|
||||||
class CharClassFunctions
|
namespace CharClassFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the default class used by a player.
|
* \brief Get the default class used by a player.
|
||||||
*
|
*
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The ID of the default class.
|
* \return The ID of the default class.
|
||||||
*/
|
*/
|
||||||
static const char *GetDefaultClass(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetDefaultClass(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the name of the custom class used by a player.
|
* \brief Get the name of the custom class used by a player.
|
||||||
|
@ -46,7 +46,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The name of the custom class.
|
* \return The name of the custom class.
|
||||||
*/
|
*/
|
||||||
static const char *GetClassName(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetClassName(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the description of the custom class used by a player.
|
* \brief Get the description of the custom class used by a player.
|
||||||
|
@ -54,7 +54,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The description of the custom class.
|
* \return The description of the custom class.
|
||||||
*/
|
*/
|
||||||
static const char *GetClassDesc(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetClassDesc(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the ID of one of the two major attributes of a custom class used by a player.
|
* \brief Get the ID of one of the two major attributes of a custom class used by a player.
|
||||||
|
@ -63,7 +63,7 @@ public:
|
||||||
* \param slot The slot of the major attribute (0 or 1).
|
* \param slot The slot of the major attribute (0 or 1).
|
||||||
* \return The ID of the major attribute.
|
* \return The ID of the major attribute.
|
||||||
*/
|
*/
|
||||||
static int GetClassMajorAttribute(unsigned short pid, unsigned char slot) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetClassMajorAttribute(unsigned short pid, unsigned char slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the specialization ID of the custom class used by a player.
|
* \brief Get the specialization ID of the custom class used by a player.
|
||||||
|
@ -71,7 +71,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The specialization ID of the custom class (0 for Combat, 1 for Magic, 2 for Stealth).
|
* \return The specialization ID of the custom class (0 for Combat, 1 for Magic, 2 for Stealth).
|
||||||
*/
|
*/
|
||||||
static int GetClassSpecialization(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetClassSpecialization(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the ID of one of the five major skills of a custom class used by a player.
|
* \brief Get the ID of one of the five major skills of a custom class used by a player.
|
||||||
|
@ -80,7 +80,7 @@ public:
|
||||||
* \param slot The slot of the major skill (0 to 4).
|
* \param slot The slot of the major skill (0 to 4).
|
||||||
* \return The ID of the major skill.
|
* \return The ID of the major skill.
|
||||||
*/
|
*/
|
||||||
static int GetClassMajorSkill(unsigned short pid, unsigned char slot) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetClassMajorSkill(unsigned short pid, unsigned char slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the ID of one of the five minor skills of a custom class used by a player.
|
* \brief Get the ID of one of the five minor skills of a custom class used by a player.
|
||||||
|
@ -89,7 +89,7 @@ public:
|
||||||
* \param slot The slot of the minor skill (0 to 4).
|
* \param slot The slot of the minor skill (0 to 4).
|
||||||
* \return The ID of the minor skill.
|
* \return The ID of the minor skill.
|
||||||
*/
|
*/
|
||||||
static int GetClassMinorSkill(unsigned short pid, unsigned char slot) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetClassMinorSkill(unsigned short pid, unsigned char slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether the player is using a default class instead of a custom one.
|
* \brief Check whether the player is using a default class instead of a custom one.
|
||||||
|
@ -97,7 +97,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return Whether the player is using a default class.
|
* \return Whether the player is using a default class.
|
||||||
*/
|
*/
|
||||||
static int IsClassDefault(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL IsClassDefault(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the default class used by a player.
|
* \brief Set the default class used by a player.
|
||||||
|
@ -108,7 +108,7 @@ public:
|
||||||
* \param id The ID of the default class.
|
* \param id The ID of the default class.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetDefaultClass(unsigned short pid, const char *id) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetDefaultClass(unsigned short pid, const char *id) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the name of the custom class used by a player.
|
* \brief Set the name of the custom class used by a player.
|
||||||
|
@ -117,7 +117,7 @@ public:
|
||||||
* \param name The name of the custom class.
|
* \param name The name of the custom class.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetClassName(unsigned short pid, const char *name) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetClassName(unsigned short pid, const char *name) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the description of the custom class used by a player.
|
* \brief Set the description of the custom class used by a player.
|
||||||
|
@ -126,7 +126,7 @@ public:
|
||||||
* \param desc The description of the custom class.
|
* \param desc The description of the custom class.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetClassDesc(unsigned short pid, const char *desc) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetClassDesc(unsigned short pid, const char *desc) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the ID of one of the two major attributes of the custom class used by a player.
|
* \brief Set the ID of one of the two major attributes of the custom class used by a player.
|
||||||
|
@ -136,7 +136,7 @@ public:
|
||||||
* \param attrId The ID to use for the attribute.
|
* \param attrId The ID to use for the attribute.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetClassMajorAttribute(unsigned short pid, unsigned char slot, int attrId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetClassMajorAttribute(unsigned short pid, unsigned char slot, int attrId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the specialization of the custom class used by a player.
|
* \brief Set the specialization of the custom class used by a player.
|
||||||
|
@ -145,7 +145,7 @@ public:
|
||||||
* \param spec The specialization ID to use (0 for Combat, 1 for Magic, 2 for Stealth).
|
* \param spec The specialization ID to use (0 for Combat, 1 for Magic, 2 for Stealth).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetClassSpecialization(unsigned short pid, int spec) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetClassSpecialization(unsigned short pid, int spec) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the ID of one of the five major skills of the custom class used by a player.
|
* \brief Set the ID of one of the five major skills of the custom class used by a player.
|
||||||
|
@ -155,7 +155,7 @@ public:
|
||||||
* \param skillId The ID to use for the skill.
|
* \param skillId The ID to use for the skill.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetClassMajorSkill(unsigned short pid, unsigned char slot, int skillId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetClassMajorSkill(unsigned short pid, unsigned char slot, int skillId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the ID of one of the five minor skills of the custom class used by a player.
|
* \brief Set the ID of one of the five minor skills of the custom class used by a player.
|
||||||
|
@ -165,7 +165,7 @@ public:
|
||||||
* \param skillId The ID to use for the skill.
|
* \param skillId The ID to use for the skill.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetClassMinorSkill(unsigned short pid, unsigned char slot, int skillId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetClassMinorSkill(unsigned short pid, unsigned char slot, int skillId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerCharClass packet about a player.
|
* \brief Send a PlayerCharClass packet about a player.
|
||||||
|
@ -175,7 +175,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendClass(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendClass(unsigned short pid) noexcept;
|
||||||
};
|
}
|
||||||
|
|
||||||
#endif //OPENMW_CHARCLASSAPI_HPP
|
#endif //OPENMW_CHARCLASSAPI_HPP
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#include <apps/openmw-mp/Script/ScriptFunctions.hpp>
|
#include <apps/openmw-mp/Script/ScriptFunctions.hpp>
|
||||||
#include <apps/openmw-mp/Networking.hpp>
|
#include <apps/openmw-mp/Networking.hpp>
|
||||||
|
|
||||||
void ChatFunctions::SendMessage(unsigned short pid, const char *message, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ChatFunctions::SendMessage(unsigned short pid, const char *message, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -24,7 +24,7 @@ void ChatFunctions::SendMessage(unsigned short pid, const char *message, bool se
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChatFunctions::CleanChatForPid(unsigned short pid)
|
extern "C" void ChatFunctions::CleanChatForPid(unsigned short pid)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -37,7 +37,7 @@ void ChatFunctions::CleanChatForPid(unsigned short pid)
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChatFunctions::CleanChat()
|
extern "C" void ChatFunctions::CleanChat()
|
||||||
{
|
{
|
||||||
for (auto player : *Players::getPlayers())
|
for (auto player : *Players::getPlayers())
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,15 +3,15 @@
|
||||||
|
|
||||||
#include "../Types.hpp"
|
#include "../Types.hpp"
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define CHATAPI \
|
#define CHATAPI \
|
||||||
{"SendMessage", ChatFunctions::SendMessage},\
|
{"SendMessage", ChatFunctions::SendMessage},\
|
||||||
{"CleanChatForPid", ChatFunctions::CleanChat},\
|
{"CleanChatForPid", ChatFunctions::CleanChat},\
|
||||||
{"CleanChat", ChatFunctions::CleanChatForPid}
|
{"CleanChat", ChatFunctions::CleanChatForPid}
|
||||||
|
|
||||||
class ChatFunctions
|
namespace ChatFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a message to a certain player.
|
* \brief Send a message to a certain player.
|
||||||
*
|
*
|
||||||
|
@ -23,7 +23,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendMessage(unsigned short pid, const char *message, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendMessage(unsigned short pid, const char *message, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Remove all messages from chat for a certain player.
|
* \brief Remove all messages from chat for a certain player.
|
||||||
|
@ -31,14 +31,14 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void CleanChatForPid(unsigned short pid);
|
EXPORT_APIFUNCTION void CDECL CleanChatForPid(unsigned short pid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Remove all messages from chat for everyone on the server.
|
* \brief Remove all messages from chat for everyone on the server.
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void CleanChat();
|
EXPORT_APIFUNCTION void CDECL CleanChat();
|
||||||
};
|
}
|
||||||
|
|
||||||
#endif //OPENMW_CHATAPI_HPP
|
#endif //OPENMW_CHATAPI_HPP
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
using namespace mwmp;
|
using namespace mwmp;
|
||||||
|
|
||||||
void DialogueFunctions::ClearTopicChanges(unsigned short pid) noexcept
|
extern "C" void DialogueFunctions::ClearTopicChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -15,7 +15,7 @@ void DialogueFunctions::ClearTopicChanges(unsigned short pid) noexcept
|
||||||
player->topicChanges.topics.clear();
|
player->topicChanges.topics.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int DialogueFunctions::GetTopicChangesSize(unsigned short pid) noexcept
|
extern "C" unsigned int DialogueFunctions::GetTopicChangesSize(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -23,7 +23,7 @@ unsigned int DialogueFunctions::GetTopicChangesSize(unsigned short pid) noexcept
|
||||||
return player->topicChanges.count;
|
return player->topicChanges.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogueFunctions::AddTopic(unsigned short pid, const char* topicId) noexcept
|
extern "C" void DialogueFunctions::AddTopic(unsigned short pid, const char* topicId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -34,7 +34,7 @@ void DialogueFunctions::AddTopic(unsigned short pid, const char* topicId) noexce
|
||||||
player->topicChanges.topics.push_back(topic);
|
player->topicChanges.topics.push_back(topic);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *DialogueFunctions::GetTopicId(unsigned short pid, unsigned int index) noexcept
|
extern "C" const char *DialogueFunctions::GetTopicId(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -45,7 +45,7 @@ const char *DialogueFunctions::GetTopicId(unsigned short pid, unsigned int index
|
||||||
return player->topicChanges.topics.at(index).topicId.c_str();
|
return player->topicChanges.topics.at(index).topicId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogueFunctions::SendTopicChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void DialogueFunctions::SendTopicChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -59,7 +59,7 @@ void DialogueFunctions::SendTopicChanges(unsigned short pid, bool sendToOtherPla
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogueFunctions::PlayAnimation(unsigned short pid, const char* groupname, int mode, int count, bool persist) noexcept
|
extern "C" void DialogueFunctions::PlayAnimation(unsigned short pid, const char* groupname, int mode, int count, bool persist) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -76,7 +76,7 @@ void DialogueFunctions::PlayAnimation(unsigned short pid, const char* groupname,
|
||||||
player->sendToLoaded(packet);
|
player->sendToLoaded(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogueFunctions::PlaySpeech(unsigned short pid, const char* sound) noexcept
|
extern "C" void DialogueFunctions::PlaySpeech(unsigned short pid, const char* sound) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -90,7 +90,7 @@ void DialogueFunctions::PlaySpeech(unsigned short pid, const char* sound) noexce
|
||||||
player->sendToLoaded(packet);
|
player->sendToLoaded(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
extern "C" // All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
void DialogueFunctions::InitializeTopicChanges(unsigned short pid) noexcept
|
void DialogueFunctions::InitializeTopicChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef OPENMW_DIALOGUEAPI_HPP
|
#ifndef OPENMW_DIALOGUEAPI_HPP
|
||||||
#define OPENMW_DIALOGUEAPI_HPP
|
#define OPENMW_DIALOGUEAPI_HPP
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define DIALOGUEAPI \
|
#define DIALOGUEAPI \
|
||||||
{"ClearTopicChanges", DialogueFunctions::ClearTopicChanges},\
|
{"ClearTopicChanges", DialogueFunctions::ClearTopicChanges},\
|
||||||
\
|
\
|
||||||
|
@ -17,10 +19,8 @@
|
||||||
\
|
\
|
||||||
{"InitializeTopicChanges", DialogueFunctions::InitializeTopicChanges}
|
{"InitializeTopicChanges", DialogueFunctions::InitializeTopicChanges}
|
||||||
|
|
||||||
class DialogueFunctions
|
namespace DialogueFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the last recorded topic changes for a player.
|
* \brief Clear the last recorded topic changes for a player.
|
||||||
*
|
*
|
||||||
|
@ -29,7 +29,7 @@ public:
|
||||||
* \param pid The player ID whose topic changes should be used.
|
* \param pid The player ID whose topic changes should be used.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearTopicChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearTopicChanges(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in a player's latest topic changes.
|
* \brief Get the number of indexes in a player's latest topic changes.
|
||||||
|
@ -37,7 +37,7 @@ public:
|
||||||
* \param pid The player ID whose topic changes should be used.
|
* \param pid The player ID whose topic changes should be used.
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetTopicChangesSize(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetTopicChangesSize(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a new topic to the topic changes for a player.
|
* \brief Add a new topic to the topic changes for a player.
|
||||||
|
@ -46,7 +46,7 @@ public:
|
||||||
* \param topicId The topicId of the topic.
|
* \param topicId The topicId of the topic.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddTopic(unsigned short pid, const char* topicId) noexcept;
|
EXPORT_APIFUNCTION void CDECL AddTopic(unsigned short pid, const char* topicId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the topicId at a certain index in a player's latest topic changes.
|
* \brief Get the topicId at a certain index in a player's latest topic changes.
|
||||||
|
@ -55,7 +55,7 @@ public:
|
||||||
* \param index The index of the topic.
|
* \param index The index of the topic.
|
||||||
* \return The topicId.
|
* \return The topicId.
|
||||||
*/
|
*/
|
||||||
static const char *GetTopicId(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetTopicId(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerTopic packet with a player's recorded topic changes.
|
* \brief Send a PlayerTopic packet with a player's recorded topic changes.
|
||||||
|
@ -67,7 +67,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendTopicChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendTopicChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Play a certain animation on a player's character by sending a PlayerAnimation
|
* \brief Play a certain animation on a player's character by sending a PlayerAnimation
|
||||||
|
@ -80,7 +80,7 @@ public:
|
||||||
* \param bool Whether the animation should persist or not.
|
* \param bool Whether the animation should persist or not.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void PlayAnimation(unsigned short pid, const char* groupname, int mode, int count, bool persist) noexcept;
|
EXPORT_APIFUNCTION void CDECL PlayAnimation(unsigned short pid, const char* groupname, int mode, int count, bool persist) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Play a certain sound for a player as spoken by their character by sending
|
* \brief Play a certain sound for a player as spoken by their character by sending
|
||||||
|
@ -90,12 +90,11 @@ public:
|
||||||
* \param sound The path of the sound file.
|
* \param sound The path of the sound file.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void PlaySpeech(unsigned short pid, const char* sound) noexcept;
|
EXPORT_APIFUNCTION void CDECL PlaySpeech(unsigned short pid, const char* sound) noexcept;
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
static void InitializeTopicChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL InitializeTopicChanges(unsigned short pid) noexcept;
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
||||||
#endif //OPENMW_DIALOGUEAPI_HPP
|
#endif //OPENMW_DIALOGUEAPI_HPP
|
||||||
|
|
|
@ -11,7 +11,7 @@ using namespace mwmp;
|
||||||
Faction tempFaction;
|
Faction tempFaction;
|
||||||
const Faction emptyFaction = {};
|
const Faction emptyFaction = {};
|
||||||
|
|
||||||
void FactionFunctions::ClearFactionChanges(unsigned short pid) noexcept
|
extern "C" void FactionFunctions::ClearFactionChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -19,7 +19,7 @@ void FactionFunctions::ClearFactionChanges(unsigned short pid) noexcept
|
||||||
player->factionChanges.factions.clear();
|
player->factionChanges.factions.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int FactionFunctions::GetFactionChangesSize(unsigned short pid) noexcept
|
extern "C" unsigned int FactionFunctions::GetFactionChangesSize(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -27,7 +27,7 @@ unsigned int FactionFunctions::GetFactionChangesSize(unsigned short pid) noexcep
|
||||||
return player->factionChanges.count;
|
return player->factionChanges.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char FactionFunctions::GetFactionChangesAction(unsigned short pid) noexcept
|
extern "C" unsigned char FactionFunctions::GetFactionChangesAction(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -35,7 +35,7 @@ unsigned char FactionFunctions::GetFactionChangesAction(unsigned short pid) noex
|
||||||
return player->factionChanges.action;
|
return player->factionChanges.action;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *FactionFunctions::GetFactionId(unsigned short pid, unsigned int index) noexcept
|
extern "C" const char *FactionFunctions::GetFactionId(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -46,7 +46,7 @@ const char *FactionFunctions::GetFactionId(unsigned short pid, unsigned int inde
|
||||||
return player->factionChanges.factions.at(index).factionId.c_str();
|
return player->factionChanges.factions.at(index).factionId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int FactionFunctions::GetFactionRank(unsigned short pid, unsigned int index) noexcept
|
extern "C" int FactionFunctions::GetFactionRank(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -54,7 +54,7 @@ int FactionFunctions::GetFactionRank(unsigned short pid, unsigned int index) noe
|
||||||
return player->factionChanges.factions.at(index).rank;
|
return player->factionChanges.factions.at(index).rank;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FactionFunctions::GetFactionExpulsionState(unsigned short pid, unsigned int index) noexcept
|
extern "C" bool FactionFunctions::GetFactionExpulsionState(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, false);
|
GET_PLAYER(pid, player, false);
|
||||||
|
@ -62,7 +62,7 @@ bool FactionFunctions::GetFactionExpulsionState(unsigned short pid, unsigned int
|
||||||
return player->factionChanges.factions.at(index).isExpelled;
|
return player->factionChanges.factions.at(index).isExpelled;
|
||||||
}
|
}
|
||||||
|
|
||||||
int FactionFunctions::GetFactionReputation(unsigned short pid, unsigned int index) noexcept
|
extern "C" int FactionFunctions::GetFactionReputation(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -70,7 +70,7 @@ int FactionFunctions::GetFactionReputation(unsigned short pid, unsigned int inde
|
||||||
return player->factionChanges.factions.at(index).reputation;
|
return player->factionChanges.factions.at(index).reputation;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FactionFunctions::SetFactionChangesAction(unsigned short pid, unsigned char action) noexcept
|
extern "C" void FactionFunctions::SetFactionChangesAction(unsigned short pid, unsigned char action) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -78,27 +78,27 @@ void FactionFunctions::SetFactionChangesAction(unsigned short pid, unsigned char
|
||||||
player->factionChanges.action = action;
|
player->factionChanges.action = action;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FactionFunctions::SetFactionId(const char* factionId) noexcept
|
extern "C" void FactionFunctions::SetFactionId(const char* factionId) noexcept
|
||||||
{
|
{
|
||||||
tempFaction.factionId = factionId;
|
tempFaction.factionId = factionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FactionFunctions::SetFactionRank(unsigned int rank) noexcept
|
extern "C" void FactionFunctions::SetFactionRank(unsigned int rank) noexcept
|
||||||
{
|
{
|
||||||
tempFaction.rank = rank;
|
tempFaction.rank = rank;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FactionFunctions::SetFactionExpulsionState(bool expulsionState) noexcept
|
extern "C" void FactionFunctions::SetFactionExpulsionState(bool expulsionState) noexcept
|
||||||
{
|
{
|
||||||
tempFaction.isExpelled = expulsionState;
|
tempFaction.isExpelled = expulsionState;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FactionFunctions::SetFactionReputation(int reputation) noexcept
|
extern "C" void FactionFunctions::SetFactionReputation(int reputation) noexcept
|
||||||
{
|
{
|
||||||
tempFaction.reputation = reputation;
|
tempFaction.reputation = reputation;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FactionFunctions::AddFaction(unsigned short pid) noexcept
|
extern "C" void FactionFunctions::AddFaction(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -108,7 +108,7 @@ void FactionFunctions::AddFaction(unsigned short pid) noexcept
|
||||||
tempFaction = emptyFaction;
|
tempFaction = emptyFaction;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FactionFunctions::SendFactionChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void FactionFunctions::SendFactionChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -122,7 +122,7 @@ void FactionFunctions::SendFactionChanges(unsigned short pid, bool sendToOtherPl
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
extern "C" // All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
void FactionFunctions::InitializeFactionChanges(unsigned short pid) noexcept
|
void FactionFunctions::InitializeFactionChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef OPENMW_FACTIONAPI_HPP
|
#ifndef OPENMW_FACTIONAPI_HPP
|
||||||
#define OPENMW_FACTIONAPI_HPP
|
#define OPENMW_FACTIONAPI_HPP
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define FACTIONAPI \
|
#define FACTIONAPI \
|
||||||
{"ClearFactionChanges", FactionFunctions::ClearFactionChanges},\
|
{"ClearFactionChanges", FactionFunctions::ClearFactionChanges},\
|
||||||
\
|
\
|
||||||
|
@ -24,10 +26,8 @@
|
||||||
\
|
\
|
||||||
{"InitializeFactionChanges", FactionFunctions::InitializeFactionChanges}
|
{"InitializeFactionChanges", FactionFunctions::InitializeFactionChanges}
|
||||||
|
|
||||||
class FactionFunctions
|
namespace FactionFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the last recorded faction changes for a player.
|
* \brief Clear the last recorded faction changes for a player.
|
||||||
*
|
*
|
||||||
|
@ -36,7 +36,7 @@ public:
|
||||||
* \param pid The player ID whose faction changes should be used.
|
* \param pid The player ID whose faction changes should be used.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearFactionChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearFactionChanges(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in a player's latest faction changes.
|
* \brief Get the number of indexes in a player's latest faction changes.
|
||||||
|
@ -44,7 +44,7 @@ public:
|
||||||
* \param pid The player ID whose faction changes should be used.
|
* \param pid The player ID whose faction changes should be used.
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetFactionChangesSize(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetFactionChangesSize(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the action type used in a player's latest faction changes.
|
* \brief Get the action type used in a player's latest faction changes.
|
||||||
|
@ -52,7 +52,7 @@ public:
|
||||||
* \param pid The player ID whose faction changes should be used.
|
* \param pid The player ID whose faction changes should be used.
|
||||||
* \return The action type (0 for RANK, 1 for EXPULSION, 2 for REPUTATION).
|
* \return The action type (0 for RANK, 1 for EXPULSION, 2 for REPUTATION).
|
||||||
*/
|
*/
|
||||||
static unsigned char GetFactionChangesAction(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned char CDECL GetFactionChangesAction(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the factionId at a certain index in a player's latest faction changes.
|
* \brief Get the factionId at a certain index in a player's latest faction changes.
|
||||||
|
@ -61,7 +61,7 @@ public:
|
||||||
* \param index The index of the faction.
|
* \param index The index of the faction.
|
||||||
* \return The factionId.
|
* \return The factionId.
|
||||||
*/
|
*/
|
||||||
static const char *GetFactionId(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetFactionId(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the rank at a certain index in a player's latest faction changes.
|
* \brief Get the rank at a certain index in a player's latest faction changes.
|
||||||
|
@ -70,7 +70,7 @@ public:
|
||||||
* \param index The index of the faction.
|
* \param index The index of the faction.
|
||||||
* \return The rank.
|
* \return The rank.
|
||||||
*/
|
*/
|
||||||
static int GetFactionRank(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetFactionRank(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the expulsion state at a certain index in a player's latest faction changes.
|
* \brief Get the expulsion state at a certain index in a player's latest faction changes.
|
||||||
|
@ -79,7 +79,7 @@ public:
|
||||||
* \param index The index of the faction.
|
* \param index The index of the faction.
|
||||||
* \return The expulsion state.
|
* \return The expulsion state.
|
||||||
*/
|
*/
|
||||||
static bool GetFactionExpulsionState(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION bool CDECL GetFactionExpulsionState(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the reputation at a certain index in a player's latest faction changes.
|
* \brief Get the reputation at a certain index in a player's latest faction changes.
|
||||||
|
@ -88,7 +88,7 @@ public:
|
||||||
* \param index The index of the faction.
|
* \param index The index of the faction.
|
||||||
* \return The reputation.
|
* \return The reputation.
|
||||||
*/
|
*/
|
||||||
static int GetFactionReputation(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetFactionReputation(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the action type in a player's faction changes.
|
* \brief Set the action type in a player's faction changes.
|
||||||
|
@ -97,7 +97,7 @@ public:
|
||||||
* \param action The action (0 for RANK, 1 for EXPULSION, 2 for REPUTATION).
|
* \param action The action (0 for RANK, 1 for EXPULSION, 2 for REPUTATION).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetFactionChangesAction(unsigned short pid, unsigned char action) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetFactionChangesAction(unsigned short pid, unsigned char action) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the factionId of the temporary faction stored on the server.
|
* \brief Set the factionId of the temporary faction stored on the server.
|
||||||
|
@ -105,7 +105,7 @@ public:
|
||||||
* \param factionId The factionId.
|
* \param factionId The factionId.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetFactionId(const char* factionId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetFactionId(const char* factionId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the rank of the temporary faction stored on the server.
|
* \brief Set the rank of the temporary faction stored on the server.
|
||||||
|
@ -113,7 +113,7 @@ public:
|
||||||
* \param rank The rank.
|
* \param rank The rank.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetFactionRank(unsigned int rank) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetFactionRank(unsigned int rank) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the expulsion state of the temporary faction stored on the server.
|
* \brief Set the expulsion state of the temporary faction stored on the server.
|
||||||
|
@ -121,7 +121,7 @@ public:
|
||||||
* \param expulsionState The expulsion state.
|
* \param expulsionState The expulsion state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetFactionExpulsionState(bool expulsionState) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetFactionExpulsionState(bool expulsionState) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the reputation of the temporary faction stored on the server.
|
* \brief Set the reputation of the temporary faction stored on the server.
|
||||||
|
@ -129,7 +129,7 @@ public:
|
||||||
* \param reputation The reputation.
|
* \param reputation The reputation.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetFactionReputation(int reputation) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetFactionReputation(int reputation) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add the server's temporary faction to the faction changes for a player.
|
* \brief Add the server's temporary faction to the faction changes for a player.
|
||||||
|
@ -140,7 +140,7 @@ public:
|
||||||
* \param pid The player ID whose faction changes should be used.
|
* \param pid The player ID whose faction changes should be used.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddFaction(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL AddFaction(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerFaction packet with a player's recorded faction changes.
|
* \brief Send a PlayerFaction packet with a player's recorded faction changes.
|
||||||
|
@ -152,12 +152,11 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendFactionChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendFactionChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
static void InitializeFactionChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL InitializeFactionChanges(unsigned short pid) noexcept;
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
||||||
#endif //OPENMW_FACTIONAPI_HPP
|
#endif //OPENMW_FACTIONAPI_HPP
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#include <apps/openmw-mp/Script/ScriptFunctions.hpp>
|
#include <apps/openmw-mp/Script/ScriptFunctions.hpp>
|
||||||
#include <apps/openmw-mp/Networking.hpp>
|
#include <apps/openmw-mp/Networking.hpp>
|
||||||
|
|
||||||
void GUIFunctions::_MessageBox(unsigned short pid, int id, const char *label) noexcept
|
extern "C" void GUIFunctions::_MessageBox(unsigned short pid, int id, const char *label) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -20,7 +20,7 @@ void GUIFunctions::_MessageBox(unsigned short pid, int id, const char *label) no
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUIFunctions::CustomMessageBox(unsigned short pid, int id, const char *label, const char *buttons) noexcept
|
extern "C" void GUIFunctions::CustomMessageBox(unsigned short pid, int id, const char *label, const char *buttons) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -36,7 +36,7 @@ void GUIFunctions::CustomMessageBox(unsigned short pid, int id, const char *labe
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUIFunctions::InputDialog(unsigned short pid, int id, const char *label, const char *note) noexcept
|
extern "C" void GUIFunctions::InputDialog(unsigned short pid, int id, const char *label, const char *note) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -52,7 +52,7 @@ void GUIFunctions::InputDialog(unsigned short pid, int id, const char *label, co
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUIFunctions::PasswordDialog(unsigned short pid, int id, const char *label, const char *note) noexcept
|
extern "C" void GUIFunctions::PasswordDialog(unsigned short pid, int id, const char *label, const char *note) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -68,7 +68,7 @@ void GUIFunctions::PasswordDialog(unsigned short pid, int id, const char *label,
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUIFunctions::ListBox(unsigned short pid, int id, const char *label, const char *items)
|
extern "C" void GUIFunctions::ListBox(unsigned short pid, int id, const char *label, const char *items)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -84,7 +84,7 @@ void GUIFunctions::ListBox(unsigned short pid, int id, const char *label, const
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUIFunctions::ClearQuickKeyChanges(unsigned short pid) noexcept
|
extern "C" void GUIFunctions::ClearQuickKeyChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -92,7 +92,7 @@ void GUIFunctions::ClearQuickKeyChanges(unsigned short pid) noexcept
|
||||||
player->quickKeyChanges.quickKeys.clear();
|
player->quickKeyChanges.quickKeys.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int GUIFunctions::GetQuickKeyChangesSize(unsigned short pid) noexcept
|
extern "C" unsigned int GUIFunctions::GetQuickKeyChangesSize(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -100,7 +100,7 @@ unsigned int GUIFunctions::GetQuickKeyChangesSize(unsigned short pid) noexcept
|
||||||
return player->quickKeyChanges.count;
|
return player->quickKeyChanges.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GUIFunctions::GetQuickKeySlot(unsigned short pid, unsigned int index) noexcept
|
extern "C" int GUIFunctions::GetQuickKeySlot(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -111,7 +111,7 @@ int GUIFunctions::GetQuickKeySlot(unsigned short pid, unsigned int index) noexce
|
||||||
return player->quickKeyChanges.quickKeys.at(index).slot;
|
return player->quickKeyChanges.quickKeys.at(index).slot;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GUIFunctions::GetQuickKeyType(unsigned short pid, unsigned int index) noexcept
|
extern "C" int GUIFunctions::GetQuickKeyType(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -122,7 +122,7 @@ int GUIFunctions::GetQuickKeyType(unsigned short pid, unsigned int index) noexce
|
||||||
return player->quickKeyChanges.quickKeys.at(index).type;
|
return player->quickKeyChanges.quickKeys.at(index).type;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *GUIFunctions::GetQuickKeyItemId(unsigned short pid, unsigned int index) noexcept
|
extern "C" const char *GUIFunctions::GetQuickKeyItemId(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -133,7 +133,7 @@ const char *GUIFunctions::GetQuickKeyItemId(unsigned short pid, unsigned int ind
|
||||||
return player->quickKeyChanges.quickKeys.at(index).itemId.c_str();
|
return player->quickKeyChanges.quickKeys.at(index).itemId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUIFunctions::AddQuickKey(unsigned short pid, unsigned short slot, int type, const char* itemId) noexcept
|
extern "C" void GUIFunctions::AddQuickKey(unsigned short pid, unsigned short slot, int type, const char* itemId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -146,7 +146,7 @@ void GUIFunctions::AddQuickKey(unsigned short pid, unsigned short slot, int type
|
||||||
player->quickKeyChanges.quickKeys.push_back(quickKey);
|
player->quickKeyChanges.quickKeys.push_back(quickKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUIFunctions::SendQuickKeyChanges(unsigned short pid) noexcept
|
extern "C" void GUIFunctions::SendQuickKeyChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -155,17 +155,17 @@ void GUIFunctions::SendQuickKeyChanges(unsigned short pid) noexcept
|
||||||
mwmp::Networking::get().getPlayerPacketController()->GetPacket(ID_PLAYER_QUICKKEYS)->Send(false);
|
mwmp::Networking::get().getPlayerPacketController()->GetPacket(ID_PLAYER_QUICKKEYS)->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUIFunctions::SetMapVisibility(unsigned short targetPid, unsigned short affectedPid, unsigned short state) noexcept
|
extern "C" void GUIFunctions::SetMapVisibility(unsigned short targetPid, unsigned short affectedPid, unsigned short state) noexcept
|
||||||
{
|
{
|
||||||
LOG_MESSAGE(Log::LOG_WARN, "stub");
|
LOG_MESSAGE(Log::LOG_WARN, "stub");
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUIFunctions::SetMapVisibilityAll(unsigned short targetPid, unsigned short state) noexcept
|
extern "C" void GUIFunctions::SetMapVisibilityAll(unsigned short targetPid, unsigned short state) noexcept
|
||||||
{
|
{
|
||||||
LOG_MESSAGE(Log::LOG_WARN, "stub");
|
LOG_MESSAGE(Log::LOG_WARN, "stub");
|
||||||
}
|
}
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
extern "C" // All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
void GUIFunctions::InitializeQuickKeyChanges(unsigned short pid) noexcept
|
void GUIFunctions::InitializeQuickKeyChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef OPENMW_GUIAPI_HPP
|
#ifndef OPENMW_GUIAPI_HPP
|
||||||
#define OPENMW_GUIAPI_HPP
|
#define OPENMW_GUIAPI_HPP
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define GUIAPI \
|
#define GUIAPI \
|
||||||
{"MessageBox", GUIFunctions::_MessageBox},\
|
{"MessageBox", GUIFunctions::_MessageBox},\
|
||||||
{"CustomMessageBox", GUIFunctions::CustomMessageBox},\
|
{"CustomMessageBox", GUIFunctions::CustomMessageBox},\
|
||||||
|
@ -25,10 +27,8 @@
|
||||||
\
|
\
|
||||||
{"InitializeQuickKeyChanges", GUIFunctions::InitializeQuickKeyChanges}
|
{"InitializeQuickKeyChanges", GUIFunctions::InitializeQuickKeyChanges}
|
||||||
|
|
||||||
class GUIFunctions
|
namespace GUIFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Display a simple messagebox at the bottom of the screen that vanishes
|
* \brief Display a simple messagebox at the bottom of the screen that vanishes
|
||||||
* after a few seconds.
|
* after a few seconds.
|
||||||
|
@ -41,7 +41,7 @@ public:
|
||||||
* \param label The text in the messagebox.
|
* \param label The text in the messagebox.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void _MessageBox(unsigned short pid, int id, const char *label) noexcept;
|
EXPORT_APIFUNCTION void CDECL _MessageBox(unsigned short pid, int id, const char *label) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Display an interactive messagebox at the center of the screen that
|
* \brief Display an interactive messagebox at the center of the screen that
|
||||||
|
@ -53,7 +53,7 @@ public:
|
||||||
* \parm buttons The captions of the buttons, separated by semicolons (e.g. "Yes;No;Maybe").
|
* \parm buttons The captions of the buttons, separated by semicolons (e.g. "Yes;No;Maybe").
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void CustomMessageBox(unsigned short pid, int id, const char *label, const char *buttons) noexcept;
|
EXPORT_APIFUNCTION void CDECL CustomMessageBox(unsigned short pid, int id, const char *label, const char *buttons) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Display an input dialog at the center of the screen.
|
* \brief Display an input dialog at the center of the screen.
|
||||||
|
@ -64,7 +64,7 @@ public:
|
||||||
* \parm note The text at the bottom of the input dialog.
|
* \parm note The text at the bottom of the input dialog.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void InputDialog(unsigned short pid, int id, const char *label, const char *note) noexcept;
|
EXPORT_APIFUNCTION void CDECL InputDialog(unsigned short pid, int id, const char *label, const char *note) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Display a password dialog at the center of the screen.
|
* \brief Display a password dialog at the center of the screen.
|
||||||
|
@ -78,7 +78,7 @@ public:
|
||||||
* \parm note The text at the bottom of the password dialog.
|
* \parm note The text at the bottom of the password dialog.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void PasswordDialog(unsigned short pid, int id, const char *label, const char *note) noexcept;
|
EXPORT_APIFUNCTION void CDECL PasswordDialog(unsigned short pid, int id, const char *label, const char *note) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Display a listbox at the center of the screen where each item takes up
|
* \brief Display a listbox at the center of the screen where each item takes up
|
||||||
|
@ -91,7 +91,7 @@ public:
|
||||||
* \parm items The items in the listbox, separated by newlines (e.g. "Item 1\nItem 2").
|
* \parm items The items in the listbox, separated by newlines (e.g. "Item 1\nItem 2").
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ListBox(unsigned short pid, int id, const char *label, const char *items);
|
EXPORT_APIFUNCTION void CDECL ListBox(unsigned short pid, int id, const char *label, const char *items);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the last recorded quick key changes for a player.
|
* \brief Clear the last recorded quick key changes for a player.
|
||||||
|
@ -101,7 +101,7 @@ public:
|
||||||
* \param pid The player ID whose quick key changes should be used.
|
* \param pid The player ID whose quick key changes should be used.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearQuickKeyChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearQuickKeyChanges(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in a player's latest quick key changes.
|
* \brief Get the number of indexes in a player's latest quick key changes.
|
||||||
|
@ -109,7 +109,7 @@ public:
|
||||||
* \param pid The player ID whose quick key changes should be used.
|
* \param pid The player ID whose quick key changes should be used.
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetQuickKeyChangesSize(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetQuickKeyChangesSize(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a new quick key to the quick key changes for a player.
|
* \brief Add a new quick key to the quick key changes for a player.
|
||||||
|
@ -120,7 +120,7 @@ public:
|
||||||
* \param itemId The itemId of the item.
|
* \param itemId The itemId of the item.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddQuickKey(unsigned short pid, unsigned short slot, int type, const char* itemId = "") noexcept;
|
EXPORT_APIFUNCTION void CDECL AddQuickKey(unsigned short pid, unsigned short slot, int type, const char* itemId = "") noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the slot of the quick key at a certain index in a player's latest quick key changes.
|
* \brief Get the slot of the quick key at a certain index in a player's latest quick key changes.
|
||||||
|
@ -129,7 +129,7 @@ public:
|
||||||
* \param index The index of the quick key in the quick key changes vector.
|
* \param index The index of the quick key in the quick key changes vector.
|
||||||
* \return The slot.
|
* \return The slot.
|
||||||
*/
|
*/
|
||||||
static int GetQuickKeySlot(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetQuickKeySlot(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the type of the quick key at a certain index in a player's latest quick key changes.
|
* \brief Get the type of the quick key at a certain index in a player's latest quick key changes.
|
||||||
|
@ -138,7 +138,7 @@ public:
|
||||||
* \param index The index of the quick key in the quick key changes vector.
|
* \param index The index of the quick key in the quick key changes vector.
|
||||||
* \return The quick key type.
|
* \return The quick key type.
|
||||||
*/
|
*/
|
||||||
static int GetQuickKeyType(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetQuickKeyType(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the itemId at a certain index in a player's latest quick key changes.
|
* \brief Get the itemId at a certain index in a player's latest quick key changes.
|
||||||
|
@ -147,7 +147,7 @@ public:
|
||||||
* \param index The index of the quick key in the quick key changes vector.
|
* \param index The index of the quick key in the quick key changes vector.
|
||||||
* \return The itemId.
|
* \return The itemId.
|
||||||
*/
|
*/
|
||||||
static const char *GetQuickKeyItemId(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetQuickKeyItemId(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerQuickKeys packet with a player's recorded quick key changes.
|
* \brief Send a PlayerQuickKeys packet with a player's recorded quick key changes.
|
||||||
|
@ -155,7 +155,7 @@ public:
|
||||||
* \param pid The player ID whose quick key changes should be used.
|
* \param pid The player ID whose quick key changes should be used.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendQuickKeyChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendQuickKeyChanges(unsigned short pid) noexcept;
|
||||||
|
|
||||||
//state 0 - disallow, 1 - allow
|
//state 0 - disallow, 1 - allow
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ public:
|
||||||
* \param state The state of the map marker (false to hide, true to reveal).
|
* \param state The state of the map marker (false to hide, true to reveal).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetMapVisibility(unsigned short targetPid, unsigned short affectedPid, unsigned short state) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetMapVisibility(unsigned short targetPid, unsigned short affectedPid, unsigned short state) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Determine whether a player's map marker can be seen by all other players.
|
* \brief Determine whether a player's map marker can be seen by all other players.
|
||||||
|
@ -180,12 +180,11 @@ public:
|
||||||
* \param state The state of the map marker (false to hide, true to reveal).
|
* \param state The state of the map marker (false to hide, true to reveal).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetMapVisibilityAll(unsigned short targetPid, unsigned short state) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetMapVisibilityAll(unsigned short targetPid, unsigned short state) noexcept;
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
static void InitializeQuickKeyChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL InitializeQuickKeyChanges(unsigned short pid) noexcept;
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
||||||
#endif //OPENMW_GUIAPI_HPP
|
#endif //OPENMW_GUIAPI_HPP
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
using namespace mwmp;
|
using namespace mwmp;
|
||||||
|
|
||||||
void ItemFunctions::ClearInventoryChanges(unsigned short pid) noexcept
|
extern "C" void ItemFunctions::ClearInventoryChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -17,12 +17,12 @@ void ItemFunctions::ClearInventoryChanges(unsigned short pid) noexcept
|
||||||
player->inventoryChanges.items.clear();
|
player->inventoryChanges.items.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
int ItemFunctions::GetEquipmentSize() noexcept
|
extern "C" int ItemFunctions::GetEquipmentSize() noexcept
|
||||||
{
|
{
|
||||||
return MWWorld::InventoryStore::Slots;
|
return MWWorld::InventoryStore::Slots;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ItemFunctions::GetInventoryChangesSize(unsigned short pid) noexcept
|
extern "C" unsigned int ItemFunctions::GetInventoryChangesSize(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -30,7 +30,7 @@ unsigned int ItemFunctions::GetInventoryChangesSize(unsigned short pid) noexcept
|
||||||
return player->inventoryChanges.count;
|
return player->inventoryChanges.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ItemFunctions::GetInventoryChangesAction(unsigned short pid) noexcept
|
extern "C" unsigned int ItemFunctions::GetInventoryChangesAction(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -38,7 +38,7 @@ unsigned int ItemFunctions::GetInventoryChangesAction(unsigned short pid) noexce
|
||||||
return player->inventoryChanges.action;
|
return player->inventoryChanges.action;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemFunctions::SetInventoryChangesAction(unsigned short pid, unsigned char action) noexcept
|
extern "C" void ItemFunctions::SetInventoryChangesAction(unsigned short pid, unsigned char action) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -46,7 +46,7 @@ void ItemFunctions::SetInventoryChangesAction(unsigned short pid, unsigned char
|
||||||
player->inventoryChanges.action = action;
|
player->inventoryChanges.action = action;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemFunctions::EquipItem(unsigned short pid, unsigned short slot, const char *refId, unsigned int count,
|
extern "C" void ItemFunctions::EquipItem(unsigned short pid, unsigned short slot, const char *refId, unsigned int count,
|
||||||
int charge, double enchantmentCharge) noexcept
|
int charge, double enchantmentCharge) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
|
@ -61,7 +61,7 @@ void ItemFunctions::EquipItem(unsigned short pid, unsigned short slot, const cha
|
||||||
player->equipmentIndexChanges.push_back(slot);
|
player->equipmentIndexChanges.push_back(slot);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemFunctions::UnequipItem(unsigned short pid, unsigned short slot) noexcept
|
extern "C" void ItemFunctions::UnequipItem(unsigned short pid, unsigned short slot) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -69,7 +69,7 @@ void ItemFunctions::UnequipItem(unsigned short pid, unsigned short slot) noexcep
|
||||||
ItemFunctions::EquipItem(pid, slot, "", 0, -1, -1);
|
ItemFunctions::EquipItem(pid, slot, "", 0, -1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemFunctions::AddItemChange(unsigned short pid, const char* refId, unsigned int count, int charge,
|
extern "C" void ItemFunctions::AddItemChange(unsigned short pid, const char* refId, unsigned int count, int charge,
|
||||||
double enchantmentCharge, const char* soul) noexcept
|
double enchantmentCharge, const char* soul) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
|
@ -85,7 +85,7 @@ void ItemFunctions::AddItemChange(unsigned short pid, const char* refId, unsigne
|
||||||
player->inventoryChanges.items.push_back(item);
|
player->inventoryChanges.items.push_back(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ItemFunctions::HasItemEquipped(unsigned short pid, const char* refId)
|
extern "C" bool ItemFunctions::HasItemEquipped(unsigned short pid, const char* refId)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, false);
|
GET_PLAYER(pid, player, false);
|
||||||
|
@ -96,7 +96,7 @@ bool ItemFunctions::HasItemEquipped(unsigned short pid, const char* refId)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ItemFunctions::GetEquipmentItemRefId(unsigned short pid, unsigned short slot) noexcept
|
extern "C" const char *ItemFunctions::GetEquipmentItemRefId(unsigned short pid, unsigned short slot) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -104,7 +104,7 @@ const char *ItemFunctions::GetEquipmentItemRefId(unsigned short pid, unsigned sh
|
||||||
return player->equipmentItems[slot].refId.c_str();
|
return player->equipmentItems[slot].refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int ItemFunctions::GetEquipmentItemCount(unsigned short pid, unsigned short slot) noexcept
|
extern "C" int ItemFunctions::GetEquipmentItemCount(unsigned short pid, unsigned short slot) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -112,7 +112,7 @@ int ItemFunctions::GetEquipmentItemCount(unsigned short pid, unsigned short slot
|
||||||
return player->equipmentItems[slot].count;
|
return player->equipmentItems[slot].count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ItemFunctions::GetEquipmentItemCharge(unsigned short pid, unsigned short slot) noexcept
|
extern "C" int ItemFunctions::GetEquipmentItemCharge(unsigned short pid, unsigned short slot) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -120,7 +120,7 @@ int ItemFunctions::GetEquipmentItemCharge(unsigned short pid, unsigned short slo
|
||||||
return player->equipmentItems[slot].charge;
|
return player->equipmentItems[slot].charge;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ItemFunctions::GetEquipmentItemEnchantmentCharge(unsigned short pid, unsigned short slot) noexcept
|
extern "C" double ItemFunctions::GetEquipmentItemEnchantmentCharge(unsigned short pid, unsigned short slot) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -128,7 +128,7 @@ double ItemFunctions::GetEquipmentItemEnchantmentCharge(unsigned short pid, unsi
|
||||||
return player->equipmentItems[slot].enchantmentCharge;
|
return player->equipmentItems[slot].enchantmentCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ItemFunctions::GetInventoryItemRefId(unsigned short pid, unsigned int index) noexcept
|
extern "C" const char *ItemFunctions::GetInventoryItemRefId(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -139,7 +139,7 @@ const char *ItemFunctions::GetInventoryItemRefId(unsigned short pid, unsigned in
|
||||||
return player->inventoryChanges.items.at(index).refId.c_str();
|
return player->inventoryChanges.items.at(index).refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int ItemFunctions::GetInventoryItemCount(unsigned short pid, unsigned int index) noexcept
|
extern "C" int ItemFunctions::GetInventoryItemCount(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -147,7 +147,7 @@ int ItemFunctions::GetInventoryItemCount(unsigned short pid, unsigned int index)
|
||||||
return player->inventoryChanges.items.at(index).count;
|
return player->inventoryChanges.items.at(index).count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ItemFunctions::GetInventoryItemCharge(unsigned short pid, unsigned int index) noexcept
|
extern "C" int ItemFunctions::GetInventoryItemCharge(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -155,7 +155,7 @@ int ItemFunctions::GetInventoryItemCharge(unsigned short pid, unsigned int index
|
||||||
return player->inventoryChanges.items.at(index).charge;
|
return player->inventoryChanges.items.at(index).charge;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ItemFunctions::GetInventoryItemEnchantmentCharge(unsigned short pid, unsigned int index) noexcept
|
extern "C" double ItemFunctions::GetInventoryItemEnchantmentCharge(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -163,7 +163,7 @@ double ItemFunctions::GetInventoryItemEnchantmentCharge(unsigned short pid, unsi
|
||||||
return player->inventoryChanges.items.at(index).enchantmentCharge;
|
return player->inventoryChanges.items.at(index).enchantmentCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ItemFunctions::GetInventoryItemSoul(unsigned short pid, unsigned int index) noexcept
|
extern "C" const char *ItemFunctions::GetInventoryItemSoul(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -174,7 +174,7 @@ const char *ItemFunctions::GetInventoryItemSoul(unsigned short pid, unsigned int
|
||||||
return player->inventoryChanges.items.at(index).soul.c_str();
|
return player->inventoryChanges.items.at(index).soul.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ItemFunctions::GetUsedItemRefId(unsigned short pid) noexcept
|
extern "C" const char *ItemFunctions::GetUsedItemRefId(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -182,7 +182,7 @@ const char *ItemFunctions::GetUsedItemRefId(unsigned short pid) noexcept
|
||||||
return player->usedItem.refId.c_str();
|
return player->usedItem.refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int ItemFunctions::GetUsedItemCount(unsigned short pid) noexcept
|
extern "C" int ItemFunctions::GetUsedItemCount(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -190,7 +190,7 @@ int ItemFunctions::GetUsedItemCount(unsigned short pid) noexcept
|
||||||
return player->usedItem.count;
|
return player->usedItem.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ItemFunctions::GetUsedItemCharge(unsigned short pid) noexcept
|
extern "C" int ItemFunctions::GetUsedItemCharge(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -198,7 +198,7 @@ int ItemFunctions::GetUsedItemCharge(unsigned short pid) noexcept
|
||||||
return player->usedItem.charge;
|
return player->usedItem.charge;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ItemFunctions::GetUsedItemEnchantmentCharge(unsigned short pid) noexcept
|
extern "C" double ItemFunctions::GetUsedItemEnchantmentCharge(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -206,7 +206,7 @@ double ItemFunctions::GetUsedItemEnchantmentCharge(unsigned short pid) noexcept
|
||||||
return player->usedItem.enchantmentCharge;
|
return player->usedItem.enchantmentCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ItemFunctions::GetUsedItemSoul(unsigned short pid) noexcept
|
extern "C" const char *ItemFunctions::GetUsedItemSoul(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -214,7 +214,7 @@ const char *ItemFunctions::GetUsedItemSoul(unsigned short pid) noexcept
|
||||||
return player->usedItem.soul.c_str();
|
return player->usedItem.soul.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemFunctions::SendEquipment(unsigned short pid) noexcept
|
extern "C" void ItemFunctions::SendEquipment(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -228,7 +228,7 @@ void ItemFunctions::SendEquipment(unsigned short pid) noexcept
|
||||||
player->equipmentIndexChanges.clear();
|
player->equipmentIndexChanges.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemFunctions::SendInventoryChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ItemFunctions::SendInventoryChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -242,7 +242,7 @@ void ItemFunctions::SendInventoryChanges(unsigned short pid, bool sendToOtherPla
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemFunctions::SendItemUse(unsigned short pid) noexcept
|
extern "C" void ItemFunctions::SendItemUse(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -253,14 +253,14 @@ void ItemFunctions::SendItemUse(unsigned short pid) noexcept
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
extern "C" // All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
void ItemFunctions::InitializeInventoryChanges(unsigned short pid) noexcept
|
void ItemFunctions::InitializeInventoryChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
ClearInventoryChanges(pid);
|
ClearInventoryChanges(pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemFunctions::AddItem(unsigned short pid, const char* refId, unsigned int count, int charge,
|
extern "C" void ItemFunctions::AddItem(unsigned short pid, const char* refId, unsigned int count, int charge,
|
||||||
double enchantmentCharge, const char* soul) noexcept
|
double enchantmentCharge, const char* soul) noexcept
|
||||||
{
|
{
|
||||||
AddItemChange(pid, refId, count, charge, enchantmentCharge, soul);
|
AddItemChange(pid, refId, count, charge, enchantmentCharge, soul);
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef OPENMW_ITEMAPI_HPP
|
#ifndef OPENMW_ITEMAPI_HPP
|
||||||
#define OPENMW_ITEMAPI_HPP
|
#define OPENMW_ITEMAPI_HPP
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define ITEMAPI \
|
#define ITEMAPI \
|
||||||
{"ClearInventoryChanges", ItemFunctions::ClearInventoryChanges},\
|
{"ClearInventoryChanges", ItemFunctions::ClearInventoryChanges},\
|
||||||
\
|
\
|
||||||
|
@ -41,10 +43,8 @@
|
||||||
{"InitializeInventoryChanges", ItemFunctions::InitializeInventoryChanges},\
|
{"InitializeInventoryChanges", ItemFunctions::InitializeInventoryChanges},\
|
||||||
{"AddItem", ItemFunctions::AddItem}
|
{"AddItem", ItemFunctions::AddItem}
|
||||||
|
|
||||||
class ItemFunctions
|
namespace ItemFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the last recorded inventory changes for a player.
|
* \brief Clear the last recorded inventory changes for a player.
|
||||||
*
|
*
|
||||||
|
@ -53,7 +53,7 @@ public:
|
||||||
* \param pid The player ID whose inventory changes should be used.
|
* \param pid The player ID whose inventory changes should be used.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearInventoryChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearInventoryChanges(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of slots used for equipment.
|
* \brief Get the number of slots used for equipment.
|
||||||
|
@ -62,7 +62,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return The number of slots.
|
* \return The number of slots.
|
||||||
*/
|
*/
|
||||||
static int GetEquipmentSize() noexcept;
|
EXPORT_APIFUNCTION int CDECL GetEquipmentSize() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in a player's latest inventory changes.
|
* \brief Get the number of indexes in a player's latest inventory changes.
|
||||||
|
@ -70,7 +70,7 @@ public:
|
||||||
* \param pid The player ID whose inventory changes should be used.
|
* \param pid The player ID whose inventory changes should be used.
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetInventoryChangesSize(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetInventoryChangesSize(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the action type used in a player's latest inventory changes.
|
* \brief Get the action type used in a player's latest inventory changes.
|
||||||
|
@ -78,7 +78,7 @@ public:
|
||||||
* \param pid The player ID whose inventory changes should be used.
|
* \param pid The player ID whose inventory changes should be used.
|
||||||
* \return The action type (0 for SET, 1 for ADD, 2 for REMOVE).
|
* \return The action type (0 for SET, 1 for ADD, 2 for REMOVE).
|
||||||
*/
|
*/
|
||||||
static unsigned int GetInventoryChangesAction(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetInventoryChangesAction(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the action type in a player's inventory changes.
|
* \brief Set the action type in a player's inventory changes.
|
||||||
|
@ -87,7 +87,7 @@ public:
|
||||||
* \param action The action (0 for SET, 1 for ADD, 2 for REMOVE).
|
* \param action The action (0 for SET, 1 for ADD, 2 for REMOVE).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetInventoryChangesAction(unsigned short pid, unsigned char action) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetInventoryChangesAction(unsigned short pid, unsigned char action) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Equip an item in a certain slot of the equipment of a player.
|
* \brief Equip an item in a certain slot of the equipment of a player.
|
||||||
|
@ -100,7 +100,7 @@ public:
|
||||||
* \param enchantmentCharge The enchantment charge of the item.
|
* \param enchantmentCharge The enchantment charge of the item.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void EquipItem(unsigned short pid, unsigned short slot, const char* refId, unsigned int count, int charge,
|
EXPORT_APIFUNCTION void CDECL EquipItem(unsigned short pid, unsigned short slot, const char* refId, unsigned int count, int charge,
|
||||||
double enchantmentCharge = -1) noexcept;
|
double enchantmentCharge = -1) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -110,7 +110,7 @@ public:
|
||||||
* \param slot The equipment slot.
|
* \param slot The equipment slot.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void UnequipItem(unsigned short pid, unsigned short slot) noexcept;
|
EXPORT_APIFUNCTION void CDECL UnequipItem(unsigned short pid, unsigned short slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add an item change to a player's inventory changes.
|
* \brief Add an item change to a player's inventory changes.
|
||||||
|
@ -123,7 +123,7 @@ public:
|
||||||
* \param soul The soul of the item.
|
* \param soul The soul of the item.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddItemChange(unsigned short pid, const char* refId, unsigned int count, int charge,
|
EXPORT_APIFUNCTION void CDECL AddItemChange(unsigned short pid, const char* refId, unsigned int count, int charge,
|
||||||
double enchantmentCharge, const char* soul) noexcept;
|
double enchantmentCharge, const char* soul) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -133,7 +133,7 @@ public:
|
||||||
* \param refId The refId of the item.
|
* \param refId The refId of the item.
|
||||||
* \return Whether the player has the item equipped.
|
* \return Whether the player has the item equipped.
|
||||||
*/
|
*/
|
||||||
static bool HasItemEquipped(unsigned short pid, const char* refId);
|
EXPORT_APIFUNCTION bool CDECL HasItemEquipped(unsigned short pid, const char* refId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the item in a certain slot of the equipment of a player.
|
* \brief Get the refId of the item in a certain slot of the equipment of a player.
|
||||||
|
@ -142,7 +142,7 @@ public:
|
||||||
* \param slot The slot of the equipment item.
|
* \param slot The slot of the equipment item.
|
||||||
* \return The refId.
|
* \return The refId.
|
||||||
*/
|
*/
|
||||||
static const char *GetEquipmentItemRefId(unsigned short pid, unsigned short slot) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetEquipmentItemRefId(unsigned short pid, unsigned short slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the count of the item in a certain slot of the equipment of a player.
|
* \brief Get the count of the item in a certain slot of the equipment of a player.
|
||||||
|
@ -151,7 +151,7 @@ public:
|
||||||
* \param slot The slot of the equipment item.
|
* \param slot The slot of the equipment item.
|
||||||
* \return The item count.
|
* \return The item count.
|
||||||
*/
|
*/
|
||||||
static int GetEquipmentItemCount(unsigned short pid, unsigned short slot) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetEquipmentItemCount(unsigned short pid, unsigned short slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the charge of the item in a certain slot of the equipment of a player.
|
* \brief Get the charge of the item in a certain slot of the equipment of a player.
|
||||||
|
@ -160,7 +160,7 @@ public:
|
||||||
* \param slot The slot of the equipment item.
|
* \param slot The slot of the equipment item.
|
||||||
* \return The charge.
|
* \return The charge.
|
||||||
*/
|
*/
|
||||||
static int GetEquipmentItemCharge(unsigned short pid, unsigned short slot) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetEquipmentItemCharge(unsigned short pid, unsigned short slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the enchantment charge of the item in a certain slot of the equipment of
|
* \brief Get the enchantment charge of the item in a certain slot of the equipment of
|
||||||
|
@ -170,7 +170,7 @@ public:
|
||||||
* \param slot The slot of the equipment item.
|
* \param slot The slot of the equipment item.
|
||||||
* \return The enchantment charge.
|
* \return The enchantment charge.
|
||||||
*/
|
*/
|
||||||
static double GetEquipmentItemEnchantmentCharge(unsigned short pid, unsigned short slot) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetEquipmentItemEnchantmentCharge(unsigned short pid, unsigned short slot) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the item at a certain index in a player's latest inventory
|
* \brief Get the refId of the item at a certain index in a player's latest inventory
|
||||||
|
@ -180,7 +180,7 @@ public:
|
||||||
* \param index The index of the inventory item.
|
* \param index The index of the inventory item.
|
||||||
* \return The refId.
|
* \return The refId.
|
||||||
*/
|
*/
|
||||||
static const char *GetInventoryItemRefId(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetInventoryItemRefId(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the count of the item at a certain index in a player's latest inventory
|
* \brief Get the count of the item at a certain index in a player's latest inventory
|
||||||
|
@ -190,7 +190,7 @@ public:
|
||||||
* \param index The index of the inventory item.
|
* \param index The index of the inventory item.
|
||||||
* \return The item count.
|
* \return The item count.
|
||||||
*/
|
*/
|
||||||
static int GetInventoryItemCount(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetInventoryItemCount(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the charge of the item at a certain index in a player's latest inventory
|
* \brief Get the charge of the item at a certain index in a player's latest inventory
|
||||||
|
@ -200,7 +200,7 @@ public:
|
||||||
* \param index The index of the inventory item.
|
* \param index The index of the inventory item.
|
||||||
* \return The charge.
|
* \return The charge.
|
||||||
*/
|
*/
|
||||||
static int GetInventoryItemCharge(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetInventoryItemCharge(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the enchantment charge of the item at a certain index in a player's
|
* \brief Get the enchantment charge of the item at a certain index in a player's
|
||||||
|
@ -210,7 +210,7 @@ public:
|
||||||
* \param index The index of the inventory item.
|
* \param index The index of the inventory item.
|
||||||
* \return The enchantment charge.
|
* \return The enchantment charge.
|
||||||
*/
|
*/
|
||||||
static double GetInventoryItemEnchantmentCharge(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetInventoryItemEnchantmentCharge(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the soul of the item at a certain index in a player's latest inventory
|
* \brief Get the soul of the item at a certain index in a player's latest inventory
|
||||||
|
@ -220,7 +220,7 @@ public:
|
||||||
* \param index The index of the inventory item.
|
* \param index The index of the inventory item.
|
||||||
* \return The soul.
|
* \return The soul.
|
||||||
*/
|
*/
|
||||||
static const char *GetInventoryItemSoul(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetInventoryItemSoul(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the item last used by a player.
|
* \brief Get the refId of the item last used by a player.
|
||||||
|
@ -228,7 +228,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The refId.
|
* \return The refId.
|
||||||
*/
|
*/
|
||||||
static const char *GetUsedItemRefId(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetUsedItemRefId(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the count of the item last used by a player.
|
* \brief Get the count of the item last used by a player.
|
||||||
|
@ -236,7 +236,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The item count.
|
* \return The item count.
|
||||||
*/
|
*/
|
||||||
static int GetUsedItemCount(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetUsedItemCount(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the charge of the item last used by a player.
|
* \brief Get the charge of the item last used by a player.
|
||||||
|
@ -244,7 +244,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The charge.
|
* \return The charge.
|
||||||
*/
|
*/
|
||||||
static int GetUsedItemCharge(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetUsedItemCharge(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the enchantment charge of the item last used by a player.
|
* \brief Get the enchantment charge of the item last used by a player.
|
||||||
|
@ -252,7 +252,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The enchantment charge.
|
* \return The enchantment charge.
|
||||||
*/
|
*/
|
||||||
static double GetUsedItemEnchantmentCharge(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetUsedItemEnchantmentCharge(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the soul of the item last used by a player.
|
* \brief Get the soul of the item last used by a player.
|
||||||
|
@ -260,7 +260,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The soul.
|
* \return The soul.
|
||||||
*/
|
*/
|
||||||
static const char *GetUsedItemSoul(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetUsedItemSoul(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerEquipment packet with a player's equipment.
|
* \brief Send a PlayerEquipment packet with a player's equipment.
|
||||||
|
@ -270,7 +270,7 @@ public:
|
||||||
* \param pid The player ID whose equipment should be sent.
|
* \param pid The player ID whose equipment should be sent.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendEquipment(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendEquipment(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerInventory packet with a player's recorded inventory changes.
|
* \brief Send a PlayerInventory packet with a player's recorded inventory changes.
|
||||||
|
@ -282,7 +282,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendInventoryChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendInventoryChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerItemUse causing a player to use their recorded usedItem.
|
* \brief Send a PlayerItemUse causing a player to use their recorded usedItem.
|
||||||
|
@ -290,17 +290,14 @@ public:
|
||||||
* \param pid The player ID affected.
|
* \param pid The player ID affected.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendItemUse(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendItemUse(unsigned short pid) noexcept;
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
static void InitializeInventoryChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL InitializeInventoryChanges(unsigned short pid) noexcept;
|
||||||
|
|
||||||
static void AddItem(unsigned short pid, const char* refId, unsigned int count, int charge,
|
EXPORT_APIFUNCTION void CDECL AddItem(unsigned short pid, const char* refId, unsigned int count, int charge,
|
||||||
double enchantmentCharge, const char* soul) noexcept;
|
double enchantmentCharge, const char* soul) noexcept;
|
||||||
|
}
|
||||||
private:
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif //OPENMW_ITEMAPI_HPP
|
#endif //OPENMW_ITEMAPI_HPP
|
||||||
|
|
|
@ -11,7 +11,7 @@ using namespace std;
|
||||||
|
|
||||||
static std::string tempCellDescription;
|
static std::string tempCellDescription;
|
||||||
|
|
||||||
unsigned char MechanicsFunctions::GetMiscellaneousChangeType(unsigned short pid) noexcept
|
extern "C" unsigned char MechanicsFunctions::GetMiscellaneousChangeType(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -19,16 +19,16 @@ unsigned char MechanicsFunctions::GetMiscellaneousChangeType(unsigned short pid)
|
||||||
return player->miscellaneousChangeType;
|
return player->miscellaneousChangeType;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *MechanicsFunctions::GetMarkCell(unsigned short pid) noexcept
|
extern "C" const char *MechanicsFunctions::GetMarkCell(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
|
||||||
tempCellDescription = player->cell.getDescription().c_str();
|
tempCellDescription = player->cell.getDescription();
|
||||||
return tempCellDescription.c_str();
|
return tempCellDescription.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
double MechanicsFunctions::GetMarkPosX(unsigned short pid) noexcept
|
extern "C" double MechanicsFunctions::GetMarkPosX(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -36,7 +36,7 @@ double MechanicsFunctions::GetMarkPosX(unsigned short pid) noexcept
|
||||||
return player->markPosition.pos[0];
|
return player->markPosition.pos[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
double MechanicsFunctions::GetMarkPosY(unsigned short pid) noexcept
|
extern "C" double MechanicsFunctions::GetMarkPosY(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -44,7 +44,7 @@ double MechanicsFunctions::GetMarkPosY(unsigned short pid) noexcept
|
||||||
return player->markPosition.pos[1];
|
return player->markPosition.pos[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
double MechanicsFunctions::GetMarkPosZ(unsigned short pid) noexcept
|
extern "C" double MechanicsFunctions::GetMarkPosZ(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -52,7 +52,7 @@ double MechanicsFunctions::GetMarkPosZ(unsigned short pid) noexcept
|
||||||
return player->markPosition.pos[2];
|
return player->markPosition.pos[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
double MechanicsFunctions::GetMarkRotX(unsigned short pid) noexcept
|
extern "C" double MechanicsFunctions::GetMarkRotX(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -60,7 +60,7 @@ double MechanicsFunctions::GetMarkRotX(unsigned short pid) noexcept
|
||||||
return player->markPosition.rot[0];
|
return player->markPosition.rot[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
double MechanicsFunctions::GetMarkRotZ(unsigned short pid) noexcept
|
extern "C" double MechanicsFunctions::GetMarkRotZ(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -68,7 +68,7 @@ double MechanicsFunctions::GetMarkRotZ(unsigned short pid) noexcept
|
||||||
return player->markPosition.rot[2];
|
return player->markPosition.rot[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MechanicsFunctions::DoesPlayerHavePlayerKiller(unsigned short pid) noexcept
|
extern "C" bool MechanicsFunctions::DoesPlayerHavePlayerKiller(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, false);
|
GET_PLAYER(pid, player, false);
|
||||||
|
@ -76,7 +76,7 @@ bool MechanicsFunctions::DoesPlayerHavePlayerKiller(unsigned short pid) noexcept
|
||||||
return player->killer.isPlayer;
|
return player->killer.isPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
int MechanicsFunctions::GetPlayerKillerPid(unsigned short pid) noexcept
|
extern "C" int MechanicsFunctions::GetPlayerKillerPid(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -89,7 +89,7 @@ int MechanicsFunctions::GetPlayerKillerPid(unsigned short pid) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *MechanicsFunctions::GetPlayerKillerRefId(unsigned short pid) noexcept
|
extern "C" const char *MechanicsFunctions::GetPlayerKillerRefId(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -97,7 +97,7 @@ const char *MechanicsFunctions::GetPlayerKillerRefId(unsigned short pid) noexcep
|
||||||
return player->killer.refId.c_str();
|
return player->killer.refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int MechanicsFunctions::GetPlayerKillerRefNum(unsigned short pid) noexcept
|
extern "C" unsigned int MechanicsFunctions::GetPlayerKillerRefNum(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -105,7 +105,7 @@ unsigned int MechanicsFunctions::GetPlayerKillerRefNum(unsigned short pid) noexc
|
||||||
return player->killer.refNum;
|
return player->killer.refNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int MechanicsFunctions::GetPlayerKillerMpNum(unsigned short pid) noexcept
|
extern "C" unsigned int MechanicsFunctions::GetPlayerKillerMpNum(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -113,7 +113,7 @@ unsigned int MechanicsFunctions::GetPlayerKillerMpNum(unsigned short pid) noexce
|
||||||
return player->killer.mpNum;
|
return player->killer.mpNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *MechanicsFunctions::GetPlayerKillerName(unsigned short pid) noexcept
|
extern "C" const char *MechanicsFunctions::GetPlayerKillerName(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -121,7 +121,7 @@ const char *MechanicsFunctions::GetPlayerKillerName(unsigned short pid) noexcept
|
||||||
return player->killer.name.c_str();
|
return player->killer.name.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *MechanicsFunctions::GetSelectedSpellId(unsigned short pid) noexcept
|
extern "C" const char *MechanicsFunctions::GetSelectedSpellId(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -129,7 +129,7 @@ const char *MechanicsFunctions::GetSelectedSpellId(unsigned short pid) noexcept
|
||||||
return player->selectedSpellId.c_str();
|
return player->selectedSpellId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int MechanicsFunctions::GetDrawState(unsigned short pid) noexcept
|
extern "C" unsigned int MechanicsFunctions::GetDrawState(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, false);
|
GET_PLAYER(pid, player, false);
|
||||||
|
@ -137,7 +137,7 @@ unsigned int MechanicsFunctions::GetDrawState(unsigned short pid) noexcept
|
||||||
return player->drawState;
|
return player->drawState;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MechanicsFunctions::GetSneakState(unsigned short pid) noexcept
|
extern "C" bool MechanicsFunctions::GetSneakState(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, false);
|
GET_PLAYER(pid, player, false);
|
||||||
|
@ -146,7 +146,7 @@ bool MechanicsFunctions::GetSneakState(unsigned short pid) noexcept
|
||||||
return (player->movementFlags & 8) != 0;
|
return (player->movementFlags & 8) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MechanicsFunctions::SetMarkCell(unsigned short pid, const char *cellDescription) noexcept
|
extern "C" void MechanicsFunctions::SetMarkCell(unsigned short pid, const char *cellDescription) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -154,7 +154,7 @@ void MechanicsFunctions::SetMarkCell(unsigned short pid, const char *cellDescrip
|
||||||
player->markCell = Utils::getCellFromDescription(cellDescription);
|
player->markCell = Utils::getCellFromDescription(cellDescription);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MechanicsFunctions::SetMarkPos(unsigned short pid, double x, double y, double z) noexcept
|
extern "C" void MechanicsFunctions::SetMarkPos(unsigned short pid, double x, double y, double z) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -164,7 +164,7 @@ void MechanicsFunctions::SetMarkPos(unsigned short pid, double x, double y, doub
|
||||||
player->markPosition.pos[2] = z;
|
player->markPosition.pos[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MechanicsFunctions::SetMarkRot(unsigned short pid, double x, double z) noexcept
|
extern "C" void MechanicsFunctions::SetMarkRot(unsigned short pid, double x, double z) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -173,7 +173,7 @@ void MechanicsFunctions::SetMarkRot(unsigned short pid, double x, double z) noex
|
||||||
player->markPosition.rot[2] = z;
|
player->markPosition.rot[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MechanicsFunctions::SetSelectedSpellId(unsigned short pid, const char *spellId) noexcept
|
extern "C" void MechanicsFunctions::SetSelectedSpellId(unsigned short pid, const char *spellId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -181,7 +181,7 @@ void MechanicsFunctions::SetSelectedSpellId(unsigned short pid, const char *spel
|
||||||
player->selectedSpellId = spellId;
|
player->selectedSpellId = spellId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MechanicsFunctions::SendMarkLocation(unsigned short pid)
|
extern "C" void MechanicsFunctions::SendMarkLocation(unsigned short pid)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -194,7 +194,7 @@ void MechanicsFunctions::SendMarkLocation(unsigned short pid)
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MechanicsFunctions::SendSelectedSpell(unsigned short pid)
|
extern "C" void MechanicsFunctions::SendSelectedSpell(unsigned short pid)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -207,7 +207,7 @@ void MechanicsFunctions::SendSelectedSpell(unsigned short pid)
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MechanicsFunctions::Jail(unsigned short pid, int jailDays, bool ignoreJailTeleportation, bool ignoreJailSkillIncreases,
|
extern "C" void MechanicsFunctions::Jail(unsigned short pid, int jailDays, bool ignoreJailTeleportation, bool ignoreJailSkillIncreases,
|
||||||
const char* jailProgressText, const char* jailEndText) noexcept
|
const char* jailProgressText, const char* jailEndText) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
|
@ -225,7 +225,7 @@ void MechanicsFunctions::Jail(unsigned short pid, int jailDays, bool ignoreJailT
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MechanicsFunctions::Resurrect(unsigned short pid, unsigned int type) noexcept
|
extern "C" void MechanicsFunctions::Resurrect(unsigned short pid, unsigned int type) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -241,7 +241,7 @@ void MechanicsFunctions::Resurrect(unsigned short pid, unsigned int type) noexce
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
const char *MechanicsFunctions::GetDeathReason(unsigned short pid) noexcept
|
extern "C" const char *MechanicsFunctions::GetDeathReason(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -259,7 +259,7 @@ const char *MechanicsFunctions::GetDeathReason(unsigned short pid) noexcept
|
||||||
return "suicide";
|
return "suicide";
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int MechanicsFunctions::GetPlayerKillerRefNumIndex(unsigned short pid) noexcept
|
extern "C" unsigned int MechanicsFunctions::GetPlayerKillerRefNumIndex(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
return GetPlayerKillerRefNum(pid);
|
return GetPlayerKillerRefNum(pid);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include "../Types.hpp"
|
#include "../Types.hpp"
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define MECHANICSAPI \
|
#define MECHANICSAPI \
|
||||||
{"GetMiscellaneousChangeType", MechanicsFunctions::GetMiscellaneousChangeType},\
|
{"GetMiscellaneousChangeType", MechanicsFunctions::GetMiscellaneousChangeType},\
|
||||||
\
|
\
|
||||||
|
@ -38,17 +40,15 @@
|
||||||
{"GetDeathReason", MechanicsFunctions::GetDeathReason},\
|
{"GetDeathReason", MechanicsFunctions::GetDeathReason},\
|
||||||
{"GetPlayerKillerRefNumIndex", MechanicsFunctions::GetPlayerKillerRefNumIndex}
|
{"GetPlayerKillerRefNumIndex", MechanicsFunctions::GetPlayerKillerRefNumIndex}
|
||||||
|
|
||||||
class MechanicsFunctions
|
namespace MechanicsFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the type of a PlayerMiscellaneous packet.
|
* \brief Get the type of a PlayerMiscellaneous packet.
|
||||||
*
|
*
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The type.
|
* \return The type.
|
||||||
*/
|
*/
|
||||||
static unsigned char GetMiscellaneousChangeType(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned char CDECL GetMiscellaneousChangeType(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the cell description of a player's Mark cell.
|
* \brief Get the cell description of a player's Mark cell.
|
||||||
|
@ -56,7 +56,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The cell description.
|
* \return The cell description.
|
||||||
*/
|
*/
|
||||||
static const char *GetMarkCell(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetMarkCell(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the X position of a player's Mark.
|
* \brief Get the X position of a player's Mark.
|
||||||
|
@ -64,7 +64,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The X position.
|
* \return The X position.
|
||||||
*/
|
*/
|
||||||
static double GetMarkPosX(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetMarkPosX(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Y position of a player's Mark.
|
* \brief Get the Y position of a player's Mark.
|
||||||
|
@ -72,7 +72,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The Y position.
|
* \return The Y position.
|
||||||
*/
|
*/
|
||||||
static double GetMarkPosY(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetMarkPosY(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Z position of a player's Mark.
|
* \brief Get the Z position of a player's Mark.
|
||||||
|
@ -80,7 +80,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The Z position.
|
* \return The Z position.
|
||||||
*/
|
*/
|
||||||
static double GetMarkPosZ(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetMarkPosZ(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the X rotation of a player's Mark.
|
* \brief Get the X rotation of a player's Mark.
|
||||||
|
@ -88,7 +88,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The X rotation.
|
* \return The X rotation.
|
||||||
*/
|
*/
|
||||||
static double GetMarkRotX(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetMarkRotX(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Z rotation of a player's Mark.
|
* \brief Get the Z rotation of a player's Mark.
|
||||||
|
@ -96,7 +96,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The X rotation.
|
* \return The X rotation.
|
||||||
*/
|
*/
|
||||||
static double GetMarkRotZ(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetMarkRotZ(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the ID of a player's selected spell.
|
* \brief Get the ID of a player's selected spell.
|
||||||
|
@ -104,7 +104,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The spell ID.
|
* \return The spell ID.
|
||||||
*/
|
*/
|
||||||
static const char *GetSelectedSpellId(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetSelectedSpellId(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether the killer of a certain player is also a player.
|
* \brief Check whether the killer of a certain player is also a player.
|
||||||
|
@ -112,7 +112,7 @@ public:
|
||||||
* \param pid The player ID of the killed player.
|
* \param pid The player ID of the killed player.
|
||||||
* \return Whether the player was killed by another player.
|
* \return Whether the player was killed by another player.
|
||||||
*/
|
*/
|
||||||
static bool DoesPlayerHavePlayerKiller(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION bool CDECL DoesPlayerHavePlayerKiller(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the player ID of the killer of a certain player.
|
* \brief Get the player ID of the killer of a certain player.
|
||||||
|
@ -120,7 +120,7 @@ public:
|
||||||
* \param pid The player ID of the killed player.
|
* \param pid The player ID of the killed player.
|
||||||
* \return The player ID of the killer.
|
* \return The player ID of the killer.
|
||||||
*/
|
*/
|
||||||
static int GetPlayerKillerPid(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetPlayerKillerPid(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the actor killer of a certain player.
|
* \brief Get the refId of the actor killer of a certain player.
|
||||||
|
@ -128,7 +128,7 @@ public:
|
||||||
* \param pid The player ID of the killed player.
|
* \param pid The player ID of the killed player.
|
||||||
* \return The refId of the killer.
|
* \return The refId of the killer.
|
||||||
*/
|
*/
|
||||||
static const char *GetPlayerKillerRefId(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetPlayerKillerRefId(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refNum of the actor killer of a certain player.
|
* \brief Get the refNum of the actor killer of a certain player.
|
||||||
|
@ -136,7 +136,7 @@ public:
|
||||||
* \param pid The player ID of the killed player.
|
* \param pid The player ID of the killed player.
|
||||||
* \return The refNum of the killer.
|
* \return The refNum of the killer.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetPlayerKillerRefNum(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetPlayerKillerRefNum(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the mpNum of the actor killer of a certain player.
|
* \brief Get the mpNum of the actor killer of a certain player.
|
||||||
|
@ -144,7 +144,7 @@ public:
|
||||||
* \param pid The player ID of the killed player.
|
* \param pid The player ID of the killed player.
|
||||||
* \return The mpNum of the killer.
|
* \return The mpNum of the killer.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetPlayerKillerMpNum(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetPlayerKillerMpNum(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the name of the actor killer of a certain player.
|
* \brief Get the name of the actor killer of a certain player.
|
||||||
|
@ -152,7 +152,7 @@ public:
|
||||||
* \param pid The player ID of the killed player.
|
* \param pid The player ID of the killed player.
|
||||||
* \return The name of the killer.
|
* \return The name of the killer.
|
||||||
*/
|
*/
|
||||||
static const char *GetPlayerKillerName(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetPlayerKillerName(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the draw state of a player (0 for nothing, 1 for drawn weapon,
|
* \brief Get the draw state of a player (0 for nothing, 1 for drawn weapon,
|
||||||
|
@ -161,7 +161,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The draw state.
|
* \return The draw state.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetDrawState(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetDrawState(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the sneak state of a player.
|
* \brief Get the sneak state of a player.
|
||||||
|
@ -169,7 +169,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return Whether the player is sneaking.
|
* \return Whether the player is sneaking.
|
||||||
*/
|
*/
|
||||||
static bool GetSneakState(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION bool CDECL GetSneakState(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the Mark cell of a player.
|
* \brief Set the Mark cell of a player.
|
||||||
|
@ -184,7 +184,7 @@ public:
|
||||||
* \param cellDescription The cell description.
|
* \param cellDescription The cell description.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetMarkCell(unsigned short pid, const char *cellDescription) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetMarkCell(unsigned short pid, const char *cellDescription) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the Mark position of a player.
|
* \brief Set the Mark position of a player.
|
||||||
|
@ -198,7 +198,7 @@ public:
|
||||||
* \param z The Z position.
|
* \param z The Z position.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetMarkPos(unsigned short pid, double x, double y, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetMarkPos(unsigned short pid, double x, double y, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the Mark rotation of a player.
|
* \brief Set the Mark rotation of a player.
|
||||||
|
@ -211,7 +211,7 @@ public:
|
||||||
* \param z The Z rotation.
|
* \param z The Z rotation.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetMarkRot(unsigned short pid, double x, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetMarkRot(unsigned short pid, double x, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the ID of a player's selected spell.
|
* \brief Set the ID of a player's selected spell.
|
||||||
|
@ -223,7 +223,7 @@ public:
|
||||||
* \param spellId The spell ID.
|
* \param spellId The spell ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetSelectedSpellId(unsigned short pid, const char *spellId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetSelectedSpellId(unsigned short pid, const char *spellId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerMiscellaneous packet with a Mark location to a player.
|
* \brief Send a PlayerMiscellaneous packet with a Mark location to a player.
|
||||||
|
@ -231,7 +231,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendMarkLocation(unsigned short pid);
|
EXPORT_APIFUNCTION void CDECL SendMarkLocation(unsigned short pid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerMiscellaneous packet with a selected spell ID to a player.
|
* \brief Send a PlayerMiscellaneous packet with a selected spell ID to a player.
|
||||||
|
@ -239,7 +239,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendSelectedSpell(unsigned short pid);
|
EXPORT_APIFUNCTION void CDECL SendSelectedSpell(unsigned short pid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerJail packet about a player.
|
* \brief Send a PlayerJail packet about a player.
|
||||||
|
@ -261,7 +261,7 @@ public:
|
||||||
* \param jailEndText The text that should be displayed once the jailing period is over.
|
* \param jailEndText The text that should be displayed once the jailing period is over.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void Jail(unsigned short pid, int jailDays, bool ignoreJailTeleportation, bool ignoreJailSkillIncreases,
|
EXPORT_APIFUNCTION void CDECL Jail(unsigned short pid, int jailDays, bool ignoreJailTeleportation, bool ignoreJailSkillIncreases,
|
||||||
const char* jailProgressText, const char* jailEndText) noexcept;
|
const char* jailProgressText, const char* jailEndText) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -274,13 +274,12 @@ public:
|
||||||
* 2 for TRIBUNAL_TEMPLE).
|
* 2 for TRIBUNAL_TEMPLE).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void Resurrect(unsigned short pid, unsigned int type) noexcept;
|
EXPORT_APIFUNCTION void CDECL Resurrect(unsigned short pid, unsigned int type) noexcept;
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
static const char *GetDeathReason(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetDeathReason(unsigned short pid) noexcept;
|
||||||
static unsigned int GetPlayerKillerRefNumIndex(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetPlayerKillerRefNumIndex(unsigned short pid) noexcept;
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
||||||
#endif //OPENMW_MECHANICSAPI_HPP
|
#endif //OPENMW_MECHANICSAPI_HPP
|
||||||
|
|
|
@ -11,12 +11,12 @@ using namespace std;
|
||||||
|
|
||||||
static std::string tempFilename;
|
static std::string tempFilename;
|
||||||
|
|
||||||
bool MiscellaneousFunctions::DoesFileExist(const char *filePath) noexcept
|
extern "C" bool MiscellaneousFunctions::DoesFileExist(const char *filePath) noexcept
|
||||||
{
|
{
|
||||||
return boost::filesystem::exists(filePath);
|
return boost::filesystem::exists(filePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *MiscellaneousFunctions::GetCaseInsensitiveFilename(const char *folderPath, const char *filename) noexcept
|
extern "C" const char *MiscellaneousFunctions::GetCaseInsensitiveFilename(const char *folderPath, const char *filename) noexcept
|
||||||
{
|
{
|
||||||
if (!boost::filesystem::exists(folderPath)) return "invalid";
|
if (!boost::filesystem::exists(folderPath)) return "invalid";
|
||||||
|
|
||||||
|
@ -33,27 +33,27 @@ const char *MiscellaneousFunctions::GetCaseInsensitiveFilename(const char *folde
|
||||||
return "invalid";
|
return "invalid";
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int MiscellaneousFunctions::GetLastPlayerId() noexcept
|
extern "C" unsigned int MiscellaneousFunctions::GetLastPlayerId() noexcept
|
||||||
{
|
{
|
||||||
return Players::getLastPlayerId();
|
return Players::getLastPlayerId();
|
||||||
}
|
}
|
||||||
|
|
||||||
int MiscellaneousFunctions::GetCurrentMpNum() noexcept
|
extern "C" int MiscellaneousFunctions::GetCurrentMpNum() noexcept
|
||||||
{
|
{
|
||||||
return mwmp::Networking::getPtr()->getCurrentMpNum();
|
return mwmp::Networking::getPtr()->getCurrentMpNum();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiscellaneousFunctions::SetCurrentMpNum(int mpNum) noexcept
|
extern "C" void MiscellaneousFunctions::SetCurrentMpNum(int mpNum) noexcept
|
||||||
{
|
{
|
||||||
mwmp::Networking::getPtr()->setCurrentMpNum(mpNum);
|
mwmp::Networking::getPtr()->setCurrentMpNum(mpNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiscellaneousFunctions::LogMessage(unsigned short level, const char *message) noexcept
|
extern "C" void MiscellaneousFunctions::LogMessage(unsigned short level, const char *message) noexcept
|
||||||
{
|
{
|
||||||
LOG_MESSAGE_SIMPLE(level, "[Script]: %s", message);
|
LOG_MESSAGE_SIMPLE(level, "[Script]: %s", message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiscellaneousFunctions::LogAppend(unsigned short level, const char *message) noexcept
|
extern "C" void MiscellaneousFunctions::LogAppend(unsigned short level, const char *message) noexcept
|
||||||
{
|
{
|
||||||
LOG_APPEND(level, "[Script]: %s", message);
|
LOG_APPEND(level, "[Script]: %s", message);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include "../Types.hpp"
|
#include "../Types.hpp"
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define MISCELLANEOUSAPI \
|
#define MISCELLANEOUSAPI \
|
||||||
{"DoesFileExist", MiscellaneousFunctions::DoesFileExist},\
|
{"DoesFileExist", MiscellaneousFunctions::DoesFileExist},\
|
||||||
{"GetCaseInsensitiveFilename", MiscellaneousFunctions::GetCaseInsensitiveFilename},\
|
{"GetCaseInsensitiveFilename", MiscellaneousFunctions::GetCaseInsensitiveFilename},\
|
||||||
|
@ -15,10 +17,8 @@
|
||||||
{"LogMessage", MiscellaneousFunctions::LogMessage},\
|
{"LogMessage", MiscellaneousFunctions::LogMessage},\
|
||||||
{"LogAppend", MiscellaneousFunctions::LogAppend}
|
{"LogAppend", MiscellaneousFunctions::LogAppend}
|
||||||
|
|
||||||
class MiscellaneousFunctions
|
namespace MiscellaneousFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether a certain file exists.
|
* \brief Check whether a certain file exists.
|
||||||
*
|
*
|
||||||
|
@ -28,7 +28,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return Whether the file exists or not.
|
* \return Whether the file exists or not.
|
||||||
*/
|
*/
|
||||||
static bool DoesFileExist(const char *filePath) noexcept;
|
EXPORT_APIFUNCTION bool CDECL DoesFileExist(const char *filePath) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the first filename in a folder that has a case insensitive match with the filename
|
* \brief Get the first filename in a folder that has a case insensitive match with the filename
|
||||||
|
@ -38,7 +38,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return The filename that matches.
|
* \return The filename that matches.
|
||||||
*/
|
*/
|
||||||
static const char *GetCaseInsensitiveFilename(const char *folderPath, const char *filename) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetCaseInsensitiveFilename(const char *folderPath, const char *filename) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the last player ID currently connected to the server.
|
* \brief Get the last player ID currently connected to the server.
|
||||||
|
@ -48,7 +48,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return The player ID.
|
* \return The player ID.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetLastPlayerId() noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetLastPlayerId() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the current (latest) mpNum generated by the server.
|
* \brief Get the current (latest) mpNum generated by the server.
|
||||||
|
@ -62,7 +62,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return The mpNum.
|
* \return The mpNum.
|
||||||
*/
|
*/
|
||||||
static int GetCurrentMpNum() noexcept;
|
EXPORT_APIFUNCTION int CDECL GetCurrentMpNum() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the current (latest) mpNum generated by the server.
|
* \brief Set the current (latest) mpNum generated by the server.
|
||||||
|
@ -74,7 +74,7 @@ public:
|
||||||
* \param mpNum The number that should be used as the new current mpNum.
|
* \param mpNum The number that should be used as the new current mpNum.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetCurrentMpNum(int mpNum) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetCurrentMpNum(int mpNum) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Write a log message with its own timestamp.
|
* \brief Write a log message with its own timestamp.
|
||||||
|
@ -86,7 +86,7 @@ public:
|
||||||
* \param message The message logged.
|
* \param message The message logged.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void LogMessage(unsigned short level, const char *message) noexcept;
|
EXPORT_APIFUNCTION void CDECL LogMessage(unsigned short level, const char *message) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Write a log message without its own timestamp.
|
* \brief Write a log message without its own timestamp.
|
||||||
|
@ -98,7 +98,7 @@ public:
|
||||||
* \param message The message logged.
|
* \param message The message logged.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void LogAppend(unsigned short level, const char *message) noexcept;
|
EXPORT_APIFUNCTION void CDECL LogAppend(unsigned short level, const char *message) noexcept;
|
||||||
};
|
}
|
||||||
|
|
||||||
#endif //OPENMW_MISCELLANEOUSAPI_HPP
|
#endif //OPENMW_MISCELLANEOUSAPI_HPP
|
||||||
|
|
|
@ -19,19 +19,19 @@ const BaseObject emptyObject = {};
|
||||||
ContainerItem tempContainerItem;
|
ContainerItem tempContainerItem;
|
||||||
const ContainerItem emptyContainerItem = {};
|
const ContainerItem emptyContainerItem = {};
|
||||||
|
|
||||||
void ObjectFunctions::ReadReceivedObjectList() noexcept
|
extern "C" void ObjectFunctions::ReadReceivedObjectList() noexcept
|
||||||
{
|
{
|
||||||
readObjectList = mwmp::Networking::getPtr()->getReceivedObjectList();
|
readObjectList = mwmp::Networking::getPtr()->getReceivedObjectList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::ClearObjectList() noexcept
|
extern "C" void ObjectFunctions::ClearObjectList() noexcept
|
||||||
{
|
{
|
||||||
writeObjectList.cell.blank();
|
writeObjectList.cell.blank();
|
||||||
writeObjectList.baseObjects.clear();
|
writeObjectList.baseObjects.clear();
|
||||||
writeObjectList.packetOrigin = mwmp::PACKET_ORIGIN::SERVER_SCRIPT;
|
writeObjectList.packetOrigin = mwmp::PACKET_ORIGIN::SERVER_SCRIPT;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectListPid(unsigned short pid) noexcept
|
extern "C" void ObjectFunctions::SetObjectListPid(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -39,42 +39,42 @@ void ObjectFunctions::SetObjectListPid(unsigned short pid) noexcept
|
||||||
writeObjectList.guid = player->guid;
|
writeObjectList.guid = player->guid;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::CopyReceivedObjectListToStore() noexcept
|
extern "C" void ObjectFunctions::CopyReceivedObjectListToStore() noexcept
|
||||||
{
|
{
|
||||||
writeObjectList = *readObjectList;
|
writeObjectList = *readObjectList;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ObjectFunctions::GetObjectListSize() noexcept
|
extern "C" unsigned int ObjectFunctions::GetObjectListSize() noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjectCount;
|
return readObjectList->baseObjectCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char ObjectFunctions::GetObjectListOrigin() noexcept
|
extern "C" unsigned char ObjectFunctions::GetObjectListOrigin() noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->packetOrigin;
|
return readObjectList->packetOrigin;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ObjectFunctions::GetObjectListClientScript() noexcept
|
extern "C" const char *ObjectFunctions::GetObjectListClientScript() noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->originClientScript.c_str();
|
return readObjectList->originClientScript.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char ObjectFunctions::GetObjectListAction() noexcept
|
extern "C" unsigned char ObjectFunctions::GetObjectListAction() noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->action;
|
return readObjectList->action;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char ObjectFunctions::GetObjectListContainerSubAction() noexcept
|
extern "C" unsigned char ObjectFunctions::GetObjectListContainerSubAction() noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->containerSubAction;
|
return readObjectList->containerSubAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ObjectFunctions::IsObjectPlayer(unsigned int index) noexcept
|
extern "C" bool ObjectFunctions::IsObjectPlayer(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).isPlayer;
|
return readObjectList->baseObjects.at(index).isPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObjectFunctions::GetObjectPid(unsigned int index) noexcept
|
extern "C" int ObjectFunctions::GetObjectPid(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player = Players::getPlayer(readObjectList->baseObjects.at(index).guid);
|
Player *player = Players::getPlayer(readObjectList->baseObjects.at(index).guid);
|
||||||
|
|
||||||
|
@ -84,72 +84,72 @@ int ObjectFunctions::GetObjectPid(unsigned int index) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ObjectFunctions::GetObjectRefId(unsigned int index) noexcept
|
extern "C" const char *ObjectFunctions::GetObjectRefId(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).refId.c_str();
|
return readObjectList->baseObjects.at(index).refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ObjectFunctions::GetObjectRefNum(unsigned int index) noexcept
|
extern "C" unsigned int ObjectFunctions::GetObjectRefNum(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).refNum;
|
return readObjectList->baseObjects.at(index).refNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ObjectFunctions::GetObjectMpNum(unsigned int index) noexcept
|
extern "C" unsigned int ObjectFunctions::GetObjectMpNum(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).mpNum;
|
return readObjectList->baseObjects.at(index).mpNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObjectFunctions::GetObjectCount(unsigned int index) noexcept
|
extern "C" int ObjectFunctions::GetObjectCount(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).count;
|
return readObjectList->baseObjects.at(index).count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObjectFunctions::GetObjectCharge(unsigned int index) noexcept
|
extern "C" int ObjectFunctions::GetObjectCharge(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).charge;
|
return readObjectList->baseObjects.at(index).charge;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ObjectFunctions::GetObjectEnchantmentCharge(unsigned int index) noexcept
|
extern "C" double ObjectFunctions::GetObjectEnchantmentCharge(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).enchantmentCharge;
|
return readObjectList->baseObjects.at(index).enchantmentCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ObjectFunctions::GetObjectSoul(unsigned int index) noexcept
|
extern "C" const char *ObjectFunctions::GetObjectSoul(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).soul.c_str();
|
return readObjectList->baseObjects.at(index).soul.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObjectFunctions::GetObjectGoldValue(unsigned int index) noexcept
|
extern "C" int ObjectFunctions::GetObjectGoldValue(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).goldValue;
|
return readObjectList->baseObjects.at(index).goldValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ObjectFunctions::GetObjectScale(unsigned int index) noexcept
|
extern "C" double ObjectFunctions::GetObjectScale(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).scale;
|
return readObjectList->baseObjects.at(index).scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ObjectFunctions::GetObjectState(unsigned int index) noexcept
|
extern "C" bool ObjectFunctions::GetObjectState(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).objectState;
|
return readObjectList->baseObjects.at(index).objectState;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObjectFunctions::GetObjectDoorState(unsigned int index) noexcept
|
extern "C" int ObjectFunctions::GetObjectDoorState(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).doorState;
|
return readObjectList->baseObjects.at(index).doorState;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObjectFunctions::GetObjectLockLevel(unsigned int index) noexcept
|
extern "C" int ObjectFunctions::GetObjectLockLevel(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).lockLevel;
|
return readObjectList->baseObjects.at(index).lockLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ObjectFunctions::DoesObjectHavePlayerActivating(unsigned int index) noexcept
|
extern "C" bool ObjectFunctions::DoesObjectHavePlayerActivating(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).activatingActor.isPlayer;
|
return readObjectList->baseObjects.at(index).activatingActor.isPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObjectFunctions::GetObjectActivatingPid(unsigned int index) noexcept
|
extern "C" int ObjectFunctions::GetObjectActivatingPid(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player = Players::getPlayer(readObjectList->baseObjects.at(index).activatingActor.guid);
|
Player *player = Players::getPlayer(readObjectList->baseObjects.at(index).activatingActor.guid);
|
||||||
|
|
||||||
|
@ -159,42 +159,42 @@ int ObjectFunctions::GetObjectActivatingPid(unsigned int index) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ObjectFunctions::GetObjectActivatingRefId(unsigned int index) noexcept
|
extern "C" const char *ObjectFunctions::GetObjectActivatingRefId(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).activatingActor.refId.c_str();
|
return readObjectList->baseObjects.at(index).activatingActor.refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ObjectFunctions::GetObjectActivatingRefNum(unsigned int index) noexcept
|
extern "C" unsigned int ObjectFunctions::GetObjectActivatingRefNum(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).activatingActor.refNum;
|
return readObjectList->baseObjects.at(index).activatingActor.refNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ObjectFunctions::GetObjectActivatingMpNum(unsigned int index) noexcept
|
extern "C" unsigned int ObjectFunctions::GetObjectActivatingMpNum(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).activatingActor.mpNum;
|
return readObjectList->baseObjects.at(index).activatingActor.mpNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ObjectFunctions::GetObjectActivatingName(unsigned int index) noexcept
|
extern "C" const char *ObjectFunctions::GetObjectActivatingName(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).activatingActor.name.c_str();
|
return readObjectList->baseObjects.at(index).activatingActor.name.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ObjectFunctions::GetObjectSummonState(unsigned int index) noexcept
|
extern "C" bool ObjectFunctions::GetObjectSummonState(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).isSummon;
|
return readObjectList->baseObjects.at(index).isSummon;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ObjectFunctions::GetObjectSummonDuration(unsigned int index) noexcept
|
extern "C" double ObjectFunctions::GetObjectSummonDuration(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).summonDuration;
|
return readObjectList->baseObjects.at(index).summonDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ObjectFunctions::DoesObjectHavePlayerSummoner(unsigned int index) noexcept
|
extern "C" bool ObjectFunctions::DoesObjectHavePlayerSummoner(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).master.isPlayer;
|
return readObjectList->baseObjects.at(index).master.isPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObjectFunctions::GetObjectSummonerPid(unsigned int index) noexcept
|
extern "C" int ObjectFunctions::GetObjectSummonerPid(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player = Players::getPlayer(readObjectList->baseObjects.at(index).master.guid);
|
Player *player = Players::getPlayer(readObjectList->baseObjects.at(index).master.guid);
|
||||||
|
|
||||||
|
@ -204,202 +204,202 @@ int ObjectFunctions::GetObjectSummonerPid(unsigned int index) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ObjectFunctions::GetObjectSummonerRefId(unsigned int index) noexcept
|
extern "C" const char *ObjectFunctions::GetObjectSummonerRefId(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).master.refId.c_str();
|
return readObjectList->baseObjects.at(index).master.refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ObjectFunctions::GetObjectSummonerRefNum(unsigned int index) noexcept
|
extern "C" unsigned int ObjectFunctions::GetObjectSummonerRefNum(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).master.refNum;
|
return readObjectList->baseObjects.at(index).master.refNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ObjectFunctions::GetObjectSummonerMpNum(unsigned int index) noexcept
|
extern "C" unsigned int ObjectFunctions::GetObjectSummonerMpNum(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).master.mpNum;
|
return readObjectList->baseObjects.at(index).master.mpNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ObjectFunctions::GetObjectPosX(unsigned int index) noexcept
|
extern "C" double ObjectFunctions::GetObjectPosX(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).position.pos[0];
|
return readObjectList->baseObjects.at(index).position.pos[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
double ObjectFunctions::GetObjectPosY(unsigned int index) noexcept
|
extern "C" double ObjectFunctions::GetObjectPosY(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).position.pos[1];
|
return readObjectList->baseObjects.at(index).position.pos[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
double ObjectFunctions::GetObjectPosZ(unsigned int index) noexcept
|
extern "C" double ObjectFunctions::GetObjectPosZ(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).position.pos[2];
|
return readObjectList->baseObjects.at(index).position.pos[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
double ObjectFunctions::GetObjectRotX(unsigned int index) noexcept
|
extern "C" double ObjectFunctions::GetObjectRotX(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).position.rot[0];
|
return readObjectList->baseObjects.at(index).position.rot[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
double ObjectFunctions::GetObjectRotY(unsigned int index) noexcept
|
extern "C" double ObjectFunctions::GetObjectRotY(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).position.rot[1];
|
return readObjectList->baseObjects.at(index).position.rot[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
double ObjectFunctions::GetObjectRotZ(unsigned int index) noexcept
|
extern "C" double ObjectFunctions::GetObjectRotZ(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).position.rot[2];
|
return readObjectList->baseObjects.at(index).position.rot[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ObjectFunctions::GetVideoFilename(unsigned int index) noexcept
|
extern "C" const char *ObjectFunctions::GetVideoFilename(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).videoFilename.c_str();
|
return readObjectList->baseObjects.at(index).videoFilename.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ObjectFunctions::GetContainerChangesSize(unsigned int objectIndex) noexcept
|
extern "C" unsigned int ObjectFunctions::GetContainerChangesSize(unsigned int objectIndex) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(objectIndex).containerItemCount;
|
return readObjectList->baseObjects.at(objectIndex).containerItemCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ObjectFunctions::GetContainerItemRefId(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
extern "C" const char *ObjectFunctions::GetContainerItemRefId(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(objectIndex)
|
return readObjectList->baseObjects.at(objectIndex)
|
||||||
.containerItems.at(itemIndex).refId.c_str();
|
.containerItems.at(itemIndex).refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObjectFunctions::GetContainerItemCount(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
extern "C" int ObjectFunctions::GetContainerItemCount(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(objectIndex)
|
return readObjectList->baseObjects.at(objectIndex)
|
||||||
.containerItems.at(itemIndex).count;
|
.containerItems.at(itemIndex).count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObjectFunctions::GetContainerItemCharge(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
extern "C" int ObjectFunctions::GetContainerItemCharge(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(objectIndex)
|
return readObjectList->baseObjects.at(objectIndex)
|
||||||
.containerItems.at(itemIndex).charge;
|
.containerItems.at(itemIndex).charge;
|
||||||
}
|
}
|
||||||
|
|
||||||
double ObjectFunctions::GetContainerItemEnchantmentCharge(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
extern "C" double ObjectFunctions::GetContainerItemEnchantmentCharge(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(objectIndex)
|
return readObjectList->baseObjects.at(objectIndex)
|
||||||
.containerItems.at(itemIndex).enchantmentCharge;
|
.containerItems.at(itemIndex).enchantmentCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ObjectFunctions::GetContainerItemSoul(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
extern "C" const char *ObjectFunctions::GetContainerItemSoul(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(objectIndex)
|
return readObjectList->baseObjects.at(objectIndex)
|
||||||
.containerItems.at(itemIndex).soul.c_str();
|
.containerItems.at(itemIndex).soul.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObjectFunctions::GetContainerItemActionCount(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
extern "C" int ObjectFunctions::GetContainerItemActionCount(unsigned int objectIndex, unsigned int itemIndex) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(objectIndex)
|
return readObjectList->baseObjects.at(objectIndex)
|
||||||
.containerItems.at(itemIndex).actionCount;
|
.containerItems.at(itemIndex).actionCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ObjectFunctions::DoesObjectHaveContainer(unsigned int index) noexcept
|
extern "C" bool ObjectFunctions::DoesObjectHaveContainer(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->baseObjects.at(index).hasContainer;
|
return readObjectList->baseObjects.at(index).hasContainer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectListCell(const char* cellDescription) noexcept
|
extern "C" void ObjectFunctions::SetObjectListCell(const char* cellDescription) noexcept
|
||||||
{
|
{
|
||||||
writeObjectList.cell = Utils::getCellFromDescription(cellDescription);
|
writeObjectList.cell = Utils::getCellFromDescription(cellDescription);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectListAction(unsigned char action) noexcept
|
extern "C" void ObjectFunctions::SetObjectListAction(unsigned char action) noexcept
|
||||||
{
|
{
|
||||||
writeObjectList.action = action;
|
writeObjectList.action = action;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectListConsoleCommand(const char* consoleCommand) noexcept
|
extern "C" void ObjectFunctions::SetObjectListConsoleCommand(const char* consoleCommand) noexcept
|
||||||
{
|
{
|
||||||
writeObjectList.consoleCommand = consoleCommand;
|
writeObjectList.consoleCommand = consoleCommand;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectRefId(const char* refId) noexcept
|
extern "C" void ObjectFunctions::SetObjectRefId(const char* refId) noexcept
|
||||||
{
|
{
|
||||||
tempObject.refId = refId;
|
tempObject.refId = refId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectRefNum(int refNum) noexcept
|
extern "C" void ObjectFunctions::SetObjectRefNum(int refNum) noexcept
|
||||||
{
|
{
|
||||||
tempObject.refNum = refNum;
|
tempObject.refNum = refNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectMpNum(int mpNum) noexcept
|
extern "C" void ObjectFunctions::SetObjectMpNum(int mpNum) noexcept
|
||||||
{
|
{
|
||||||
tempObject.mpNum = mpNum;
|
tempObject.mpNum = mpNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectCount(int count) noexcept
|
extern "C" void ObjectFunctions::SetObjectCount(int count) noexcept
|
||||||
{
|
{
|
||||||
tempObject.count = count;
|
tempObject.count = count;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectCharge(int charge) noexcept
|
extern "C" void ObjectFunctions::SetObjectCharge(int charge) noexcept
|
||||||
{
|
{
|
||||||
tempObject.charge = charge;
|
tempObject.charge = charge;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectEnchantmentCharge(double enchantmentCharge) noexcept
|
extern "C" void ObjectFunctions::SetObjectEnchantmentCharge(double enchantmentCharge) noexcept
|
||||||
{
|
{
|
||||||
tempObject.enchantmentCharge = enchantmentCharge;
|
tempObject.enchantmentCharge = enchantmentCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectSoul(const char* soul) noexcept
|
extern "C" void ObjectFunctions::SetObjectSoul(const char* soul) noexcept
|
||||||
{
|
{
|
||||||
tempObject.soul = soul;
|
tempObject.soul = soul;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectGoldValue(int goldValue) noexcept
|
extern "C" void ObjectFunctions::SetObjectGoldValue(int goldValue) noexcept
|
||||||
{
|
{
|
||||||
tempObject.goldValue = goldValue;
|
tempObject.goldValue = goldValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectScale(double scale) noexcept
|
extern "C" void ObjectFunctions::SetObjectScale(double scale) noexcept
|
||||||
{
|
{
|
||||||
tempObject.scale = scale;
|
tempObject.scale = scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectState(bool objectState) noexcept
|
extern "C" void ObjectFunctions::SetObjectState(bool objectState) noexcept
|
||||||
{
|
{
|
||||||
tempObject.objectState = objectState;
|
tempObject.objectState = objectState;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectLockLevel(int lockLevel) noexcept
|
extern "C" void ObjectFunctions::SetObjectLockLevel(int lockLevel) noexcept
|
||||||
{
|
{
|
||||||
tempObject.lockLevel = lockLevel;
|
tempObject.lockLevel = lockLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectSummonDuration(float summonDuration) noexcept
|
extern "C" void ObjectFunctions::SetObjectSummonDuration(float summonDuration) noexcept
|
||||||
{
|
{
|
||||||
tempObject.summonDuration = summonDuration;
|
tempObject.summonDuration = summonDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectDisarmState(bool disarmState) noexcept
|
extern "C" void ObjectFunctions::SetObjectDisarmState(bool disarmState) noexcept
|
||||||
{
|
{
|
||||||
tempObject.isDisarmed = disarmState;
|
tempObject.isDisarmed = disarmState;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectSummonState(bool summonState) noexcept
|
extern "C" void ObjectFunctions::SetObjectSummonState(bool summonState) noexcept
|
||||||
{
|
{
|
||||||
tempObject.isSummon = summonState;
|
tempObject.isSummon = summonState;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectPosition(double x, double y, double z) noexcept
|
extern "C" void ObjectFunctions::SetObjectPosition(double x, double y, double z) noexcept
|
||||||
{
|
{
|
||||||
tempObject.position.pos[0] = x;
|
tempObject.position.pos[0] = x;
|
||||||
tempObject.position.pos[1] = y;
|
tempObject.position.pos[1] = y;
|
||||||
tempObject.position.pos[2] = z;
|
tempObject.position.pos[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectRotation(double x, double y, double z) noexcept
|
extern "C" void ObjectFunctions::SetObjectRotation(double x, double y, double z) noexcept
|
||||||
{
|
{
|
||||||
tempObject.position.rot[0] = x;
|
tempObject.position.rot[0] = x;
|
||||||
tempObject.position.rot[1] = y;
|
tempObject.position.rot[1] = y;
|
||||||
tempObject.position.rot[2] = z;
|
tempObject.position.rot[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectActivatingPid(unsigned short pid) noexcept
|
extern "C" void ObjectFunctions::SetObjectActivatingPid(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -408,35 +408,35 @@ void ObjectFunctions::SetObjectActivatingPid(unsigned short pid) noexcept
|
||||||
tempObject.activatingActor.isPlayer = true;
|
tempObject.activatingActor.isPlayer = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectDoorState(int doorState) noexcept
|
extern "C" void ObjectFunctions::SetObjectDoorState(int doorState) noexcept
|
||||||
{
|
{
|
||||||
tempObject.doorState = doorState;
|
tempObject.doorState = doorState;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectDoorTeleportState(bool teleportState) noexcept
|
extern "C" void ObjectFunctions::SetObjectDoorTeleportState(bool teleportState) noexcept
|
||||||
{
|
{
|
||||||
tempObject.teleportState = teleportState;
|
tempObject.teleportState = teleportState;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectDoorDestinationCell(const char* cellDescription) noexcept
|
extern "C" void ObjectFunctions::SetObjectDoorDestinationCell(const char* cellDescription) noexcept
|
||||||
{
|
{
|
||||||
tempObject.destinationCell = Utils::getCellFromDescription(cellDescription);
|
tempObject.destinationCell = Utils::getCellFromDescription(cellDescription);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectDoorDestinationPosition(double x, double y, double z) noexcept
|
extern "C" void ObjectFunctions::SetObjectDoorDestinationPosition(double x, double y, double z) noexcept
|
||||||
{
|
{
|
||||||
tempObject.destinationPosition.pos[0] = x;
|
tempObject.destinationPosition.pos[0] = x;
|
||||||
tempObject.destinationPosition.pos[1] = y;
|
tempObject.destinationPosition.pos[1] = y;
|
||||||
tempObject.destinationPosition.pos[2] = z;
|
tempObject.destinationPosition.pos[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectDoorDestinationRotation(double x, double z) noexcept
|
extern "C" void ObjectFunctions::SetObjectDoorDestinationRotation(double x, double z) noexcept
|
||||||
{
|
{
|
||||||
tempObject.destinationPosition.rot[0] = x;
|
tempObject.destinationPosition.rot[0] = x;
|
||||||
tempObject.destinationPosition.rot[2] = z;
|
tempObject.destinationPosition.rot[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetPlayerAsObject(unsigned short pid) noexcept
|
extern "C" void ObjectFunctions::SetPlayerAsObject(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -445,37 +445,37 @@ void ObjectFunctions::SetPlayerAsObject(unsigned short pid) noexcept
|
||||||
tempObject.isPlayer = true;
|
tempObject.isPlayer = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetContainerItemRefId(const char* refId) noexcept
|
extern "C" void ObjectFunctions::SetContainerItemRefId(const char* refId) noexcept
|
||||||
{
|
{
|
||||||
tempContainerItem.refId = refId;
|
tempContainerItem.refId = refId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetContainerItemCount(int count) noexcept
|
extern "C" void ObjectFunctions::SetContainerItemCount(int count) noexcept
|
||||||
{
|
{
|
||||||
tempContainerItem.count = count;
|
tempContainerItem.count = count;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetContainerItemCharge(int charge) noexcept
|
extern "C" void ObjectFunctions::SetContainerItemCharge(int charge) noexcept
|
||||||
{
|
{
|
||||||
tempContainerItem.charge = charge;
|
tempContainerItem.charge = charge;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetContainerItemEnchantmentCharge(double enchantmentCharge) noexcept
|
extern "C" void ObjectFunctions::SetContainerItemEnchantmentCharge(double enchantmentCharge) noexcept
|
||||||
{
|
{
|
||||||
tempContainerItem.enchantmentCharge = enchantmentCharge;
|
tempContainerItem.enchantmentCharge = enchantmentCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetContainerItemSoul(const char* soul) noexcept
|
extern "C" void ObjectFunctions::SetContainerItemSoul(const char* soul) noexcept
|
||||||
{
|
{
|
||||||
tempContainerItem.soul = soul;
|
tempContainerItem.soul = soul;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetContainerItemActionCountByIndex(unsigned int objectIndex, unsigned int itemIndex, int actionCount) noexcept
|
extern "C" void ObjectFunctions::SetContainerItemActionCountByIndex(unsigned int objectIndex, unsigned int itemIndex, int actionCount) noexcept
|
||||||
{
|
{
|
||||||
writeObjectList.baseObjects.at(objectIndex).containerItems.at(itemIndex).actionCount = actionCount;
|
writeObjectList.baseObjects.at(objectIndex).containerItems.at(itemIndex).actionCount = actionCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::AddObject() noexcept
|
extern "C" void ObjectFunctions::AddObject() noexcept
|
||||||
{
|
{
|
||||||
tempObject.droppedByPlayer = false;
|
tempObject.droppedByPlayer = false;
|
||||||
writeObjectList.baseObjects.push_back(tempObject);
|
writeObjectList.baseObjects.push_back(tempObject);
|
||||||
|
@ -483,14 +483,14 @@ void ObjectFunctions::AddObject() noexcept
|
||||||
tempObject = emptyObject;
|
tempObject = emptyObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::AddContainerItem() noexcept
|
extern "C" void ObjectFunctions::AddContainerItem() noexcept
|
||||||
{
|
{
|
||||||
tempObject.containerItems.push_back(tempContainerItem);
|
tempObject.containerItems.push_back(tempContainerItem);
|
||||||
|
|
||||||
tempContainerItem = emptyContainerItem;
|
tempContainerItem = emptyContainerItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendObjectActivate(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendObjectActivate(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_ACTIVATE);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_ACTIVATE);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -501,7 +501,7 @@ void ObjectFunctions::SendObjectActivate(bool sendToOtherPlayers, bool skipAttac
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendObjectPlace(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendObjectPlace(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_PLACE);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_PLACE);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -512,7 +512,7 @@ void ObjectFunctions::SendObjectPlace(bool sendToOtherPlayers, bool skipAttached
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendObjectSpawn(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendObjectSpawn(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_SPAWN);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_SPAWN);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -523,7 +523,7 @@ void ObjectFunctions::SendObjectSpawn(bool sendToOtherPlayers, bool skipAttached
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendObjectDelete(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendObjectDelete(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_DELETE);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_DELETE);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -534,7 +534,7 @@ void ObjectFunctions::SendObjectDelete(bool sendToOtherPlayers, bool skipAttache
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendObjectLock(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendObjectLock(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_LOCK);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_LOCK);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -545,7 +545,7 @@ void ObjectFunctions::SendObjectLock(bool sendToOtherPlayers, bool skipAttachedP
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendObjectTrap(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendObjectTrap(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_TRAP);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_TRAP);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -556,7 +556,7 @@ void ObjectFunctions::SendObjectTrap(bool sendToOtherPlayers, bool skipAttachedP
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendObjectScale(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendObjectScale(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_SCALE);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_SCALE);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -567,7 +567,7 @@ void ObjectFunctions::SendObjectScale(bool sendToOtherPlayers, bool skipAttached
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendObjectState(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendObjectState(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_STATE);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_OBJECT_STATE);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -578,7 +578,7 @@ void ObjectFunctions::SendObjectState(bool sendToOtherPlayers, bool skipAttached
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendDoorState(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendDoorState(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_DOOR_STATE);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_DOOR_STATE);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -589,7 +589,7 @@ void ObjectFunctions::SendDoorState(bool sendToOtherPlayers, bool skipAttachedPl
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendDoorDestination(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendDoorDestination(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_DOOR_DESTINATION);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_DOOR_DESTINATION);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -600,7 +600,7 @@ void ObjectFunctions::SendDoorDestination(bool sendToOtherPlayers, bool skipAtta
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendContainer(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendContainer(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_CONTAINER);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_CONTAINER);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -611,7 +611,7 @@ void ObjectFunctions::SendContainer(bool sendToOtherPlayers, bool skipAttachedPl
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendVideoPlay(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendVideoPlay(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_VIDEO_PLAY);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_VIDEO_PLAY);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -622,7 +622,7 @@ void ObjectFunctions::SendVideoPlay(bool sendToOtherPlayers, bool skipAttachedPl
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SendConsoleCommand(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void ObjectFunctions::SendConsoleCommand(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_CONSOLE_COMMAND);
|
mwmp::ObjectPacket *packet = mwmp::Networking::get().getObjectPacketController()->GetPacket(ID_CONSOLE_COMMAND);
|
||||||
packet->setObjectList(&writeObjectList);
|
packet->setObjectList(&writeObjectList);
|
||||||
|
@ -633,7 +633,7 @@ void ObjectFunctions::SendConsoleCommand(bool sendToOtherPlayers, bool skipAttac
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C"
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
void ObjectFunctions::ReadLastObjectList() noexcept
|
void ObjectFunctions::ReadLastObjectList() noexcept
|
||||||
|
@ -641,73 +641,73 @@ void ObjectFunctions::ReadLastObjectList() noexcept
|
||||||
ReadReceivedObjectList();
|
ReadReceivedObjectList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::ReadLastEvent() noexcept
|
extern "C" void ObjectFunctions::ReadLastEvent() noexcept
|
||||||
{
|
{
|
||||||
ReadReceivedObjectList();
|
ReadReceivedObjectList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::InitializeObjectList(unsigned short pid) noexcept
|
extern "C" void ObjectFunctions::InitializeObjectList(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
ClearObjectList();
|
ClearObjectList();
|
||||||
SetObjectListPid(pid);
|
SetObjectListPid(pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::InitializeEvent(unsigned short pid) noexcept
|
extern "C" void ObjectFunctions::InitializeEvent(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
InitializeObjectList(pid);
|
InitializeObjectList(pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::CopyLastObjectListToStore() noexcept
|
extern "C" void ObjectFunctions::CopyLastObjectListToStore() noexcept
|
||||||
{
|
{
|
||||||
CopyReceivedObjectListToStore();
|
CopyReceivedObjectListToStore();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ObjectFunctions::GetObjectChangesSize() noexcept
|
extern "C" unsigned int ObjectFunctions::GetObjectChangesSize() noexcept
|
||||||
{
|
{
|
||||||
return GetObjectListSize();
|
return GetObjectListSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char ObjectFunctions::GetEventAction() noexcept
|
extern "C" unsigned char ObjectFunctions::GetEventAction() noexcept
|
||||||
{
|
{
|
||||||
return GetObjectListAction();
|
return GetObjectListAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char ObjectFunctions::GetEventContainerSubAction() noexcept
|
extern "C" unsigned char ObjectFunctions::GetEventContainerSubAction() noexcept
|
||||||
{
|
{
|
||||||
return GetObjectListContainerSubAction();
|
return GetObjectListContainerSubAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ObjectFunctions::GetObjectRefNumIndex(unsigned int index) noexcept
|
extern "C" unsigned int ObjectFunctions::GetObjectRefNumIndex(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return GetObjectRefNum(index);
|
return GetObjectRefNum(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ObjectFunctions::GetObjectSummonerRefNumIndex(unsigned int index) noexcept
|
extern "C" unsigned int ObjectFunctions::GetObjectSummonerRefNumIndex(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return GetObjectSummonerRefNum(index);
|
return GetObjectSummonerRefNum(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetEventCell(const char* cellDescription) noexcept
|
extern "C" void ObjectFunctions::SetEventCell(const char* cellDescription) noexcept
|
||||||
{
|
{
|
||||||
SetObjectListCell(cellDescription);
|
SetObjectListCell(cellDescription);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetEventAction(unsigned char action) noexcept
|
extern "C" void ObjectFunctions::SetEventAction(unsigned char action) noexcept
|
||||||
{
|
{
|
||||||
SetObjectListAction(action);
|
SetObjectListAction(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetEventConsoleCommand(const char* consoleCommand) noexcept
|
extern "C" void ObjectFunctions::SetEventConsoleCommand(const char* consoleCommand) noexcept
|
||||||
{
|
{
|
||||||
SetObjectListConsoleCommand(consoleCommand);
|
SetObjectListConsoleCommand(consoleCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::SetObjectRefNumIndex(int refNum) noexcept
|
extern "C" void ObjectFunctions::SetObjectRefNumIndex(int refNum) noexcept
|
||||||
{
|
{
|
||||||
SetObjectRefNum(refNum);
|
SetObjectRefNum(refNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFunctions::AddWorldObject() noexcept
|
extern "C" void ObjectFunctions::AddWorldObject() noexcept
|
||||||
{
|
{
|
||||||
AddObject();
|
AddObject();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef OPENMW_OBJECTAPI_HPP
|
#ifndef OPENMW_OBJECTAPI_HPP
|
||||||
#define OPENMW_OBJECTAPI_HPP
|
#define OPENMW_OBJECTAPI_HPP
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define OBJECTAPI \
|
#define OBJECTAPI \
|
||||||
{"ReadReceivedObjectList", ObjectFunctions::ReadReceivedObjectList},\
|
{"ReadReceivedObjectList", ObjectFunctions::ReadReceivedObjectList},\
|
||||||
\
|
\
|
||||||
|
@ -136,23 +138,21 @@
|
||||||
{"SetObjectRefNumIndex", ObjectFunctions::SetObjectRefNumIndex},\
|
{"SetObjectRefNumIndex", ObjectFunctions::SetObjectRefNumIndex},\
|
||||||
{"AddWorldObject", ObjectFunctions::AddWorldObject}
|
{"AddWorldObject", ObjectFunctions::AddWorldObject}
|
||||||
|
|
||||||
class ObjectFunctions
|
namespace ObjectFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Use the last object list received by the server as the one being read.
|
* \brief Use the last object list received by the server as the one being read.
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ReadReceivedObjectList() noexcept;
|
EXPORT_APIFUNCTION void CDECL ReadReceivedObjectList() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the data from the object list stored on the server.
|
* \brief Clear the data from the object list stored on the server.
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearObjectList() noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearObjectList() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the pid attached to the ObjectList.
|
* \brief Set the pid attached to the ObjectList.
|
||||||
|
@ -160,7 +160,7 @@ public:
|
||||||
* \param pid The player ID to whom the object list should be attached.
|
* \param pid The player ID to whom the object list should be attached.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectListPid(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectListPid(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Take the contents of the read-only object list last received by the
|
* \brief Take the contents of the read-only object list last received by the
|
||||||
|
@ -169,14 +169,14 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void CopyReceivedObjectListToStore() noexcept;
|
EXPORT_APIFUNCTION void CDECL CopyReceivedObjectListToStore() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in the read object list.
|
* \brief Get the number of indexes in the read object list.
|
||||||
*
|
*
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetObjectListSize() noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetObjectListSize() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the origin of the read object list.
|
* \brief Get the origin of the read object list.
|
||||||
|
@ -185,7 +185,7 @@ public:
|
||||||
* CLIENT_DIALOGUE, 3 for CLIENT_SCRIPT_LOCAL, 4 for CLIENT_SCRIPT_GLOBAL,
|
* CLIENT_DIALOGUE, 3 for CLIENT_SCRIPT_LOCAL, 4 for CLIENT_SCRIPT_GLOBAL,
|
||||||
* 5 for SERVER_SCRIPT).
|
* 5 for SERVER_SCRIPT).
|
||||||
*/
|
*/
|
||||||
static unsigned char GetObjectListOrigin() noexcept;
|
EXPORT_APIFUNCTION unsigned char CDECL GetObjectListOrigin() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the client script that the read object list originated from.
|
* \brief Get the client script that the read object list originated from.
|
||||||
|
@ -194,21 +194,21 @@ public:
|
||||||
*
|
*
|
||||||
* \return The ID of the client script.
|
* \return The ID of the client script.
|
||||||
*/
|
*/
|
||||||
static const char *GetObjectListClientScript() noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetObjectListClientScript() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the action type used in the read object list.
|
* \brief Get the action type used in the read object list.
|
||||||
*
|
*
|
||||||
* \return The action type (0 for SET, 1 for ADD, 2 for REMOVE, 3 for REQUEST).
|
* \return The action type (0 for SET, 1 for ADD, 2 for REMOVE, 3 for REQUEST).
|
||||||
*/
|
*/
|
||||||
static unsigned char GetObjectListAction() noexcept;
|
EXPORT_APIFUNCTION unsigned char CDECL GetObjectListAction() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the container subaction type used in the read object list.
|
* \brief Get the container subaction type used in the read object list.
|
||||||
*
|
*
|
||||||
* \return The action type (0 for NONE, 1 for DRAG, 2 for DROP, 3 for TAKE_ALL).
|
* \return The action type (0 for NONE, 1 for DRAG, 2 for DROP, 3 for TAKE_ALL).
|
||||||
*/
|
*/
|
||||||
static unsigned char GetObjectListContainerSubAction() noexcept;
|
EXPORT_APIFUNCTION unsigned char CDECL GetObjectListContainerSubAction() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether the object at a certain index in the read object list is a
|
* \brief Check whether the object at a certain index in the read object list is a
|
||||||
|
@ -221,7 +221,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return Whether the object is a player.
|
* \return Whether the object is a player.
|
||||||
*/
|
*/
|
||||||
static bool IsObjectPlayer(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION bool CDECL IsObjectPlayer(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the player ID of the object at a certain index in the read object list,
|
* \brief Get the player ID of the object at a certain index in the read object list,
|
||||||
|
@ -233,7 +233,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The player ID of the object.
|
* \return The player ID of the object.
|
||||||
*/
|
*/
|
||||||
static int GetObjectPid(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetObjectPid(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the object at a certain index in the read object list.
|
* \brief Get the refId of the object at a certain index in the read object list.
|
||||||
|
@ -241,7 +241,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The refId.
|
* \return The refId.
|
||||||
*/
|
*/
|
||||||
static const char *GetObjectRefId(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetObjectRefId(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refNum of the object at a certain index in the read object list.
|
* \brief Get the refNum of the object at a certain index in the read object list.
|
||||||
|
@ -249,7 +249,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The refNum.
|
* \return The refNum.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetObjectRefNum(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetObjectRefNum(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the mpNum of the object at a certain index in the read object list.
|
* \brief Get the mpNum of the object at a certain index in the read object list.
|
||||||
|
@ -257,7 +257,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The mpNum.
|
* \return The mpNum.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetObjectMpNum(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetObjectMpNum(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the count of the object at a certain index in the read object list.
|
* \brief Get the count of the object at a certain index in the read object list.
|
||||||
|
@ -265,7 +265,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The object count.
|
* \return The object count.
|
||||||
*/
|
*/
|
||||||
static int GetObjectCount(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetObjectCount(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the charge of the object at a certain index in the read object list.
|
* \brief Get the charge of the object at a certain index in the read object list.
|
||||||
|
@ -273,7 +273,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The charge.
|
* \return The charge.
|
||||||
*/
|
*/
|
||||||
static int GetObjectCharge(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetObjectCharge(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the enchantment charge of the object at a certain index in the read object list.
|
* \brief Get the enchantment charge of the object at a certain index in the read object list.
|
||||||
|
@ -281,7 +281,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The enchantment charge.
|
* \return The enchantment charge.
|
||||||
*/
|
*/
|
||||||
static double GetObjectEnchantmentCharge(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetObjectEnchantmentCharge(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the soul of the object at a certain index in the read object list.
|
* \brief Get the soul of the object at a certain index in the read object list.
|
||||||
|
@ -289,7 +289,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The soul.
|
* \return The soul.
|
||||||
*/
|
*/
|
||||||
static const char *GetObjectSoul(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetObjectSoul(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the gold value of the object at a certain index in the read object list.
|
* \brief Get the gold value of the object at a certain index in the read object list.
|
||||||
|
@ -299,7 +299,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The gold value.
|
* \return The gold value.
|
||||||
*/
|
*/
|
||||||
static int GetObjectGoldValue(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetObjectGoldValue(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the object scale of the object at a certain index in the read object list.
|
* \brief Get the object scale of the object at a certain index in the read object list.
|
||||||
|
@ -307,7 +307,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The object scale.
|
* \return The object scale.
|
||||||
*/
|
*/
|
||||||
static double GetObjectScale(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetObjectScale(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the object state of the object at a certain index in the read object list.
|
* \brief Get the object state of the object at a certain index in the read object list.
|
||||||
|
@ -315,7 +315,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The object state.
|
* \return The object state.
|
||||||
*/
|
*/
|
||||||
static bool GetObjectState(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION bool CDECL GetObjectState(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the door state of the object at a certain index in the read object list.
|
* \brief Get the door state of the object at a certain index in the read object list.
|
||||||
|
@ -323,7 +323,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The door state.
|
* \return The door state.
|
||||||
*/
|
*/
|
||||||
static int GetObjectDoorState(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetObjectDoorState(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the lock level of the object at a certain index in the read object list.
|
* \brief Get the lock level of the object at a certain index in the read object list.
|
||||||
|
@ -331,7 +331,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The lock level.
|
* \return The lock level.
|
||||||
*/
|
*/
|
||||||
static int GetObjectLockLevel(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetObjectLockLevel(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether the object at a certain index in the read object list has been
|
* \brief Check whether the object at a certain index in the read object list has been
|
||||||
|
@ -340,7 +340,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return Whether the object has been activated by a player.
|
* \return Whether the object has been activated by a player.
|
||||||
*/
|
*/
|
||||||
static bool DoesObjectHavePlayerActivating(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION bool CDECL DoesObjectHavePlayerActivating(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the player ID of the player activating the object at a certain index in the
|
* \brief Get the player ID of the player activating the object at a certain index in the
|
||||||
|
@ -349,7 +349,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The player ID of the activating player.
|
* \return The player ID of the activating player.
|
||||||
*/
|
*/
|
||||||
static int GetObjectActivatingPid(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetObjectActivatingPid(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the actor activating the object at a certain index in the read
|
* \brief Get the refId of the actor activating the object at a certain index in the read
|
||||||
|
@ -358,7 +358,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The refId of the activating actor.
|
* \return The refId of the activating actor.
|
||||||
*/
|
*/
|
||||||
static const char *GetObjectActivatingRefId(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetObjectActivatingRefId(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refNum of the actor activating the object at a certain index in the read
|
* \brief Get the refNum of the actor activating the object at a certain index in the read
|
||||||
|
@ -367,7 +367,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The refNum of the activating actor.
|
* \return The refNum of the activating actor.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetObjectActivatingRefNum(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetObjectActivatingRefNum(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the mpNum of the actor activating the object at a certain index in the read
|
* \brief Get the mpNum of the actor activating the object at a certain index in the read
|
||||||
|
@ -376,7 +376,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The mpNum of the activating actor.
|
* \return The mpNum of the activating actor.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetObjectActivatingMpNum(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetObjectActivatingMpNum(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the name of the actor activating the object at a certain index in the read
|
* \brief Get the name of the actor activating the object at a certain index in the read
|
||||||
|
@ -385,7 +385,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The name of the activating actor.
|
* \return The name of the activating actor.
|
||||||
*/
|
*/
|
||||||
static const char *GetObjectActivatingName(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetObjectActivatingName(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether the object at a certain index in the read object list is a
|
* \brief Check whether the object at a certain index in the read object list is a
|
||||||
|
@ -395,7 +395,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return The summon state.
|
* \return The summon state.
|
||||||
*/
|
*/
|
||||||
static bool GetObjectSummonState(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION bool CDECL GetObjectSummonState(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the summon duration of the object at a certain index in the read object list.
|
* \brief Get the summon duration of the object at a certain index in the read object list.
|
||||||
|
@ -405,7 +405,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The summon duration.
|
* \return The summon duration.
|
||||||
*/
|
*/
|
||||||
static double GetObjectSummonDuration(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetObjectSummonDuration(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether the object at a certain index in the read object list has a player
|
* \brief Check whether the object at a certain index in the read object list has a player
|
||||||
|
@ -416,7 +416,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return Whether a player is the summoner of the object.
|
* \return Whether a player is the summoner of the object.
|
||||||
*/
|
*/
|
||||||
static bool DoesObjectHavePlayerSummoner(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION bool CDECL DoesObjectHavePlayerSummoner(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the player ID of the summoner of the object at a certain index in the read object
|
* \brief Get the player ID of the summoner of the object at a certain index in the read object
|
||||||
|
@ -425,7 +425,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The player ID of the summoner.
|
* \return The player ID of the summoner.
|
||||||
*/
|
*/
|
||||||
static int GetObjectSummonerPid(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetObjectSummonerPid(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the actor summoner of the object at a certain index in the read object
|
* \brief Get the refId of the actor summoner of the object at a certain index in the read object
|
||||||
|
@ -434,7 +434,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The refId of the summoner.
|
* \return The refId of the summoner.
|
||||||
*/
|
*/
|
||||||
static const char *GetObjectSummonerRefId(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetObjectSummonerRefId(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refNum of the actor summoner of the object at a certain index in the read object
|
* \brief Get the refNum of the actor summoner of the object at a certain index in the read object
|
||||||
|
@ -443,7 +443,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The refNum of the summoner.
|
* \return The refNum of the summoner.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetObjectSummonerRefNum(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetObjectSummonerRefNum(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the mpNum of the actor summoner of the object at a certain index in the read object list.
|
* \brief Get the mpNum of the actor summoner of the object at a certain index in the read object list.
|
||||||
|
@ -451,7 +451,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The mpNum of the summoner.
|
* \return The mpNum of the summoner.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetObjectSummonerMpNum(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetObjectSummonerMpNum(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the X position of the object at a certain index in the read object list.
|
* \brief Get the X position of the object at a certain index in the read object list.
|
||||||
|
@ -459,7 +459,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The X position.
|
* \return The X position.
|
||||||
*/
|
*/
|
||||||
static double GetObjectPosX(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetObjectPosX(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Y position of the object at a certain index in the read object list.
|
* \brief Get the Y position of the object at a certain index in the read object list.
|
||||||
|
@ -467,7 +467,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The Y position.
|
* \return The Y position.
|
||||||
*/
|
*/
|
||||||
static double GetObjectPosY(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetObjectPosY(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Z position at a certain index in the read object list.
|
* \brief Get the Z position at a certain index in the read object list.
|
||||||
|
@ -475,7 +475,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The Z position.
|
* \return The Z position.
|
||||||
*/
|
*/
|
||||||
static double GetObjectPosZ(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetObjectPosZ(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the X rotation of the object at a certain index in the read object list.
|
* \brief Get the X rotation of the object at a certain index in the read object list.
|
||||||
|
@ -483,7 +483,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The X rotation.
|
* \return The X rotation.
|
||||||
*/
|
*/
|
||||||
static double GetObjectRotX(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetObjectRotX(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Y rotation of the object at a certain index in the read object list.
|
* \brief Get the Y rotation of the object at a certain index in the read object list.
|
||||||
|
@ -491,7 +491,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The Y rotation.
|
* \return The Y rotation.
|
||||||
*/
|
*/
|
||||||
static double GetObjectRotY(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetObjectRotY(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Z rotation of the object at a certain index in the read object list.
|
* \brief Get the Z rotation of the object at a certain index in the read object list.
|
||||||
|
@ -499,14 +499,14 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The Z rotation.
|
* \return The Z rotation.
|
||||||
*/
|
*/
|
||||||
static double GetObjectRotZ(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetObjectRotZ(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the videoFilename of the object at a certain index in the read object list.
|
* \brief Get the videoFilename of the object at a certain index in the read object list.
|
||||||
*
|
*
|
||||||
* \return The videoFilename.
|
* \return The videoFilename.
|
||||||
*/
|
*/
|
||||||
static const char *GetVideoFilename(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetVideoFilename(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of container item indexes of the object at a certain index in the
|
* \brief Get the number of container item indexes of the object at a certain index in the
|
||||||
|
@ -515,7 +515,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return The number of container item indexes.
|
* \return The number of container item indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetContainerChangesSize(unsigned int objectIndex) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetContainerChangesSize(unsigned int objectIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the container item at a certain itemIndex in the container changes
|
* \brief Get the refId of the container item at a certain itemIndex in the container changes
|
||||||
|
@ -525,7 +525,7 @@ public:
|
||||||
* \param itemIndex The index of the container item.
|
* \param itemIndex The index of the container item.
|
||||||
* \return The refId.
|
* \return The refId.
|
||||||
*/
|
*/
|
||||||
static const char *GetContainerItemRefId(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetContainerItemRefId(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the item count of the container item at a certain itemIndex in the container
|
* \brief Get the item count of the container item at a certain itemIndex in the container
|
||||||
|
@ -535,7 +535,7 @@ public:
|
||||||
* \param itemIndex The index of the container item.
|
* \param itemIndex The index of the container item.
|
||||||
* \return The item count.
|
* \return The item count.
|
||||||
*/
|
*/
|
||||||
static int GetContainerItemCount(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetContainerItemCount(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the charge of the container item at a certain itemIndex in the container changes
|
* \brief Get the charge of the container item at a certain itemIndex in the container changes
|
||||||
|
@ -545,7 +545,7 @@ public:
|
||||||
* \param itemIndex The index of the container item.
|
* \param itemIndex The index of the container item.
|
||||||
* \return The charge.
|
* \return The charge.
|
||||||
*/
|
*/
|
||||||
static int GetContainerItemCharge(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetContainerItemCharge(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the enchantment charge of the container item at a certain itemIndex in the container changes
|
* \brief Get the enchantment charge of the container item at a certain itemIndex in the container changes
|
||||||
|
@ -555,7 +555,7 @@ public:
|
||||||
* \param itemIndex The index of the container item.
|
* \param itemIndex The index of the container item.
|
||||||
* \return The enchantment charge.
|
* \return The enchantment charge.
|
||||||
*/
|
*/
|
||||||
static double GetContainerItemEnchantmentCharge(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetContainerItemEnchantmentCharge(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the soul of the container item at a certain itemIndex in the container changes
|
* \brief Get the soul of the container item at a certain itemIndex in the container changes
|
||||||
|
@ -565,7 +565,7 @@ public:
|
||||||
* \param itemIndex The index of the container item.
|
* \param itemIndex The index of the container item.
|
||||||
* \return The soul.
|
* \return The soul.
|
||||||
*/
|
*/
|
||||||
static const char *GetContainerItemSoul(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetContainerItemSoul(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the action count of the container item at a certain itemIndex in the container
|
* \brief Get the action count of the container item at a certain itemIndex in the container
|
||||||
|
@ -575,7 +575,7 @@ public:
|
||||||
* \param itemIndex The index of the container item.
|
* \param itemIndex The index of the container item.
|
||||||
* \return The action count.
|
* \return The action count.
|
||||||
*/
|
*/
|
||||||
static int GetContainerItemActionCount(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetContainerItemActionCount(unsigned int objectIndex, unsigned int itemIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether the object at a certain index in the read object list has a container.
|
* \brief Check whether the object at a certain index in the read object list has a container.
|
||||||
|
@ -586,7 +586,7 @@ public:
|
||||||
* \param index The index of the object.
|
* \param index The index of the object.
|
||||||
* \return Whether the object has a container.
|
* \return Whether the object has a container.
|
||||||
*/
|
*/
|
||||||
static bool DoesObjectHaveContainer(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION bool CDECL DoesObjectHaveContainer(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the cell of the temporary object list stored on the server.
|
* \brief Set the cell of the temporary object list stored on the server.
|
||||||
|
@ -597,7 +597,7 @@ public:
|
||||||
* \param cellDescription The description of the cell.
|
* \param cellDescription The description of the cell.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectListCell(const char* cellDescription) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectListCell(const char* cellDescription) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the action type of the temporary object list stored on the server.
|
* \brief Set the action type of the temporary object list stored on the server.
|
||||||
|
@ -605,7 +605,7 @@ public:
|
||||||
* \param action The action type (0 for SET, 1 for ADD, 2 for REMOVE, 3 for REQUEST).
|
* \param action The action type (0 for SET, 1 for ADD, 2 for REMOVE, 3 for REQUEST).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectListAction(unsigned char action) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectListAction(unsigned char action) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the console command of the temporary object list stored on the server.
|
* \brief Set the console command of the temporary object list stored on the server.
|
||||||
|
@ -616,7 +616,7 @@ public:
|
||||||
* \param consoleCommand The console command.
|
* \param consoleCommand The console command.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectListConsoleCommand(const char* consoleCommand) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectListConsoleCommand(const char* consoleCommand) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the refId of the temporary object stored on the server.
|
* \brief Set the refId of the temporary object stored on the server.
|
||||||
|
@ -624,7 +624,7 @@ public:
|
||||||
* \param refId The refId.
|
* \param refId The refId.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectRefId(const char* refId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectRefId(const char* refId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the refNum of the temporary object stored on the server.
|
* \brief Set the refNum of the temporary object stored on the server.
|
||||||
|
@ -638,7 +638,7 @@ public:
|
||||||
* \param refNum The refNum.
|
* \param refNum The refNum.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectRefNum(int refNum) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectRefNum(int refNum) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the mpNum of the temporary object stored on the server.
|
* \brief Set the mpNum of the temporary object stored on the server.
|
||||||
|
@ -653,7 +653,7 @@ public:
|
||||||
* \param mpNum The mpNum.
|
* \param mpNum The mpNum.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectMpNum(int mpNum) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectMpNum(int mpNum) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the object count of the temporary object stored on the server.
|
* \brief Set the object count of the temporary object stored on the server.
|
||||||
|
@ -663,7 +663,7 @@ public:
|
||||||
* \param count The object count.
|
* \param count The object count.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectCount(int count) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectCount(int count) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the charge of the temporary object stored on the server.
|
* \brief Set the charge of the temporary object stored on the server.
|
||||||
|
@ -673,7 +673,7 @@ public:
|
||||||
* \param charge The charge.
|
* \param charge The charge.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectCharge(int charge) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectCharge(int charge) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the enchantment charge of the temporary object stored on the server.
|
* \brief Set the enchantment charge of the temporary object stored on the server.
|
||||||
|
@ -683,7 +683,7 @@ public:
|
||||||
* \param charge The enchantment charge.
|
* \param charge The enchantment charge.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectEnchantmentCharge(double enchantmentCharge) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectEnchantmentCharge(double enchantmentCharge) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the soul of the temporary object stored on the server.
|
* \brief Set the soul of the temporary object stored on the server.
|
||||||
|
@ -691,7 +691,7 @@ public:
|
||||||
* \param refId The soul.
|
* \param refId The soul.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectSoul(const char* soul) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectSoul(const char* soul) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the gold value of the temporary object stored on the server.
|
* \brief Set the gold value of the temporary object stored on the server.
|
||||||
|
@ -701,7 +701,7 @@ public:
|
||||||
* \param goldValue The gold value.
|
* \param goldValue The gold value.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectGoldValue(int goldValue) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectGoldValue(int goldValue) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the scale of the temporary object stored on the server.
|
* \brief Set the scale of the temporary object stored on the server.
|
||||||
|
@ -711,7 +711,7 @@ public:
|
||||||
* \param scale The scale.
|
* \param scale The scale.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectScale(double scale) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectScale(double scale) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the object state of the temporary object stored on the server.
|
* \brief Set the object state of the temporary object stored on the server.
|
||||||
|
@ -721,7 +721,7 @@ public:
|
||||||
* \param objectState The object state.
|
* \param objectState The object state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectState(bool objectState) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectState(bool objectState) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the lock level of the temporary object stored on the server.
|
* \brief Set the lock level of the temporary object stored on the server.
|
||||||
|
@ -729,7 +729,7 @@ public:
|
||||||
* \param lockLevel The lock level.
|
* \param lockLevel The lock level.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectLockLevel(int lockLevel) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectLockLevel(int lockLevel) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the summon duration of the temporary object stored on the server.
|
* \brief Set the summon duration of the temporary object stored on the server.
|
||||||
|
@ -737,7 +737,7 @@ public:
|
||||||
* \param summonDuration The summon duration.
|
* \param summonDuration The summon duration.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectSummonDuration(float summonDuration) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectSummonDuration(float summonDuration) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the disarm state of the temporary object stored on the server.
|
* \brief Set the disarm state of the temporary object stored on the server.
|
||||||
|
@ -745,7 +745,7 @@ public:
|
||||||
* \param disarmState The disarmState.
|
* \param disarmState The disarmState.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectDisarmState(bool disarmState) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectDisarmState(bool disarmState) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the summon state of the temporary object stored on the server.
|
* \brief Set the summon state of the temporary object stored on the server.
|
||||||
|
@ -756,7 +756,7 @@ public:
|
||||||
* \param summonState The summon state.
|
* \param summonState The summon state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectSummonState(bool summonState) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectSummonState(bool summonState) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the position of the temporary object stored on the server.
|
* \brief Set the position of the temporary object stored on the server.
|
||||||
|
@ -766,7 +766,7 @@ public:
|
||||||
* \param z The Z position.
|
* \param z The Z position.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectPosition(double x, double y, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectPosition(double x, double y, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the rotation of the temporary object stored on the server.
|
* \brief Set the rotation of the temporary object stored on the server.
|
||||||
|
@ -776,7 +776,7 @@ public:
|
||||||
* \param z The Z rotation.
|
* \param z The Z rotation.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectRotation(double x, double y, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectRotation(double x, double y, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the player ID of the player activating the temporary object stored on the
|
* \brief Set the player ID of the player activating the temporary object stored on the
|
||||||
|
@ -785,7 +785,7 @@ public:
|
||||||
* \param pid The pid of the player.
|
* \param pid The pid of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectActivatingPid(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectActivatingPid(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the door state of the temporary object stored on the server.
|
* \brief Set the door state of the temporary object stored on the server.
|
||||||
|
@ -795,7 +795,7 @@ public:
|
||||||
* \param doorState The door state.
|
* \param doorState The door state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectDoorState(int doorState) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectDoorState(int doorState) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the teleport state of the temporary object stored on the server.
|
* \brief Set the teleport state of the temporary object stored on the server.
|
||||||
|
@ -806,7 +806,7 @@ public:
|
||||||
* \param teleportState The teleport state.
|
* \param teleportState The teleport state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectDoorTeleportState(bool teleportState) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectDoorTeleportState(bool teleportState) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the door destination cell of the temporary object stored on the server.
|
* \brief Set the door destination cell of the temporary object stored on the server.
|
||||||
|
@ -817,7 +817,7 @@ public:
|
||||||
* \param cellDescription The description of the cell.
|
* \param cellDescription The description of the cell.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectDoorDestinationCell(const char* cellDescription) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectDoorDestinationCell(const char* cellDescription) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the door destination position of the temporary object stored on the server.
|
* \brief Set the door destination position of the temporary object stored on the server.
|
||||||
|
@ -827,7 +827,7 @@ public:
|
||||||
* \param z The Z position.
|
* \param z The Z position.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectDoorDestinationPosition(double x, double y, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectDoorDestinationPosition(double x, double y, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the door destination rotation of the temporary object stored on the server.
|
* \brief Set the door destination rotation of the temporary object stored on the server.
|
||||||
|
@ -839,7 +839,7 @@ public:
|
||||||
* \param z The Z rotation.
|
* \param z The Z rotation.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetObjectDoorDestinationRotation(double x, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectDoorDestinationRotation(double x, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set a player as the object in the temporary object stored on the server.
|
* \brief Set a player as the object in the temporary object stored on the server.
|
||||||
|
@ -848,7 +848,7 @@ public:
|
||||||
* \param pid The pid of the player.
|
* \param pid The pid of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetPlayerAsObject(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetPlayerAsObject(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the refId of the temporary container item stored on the server.
|
* \brief Set the refId of the temporary container item stored on the server.
|
||||||
|
@ -856,7 +856,7 @@ public:
|
||||||
* \param refId The refId.
|
* \param refId The refId.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetContainerItemRefId(const char* refId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetContainerItemRefId(const char* refId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the item count of the temporary container item stored on the server.
|
* \brief Set the item count of the temporary container item stored on the server.
|
||||||
|
@ -864,7 +864,7 @@ public:
|
||||||
* \param count The item count.
|
* \param count The item count.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetContainerItemCount(int count) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetContainerItemCount(int count) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the charge of the temporary container item stored on the server.
|
* \brief Set the charge of the temporary container item stored on the server.
|
||||||
|
@ -872,7 +872,7 @@ public:
|
||||||
* \param charge The charge.
|
* \param charge The charge.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetContainerItemCharge(int charge) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetContainerItemCharge(int charge) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the enchantment charge of the temporary container item stored on the server.
|
* \brief Set the enchantment charge of the temporary container item stored on the server.
|
||||||
|
@ -880,7 +880,7 @@ public:
|
||||||
* \param charge The enchantment charge.
|
* \param charge The enchantment charge.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetContainerItemEnchantmentCharge(double enchantmentCharge) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetContainerItemEnchantmentCharge(double enchantmentCharge) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the soul of the temporary container item stored on the server.
|
* \brief Set the soul of the temporary container item stored on the server.
|
||||||
|
@ -888,7 +888,7 @@ public:
|
||||||
* \param refId The soul.
|
* \param refId The soul.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetContainerItemSoul(const char* soul) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetContainerItemSoul(const char* soul) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the action count of the container item at a certain itemIndex in the container
|
* \brief Set the action count of the container item at a certain itemIndex in the container
|
||||||
|
@ -903,7 +903,7 @@ public:
|
||||||
* \param actionCount The action count.
|
* \param actionCount The action count.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetContainerItemActionCountByIndex(unsigned int objectIndex, unsigned int itemIndex, int actionCount) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetContainerItemActionCountByIndex(unsigned int objectIndex, unsigned int itemIndex, int actionCount) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a copy of the server's temporary object to the server's currently stored object
|
* \brief Add a copy of the server's temporary object to the server's currently stored object
|
||||||
|
@ -914,7 +914,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddObject() noexcept;
|
EXPORT_APIFUNCTION void CDECL AddObject() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a copy of the server's temporary container item to the container changes of the
|
* \brief Add a copy of the server's temporary container item to the container changes of the
|
||||||
|
@ -925,7 +925,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddContainerItem() noexcept;
|
EXPORT_APIFUNCTION void CDECL AddContainerItem() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ObjectActivate packet.
|
* \brief Send an ObjectActivate packet.
|
||||||
|
@ -936,7 +936,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendObjectActivate(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendObjectActivate(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ObjectPlace packet.
|
* \brief Send an ObjectPlace packet.
|
||||||
|
@ -947,7 +947,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendObjectPlace(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendObjectPlace(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ObjectSpawn packet.
|
* \brief Send an ObjectSpawn packet.
|
||||||
|
@ -958,7 +958,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendObjectSpawn(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendObjectSpawn(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ObjectDelete packet.
|
* \brief Send an ObjectDelete packet.
|
||||||
|
@ -968,7 +968,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendObjectDelete(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendObjectDelete(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ObjectLock packet.
|
* \brief Send an ObjectLock packet.
|
||||||
|
@ -979,7 +979,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendObjectLock(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendObjectLock(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ObjectTrap packet.
|
* \brief Send an ObjectTrap packet.
|
||||||
|
@ -989,7 +989,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendObjectTrap(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendObjectTrap(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ObjectScale packet.
|
* \brief Send an ObjectScale packet.
|
||||||
|
@ -1000,7 +1000,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendObjectScale(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendObjectScale(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send an ObjectState packet.
|
* \brief Send an ObjectState packet.
|
||||||
|
@ -1011,7 +1011,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendObjectState(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendObjectState(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a DoorState packet.
|
* \brief Send a DoorState packet.
|
||||||
|
@ -1022,7 +1022,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendDoorState(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendDoorState(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a DoorDestination packet.
|
* \brief Send a DoorDestination packet.
|
||||||
|
@ -1033,7 +1033,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendDoorDestination(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendDoorDestination(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a Container packet.
|
* \brief Send a Container packet.
|
||||||
|
@ -1044,7 +1044,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendContainer(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendContainer(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a VideoPlay packet.
|
* \brief Send a VideoPlay packet.
|
||||||
|
@ -1055,7 +1055,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendVideoPlay(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendVideoPlay(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a ConsoleCommand packet.
|
* \brief Send a ConsoleCommand packet.
|
||||||
|
@ -1066,28 +1066,27 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendConsoleCommand(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendConsoleCommand(bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
static void ReadLastObjectList() noexcept;
|
EXPORT_APIFUNCTION void CDECL ReadLastObjectList() noexcept;
|
||||||
static void ReadLastEvent() noexcept;
|
EXPORT_APIFUNCTION void CDECL ReadLastEvent() noexcept;
|
||||||
static void InitializeObjectList(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL InitializeObjectList(unsigned short pid) noexcept;
|
||||||
static void InitializeEvent(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL InitializeEvent(unsigned short pid) noexcept;
|
||||||
static void CopyLastObjectListToStore() noexcept;
|
EXPORT_APIFUNCTION void CDECL CopyLastObjectListToStore() noexcept;
|
||||||
static unsigned int GetObjectChangesSize() noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetObjectChangesSize() noexcept;
|
||||||
static unsigned char GetEventAction() noexcept;
|
EXPORT_APIFUNCTION unsigned char CDECL GetEventAction() noexcept;
|
||||||
static unsigned char GetEventContainerSubAction() noexcept;
|
EXPORT_APIFUNCTION unsigned char CDECL GetEventContainerSubAction() noexcept;
|
||||||
static unsigned int GetObjectRefNumIndex(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetObjectRefNumIndex(unsigned int index) noexcept;
|
||||||
static unsigned int GetObjectSummonerRefNumIndex(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetObjectSummonerRefNumIndex(unsigned int index) noexcept;
|
||||||
static void SetEventCell(const char* cellDescription) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetEventCell(const char* cellDescription) noexcept;
|
||||||
static void SetEventAction(unsigned char action) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetEventAction(unsigned char action) noexcept;
|
||||||
static void SetEventConsoleCommand(const char* consoleCommand) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetEventConsoleCommand(const char* consoleCommand) noexcept;
|
||||||
static void SetObjectRefNumIndex(int refNum) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetObjectRefNumIndex(int refNum) noexcept;
|
||||||
static void AddWorldObject() noexcept;
|
EXPORT_APIFUNCTION void CDECL AddWorldObject() noexcept;
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif //OPENMW_OBJECTAPI_HPP
|
#endif //OPENMW_OBJECTAPI_HPP
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
void PositionFunctions::GetPos(unsigned short pid, float *x, float *y, float *z) noexcept
|
extern "C" void PositionFunctions::GetPos(unsigned short pid, float *x, float *y, float *z) noexcept
|
||||||
{
|
{
|
||||||
*x = 0.00;
|
*x = 0.00;
|
||||||
*y = 0.00;
|
*y = 0.00;
|
||||||
|
@ -21,7 +21,7 @@ void PositionFunctions::GetPos(unsigned short pid, float *x, float *y, float *z)
|
||||||
*z = player->position.pos[2];
|
*z = player->position.pos[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
double PositionFunctions::GetPosX(unsigned short pid) noexcept
|
extern "C" double PositionFunctions::GetPosX(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -29,7 +29,7 @@ double PositionFunctions::GetPosX(unsigned short pid) noexcept
|
||||||
return player->position.pos[0];
|
return player->position.pos[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
double PositionFunctions::GetPosY(unsigned short pid) noexcept
|
extern "C" double PositionFunctions::GetPosY(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -37,7 +37,7 @@ double PositionFunctions::GetPosY(unsigned short pid) noexcept
|
||||||
return player->position.pos[1];
|
return player->position.pos[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
double PositionFunctions::GetPosZ(unsigned short pid) noexcept
|
extern "C" double PositionFunctions::GetPosZ(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -45,7 +45,7 @@ double PositionFunctions::GetPosZ(unsigned short pid) noexcept
|
||||||
return player->position.pos[2];
|
return player->position.pos[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
double PositionFunctions::GetPreviousCellPosX(unsigned short pid) noexcept
|
extern "C" double PositionFunctions::GetPreviousCellPosX(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -53,7 +53,7 @@ double PositionFunctions::GetPreviousCellPosX(unsigned short pid) noexcept
|
||||||
return player->previousCellPosition.pos[0];
|
return player->previousCellPosition.pos[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
double PositionFunctions::GetPreviousCellPosY(unsigned short pid) noexcept
|
extern "C" double PositionFunctions::GetPreviousCellPosY(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -61,7 +61,7 @@ double PositionFunctions::GetPreviousCellPosY(unsigned short pid) noexcept
|
||||||
return player->previousCellPosition.pos[1];
|
return player->previousCellPosition.pos[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
double PositionFunctions::GetPreviousCellPosZ(unsigned short pid) noexcept
|
extern "C" double PositionFunctions::GetPreviousCellPosZ(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -69,7 +69,7 @@ double PositionFunctions::GetPreviousCellPosZ(unsigned short pid) noexcept
|
||||||
return player->previousCellPosition.pos[2];
|
return player->previousCellPosition.pos[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
void PositionFunctions::GetRot(unsigned short pid, float *x, float *y, float *z) noexcept
|
extern "C" void PositionFunctions::GetRot(unsigned short pid, float *x, float *y, float *z) noexcept
|
||||||
{
|
{
|
||||||
*x = 0.00;
|
*x = 0.00;
|
||||||
*y = 0.00;
|
*y = 0.00;
|
||||||
|
@ -83,7 +83,7 @@ void PositionFunctions::GetRot(unsigned short pid, float *x, float *y, float *z)
|
||||||
*z = player->position.rot[2];
|
*z = player->position.rot[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
double PositionFunctions::GetRotX(unsigned short pid) noexcept
|
extern "C" double PositionFunctions::GetRotX(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -91,7 +91,7 @@ double PositionFunctions::GetRotX(unsigned short pid) noexcept
|
||||||
return player->position.rot[0];
|
return player->position.rot[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
double PositionFunctions::GetRotZ(unsigned short pid) noexcept
|
extern "C" double PositionFunctions::GetRotZ(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -99,7 +99,7 @@ double PositionFunctions::GetRotZ(unsigned short pid) noexcept
|
||||||
return player->position.rot[2];
|
return player->position.rot[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
void PositionFunctions::SetPos(unsigned short pid, double x, double y, double z) noexcept
|
extern "C" void PositionFunctions::SetPos(unsigned short pid, double x, double y, double z) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -109,7 +109,7 @@ void PositionFunctions::SetPos(unsigned short pid, double x, double y, double z)
|
||||||
player->position.pos[2] = z;
|
player->position.pos[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PositionFunctions::SetRot(unsigned short pid, double x, double z) noexcept
|
extern "C" void PositionFunctions::SetRot(unsigned short pid, double x, double z) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -118,7 +118,7 @@ void PositionFunctions::SetRot(unsigned short pid, double x, double z) noexcept
|
||||||
player->position.rot[2] = z;
|
player->position.rot[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PositionFunctions::SetMomentum(unsigned short pid, double x, double y, double z) noexcept
|
extern "C" void PositionFunctions::SetMomentum(unsigned short pid, double x, double y, double z) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -128,7 +128,7 @@ void PositionFunctions::SetMomentum(unsigned short pid, double x, double y, doub
|
||||||
player->momentum.pos[2] = z;
|
player->momentum.pos[2] = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PositionFunctions::SendPos(unsigned short pid) noexcept
|
extern "C" void PositionFunctions::SendPos(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -139,7 +139,7 @@ void PositionFunctions::SendPos(unsigned short pid) noexcept
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PositionFunctions::SendMomentum(unsigned short pid) noexcept
|
extern "C" void PositionFunctions::SendMomentum(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include "../Types.hpp"
|
#include "../Types.hpp"
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define POSITIONAPI \
|
#define POSITIONAPI \
|
||||||
{"GetPos", PositionFunctions::GetPos},\
|
{"GetPos", PositionFunctions::GetPos},\
|
||||||
{"GetPosX", PositionFunctions::GetPosX},\
|
{"GetPosX", PositionFunctions::GetPosX},\
|
||||||
|
@ -25,10 +27,8 @@
|
||||||
{"SendMomentum", PositionFunctions::SendMomentum}
|
{"SendMomentum", PositionFunctions::SendMomentum}
|
||||||
|
|
||||||
|
|
||||||
class PositionFunctions
|
namespace PositionFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Assign the player's positional coordinate values to the variables passed as
|
* \brief Assign the player's positional coordinate values to the variables passed as
|
||||||
* parameters.
|
* parameters.
|
||||||
|
@ -39,7 +39,7 @@ public:
|
||||||
* \param z The variable for the Z position.
|
* \param z The variable for the Z position.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void GetPos(unsigned short pid, float *x, float *y, float *z) noexcept;
|
EXPORT_APIFUNCTION void CDECL GetPos(unsigned short pid, float *x, float *y, float *z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the X position of a player.
|
* \brief Get the X position of a player.
|
||||||
|
@ -47,7 +47,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The X position.
|
* \return The X position.
|
||||||
*/
|
*/
|
||||||
static double GetPosX(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetPosX(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Y position of a player.
|
* \brief Get the Y position of a player.
|
||||||
|
@ -55,7 +55,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The Y position.
|
* \return The Y position.
|
||||||
*/
|
*/
|
||||||
static double GetPosY(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetPosY(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Z position of a player.
|
* \brief Get the Z position of a player.
|
||||||
|
@ -63,7 +63,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The Z position.
|
* \return The Z position.
|
||||||
*/
|
*/
|
||||||
static double GetPosZ(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetPosZ(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the X position of a player from before their latest cell change.
|
* \brief Get the X position of a player from before their latest cell change.
|
||||||
|
@ -71,7 +71,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The X position.
|
* \return The X position.
|
||||||
*/
|
*/
|
||||||
static double GetPreviousCellPosX(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetPreviousCellPosX(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Y position of a player from before their latest cell change.
|
* \brief Get the Y position of a player from before their latest cell change.
|
||||||
|
@ -79,7 +79,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The Y position.
|
* \return The Y position.
|
||||||
*/
|
*/
|
||||||
static double GetPreviousCellPosY(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetPreviousCellPosY(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Z position of a player from before their latest cell change.
|
* \brief Get the Z position of a player from before their latest cell change.
|
||||||
|
@ -87,7 +87,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The Z position.
|
* \return The Z position.
|
||||||
*/
|
*/
|
||||||
static double GetPreviousCellPosZ(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetPreviousCellPosZ(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Assign the player's rotational coordinate values to the variables passed as
|
* \brief Assign the player's rotational coordinate values to the variables passed as
|
||||||
|
@ -99,7 +99,7 @@ public:
|
||||||
* \param z The variable for the Z rotation.
|
* \param z The variable for the Z rotation.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void GetRot(unsigned short pid, float *x, float *y, float *z) noexcept;
|
EXPORT_APIFUNCTION void CDECL GetRot(unsigned short pid, float *x, float *y, float *z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the X rotation of a player.
|
* \brief Get the X rotation of a player.
|
||||||
|
@ -107,7 +107,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The X rotation.
|
* \return The X rotation.
|
||||||
*/
|
*/
|
||||||
static double GetRotX(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetRotX(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Z rotation of a player.
|
* \brief Get the Z rotation of a player.
|
||||||
|
@ -115,7 +115,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The Z rotation.
|
* \return The Z rotation.
|
||||||
*/
|
*/
|
||||||
static double GetRotZ(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetRotZ(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the position of a player.
|
* \brief Set the position of a player.
|
||||||
|
@ -129,7 +129,7 @@ public:
|
||||||
* \param z The Z position.
|
* \param z The Z position.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetPos(unsigned short pid, double x, double y, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetPos(unsigned short pid, double x, double y, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the rotation of a player.
|
* \brief Set the rotation of a player.
|
||||||
|
@ -144,7 +144,7 @@ public:
|
||||||
* \param z The Z position.
|
* \param z The Z position.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRot(unsigned short pid, double x, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRot(unsigned short pid, double x, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the momentum of a player.
|
* \brief Set the momentum of a player.
|
||||||
|
@ -158,7 +158,7 @@ public:
|
||||||
* \param z The Z momentum.
|
* \param z The Z momentum.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetMomentum(unsigned short pid, double x, double y, double z) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetMomentum(unsigned short pid, double x, double y, double z) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerPosition packet about a player.
|
* \brief Send a PlayerPosition packet about a player.
|
||||||
|
@ -168,7 +168,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendPos(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendPos(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerMomentum packet about a player.
|
* \brief Send a PlayerMomentum packet about a player.
|
||||||
|
@ -178,7 +178,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendMomentum(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendMomentum(unsigned short pid) noexcept;
|
||||||
};
|
}
|
||||||
|
|
||||||
#endif //OPENMW_POSITIONAPI_HPP
|
#endif //OPENMW_POSITIONAPI_HPP
|
||||||
|
|
29
apps/openmw-mp/Script/Functions/Public.cpp
Normal file
29
apps/openmw-mp/Script/Functions/Public.cpp
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
//
|
||||||
|
// Created by koncord on 09.12.18.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "Public.hpp"
|
||||||
|
|
||||||
|
#include <Script/ScriptFunctions.hpp>
|
||||||
|
#include <Script/API/PublicFnAPI.hpp>
|
||||||
|
|
||||||
|
extern "C" void PublicFunctions::MakePublic(ScriptFunc _public, const char *name, char ret_type, const char *def) noexcept
|
||||||
|
{
|
||||||
|
Public::MakePublic(_public, name, ret_type, def);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" boost::any PublicFunctions::CallPublic(const char *name, va_list args) noexcept
|
||||||
|
{
|
||||||
|
std::vector<boost::any> params;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
std::string def = Public::GetDefinition(name);
|
||||||
|
ScriptFunctions::GetArguments(params, args, def);
|
||||||
|
|
||||||
|
return Public::Call(name, params);
|
||||||
|
}
|
||||||
|
catch (...) {}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
16
apps/openmw-mp/Script/Functions/Public.hpp
Normal file
16
apps/openmw-mp/Script/Functions/Public.hpp
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
//
|
||||||
|
// Created by koncord on 09.12.18.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef OPENMW_PUBLIC_HPP
|
||||||
|
#define OPENMW_PUBLIC_HPP
|
||||||
|
|
||||||
|
#include <apps/openmw-mp/Script/ScriptFunction.hpp>
|
||||||
|
|
||||||
|
namespace PublicFunctions
|
||||||
|
{
|
||||||
|
extern "C" void MakePublic(ScriptFunc _public, const char *name, char ret_type, const char *def) noexcept;
|
||||||
|
extern "C" boost::any CallPublic(const char *name, va_list args) noexcept;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
using namespace mwmp;
|
using namespace mwmp;
|
||||||
|
|
||||||
void QuestFunctions::ClearJournalChanges(unsigned short pid) noexcept
|
extern "C" void QuestFunctions::ClearJournalChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -16,7 +16,7 @@ void QuestFunctions::ClearJournalChanges(unsigned short pid) noexcept
|
||||||
player->journalChanges.journalItems.clear();
|
player->journalChanges.journalItems.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuestFunctions::ClearKillChanges(unsigned short pid) noexcept
|
extern "C" void QuestFunctions::ClearKillChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -24,7 +24,7 @@ void QuestFunctions::ClearKillChanges(unsigned short pid) noexcept
|
||||||
player->killChanges.kills.clear();
|
player->killChanges.kills.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int QuestFunctions::GetJournalChangesSize(unsigned short pid) noexcept
|
extern "C" unsigned int QuestFunctions::GetJournalChangesSize(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -32,7 +32,7 @@ unsigned int QuestFunctions::GetJournalChangesSize(unsigned short pid) noexcept
|
||||||
return player->journalChanges.count;
|
return player->journalChanges.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int QuestFunctions::GetKillChangesSize(unsigned short pid) noexcept
|
extern "C" unsigned int QuestFunctions::GetKillChangesSize(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -40,7 +40,7 @@ unsigned int QuestFunctions::GetKillChangesSize(unsigned short pid) noexcept
|
||||||
return player->killChanges.count;
|
return player->killChanges.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuestFunctions::AddJournalEntry(unsigned short pid, const char* quest, unsigned int index, const char* actorRefId) noexcept
|
extern "C" void QuestFunctions::AddJournalEntry(unsigned short pid, const char* quest, unsigned int index, const char* actorRefId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -55,7 +55,7 @@ void QuestFunctions::AddJournalEntry(unsigned short pid, const char* quest, unsi
|
||||||
player->journalChanges.journalItems.push_back(journalItem);
|
player->journalChanges.journalItems.push_back(journalItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuestFunctions::AddJournalEntryWithTimestamp(unsigned short pid, const char* quest, unsigned int index, const char* actorRefId,
|
extern "C" void QuestFunctions::AddJournalEntryWithTimestamp(unsigned short pid, const char* quest, unsigned int index, const char* actorRefId,
|
||||||
unsigned int daysPassed, unsigned int month, unsigned int day) noexcept
|
unsigned int daysPassed, unsigned int month, unsigned int day) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
|
@ -75,7 +75,7 @@ void QuestFunctions::AddJournalEntryWithTimestamp(unsigned short pid, const char
|
||||||
player->journalChanges.journalItems.push_back(journalItem);
|
player->journalChanges.journalItems.push_back(journalItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuestFunctions::AddJournalIndex(unsigned short pid, const char* quest, unsigned int index) noexcept
|
extern "C" void QuestFunctions::AddJournalIndex(unsigned short pid, const char* quest, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -88,7 +88,7 @@ void QuestFunctions::AddJournalIndex(unsigned short pid, const char* quest, unsi
|
||||||
player->journalChanges.journalItems.push_back(journalItem);
|
player->journalChanges.journalItems.push_back(journalItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuestFunctions::AddKill(unsigned short pid, const char* refId, int number) noexcept
|
extern "C" void QuestFunctions::AddKill(unsigned short pid, const char* refId, int number) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -100,7 +100,7 @@ void QuestFunctions::AddKill(unsigned short pid, const char* refId, int number)
|
||||||
player->killChanges.kills.push_back(kill);
|
player->killChanges.kills.push_back(kill);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuestFunctions::SetReputation(unsigned short pid, int value) noexcept
|
extern "C" void QuestFunctions::SetReputation(unsigned short pid, int value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -108,7 +108,7 @@ void QuestFunctions::SetReputation(unsigned short pid, int value) noexcept
|
||||||
player->npcStats.mReputation = value;
|
player->npcStats.mReputation = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *QuestFunctions::GetJournalItemQuest(unsigned short pid, unsigned int index) noexcept
|
extern "C" const char *QuestFunctions::GetJournalItemQuest(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -119,7 +119,7 @@ const char *QuestFunctions::GetJournalItemQuest(unsigned short pid, unsigned int
|
||||||
return player->journalChanges.journalItems.at(index).quest.c_str();
|
return player->journalChanges.journalItems.at(index).quest.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int QuestFunctions::GetJournalItemIndex(unsigned short pid, unsigned int index) noexcept
|
extern "C" int QuestFunctions::GetJournalItemIndex(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -127,7 +127,7 @@ int QuestFunctions::GetJournalItemIndex(unsigned short pid, unsigned int index)
|
||||||
return player->journalChanges.journalItems.at(index).index;
|
return player->journalChanges.journalItems.at(index).index;
|
||||||
}
|
}
|
||||||
|
|
||||||
int QuestFunctions::GetJournalItemType(unsigned short pid, unsigned int index) noexcept
|
extern "C" int QuestFunctions::GetJournalItemType(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -135,7 +135,7 @@ int QuestFunctions::GetJournalItemType(unsigned short pid, unsigned int index) n
|
||||||
return player->journalChanges.journalItems.at(index).type;
|
return player->journalChanges.journalItems.at(index).type;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *QuestFunctions::GetJournalItemActorRefId(unsigned short pid, unsigned int index) noexcept
|
extern "C" const char *QuestFunctions::GetJournalItemActorRefId(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -143,7 +143,7 @@ const char *QuestFunctions::GetJournalItemActorRefId(unsigned short pid, unsigne
|
||||||
return player->journalChanges.journalItems.at(index).actorRefId.c_str();
|
return player->journalChanges.journalItems.at(index).actorRefId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *QuestFunctions::GetKillRefId(unsigned short pid, unsigned int index) noexcept
|
extern "C" const char *QuestFunctions::GetKillRefId(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -154,7 +154,7 @@ const char *QuestFunctions::GetKillRefId(unsigned short pid, unsigned int index)
|
||||||
return player->killChanges.kills.at(index).refId.c_str();
|
return player->killChanges.kills.at(index).refId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int QuestFunctions::GetKillNumber(unsigned short pid, unsigned int index) noexcept
|
extern "C" int QuestFunctions::GetKillNumber(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -162,7 +162,7 @@ int QuestFunctions::GetKillNumber(unsigned short pid, unsigned int index) noexce
|
||||||
return player->killChanges.kills.at(index).number;
|
return player->killChanges.kills.at(index).number;
|
||||||
}
|
}
|
||||||
|
|
||||||
int QuestFunctions::GetReputation(unsigned short pid) noexcept
|
extern "C" int QuestFunctions::GetReputation(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -170,7 +170,7 @@ int QuestFunctions::GetReputation(unsigned short pid) noexcept
|
||||||
return player->npcStats.mReputation;
|
return player->npcStats.mReputation;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuestFunctions::SendJournalChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void QuestFunctions::SendJournalChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -184,7 +184,7 @@ void QuestFunctions::SendJournalChanges(unsigned short pid, bool sendToOtherPlay
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuestFunctions::SendKillChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void QuestFunctions::SendKillChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -198,7 +198,7 @@ void QuestFunctions::SendKillChanges(unsigned short pid, bool sendToOtherPlayers
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuestFunctions::SendReputation(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void QuestFunctions::SendReputation(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -212,14 +212,14 @@ void QuestFunctions::SendReputation(unsigned short pid, bool sendToOtherPlayers,
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
extern "C" // All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
void QuestFunctions::InitializeJournalChanges(unsigned short pid) noexcept
|
void QuestFunctions::InitializeJournalChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
ClearJournalChanges(pid);
|
ClearJournalChanges(pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuestFunctions::InitializeKillChanges(unsigned short pid) noexcept
|
extern "C" void QuestFunctions::InitializeKillChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
ClearKillChanges(pid);
|
ClearKillChanges(pid);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef OPENMW_QUESTAPI_HPP
|
#ifndef OPENMW_QUESTAPI_HPP
|
||||||
#define OPENMW_QUESTAPI_HPP
|
#define OPENMW_QUESTAPI_HPP
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define QUESTAPI \
|
#define QUESTAPI \
|
||||||
{"ClearJournalChanges", QuestFunctions::ClearJournalChanges},\
|
{"ClearJournalChanges", QuestFunctions::ClearJournalChanges},\
|
||||||
{"ClearKillChanges", QuestFunctions::ClearKillChanges},\
|
{"ClearKillChanges", QuestFunctions::ClearKillChanges},\
|
||||||
|
@ -31,10 +33,8 @@
|
||||||
{"InitializeJournalChanges", QuestFunctions::InitializeJournalChanges},\
|
{"InitializeJournalChanges", QuestFunctions::InitializeJournalChanges},\
|
||||||
{"InitializeKillChanges", QuestFunctions::InitializeKillChanges}
|
{"InitializeKillChanges", QuestFunctions::InitializeKillChanges}
|
||||||
|
|
||||||
class QuestFunctions
|
namespace QuestFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the last recorded journal changes for a player.
|
* \brief Clear the last recorded journal changes for a player.
|
||||||
*
|
*
|
||||||
|
@ -43,7 +43,7 @@ public:
|
||||||
* \param pid The player ID whose journal changes should be used.
|
* \param pid The player ID whose journal changes should be used.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearJournalChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearJournalChanges(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the last recorded kill count changes for a player.
|
* \brief Clear the last recorded kill count changes for a player.
|
||||||
|
@ -53,7 +53,7 @@ public:
|
||||||
* \param pid The player ID whose kill count changes should be used.
|
* \param pid The player ID whose kill count changes should be used.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearKillChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearKillChanges(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in a player's latest journal changes.
|
* \brief Get the number of indexes in a player's latest journal changes.
|
||||||
|
@ -61,7 +61,7 @@ public:
|
||||||
* \param pid The player ID whose journal changes should be used.
|
* \param pid The player ID whose journal changes should be used.
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetJournalChangesSize(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetJournalChangesSize(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in a player's latest kill count changes.
|
* \brief Get the number of indexes in a player's latest kill count changes.
|
||||||
|
@ -69,7 +69,7 @@ public:
|
||||||
* \param pid The player ID whose kill count changes should be used.
|
* \param pid The player ID whose kill count changes should be used.
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetKillChangesSize(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetKillChangesSize(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a new journal item of type ENTRY to the journal changes for a player,
|
* \brief Add a new journal item of type ENTRY to the journal changes for a player,
|
||||||
|
@ -81,7 +81,7 @@ public:
|
||||||
* \param actorRefId The actor refId of the journal item.
|
* \param actorRefId The actor refId of the journal item.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddJournalEntry(unsigned short pid, const char* quest, unsigned int index, const char* actorRefId) noexcept;
|
EXPORT_APIFUNCTION void CDECL AddJournalEntry(unsigned short pid, const char* quest, unsigned int index, const char* actorRefId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a new journal item of type ENTRY to the journal changes for a player,
|
* \brief Add a new journal item of type ENTRY to the journal changes for a player,
|
||||||
|
@ -96,7 +96,7 @@ public:
|
||||||
* \param The day of the month for the journal item.
|
* \param The day of the month for the journal item.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddJournalEntryWithTimestamp(unsigned short pid, const char* quest, unsigned int index, const char* actorRefId,
|
EXPORT_APIFUNCTION void CDECL AddJournalEntryWithTimestamp(unsigned short pid, const char* quest, unsigned int index, const char* actorRefId,
|
||||||
unsigned int daysPassed, unsigned int month, unsigned int day) noexcept;
|
unsigned int daysPassed, unsigned int month, unsigned int day) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -107,7 +107,7 @@ public:
|
||||||
* \param index The quest index of the journal item.
|
* \param index The quest index of the journal item.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddJournalIndex(unsigned short pid, const char* quest, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION void CDECL AddJournalIndex(unsigned short pid, const char* quest, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a new kill count to the kill count changes for a player.
|
* \brief Add a new kill count to the kill count changes for a player.
|
||||||
|
@ -117,7 +117,7 @@ public:
|
||||||
* \param number The number of kills in the kill count.
|
* \param number The number of kills in the kill count.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddKill(unsigned short pid, const char* refId, int number) noexcept;
|
EXPORT_APIFUNCTION void CDECL AddKill(unsigned short pid, const char* refId, int number) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the reputation of a certain player.
|
* \brief Set the reputation of a certain player.
|
||||||
|
@ -126,7 +126,7 @@ public:
|
||||||
* \param value The reputation.
|
* \param value The reputation.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetReputation(unsigned short pid, int value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetReputation(unsigned short pid, int value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the quest at a certain index in a player's latest journal changes.
|
* \brief Get the quest at a certain index in a player's latest journal changes.
|
||||||
|
@ -135,7 +135,7 @@ public:
|
||||||
* \param index The index of the journalItem.
|
* \param index The index of the journalItem.
|
||||||
* \return The quest.
|
* \return The quest.
|
||||||
*/
|
*/
|
||||||
static const char *GetJournalItemQuest(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetJournalItemQuest(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the quest index at a certain index in a player's latest journal changes.
|
* \brief Get the quest index at a certain index in a player's latest journal changes.
|
||||||
|
@ -144,7 +144,7 @@ public:
|
||||||
* \param index The index of the journalItem.
|
* \param index The index of the journalItem.
|
||||||
* \return The quest index.
|
* \return The quest index.
|
||||||
*/
|
*/
|
||||||
static int GetJournalItemIndex(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetJournalItemIndex(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the journal item type at a certain index in a player's latest journal changes.
|
* \brief Get the journal item type at a certain index in a player's latest journal changes.
|
||||||
|
@ -153,7 +153,7 @@ public:
|
||||||
* \param index The index of the journalItem.
|
* \param index The index of the journalItem.
|
||||||
* \return The type (0 for ENTRY, 1 for INDEX).
|
* \return The type (0 for ENTRY, 1 for INDEX).
|
||||||
*/
|
*/
|
||||||
static int GetJournalItemType(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetJournalItemType(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the actor refId at a certain index in a player's latest journal changes.
|
* \brief Get the actor refId at a certain index in a player's latest journal changes.
|
||||||
|
@ -164,7 +164,7 @@ public:
|
||||||
* \param index The index of the journalItem.
|
* \param index The index of the journalItem.
|
||||||
* \return The actor refId.
|
* \return The actor refId.
|
||||||
*/
|
*/
|
||||||
static const char *GetJournalItemActorRefId(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetJournalItemActorRefId(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId at a certain index in a player's latest kill count changes.
|
* \brief Get the refId at a certain index in a player's latest kill count changes.
|
||||||
|
@ -173,7 +173,7 @@ public:
|
||||||
* \param index The index of the kill count.
|
* \param index The index of the kill count.
|
||||||
* \return The refId.
|
* \return The refId.
|
||||||
*/
|
*/
|
||||||
static const char *GetKillRefId(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetKillRefId(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of kills at a certain index in a player's latest kill count changes.
|
* \brief Get the number of kills at a certain index in a player's latest kill count changes.
|
||||||
|
@ -182,7 +182,7 @@ public:
|
||||||
* \param index The index of the kill count.
|
* \param index The index of the kill count.
|
||||||
* \return The number of kills.
|
* \return The number of kills.
|
||||||
*/
|
*/
|
||||||
static int GetKillNumber(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetKillNumber(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the a certain player's reputation.
|
* \brief Get the a certain player's reputation.
|
||||||
|
@ -190,7 +190,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The reputation.
|
* \return The reputation.
|
||||||
*/
|
*/
|
||||||
static int GetReputation(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetReputation(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerJournal packet with a player's recorded journal changes.
|
* \brief Send a PlayerJournal packet with a player's recorded journal changes.
|
||||||
|
@ -202,7 +202,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendJournalChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendJournalChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a WorldKillCount packet with a player's recorded kill count changes.
|
* \brief Send a WorldKillCount packet with a player's recorded kill count changes.
|
||||||
|
@ -214,7 +214,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendKillChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendKillChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerReputation packet with a player's recorded reputation.
|
* \brief Send a PlayerReputation packet with a player's recorded reputation.
|
||||||
|
@ -226,15 +226,12 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendReputation(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendReputation(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
static void InitializeJournalChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL InitializeJournalChanges(unsigned short pid) noexcept;
|
||||||
static void InitializeKillChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL InitializeKillChanges(unsigned short pid) noexcept;
|
||||||
|
}
|
||||||
private:
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif //OPENMW_QUESTAPI_HPP
|
#endif //OPENMW_QUESTAPI_HPP
|
||||||
|
|
|
@ -31,7 +31,7 @@ mwmp::Item tempInventoryItem;
|
||||||
|
|
||||||
const ESM::EffectList emptyEffectList = {};
|
const ESM::EffectList emptyEffectList = {};
|
||||||
|
|
||||||
const ESM::EffectList& GetRecordEffects(unsigned int recordIndex)
|
extern "C" const ESM::EffectList& GetRecordEffects(unsigned int recordIndex)
|
||||||
{
|
{
|
||||||
unsigned short recordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short recordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ const ESM::EffectList& GetRecordEffects(unsigned int recordIndex)
|
||||||
return emptyEffectList;
|
return emptyEffectList;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::ClearRecords() noexcept
|
extern "C" void RecordsDynamicFunctions::ClearRecords() noexcept
|
||||||
{
|
{
|
||||||
WorldstateFunctions::writeWorldstate.spellRecords.clear();
|
WorldstateFunctions::writeWorldstate.spellRecords.clear();
|
||||||
WorldstateFunctions::writeWorldstate.potionRecords.clear();
|
WorldstateFunctions::writeWorldstate.potionRecords.clear();
|
||||||
|
@ -59,22 +59,22 @@ void RecordsDynamicFunctions::ClearRecords() noexcept
|
||||||
WorldstateFunctions::writeWorldstate.weaponRecords.clear();
|
WorldstateFunctions::writeWorldstate.weaponRecords.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short RecordsDynamicFunctions::GetRecordType() noexcept
|
extern "C" unsigned short RecordsDynamicFunctions::GetRecordType() noexcept
|
||||||
{
|
{
|
||||||
return WorldstateFunctions::readWorldstate->recordsType;
|
return WorldstateFunctions::readWorldstate->recordsType;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int RecordsDynamicFunctions::GetRecordCount() noexcept
|
extern "C" unsigned int RecordsDynamicFunctions::GetRecordCount() noexcept
|
||||||
{
|
{
|
||||||
return WorldstateFunctions::readWorldstate->recordsCount;
|
return WorldstateFunctions::readWorldstate->recordsCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int RecordsDynamicFunctions::GetRecordEffectCount(unsigned int recordIndex) noexcept
|
extern "C" unsigned int RecordsDynamicFunctions::GetRecordEffectCount(unsigned int recordIndex) noexcept
|
||||||
{
|
{
|
||||||
return GetRecordEffects(recordIndex).mList.size();
|
return GetRecordEffects(recordIndex).mList.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordSubtype(unsigned int index) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordSubtype(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ int RecordsDynamicFunctions::GetRecordSubtype(unsigned int index) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *RecordsDynamicFunctions::GetRecordId(unsigned int index) noexcept
|
extern "C" const char *RecordsDynamicFunctions::GetRecordId(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ const char *RecordsDynamicFunctions::GetRecordId(unsigned int index) noexcept
|
||||||
return "invalid";
|
return "invalid";
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *RecordsDynamicFunctions::GetRecordBaseId(unsigned int index) noexcept
|
extern "C" const char *RecordsDynamicFunctions::GetRecordBaseId(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ const char *RecordsDynamicFunctions::GetRecordBaseId(unsigned int index) noexcep
|
||||||
return "invalid";
|
return "invalid";
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *RecordsDynamicFunctions::GetRecordName(unsigned int index) noexcept
|
extern "C" const char *RecordsDynamicFunctions::GetRecordName(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ const char *RecordsDynamicFunctions::GetRecordName(unsigned int index) noexcept
|
||||||
return "invalid";
|
return "invalid";
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *RecordsDynamicFunctions::GetRecordModel(unsigned int index) noexcept
|
extern "C" const char *RecordsDynamicFunctions::GetRecordModel(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ const char *RecordsDynamicFunctions::GetRecordModel(unsigned int index) noexcept
|
||||||
return "invalid";
|
return "invalid";
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *RecordsDynamicFunctions::GetRecordIcon(unsigned int index) noexcept
|
extern "C" const char *RecordsDynamicFunctions::GetRecordIcon(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ const char *RecordsDynamicFunctions::GetRecordIcon(unsigned int index) noexcept
|
||||||
return "invalid";
|
return "invalid";
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *RecordsDynamicFunctions::GetRecordScript(unsigned int index) noexcept
|
extern "C" const char *RecordsDynamicFunctions::GetRecordScript(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ const char *RecordsDynamicFunctions::GetRecordScript(unsigned int index) noexcep
|
||||||
return "invalid";
|
return "invalid";
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *RecordsDynamicFunctions::GetRecordEnchantmentId(unsigned int index) noexcept
|
extern "C" const char *RecordsDynamicFunctions::GetRecordEnchantmentId(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ const char *RecordsDynamicFunctions::GetRecordEnchantmentId(unsigned int index)
|
||||||
return "invalid";
|
return "invalid";
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordEnchantmentCharge(unsigned int index) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordEnchantmentCharge(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@ int RecordsDynamicFunctions::GetRecordEnchantmentCharge(unsigned int index) noex
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordAutoCalc(unsigned int index) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordAutoCalc(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -216,7 +216,7 @@ int RecordsDynamicFunctions::GetRecordAutoCalc(unsigned int index) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordCharge(unsigned int index) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordCharge(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ int RecordsDynamicFunctions::GetRecordCharge(unsigned int index) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordCost(unsigned int index) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordCost(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -238,7 +238,7 @@ int RecordsDynamicFunctions::GetRecordCost(unsigned int index) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordFlags(unsigned int index) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordFlags(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -248,7 +248,7 @@ int RecordsDynamicFunctions::GetRecordFlags(unsigned int index) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordValue(unsigned int index) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordValue(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -258,7 +258,7 @@ int RecordsDynamicFunctions::GetRecordValue(unsigned int index) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
double RecordsDynamicFunctions::GetRecordWeight(unsigned int index) noexcept
|
extern "C" double RecordsDynamicFunctions::GetRecordWeight(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
unsigned short readRecordsType = RecordsDynamicFunctions::GetRecordType();
|
||||||
|
|
||||||
|
@ -268,52 +268,52 @@ double RecordsDynamicFunctions::GetRecordWeight(unsigned int index) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int RecordsDynamicFunctions::GetRecordEffectId(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
extern "C" unsigned int RecordsDynamicFunctions::GetRecordEffectId(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
||||||
{
|
{
|
||||||
return GetRecordEffects(recordIndex).mList.at(effectIndex).mEffectID;
|
return GetRecordEffects(recordIndex).mList.at(effectIndex).mEffectID;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordEffectAttribute(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordEffectAttribute(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
||||||
{
|
{
|
||||||
return GetRecordEffects(recordIndex).mList.at(effectIndex).mAttribute;
|
return GetRecordEffects(recordIndex).mList.at(effectIndex).mAttribute;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordEffectSkill(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordEffectSkill(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
||||||
{
|
{
|
||||||
return GetRecordEffects(recordIndex).mList.at(effectIndex).mSkill;
|
return GetRecordEffects(recordIndex).mList.at(effectIndex).mSkill;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int RecordsDynamicFunctions::GetRecordEffectRangeType(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
extern "C" unsigned int RecordsDynamicFunctions::GetRecordEffectRangeType(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
||||||
{
|
{
|
||||||
return GetRecordEffects(recordIndex).mList.at(effectIndex).mRange;
|
return GetRecordEffects(recordIndex).mList.at(effectIndex).mRange;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordEffectArea(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordEffectArea(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
||||||
{
|
{
|
||||||
return GetRecordEffects(recordIndex).mList.at(effectIndex).mArea;
|
return GetRecordEffects(recordIndex).mList.at(effectIndex).mArea;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordEffectDuration(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordEffectDuration(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
||||||
{
|
{
|
||||||
return GetRecordEffects(recordIndex).mList.at(effectIndex).mDuration;
|
return GetRecordEffects(recordIndex).mList.at(effectIndex).mDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordEffectMagnitudeMax(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordEffectMagnitudeMax(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
||||||
{
|
{
|
||||||
return GetRecordEffects(recordIndex).mList.at(effectIndex).mMagnMax;
|
return GetRecordEffects(recordIndex).mList.at(effectIndex).mMagnMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RecordsDynamicFunctions::GetRecordEffectMagnitudeMin(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
extern "C" int RecordsDynamicFunctions::GetRecordEffectMagnitudeMin(unsigned int recordIndex, unsigned int effectIndex) noexcept
|
||||||
{
|
{
|
||||||
return GetRecordEffects(recordIndex).mList.at(effectIndex).mMagnMin;
|
return GetRecordEffects(recordIndex).mList.at(effectIndex).mMagnMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordType(unsigned int type) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordType(unsigned int type) noexcept
|
||||||
{
|
{
|
||||||
WorldstateFunctions::writeWorldstate.recordsType = type;
|
WorldstateFunctions::writeWorldstate.recordsType = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordId(const char* id) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordId(const char* id) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -342,7 +342,7 @@ void RecordsDynamicFunctions::SetRecordId(const char* id) noexcept
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set id for record type %i which lacks that property", writeRecordsType);
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set id for record type %i which lacks that property", writeRecordsType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordBaseId(const char* baseId) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordBaseId(const char* baseId) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -370,7 +370,7 @@ void RecordsDynamicFunctions::SetRecordBaseId(const char* baseId) noexcept
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set baseId for record type %i which lacks that property", writeRecordsType);
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set baseId for record type %i which lacks that property", writeRecordsType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordInventoryBaseId(const char* inventoryBaseId) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordInventoryBaseId(const char* inventoryBaseId) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -382,7 +382,7 @@ void RecordsDynamicFunctions::SetRecordInventoryBaseId(const char* inventoryBase
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set inventoryBaseId for record type %i which lacks that property", writeRecordsType);
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set inventoryBaseId for record type %i which lacks that property", writeRecordsType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordSubtype(unsigned int subtype) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordSubtype(unsigned int subtype) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -407,7 +407,7 @@ void RecordsDynamicFunctions::SetRecordSubtype(unsigned int subtype) noexcept
|
||||||
tempOverrides.hasSubtype = true;
|
tempOverrides.hasSubtype = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordName(const char* name) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordName(const char* name) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -438,7 +438,7 @@ void RecordsDynamicFunctions::SetRecordName(const char* name) noexcept
|
||||||
tempOverrides.hasName = true;
|
tempOverrides.hasName = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordModel(const char* model) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordModel(const char* model) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -467,7 +467,7 @@ void RecordsDynamicFunctions::SetRecordModel(const char* model) noexcept
|
||||||
tempOverrides.hasModel = true;
|
tempOverrides.hasModel = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordIcon(const char* icon) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordIcon(const char* icon) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -492,7 +492,7 @@ void RecordsDynamicFunctions::SetRecordIcon(const char* icon) noexcept
|
||||||
tempOverrides.hasIcon = true;
|
tempOverrides.hasIcon = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordScript(const char* script) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordScript(const char* script) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -521,7 +521,7 @@ void RecordsDynamicFunctions::SetRecordScript(const char* script) noexcept
|
||||||
tempOverrides.hasScript = true;
|
tempOverrides.hasScript = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordEnchantmentId(const char* enchantmentId) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordEnchantmentId(const char* enchantmentId) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -542,7 +542,7 @@ void RecordsDynamicFunctions::SetRecordEnchantmentId(const char* enchantmentId)
|
||||||
tempOverrides.hasEnchantmentId = true;
|
tempOverrides.hasEnchantmentId = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordEnchantmentCharge(int enchantmentCharge) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordEnchantmentCharge(int enchantmentCharge) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -563,7 +563,7 @@ void RecordsDynamicFunctions::SetRecordEnchantmentCharge(int enchantmentCharge)
|
||||||
tempOverrides.hasEnchantmentCharge = true;
|
tempOverrides.hasEnchantmentCharge = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordAutoCalc(int autoCalc) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordAutoCalc(int autoCalc) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -593,7 +593,7 @@ void RecordsDynamicFunctions::SetRecordAutoCalc(int autoCalc) noexcept
|
||||||
tempOverrides.hasAutoCalc = true;
|
tempOverrides.hasAutoCalc = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordCharge(int charge) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordCharge(int charge) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -608,7 +608,7 @@ void RecordsDynamicFunctions::SetRecordCharge(int charge) noexcept
|
||||||
tempOverrides.hasCharge = true;
|
tempOverrides.hasCharge = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordCost(int cost) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordCost(int cost) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -625,7 +625,7 @@ void RecordsDynamicFunctions::SetRecordCost(int cost) noexcept
|
||||||
tempOverrides.hasCost = true;
|
tempOverrides.hasCost = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordFlags(int flags) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordFlags(int flags) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -646,7 +646,7 @@ void RecordsDynamicFunctions::SetRecordFlags(int flags) noexcept
|
||||||
tempOverrides.hasFlags = true;
|
tempOverrides.hasFlags = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordValue(int value) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordValue(int value) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -671,7 +671,7 @@ void RecordsDynamicFunctions::SetRecordValue(int value) noexcept
|
||||||
tempOverrides.hasValue = true;
|
tempOverrides.hasValue = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordWeight(double weight) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordWeight(double weight) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -696,7 +696,7 @@ void RecordsDynamicFunctions::SetRecordWeight(double weight) noexcept
|
||||||
tempOverrides.hasWeight = true;
|
tempOverrides.hasWeight = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordArmorRating(int armorRating) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordArmorRating(int armorRating) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -711,7 +711,7 @@ void RecordsDynamicFunctions::SetRecordArmorRating(int armorRating) noexcept
|
||||||
tempOverrides.hasArmorRating = true;
|
tempOverrides.hasArmorRating = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordHealth(int health) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordHealth(int health) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -732,7 +732,7 @@ void RecordsDynamicFunctions::SetRecordHealth(int health) noexcept
|
||||||
tempOverrides.hasHealth = true;
|
tempOverrides.hasHealth = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordDamageChop(unsigned int minDamage, unsigned int maxDamage) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordDamageChop(unsigned int minDamage, unsigned int maxDamage) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -750,7 +750,7 @@ void RecordsDynamicFunctions::SetRecordDamageChop(unsigned int minDamage, unsign
|
||||||
tempOverrides.hasDamageChop = true;
|
tempOverrides.hasDamageChop = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordDamageSlash(unsigned int minDamage, unsigned int maxDamage) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordDamageSlash(unsigned int minDamage, unsigned int maxDamage) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -768,7 +768,7 @@ void RecordsDynamicFunctions::SetRecordDamageSlash(unsigned int minDamage, unsig
|
||||||
tempOverrides.hasDamageSlash = true;
|
tempOverrides.hasDamageSlash = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordDamageThrust(unsigned int minDamage, unsigned int maxDamage) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordDamageThrust(unsigned int minDamage, unsigned int maxDamage) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -786,7 +786,7 @@ void RecordsDynamicFunctions::SetRecordDamageThrust(unsigned int minDamage, unsi
|
||||||
tempOverrides.hasDamageThrust = true;
|
tempOverrides.hasDamageThrust = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordReach(double reach) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordReach(double reach) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -801,7 +801,7 @@ void RecordsDynamicFunctions::SetRecordReach(double reach) noexcept
|
||||||
tempOverrides.hasReach = true;
|
tempOverrides.hasReach = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordSpeed(double speed) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordSpeed(double speed) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -816,7 +816,7 @@ void RecordsDynamicFunctions::SetRecordSpeed(double speed) noexcept
|
||||||
tempOverrides.hasSpeed = true;
|
tempOverrides.hasSpeed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordKeyState(bool keyState) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordKeyState(bool keyState) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -831,7 +831,7 @@ void RecordsDynamicFunctions::SetRecordKeyState(bool keyState) noexcept
|
||||||
tempOverrides.hasKeyState = true;
|
tempOverrides.hasKeyState = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordScrollState(bool scrollState) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordScrollState(bool scrollState) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -846,7 +846,7 @@ void RecordsDynamicFunctions::SetRecordScrollState(bool scrollState) noexcept
|
||||||
tempOverrides.hasScrollState = true;
|
tempOverrides.hasScrollState = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordSkillId(int skillId) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordSkillId(int skillId) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -861,7 +861,7 @@ void RecordsDynamicFunctions::SetRecordSkillId(int skillId) noexcept
|
||||||
tempOverrides.hasSkillId = true;
|
tempOverrides.hasSkillId = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordText(const char* text) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordText(const char* text) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -876,7 +876,7 @@ void RecordsDynamicFunctions::SetRecordText(const char* text) noexcept
|
||||||
tempOverrides.hasText = true;
|
tempOverrides.hasText = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordHair(const char* hair) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordHair(const char* hair) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -891,7 +891,7 @@ void RecordsDynamicFunctions::SetRecordHair(const char* hair) noexcept
|
||||||
tempOverrides.hasHair = true;
|
tempOverrides.hasHair = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordHead(const char* head) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordHead(const char* head) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -906,7 +906,7 @@ void RecordsDynamicFunctions::SetRecordHead(const char* head) noexcept
|
||||||
tempOverrides.hasHead = true;
|
tempOverrides.hasHead = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordGender(unsigned int gender) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordGender(unsigned int gender) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -923,7 +923,7 @@ void RecordsDynamicFunctions::SetRecordGender(unsigned int gender) noexcept
|
||||||
tempOverrides.hasGender = true;
|
tempOverrides.hasGender = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordRace(const char* race) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordRace(const char* race) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -933,7 +933,7 @@ void RecordsDynamicFunctions::SetRecordRace(const char* race) noexcept
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set race for record type %i which lacks that property", writeRecordsType);
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set race for record type %i which lacks that property", writeRecordsType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordClass(const char* charClass) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordClass(const char* charClass) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -943,7 +943,7 @@ void RecordsDynamicFunctions::SetRecordClass(const char* charClass) noexcept
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set character class for record type %i which lacks that property", writeRecordsType);
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set character class for record type %i which lacks that property", writeRecordsType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordFaction(const char* faction) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordFaction(const char* faction) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -958,7 +958,7 @@ void RecordsDynamicFunctions::SetRecordFaction(const char* faction) noexcept
|
||||||
tempOverrides.hasFaction = true;
|
tempOverrides.hasFaction = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordLevel(int level) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordLevel(int level) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -975,7 +975,7 @@ void RecordsDynamicFunctions::SetRecordLevel(int level) noexcept
|
||||||
tempOverrides.hasLevel = true;
|
tempOverrides.hasLevel = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordMagicka(int magicka) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordMagicka(int magicka) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -992,7 +992,7 @@ void RecordsDynamicFunctions::SetRecordMagicka(int magicka) noexcept
|
||||||
tempOverrides.hasMagicka = true;
|
tempOverrides.hasMagicka = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordFatigue(int fatigue) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordFatigue(int fatigue) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -1009,7 +1009,7 @@ void RecordsDynamicFunctions::SetRecordFatigue(int fatigue) noexcept
|
||||||
tempOverrides.hasFatigue = true;
|
tempOverrides.hasFatigue = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordAIFight(int aiFight) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordAIFight(int aiFight) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -1026,7 +1026,7 @@ void RecordsDynamicFunctions::SetRecordAIFight(int aiFight) noexcept
|
||||||
tempOverrides.hasAiFight = true;
|
tempOverrides.hasAiFight = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordIdByIndex(unsigned int index, const char* id) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordIdByIndex(unsigned int index, const char* id) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -1048,7 +1048,7 @@ void RecordsDynamicFunctions::SetRecordIdByIndex(unsigned int index, const char*
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set id for record type %i which lacks that property", writeRecordsType);
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set id for record type %i which lacks that property", writeRecordsType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordEnchantmentIdByIndex(unsigned int index, const char* enchantmentId) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordEnchantmentIdByIndex(unsigned int index, const char* enchantmentId) noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -1064,72 +1064,72 @@ void RecordsDynamicFunctions::SetRecordEnchantmentIdByIndex(unsigned int index,
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set enchantmentId for record type %i which lacks that property", writeRecordsType);
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Tried to set enchantmentId for record type %i which lacks that property", writeRecordsType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordEffectId(unsigned int effectId) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordEffectId(unsigned int effectId) noexcept
|
||||||
{
|
{
|
||||||
tempEffect.mEffectID = effectId;
|
tempEffect.mEffectID = effectId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordEffectAttribute(int attributeId) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordEffectAttribute(int attributeId) noexcept
|
||||||
{
|
{
|
||||||
tempEffect.mAttribute = attributeId;
|
tempEffect.mAttribute = attributeId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordEffectSkill(int skillId) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordEffectSkill(int skillId) noexcept
|
||||||
{
|
{
|
||||||
tempEffect.mSkill = skillId;
|
tempEffect.mSkill = skillId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordEffectRangeType(unsigned int rangeType) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordEffectRangeType(unsigned int rangeType) noexcept
|
||||||
{
|
{
|
||||||
tempEffect.mRange = rangeType;
|
tempEffect.mRange = rangeType;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordEffectArea(int area) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordEffectArea(int area) noexcept
|
||||||
{
|
{
|
||||||
tempEffect.mArea = area;
|
tempEffect.mArea = area;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordEffectDuration(int duration) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordEffectDuration(int duration) noexcept
|
||||||
{
|
{
|
||||||
tempEffect.mDuration = duration;
|
tempEffect.mDuration = duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordEffectMagnitudeMax(int magnitudeMax) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordEffectMagnitudeMax(int magnitudeMax) noexcept
|
||||||
{
|
{
|
||||||
tempEffect.mMagnMax = magnitudeMax;
|
tempEffect.mMagnMax = magnitudeMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordEffectMagnitudeMin(int magnitudeMin) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordEffectMagnitudeMin(int magnitudeMin) noexcept
|
||||||
{
|
{
|
||||||
tempEffect.mMagnMin = magnitudeMin;
|
tempEffect.mMagnMin = magnitudeMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordBodyPartType(unsigned int partType) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordBodyPartType(unsigned int partType) noexcept
|
||||||
{
|
{
|
||||||
tempBodyPart.mPart = partType;
|
tempBodyPart.mPart = partType;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordBodyPartIdForMale(const char* partId) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordBodyPartIdForMale(const char* partId) noexcept
|
||||||
{
|
{
|
||||||
tempBodyPart.mMale = partId;
|
tempBodyPart.mMale = partId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordBodyPartIdForFemale(const char* partId) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordBodyPartIdForFemale(const char* partId) noexcept
|
||||||
{
|
{
|
||||||
tempBodyPart.mFemale = partId;
|
tempBodyPart.mFemale = partId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordInventoryItemId(const char* itemId) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordInventoryItemId(const char* itemId) noexcept
|
||||||
{
|
{
|
||||||
tempInventoryItem.refId = itemId;
|
tempInventoryItem.refId = itemId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SetRecordInventoryItemCount(unsigned int count) noexcept
|
extern "C" void RecordsDynamicFunctions::SetRecordInventoryItemCount(unsigned int count) noexcept
|
||||||
{
|
{
|
||||||
tempInventoryItem.count = count;
|
tempInventoryItem.count = count;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::AddRecord() noexcept
|
extern "C" void RecordsDynamicFunctions::AddRecord() noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -1197,7 +1197,7 @@ void RecordsDynamicFunctions::AddRecord() noexcept
|
||||||
tempOverrides = {};
|
tempOverrides = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::AddRecordEffect() noexcept
|
extern "C" void RecordsDynamicFunctions::AddRecordEffect() noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -1212,7 +1212,7 @@ void RecordsDynamicFunctions::AddRecordEffect() noexcept
|
||||||
tempEffect = {};
|
tempEffect = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::AddRecordBodyPart() noexcept
|
extern "C" void RecordsDynamicFunctions::AddRecordBodyPart() noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -1225,7 +1225,7 @@ void RecordsDynamicFunctions::AddRecordBodyPart() noexcept
|
||||||
tempBodyPart = {};
|
tempBodyPart = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::AddRecordInventoryItem() noexcept
|
extern "C" void RecordsDynamicFunctions::AddRecordInventoryItem() noexcept
|
||||||
{
|
{
|
||||||
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
unsigned short writeRecordsType = WorldstateFunctions::writeWorldstate.recordsType;
|
||||||
|
|
||||||
|
@ -1238,7 +1238,7 @@ void RecordsDynamicFunctions::AddRecordInventoryItem() noexcept
|
||||||
tempInventoryItem = {};
|
tempInventoryItem = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordsDynamicFunctions::SendRecordDynamic(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void RecordsDynamicFunctions::SendRecordDynamic(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include "../Types.hpp"
|
#include "../Types.hpp"
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define RECORDSDYNAMICAPI \
|
#define RECORDSDYNAMICAPI \
|
||||||
{"ClearRecords", RecordsDynamicFunctions::ClearRecords},\
|
{"ClearRecords", RecordsDynamicFunctions::ClearRecords},\
|
||||||
\
|
\
|
||||||
|
@ -110,16 +112,14 @@
|
||||||
\
|
\
|
||||||
{"SendRecordDynamic", RecordsDynamicFunctions::SendRecordDynamic}
|
{"SendRecordDynamic", RecordsDynamicFunctions::SendRecordDynamic}
|
||||||
|
|
||||||
class RecordsDynamicFunctions
|
namespace RecordsDynamicFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the data from the records stored on the server.
|
* \brief Clear the data from the records stored on the server.
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearRecords() noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearRecords() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the type of records in the read worldstate's dynamic records.
|
* \brief Get the type of records in the read worldstate's dynamic records.
|
||||||
|
@ -127,14 +127,14 @@ public:
|
||||||
* \return The type of records (0 for SPELL, 1 for POTION, 2 for ENCHANTMENT,
|
* \return The type of records (0 for SPELL, 1 for POTION, 2 for ENCHANTMENT,
|
||||||
* 3 for NPC).
|
* 3 for NPC).
|
||||||
*/
|
*/
|
||||||
static unsigned short GetRecordType() noexcept;
|
EXPORT_APIFUNCTION unsigned short CDECL GetRecordType() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of records in the read worldstate's dynamic records.
|
* \brief Get the number of records in the read worldstate's dynamic records.
|
||||||
*
|
*
|
||||||
* \return The number of records.
|
* \return The number of records.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetRecordCount() noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetRecordCount() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of effects for the record at a certain index in the read
|
* \brief Get the number of effects for the record at a certain index in the read
|
||||||
|
@ -143,7 +143,7 @@ public:
|
||||||
* \param recordIndex The index of the record.
|
* \param recordIndex The index of the record.
|
||||||
* \return The number of effects.
|
* \return The number of effects.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetRecordEffectCount(unsigned int recordIndex) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetRecordEffectCount(unsigned int recordIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the id of the record at a certain index in the read worldstate's
|
* \brief Get the id of the record at a certain index in the read worldstate's
|
||||||
|
@ -152,7 +152,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The id of the record.
|
* \return The id of the record.
|
||||||
*/
|
*/
|
||||||
static const char *GetRecordId(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetRecordId(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the base id (i.e. the id this record should inherit default
|
* \brief Get the base id (i.e. the id this record should inherit default
|
||||||
|
@ -162,7 +162,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The base id of the record.
|
* \return The base id of the record.
|
||||||
*/
|
*/
|
||||||
static const char *GetRecordBaseId(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetRecordBaseId(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the subtype of the record at a certain index in the read worldstate's
|
* \brief Get the subtype of the record at a certain index in the read worldstate's
|
||||||
|
@ -171,7 +171,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The type of the record.
|
* \return The type of the record.
|
||||||
*/
|
*/
|
||||||
static int GetRecordSubtype(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordSubtype(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the name of the record at a certain index in the read worldstate's
|
* \brief Get the name of the record at a certain index in the read worldstate's
|
||||||
|
@ -180,7 +180,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The name of the record.
|
* \return The name of the record.
|
||||||
*/
|
*/
|
||||||
static const char *GetRecordName(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetRecordName(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the model of the record at a certain index in the read worldstate's
|
* \brief Get the model of the record at a certain index in the read worldstate's
|
||||||
|
@ -189,7 +189,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The model of the record.
|
* \return The model of the record.
|
||||||
*/
|
*/
|
||||||
static const char *GetRecordModel(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetRecordModel(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the icon of the record at a certain index in the read worldstate's
|
* \brief Get the icon of the record at a certain index in the read worldstate's
|
||||||
|
@ -198,7 +198,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The icon of the record.
|
* \return The icon of the record.
|
||||||
*/
|
*/
|
||||||
static const char *GetRecordIcon(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetRecordIcon(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the script of the record at a certain index in the read worldstate's
|
* \brief Get the script of the record at a certain index in the read worldstate's
|
||||||
|
@ -207,7 +207,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The script of the record.
|
* \return The script of the record.
|
||||||
*/
|
*/
|
||||||
static const char *GetRecordScript(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetRecordScript(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the enchantment id of the record at a certain index in the read
|
* \brief Get the enchantment id of the record at a certain index in the read
|
||||||
|
@ -216,7 +216,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The enchantment id of the record.
|
* \return The enchantment id of the record.
|
||||||
*/
|
*/
|
||||||
static const char *GetRecordEnchantmentId(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetRecordEnchantmentId(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the enchantment charge of the record at a certain index in
|
* \brief Get the enchantment charge of the record at a certain index in
|
||||||
|
@ -225,7 +225,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The enchantment charge of the record.
|
* \return The enchantment charge of the record.
|
||||||
*/
|
*/
|
||||||
static int GetRecordEnchantmentCharge(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordEnchantmentCharge(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the auto-calculation flag value of the record at a certain index in
|
* \brief Get the auto-calculation flag value of the record at a certain index in
|
||||||
|
@ -234,7 +234,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The auto-calculation flag value of the record.
|
* \return The auto-calculation flag value of the record.
|
||||||
*/
|
*/
|
||||||
static int GetRecordAutoCalc(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordAutoCalc(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the charge of the record at a certain index in the read worldstate's
|
* \brief Get the charge of the record at a certain index in the read worldstate's
|
||||||
|
@ -243,7 +243,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The charge of the record.
|
* \return The charge of the record.
|
||||||
*/
|
*/
|
||||||
static int GetRecordCharge(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordCharge(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the cost of the record at a certain index in the read worldstate's
|
* \brief Get the cost of the record at a certain index in the read worldstate's
|
||||||
|
@ -252,7 +252,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The cost of the record.
|
* \return The cost of the record.
|
||||||
*/
|
*/
|
||||||
static int GetRecordCost(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordCost(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the flags of the record at a certain index in the read worldstate's
|
* \brief Get the flags of the record at a certain index in the read worldstate's
|
||||||
|
@ -261,7 +261,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The flags of the spell as an integer.
|
* \return The flags of the spell as an integer.
|
||||||
*/
|
*/
|
||||||
static int GetRecordFlags(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordFlags(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the value of the record at a certain index in the read worldstate's
|
* \brief Get the value of the record at a certain index in the read worldstate's
|
||||||
|
@ -270,7 +270,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The value of the record.
|
* \return The value of the record.
|
||||||
*/
|
*/
|
||||||
static int GetRecordValue(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordValue(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the weight of the record at a certain index in the read worldstate's
|
* \brief Get the weight of the record at a certain index in the read worldstate's
|
||||||
|
@ -279,7 +279,7 @@ public:
|
||||||
* \param index The index of the record.
|
* \param index The index of the record.
|
||||||
* \return The weight of the record.
|
* \return The weight of the record.
|
||||||
*/
|
*/
|
||||||
static double GetRecordWeight(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetRecordWeight(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the ID of the effect at a certain index in the read worldstate's
|
* \brief Get the ID of the effect at a certain index in the read worldstate's
|
||||||
|
@ -289,7 +289,7 @@ public:
|
||||||
* \param effectIndex The index of the effect.
|
* \param effectIndex The index of the effect.
|
||||||
* \return The ID of the effect.
|
* \return The ID of the effect.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetRecordEffectId(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetRecordEffectId(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the ID of the attribute modified by the effect at a certain index in the
|
* \brief Get the ID of the attribute modified by the effect at a certain index in the
|
||||||
|
@ -299,7 +299,7 @@ public:
|
||||||
* \param effectIndex The index of the effect.
|
* \param effectIndex The index of the effect.
|
||||||
* \return The attribute ID for the effect.
|
* \return The attribute ID for the effect.
|
||||||
*/
|
*/
|
||||||
static int GetRecordEffectAttribute(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordEffectAttribute(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the ID of the skill modified by the effect at a certain index in the
|
* \brief Get the ID of the skill modified by the effect at a certain index in the
|
||||||
|
@ -309,7 +309,7 @@ public:
|
||||||
* \param effectIndex The index of the effect.
|
* \param effectIndex The index of the effect.
|
||||||
* \return The skill ID for the effect.
|
* \return The skill ID for the effect.
|
||||||
*/
|
*/
|
||||||
static int GetRecordEffectSkill(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordEffectSkill(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the range type of the effect at a certain index in the read worldstate's
|
* \brief Get the range type of the effect at a certain index in the read worldstate's
|
||||||
|
@ -319,7 +319,7 @@ public:
|
||||||
* \param effectIndex The index of the effect.
|
* \param effectIndex The index of the effect.
|
||||||
* \return The range of the effect.
|
* \return The range of the effect.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetRecordEffectRangeType(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetRecordEffectRangeType(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the area of the effect at a certain index in the read worldstate's current
|
* \brief Get the area of the effect at a certain index in the read worldstate's current
|
||||||
|
@ -329,7 +329,7 @@ public:
|
||||||
* \param effectIndex The index of the effect.
|
* \param effectIndex The index of the effect.
|
||||||
* \return The area of the effect.
|
* \return The area of the effect.
|
||||||
*/
|
*/
|
||||||
static int GetRecordEffectArea(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordEffectArea(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the duration of the effect at a certain index in the read worldstate's current
|
* \brief Get the duration of the effect at a certain index in the read worldstate's current
|
||||||
|
@ -339,7 +339,7 @@ public:
|
||||||
* \param effectIndex The index of the effect.
|
* \param effectIndex The index of the effect.
|
||||||
* \return The duration of the effect.
|
* \return The duration of the effect.
|
||||||
*/
|
*/
|
||||||
static int GetRecordEffectDuration(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordEffectDuration(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the maximum magnitude of the effect at a certain index in the read
|
* \brief Get the maximum magnitude of the effect at a certain index in the read
|
||||||
|
@ -349,7 +349,7 @@ public:
|
||||||
* \param effectIndex The index of the effect.
|
* \param effectIndex The index of the effect.
|
||||||
* \return The maximum magnitude of the effect.
|
* \return The maximum magnitude of the effect.
|
||||||
*/
|
*/
|
||||||
static int GetRecordEffectMagnitudeMax(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordEffectMagnitudeMax(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the minimum magnitude of the effect at a certain index in the read
|
* \brief Get the minimum magnitude of the effect at a certain index in the read
|
||||||
|
@ -359,7 +359,7 @@ public:
|
||||||
* \param effectIndex The index of the effect.
|
* \param effectIndex The index of the effect.
|
||||||
* \return The minimum magnitude of the effect.
|
* \return The minimum magnitude of the effect.
|
||||||
*/
|
*/
|
||||||
static int GetRecordEffectMagnitudeMin(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetRecordEffectMagnitudeMin(unsigned int recordIndex, unsigned int effectIndex) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set which type of temporary records stored on the server should have
|
* \brief Set which type of temporary records stored on the server should have
|
||||||
|
@ -368,7 +368,7 @@ public:
|
||||||
* \param type The type of records.
|
* \param type The type of records.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordType(unsigned int type) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordType(unsigned int type) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the id of the temporary record stored on the server for the
|
* \brief Set the id of the temporary record stored on the server for the
|
||||||
|
@ -377,7 +377,7 @@ public:
|
||||||
* \param id The id of the record.
|
* \param id The id of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordId(const char* id) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordId(const char* id) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the base id (i.e. the id this record should inherit default
|
* \brief Set the base id (i.e. the id this record should inherit default
|
||||||
|
@ -387,7 +387,7 @@ public:
|
||||||
* \param baseId The baseId of the record.
|
* \param baseId The baseId of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordBaseId(const char* baseId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordBaseId(const char* baseId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the inventory base id (i.e. the id this record should inherit
|
* \brief Set the inventory base id (i.e. the id this record should inherit
|
||||||
|
@ -397,7 +397,7 @@ public:
|
||||||
* \param inventoryBaseId The inventoryBaseId of the record.
|
* \param inventoryBaseId The inventoryBaseId of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordInventoryBaseId(const char* inventoryBaseId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordInventoryBaseId(const char* inventoryBaseId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the subtype of the temporary record stored on the server for
|
* \brief Set the subtype of the temporary record stored on the server for
|
||||||
|
@ -406,7 +406,7 @@ public:
|
||||||
* \param type The spell type.
|
* \param type The spell type.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordSubtype(unsigned int subtype) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordSubtype(unsigned int subtype) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the name of the temporary record stored on the server for the
|
* \brief Set the name of the temporary record stored on the server for the
|
||||||
|
@ -415,7 +415,7 @@ public:
|
||||||
* \param name The name of the record.
|
* \param name The name of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordName(const char* name) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordName(const char* name) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the model of the temporary record stored on the server for the
|
* \brief Set the model of the temporary record stored on the server for the
|
||||||
|
@ -424,7 +424,7 @@ public:
|
||||||
* \param model The model of the record.
|
* \param model The model of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordModel(const char* model) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordModel(const char* model) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the icon of the temporary record stored on the server for the
|
* \brief Set the icon of the temporary record stored on the server for the
|
||||||
|
@ -433,7 +433,7 @@ public:
|
||||||
* \param icon The icon of the record.
|
* \param icon The icon of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordIcon(const char* icon) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordIcon(const char* icon) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the script of the temporary record stored on the server for the
|
* \brief Set the script of the temporary record stored on the server for the
|
||||||
|
@ -442,7 +442,7 @@ public:
|
||||||
* \param script The script of the record.
|
* \param script The script of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordScript(const char* script) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordScript(const char* script) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the enchantment id of the temporary record stored on the server
|
* \brief Set the enchantment id of the temporary record stored on the server
|
||||||
|
@ -451,7 +451,7 @@ public:
|
||||||
* \param enchantmentId The enchantment id of the record.
|
* \param enchantmentId The enchantment id of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordEnchantmentId(const char* enchantmentId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordEnchantmentId(const char* enchantmentId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the enchantment charge of the temporary record stored on the server
|
* \brief Set the enchantment charge of the temporary record stored on the server
|
||||||
|
@ -460,7 +460,7 @@ public:
|
||||||
* \param enchantmentCharge The enchantmentCharge of the record.
|
* \param enchantmentCharge The enchantmentCharge of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordEnchantmentCharge(int enchantmentCharge) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordEnchantmentCharge(int enchantmentCharge) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the auto-calculation flag value of the temporary record stored
|
* \brief Set the auto-calculation flag value of the temporary record stored
|
||||||
|
@ -469,7 +469,7 @@ public:
|
||||||
* \param autoCalc The auto-calculation flag value of the record.
|
* \param autoCalc The auto-calculation flag value of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordAutoCalc(int autoCalc) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordAutoCalc(int autoCalc) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the charge of the temporary record stored on the server for the
|
* \brief Set the charge of the temporary record stored on the server for the
|
||||||
|
@ -478,7 +478,7 @@ public:
|
||||||
* \param charge The charge of the record.
|
* \param charge The charge of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordCharge(int charge) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordCharge(int charge) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the cost of the temporary record stored on the server for the
|
* \brief Set the cost of the temporary record stored on the server for the
|
||||||
|
@ -487,7 +487,7 @@ public:
|
||||||
* \param cost The cost of the record.
|
* \param cost The cost of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordCost(int cost) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordCost(int cost) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the flags of the temporary record stored on the server for the
|
* \brief Set the flags of the temporary record stored on the server for the
|
||||||
|
@ -496,7 +496,7 @@ public:
|
||||||
* \param flags The flags of the record.
|
* \param flags The flags of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordFlags(int flags) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordFlags(int flags) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the value of the temporary record stored on the server for the
|
* \brief Set the value of the temporary record stored on the server for the
|
||||||
|
@ -505,7 +505,7 @@ public:
|
||||||
* \param value The value of the record.
|
* \param value The value of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordValue(int value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordValue(int value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the weight of the temporary record stored on the server for the
|
* \brief Set the weight of the temporary record stored on the server for the
|
||||||
|
@ -514,7 +514,7 @@ public:
|
||||||
* \param weight The weight of the record.
|
* \param weight The weight of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordWeight(double weight) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordWeight(double weight) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the armor rating of the temporary record stored on the server
|
* \brief Set the armor rating of the temporary record stored on the server
|
||||||
|
@ -523,7 +523,7 @@ public:
|
||||||
* \param armorRating The armor rating of the record.
|
* \param armorRating The armor rating of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordArmorRating(int armorRating) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordArmorRating(int armorRating) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the health of the temporary record stored on the server for the
|
* \brief Set the health of the temporary record stored on the server for the
|
||||||
|
@ -532,7 +532,7 @@ public:
|
||||||
* \param health The health of the record.
|
* \param health The health of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordHealth(int health) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordHealth(int health) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the chop damage of the temporary record stored on the server for the
|
* \brief Set the chop damage of the temporary record stored on the server for the
|
||||||
|
@ -542,7 +542,7 @@ public:
|
||||||
* \param maxDamage The maximum damage of the record.
|
* \param maxDamage The maximum damage of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordDamageChop(unsigned int minDamage, unsigned int maxDamage) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordDamageChop(unsigned int minDamage, unsigned int maxDamage) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the slash damage of the temporary record stored on the server for the
|
* \brief Set the slash damage of the temporary record stored on the server for the
|
||||||
|
@ -552,7 +552,7 @@ public:
|
||||||
* \param maxDamage The maximum damage of the record.
|
* \param maxDamage The maximum damage of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordDamageSlash(unsigned int minDamage, unsigned int maxDamage) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordDamageSlash(unsigned int minDamage, unsigned int maxDamage) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the thrust damage of the temporary record stored on the server for the
|
* \brief Set the thrust damage of the temporary record stored on the server for the
|
||||||
|
@ -562,7 +562,7 @@ public:
|
||||||
* \param maxDamage The maximum damage of the record.
|
* \param maxDamage The maximum damage of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordDamageThrust(unsigned int minDamage, unsigned int maxDamage) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordDamageThrust(unsigned int minDamage, unsigned int maxDamage) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the reach of the temporary record stored on the server for the
|
* \brief Set the reach of the temporary record stored on the server for the
|
||||||
|
@ -571,7 +571,7 @@ public:
|
||||||
* \param reach The reach of the record.
|
* \param reach The reach of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordReach(double reach) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordReach(double reach) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the speed of the temporary record stored on the server for the
|
* \brief Set the speed of the temporary record stored on the server for the
|
||||||
|
@ -580,7 +580,7 @@ public:
|
||||||
* \param speed The speed of the record.
|
* \param speed The speed of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordSpeed(double speed) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordSpeed(double speed) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set whether the temporary record stored on the server for the
|
* \brief Set whether the temporary record stored on the server for the
|
||||||
|
@ -591,7 +591,7 @@ public:
|
||||||
* \param keyState Whether the record is a key.
|
* \param keyState Whether the record is a key.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordKeyState(bool keyState) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordKeyState(bool keyState) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set whether the temporary record stored on the server for the
|
* \brief Set whether the temporary record stored on the server for the
|
||||||
|
@ -602,7 +602,7 @@ public:
|
||||||
* \param scrollState Whether the record is a scroll.
|
* \param scrollState Whether the record is a scroll.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordScrollState(bool scrollState) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordScrollState(bool scrollState) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the skill ID of the temporary record stored on the server for the
|
* \brief Set the skill ID of the temporary record stored on the server for the
|
||||||
|
@ -611,7 +611,7 @@ public:
|
||||||
* \param skillId The skill ID of the record.
|
* \param skillId The skill ID of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordSkillId(int skillId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordSkillId(int skillId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the text of the temporary record stored on the server for the
|
* \brief Set the text of the temporary record stored on the server for the
|
||||||
|
@ -620,7 +620,7 @@ public:
|
||||||
* \param text The text of the record.
|
* \param text The text of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordText(const char* text) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordText(const char* text) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the hair of the temporary record stored on the server for the
|
* \brief Set the hair of the temporary record stored on the server for the
|
||||||
|
@ -629,7 +629,7 @@ public:
|
||||||
* \param hair The hair of the record.
|
* \param hair The hair of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordHair(const char* hair) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordHair(const char* hair) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the head of the temporary record stored on the server for the
|
* \brief Set the head of the temporary record stored on the server for the
|
||||||
|
@ -638,7 +638,7 @@ public:
|
||||||
* \param hair The head of the record.
|
* \param hair The head of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordHead(const char* head) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordHead(const char* head) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the gender of the temporary record stored on the server for the
|
* \brief Set the gender of the temporary record stored on the server for the
|
||||||
|
@ -647,7 +647,7 @@ public:
|
||||||
* \param hair The race of the record.
|
* \param hair The race of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordGender(unsigned int gender) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordGender(unsigned int gender) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the race of the temporary record stored on the server for the
|
* \brief Set the race of the temporary record stored on the server for the
|
||||||
|
@ -656,7 +656,7 @@ public:
|
||||||
* \param hair The race of the record.
|
* \param hair The race of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordRace(const char* race) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordRace(const char* race) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the character class of the temporary record stored on the server
|
* \brief Set the character class of the temporary record stored on the server
|
||||||
|
@ -665,7 +665,7 @@ public:
|
||||||
* \param hair The character class of the record.
|
* \param hair The character class of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordClass(const char* charClass) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordClass(const char* charClass) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the faction of the temporary record stored on the server for the
|
* \brief Set the faction of the temporary record stored on the server for the
|
||||||
|
@ -674,7 +674,7 @@ public:
|
||||||
* \param faction The faction of the record.
|
* \param faction The faction of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordFaction(const char* faction) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordFaction(const char* faction) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the level of the temporary record stored on the server for the
|
* \brief Set the level of the temporary record stored on the server for the
|
||||||
|
@ -683,7 +683,7 @@ public:
|
||||||
* \param level The level of the record.
|
* \param level The level of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordLevel(int level) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordLevel(int level) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the magicka of the temporary record stored on the server for the
|
* \brief Set the magicka of the temporary record stored on the server for the
|
||||||
|
@ -692,7 +692,7 @@ public:
|
||||||
* \param magicka The magicka of the record.
|
* \param magicka The magicka of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordMagicka(int magicka) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordMagicka(int magicka) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the fatigue of the temporary record stored on the server for the
|
* \brief Set the fatigue of the temporary record stored on the server for the
|
||||||
|
@ -701,7 +701,7 @@ public:
|
||||||
* \param fatigue The fatigue of the record.
|
* \param fatigue The fatigue of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordFatigue(int fatigue) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordFatigue(int fatigue) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the AI fight value of the temporary record stored on the server for the
|
* \brief Set the AI fight value of the temporary record stored on the server for the
|
||||||
|
@ -710,7 +710,7 @@ public:
|
||||||
* \param aiFight The AI fight value of the record.
|
* \param aiFight The AI fight value of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordAIFight(int aiFight) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordAIFight(int aiFight) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the id of the record at a certain index in the records stored on the server.
|
* \brief Set the id of the record at a certain index in the records stored on the server.
|
||||||
|
@ -722,7 +722,7 @@ public:
|
||||||
* \param id The id of the record.
|
* \param id The id of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordIdByIndex(unsigned int index, const char* id) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordIdByIndex(unsigned int index, const char* id) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the enchantment id of the record at a certain index in the records stored on
|
* \brief Set the enchantment id of the record at a certain index in the records stored on
|
||||||
|
@ -735,7 +735,7 @@ public:
|
||||||
* \param enchantmentId The enchantment id of the record.
|
* \param enchantmentId The enchantment id of the record.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordEnchantmentIdByIndex(unsigned int index, const char* enchantmentId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordEnchantmentIdByIndex(unsigned int index, const char* enchantmentId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the ID of the temporary effect stored on the server.
|
* \brief Set the ID of the temporary effect stored on the server.
|
||||||
|
@ -743,7 +743,7 @@ public:
|
||||||
* \param effectId The ID of the effect.
|
* \param effectId The ID of the effect.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordEffectId(unsigned int effectId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordEffectId(unsigned int effectId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the ID of the attribute modified by the temporary effect stored on
|
* \brief Set the ID of the attribute modified by the temporary effect stored on
|
||||||
|
@ -752,7 +752,7 @@ public:
|
||||||
* \param attributeId The ID of the attribute.
|
* \param attributeId The ID of the attribute.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordEffectAttribute(int attributeId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordEffectAttribute(int attributeId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the ID of the skill modified by the temporary effect stored on the
|
* \brief Set the ID of the skill modified by the temporary effect stored on the
|
||||||
|
@ -761,7 +761,7 @@ public:
|
||||||
* \param skillId The ID of the skill.
|
* \param skillId The ID of the skill.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordEffectSkill(int skillId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordEffectSkill(int skillId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the range type of the temporary effect stored on the server (0 for
|
* \brief Set the range type of the temporary effect stored on the server (0 for
|
||||||
|
@ -770,7 +770,7 @@ public:
|
||||||
* \param rangeType The range type of the effect.
|
* \param rangeType The range type of the effect.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordEffectRangeType(unsigned int rangeType) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordEffectRangeType(unsigned int rangeType) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the area of the temporary effect stored on the server.
|
* \brief Set the area of the temporary effect stored on the server.
|
||||||
|
@ -778,7 +778,7 @@ public:
|
||||||
* \param area The area of the effect.
|
* \param area The area of the effect.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordEffectArea(int area) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordEffectArea(int area) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the duration of the temporary effect stored on the server.
|
* \brief Set the duration of the temporary effect stored on the server.
|
||||||
|
@ -786,7 +786,7 @@ public:
|
||||||
* \param duration The duration of the effect.
|
* \param duration The duration of the effect.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordEffectDuration(int duration) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordEffectDuration(int duration) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the maximum magnitude of the temporary effect stored on the server.
|
* \brief Set the maximum magnitude of the temporary effect stored on the server.
|
||||||
|
@ -794,7 +794,7 @@ public:
|
||||||
* \param magnitudeMax The maximum magnitude of the effect.
|
* \param magnitudeMax The maximum magnitude of the effect.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordEffectMagnitudeMax(int magnitudeMax) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordEffectMagnitudeMax(int magnitudeMax) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the minimum magnitude of the temporary effect stored on the server.
|
* \brief Set the minimum magnitude of the temporary effect stored on the server.
|
||||||
|
@ -802,7 +802,7 @@ public:
|
||||||
* \param magnitudeMin The minimum magnitude of the effect.
|
* \param magnitudeMin The minimum magnitude of the effect.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordEffectMagnitudeMin(int magnitudeMin) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordEffectMagnitudeMin(int magnitudeMin) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the type of the temporary body part stored on the server.
|
* \brief Set the type of the temporary body part stored on the server.
|
||||||
|
@ -810,7 +810,7 @@ public:
|
||||||
* \param partType The type of the body part.
|
* \param partType The type of the body part.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordBodyPartType(unsigned int partType) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordBodyPartType(unsigned int partType) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the id of the male version of the temporary body part stored on the
|
* \brief Set the id of the male version of the temporary body part stored on the
|
||||||
|
@ -819,7 +819,7 @@ public:
|
||||||
* \param partId The id of the body part.
|
* \param partId The id of the body part.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordBodyPartIdForMale(const char* partId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordBodyPartIdForMale(const char* partId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the id of the female version of the temporary body part stored on the
|
* \brief Set the id of the female version of the temporary body part stored on the
|
||||||
|
@ -828,7 +828,7 @@ public:
|
||||||
* \param partId The id of the body part.
|
* \param partId The id of the body part.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordBodyPartIdForFemale(const char* partId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordBodyPartIdForFemale(const char* partId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the id of the of the temporary inventory item stored on the server.
|
* \brief Set the id of the of the temporary inventory item stored on the server.
|
||||||
|
@ -836,7 +836,7 @@ public:
|
||||||
* \param partId The id of the inventory item.
|
* \param partId The id of the inventory item.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordInventoryItemId(const char* itemId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordInventoryItemId(const char* itemId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the count of the of the temporary inventory item stored on the server.
|
* \brief Set the count of the of the temporary inventory item stored on the server.
|
||||||
|
@ -844,7 +844,7 @@ public:
|
||||||
* \param count The count of the inventory item.
|
* \param count The count of the inventory item.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRecordInventoryItemCount(unsigned int count) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRecordInventoryItemCount(unsigned int count) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a copy of the server's temporary record of the current specified
|
* \brief Add a copy of the server's temporary record of the current specified
|
||||||
|
@ -855,7 +855,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddRecord() noexcept;
|
EXPORT_APIFUNCTION void CDECL AddRecord() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a copy of the server's temporary effect to the temporary record
|
* \brief Add a copy of the server's temporary effect to the temporary record
|
||||||
|
@ -866,7 +866,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddRecordEffect() noexcept;
|
EXPORT_APIFUNCTION void CDECL AddRecordEffect() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a copy of the server's temporary body part to the temporary record
|
* \brief Add a copy of the server's temporary body part to the temporary record
|
||||||
|
@ -877,7 +877,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddRecordBodyPart() noexcept;
|
EXPORT_APIFUNCTION void CDECL AddRecordBodyPart() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a copy of the server's temporary inventory item to the temporary record
|
* \brief Add a copy of the server's temporary inventory item to the temporary record
|
||||||
|
@ -891,7 +891,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddRecordInventoryItem() noexcept;
|
EXPORT_APIFUNCTION void CDECL AddRecordInventoryItem() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a RecordDynamic packet with the current specified record type.
|
* \brief Send a RecordDynamic packet with the current specified record type.
|
||||||
|
@ -903,8 +903,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendRecordDynamic(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendRecordDynamic(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
||||||
#endif //OPENMW_RECORDSDYNAMICAPI_HPP
|
#endif //OPENMW_RECORDSDYNAMICAPI_HPP
|
||||||
|
|
|
@ -10,12 +10,12 @@
|
||||||
#include <Script/Script.hpp>
|
#include <Script/Script.hpp>
|
||||||
|
|
||||||
|
|
||||||
void ServerFunctions::StopServer(int code) noexcept
|
extern "C" void ServerFunctions::StopServer(int code) noexcept
|
||||||
{
|
{
|
||||||
mwmp::Networking::getPtr()->stopServer(code);
|
mwmp::Networking::getPtr()->stopServer(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerFunctions::Kick(unsigned short pid) noexcept
|
extern "C" void ServerFunctions::Kick(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -25,45 +25,45 @@ void ServerFunctions::Kick(unsigned short pid) noexcept
|
||||||
player->setLoadState(Player::KICKED);
|
player->setLoadState(Player::KICKED);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerFunctions::BanAddress(const char *ipAddress) noexcept
|
extern "C" void ServerFunctions::BanAddress(const char *ipAddress) noexcept
|
||||||
{
|
{
|
||||||
mwmp::Networking::getPtr()->banAddress(ipAddress);
|
mwmp::Networking::getPtr()->banAddress(ipAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerFunctions::UnbanAddress(const char *ipAddress) noexcept
|
extern "C" void ServerFunctions::UnbanAddress(const char *ipAddress) noexcept
|
||||||
{
|
{
|
||||||
mwmp::Networking::getPtr()->unbanAddress(ipAddress);
|
mwmp::Networking::getPtr()->unbanAddress(ipAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ServerFunctions::GetOperatingSystemType() noexcept
|
extern "C" const char *ServerFunctions::GetOperatingSystemType() noexcept
|
||||||
{
|
{
|
||||||
return Utils::getOperatingSystemType().c_str();
|
return Utils::getOperatingSystemType().c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ServerFunctions::GetArchitectureType() noexcept
|
extern "C" const char *ServerFunctions::GetArchitectureType() noexcept
|
||||||
{
|
{
|
||||||
return Utils::getArchitectureType().c_str();
|
return Utils::getArchitectureType().c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ServerFunctions::GetServerVersion() noexcept
|
extern "C" const char *ServerFunctions::GetServerVersion() noexcept
|
||||||
{
|
{
|
||||||
return TES3MP_VERSION;
|
return TES3MP_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ServerFunctions::GetProtocolVersion() noexcept
|
extern "C" const char *ServerFunctions::GetProtocolVersion() noexcept
|
||||||
{
|
{
|
||||||
static std::string version = std::to_string(TES3MP_PROTO_VERSION);
|
static std::string version = std::to_string(TES3MP_PROTO_VERSION);
|
||||||
return version.c_str();
|
return version.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int ServerFunctions::GetAvgPing(unsigned short pid) noexcept
|
extern "C" int ServerFunctions::GetAvgPing(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, -1);
|
GET_PLAYER(pid, player, -1);
|
||||||
return mwmp::Networking::get().getAvgPing(player->guid);
|
return mwmp::Networking::get().getAvgPing(player->guid);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ServerFunctions::GetIP(unsigned short pid) noexcept
|
extern "C" const char *ServerFunctions::GetIP(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -71,73 +71,73 @@ const char *ServerFunctions::GetIP(unsigned short pid) noexcept
|
||||||
return addr.ToString(false);
|
return addr.ToString(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short ServerFunctions::GetPort() noexcept
|
extern "C" unsigned short ServerFunctions::GetPort() noexcept
|
||||||
{
|
{
|
||||||
return mwmp::Networking::get().getPort();
|
return mwmp::Networking::get().getPort();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ServerFunctions::GetMaxPlayers() noexcept
|
extern "C" unsigned int ServerFunctions::GetMaxPlayers() noexcept
|
||||||
{
|
{
|
||||||
return mwmp::Networking::get().maxConnections();
|
return mwmp::Networking::get().maxConnections();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ServerFunctions::HasPassword() noexcept
|
extern "C" bool ServerFunctions::HasPassword() noexcept
|
||||||
{
|
{
|
||||||
return mwmp::Networking::get().isPassworded();
|
return mwmp::Networking::get().isPassworded();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ServerFunctions::GetPluginEnforcementState() noexcept
|
extern "C" bool ServerFunctions::GetPluginEnforcementState() noexcept
|
||||||
{
|
{
|
||||||
return mwmp::Networking::getPtr()->getPluginEnforcementState();
|
return mwmp::Networking::getPtr()->getPluginEnforcementState();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ServerFunctions::GetScriptErrorIgnoringState() noexcept
|
extern "C" bool ServerFunctions::GetScriptErrorIgnoringState() noexcept
|
||||||
{
|
{
|
||||||
return mwmp::Networking::getPtr()->getScriptErrorIgnoringState();
|
return mwmp::Networking::getPtr()->getScriptErrorIgnoringState();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerFunctions::SetGameMode(const char *gameMode) noexcept
|
extern "C" void ServerFunctions::SetGameMode(const char *gameMode) noexcept
|
||||||
{
|
{
|
||||||
if (mwmp::Networking::getPtr()->getMasterClient())
|
if (mwmp::Networking::getPtr()->getMasterClient())
|
||||||
mwmp::Networking::getPtr()->getMasterClient()->SetModname(gameMode);
|
mwmp::Networking::getPtr()->getMasterClient()->SetModname(gameMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerFunctions::SetHostname(const char *name) noexcept
|
extern "C" void ServerFunctions::SetHostname(const char *name) noexcept
|
||||||
{
|
{
|
||||||
if (mwmp::Networking::getPtr()->getMasterClient())
|
if (mwmp::Networking::getPtr()->getMasterClient())
|
||||||
mwmp::Networking::getPtr()->getMasterClient()->SetHostname(name);
|
mwmp::Networking::getPtr()->getMasterClient()->SetHostname(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerFunctions::SetServerPassword(const char *password) noexcept
|
extern "C" void ServerFunctions::SetServerPassword(const char *password) noexcept
|
||||||
{
|
{
|
||||||
mwmp::Networking::getPtr()->setServerPassword(password);
|
mwmp::Networking::getPtr()->setServerPassword(password);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerFunctions::SetPluginEnforcementState(bool state) noexcept
|
extern "C" void ServerFunctions::SetPluginEnforcementState(bool state) noexcept
|
||||||
{
|
{
|
||||||
mwmp::Networking::getPtr()->setPluginEnforcementState(state);
|
mwmp::Networking::getPtr()->setPluginEnforcementState(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerFunctions::SetScriptErrorIgnoringState(bool state) noexcept
|
extern "C" void ServerFunctions::SetScriptErrorIgnoringState(bool state) noexcept
|
||||||
{
|
{
|
||||||
mwmp::Networking::getPtr()->setScriptErrorIgnoringState(state);
|
mwmp::Networking::getPtr()->setScriptErrorIgnoringState(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerFunctions::SetRuleString(const char *key, const char *value) noexcept
|
extern "C" void ServerFunctions::SetRuleString(const char *key, const char *value) noexcept
|
||||||
{
|
{
|
||||||
auto mc = mwmp::Networking::getPtr()->getMasterClient();
|
auto mc = mwmp::Networking::getPtr()->getMasterClient();
|
||||||
if (mc)
|
if (mc)
|
||||||
mc->SetRuleString(key, value);
|
mc->SetRuleString(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerFunctions::SetRuleValue(const char *key, double value) noexcept
|
extern "C" void ServerFunctions::SetRuleValue(const char *key, double value) noexcept
|
||||||
{
|
{
|
||||||
auto mc = mwmp::Networking::getPtr()->getMasterClient();
|
auto mc = mwmp::Networking::getPtr()->getMasterClient();
|
||||||
if (mc)
|
if (mc)
|
||||||
mc->SetRuleValue(key, value);
|
mc->SetRuleValue(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerFunctions::AddPluginHash(const char *pluginName, const char *hashStr) noexcept
|
extern "C" void ServerFunctions::AddPluginHash(const char *pluginName, const char *hashStr) noexcept
|
||||||
{
|
{
|
||||||
auto &samples = mwmp::Networking::getPtr()->getSamples();
|
auto &samples = mwmp::Networking::getPtr()->getSamples();
|
||||||
auto it = std::find_if(samples.begin(), samples.end(), [&pluginName](mwmp::PacketPreInit::PluginPair &item) {
|
auto it = std::find_if(samples.begin(), samples.end(), [&pluginName](mwmp::PacketPreInit::PluginPair &item) {
|
||||||
|
@ -151,7 +151,7 @@ void ServerFunctions::AddPluginHash(const char *pluginName, const char *hashStr)
|
||||||
|
|
||||||
unsigned hash = 0;
|
unsigned hash = 0;
|
||||||
|
|
||||||
if (strlen(hashStr) != 0)
|
if (hashStr[0] != '\0')
|
||||||
{
|
{
|
||||||
hash = (unsigned) std::stoul(hashStr);
|
hash = (unsigned) std::stoul(hashStr);
|
||||||
hashList.push_back(hash);
|
hashList.push_back(hash);
|
||||||
|
@ -164,7 +164,7 @@ void ServerFunctions::AddPluginHash(const char *pluginName, const char *hashStr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* ServerFunctions::GetModDir() noexcept
|
extern "C" const char* ServerFunctions::GetModDir() noexcept
|
||||||
{
|
{
|
||||||
return Script::GetModDir();
|
return Script::GetModDir();
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,10 @@
|
||||||
|
|
||||||
#include "../Types.hpp"
|
#include "../Types.hpp"
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define SERVERAPI \
|
#define SERVERAPI \
|
||||||
{"StopServer", ServerFunctions::StopServer},\
|
{"StopServer", ServerFunctions::StopServer},\
|
||||||
\
|
\
|
||||||
|
@ -32,17 +36,15 @@
|
||||||
{"AddPluginHash", ServerFunctions::AddPluginHash},\
|
{"AddPluginHash", ServerFunctions::AddPluginHash},\
|
||||||
{"GetModDir", ServerFunctions::GetModDir}
|
{"GetModDir", ServerFunctions::GetModDir}
|
||||||
|
|
||||||
class ServerFunctions
|
namespace ServerFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Shut down the server.
|
* \brief Shut down the server.
|
||||||
*
|
*
|
||||||
* \param code The shutdown code.
|
* \param code The shutdown code.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void StopServer(int code) noexcept;
|
EXPORT_APIFUNCTION void CDECL StopServer(int code) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Kick a certain player from the server.
|
* \brief Kick a certain player from the server.
|
||||||
|
@ -50,7 +52,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void Kick(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL Kick(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Ban a certain IP address from the server.
|
* \brief Ban a certain IP address from the server.
|
||||||
|
@ -58,7 +60,7 @@ public:
|
||||||
* \param ipAddress The IP address.
|
* \param ipAddress The IP address.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void BanAddress(const char *ipAddress) noexcept;
|
EXPORT_APIFUNCTION void CDECL BanAddress(const char *ipAddress) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Unban a certain IP address from the server.
|
* \brief Unban a certain IP address from the server.
|
||||||
|
@ -66,7 +68,7 @@ public:
|
||||||
* \param ipAddress The IP address.
|
* \param ipAddress The IP address.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void UnbanAddress(const char *ipAddress) noexcept;
|
EXPORT_APIFUNCTION void CDECL UnbanAddress(const char *ipAddress) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the type of the operating system used by the server.
|
* \brief Get the type of the operating system used by the server.
|
||||||
|
@ -75,7 +77,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return The type of the operating system.
|
* \return The type of the operating system.
|
||||||
*/
|
*/
|
||||||
static const char *GetOperatingSystemType() noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetOperatingSystemType() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the architecture type used by the server.
|
* \brief Get the architecture type used by the server.
|
||||||
|
@ -84,21 +86,21 @@ public:
|
||||||
*
|
*
|
||||||
* \return The architecture type.
|
* \return The architecture type.
|
||||||
*/
|
*/
|
||||||
static const char *GetArchitectureType() noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetArchitectureType() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the TES3MP version of the server.
|
* \brief Get the TES3MP version of the server.
|
||||||
*
|
*
|
||||||
* \return The server version.
|
* \return The server version.
|
||||||
*/
|
*/
|
||||||
static const char *GetServerVersion() noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetServerVersion() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the protocol version of the server.
|
* \brief Get the protocol version of the server.
|
||||||
*
|
*
|
||||||
* \return The protocol version.
|
* \return The protocol version.
|
||||||
*/
|
*/
|
||||||
static const char *GetProtocolVersion() noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetProtocolVersion() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the average ping of a certain player.
|
* \brief Get the average ping of a certain player.
|
||||||
|
@ -106,7 +108,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The average ping.
|
* \return The average ping.
|
||||||
*/
|
*/
|
||||||
static int GetAvgPing(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetAvgPing(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the IP address of a certain player.
|
* \brief Get the IP address of a certain player.
|
||||||
|
@ -114,28 +116,28 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The IP address.
|
* \return The IP address.
|
||||||
*/
|
*/
|
||||||
static const char* GetIP(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const CDECL char* GetIP(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the port used by the server.
|
* \brief Get the port used by the server.
|
||||||
*
|
*
|
||||||
* \return Port
|
* \return Port
|
||||||
*/
|
*/
|
||||||
static unsigned short GetPort() noexcept;
|
EXPORT_APIFUNCTION unsigned short CDECL GetPort() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the maximum number of players.
|
* \brief Get the maximum number of players.
|
||||||
*
|
*
|
||||||
* \return Max players
|
* \return Max players
|
||||||
*/
|
*/
|
||||||
static unsigned int GetMaxPlayers() noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetMaxPlayers() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Checking if the server requires a password to connect.
|
* \brief Checking if the server requires a password to connect.
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
static bool HasPassword() noexcept;
|
EXPORT_APIFUNCTION bool CDECL HasPassword() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the plugin enforcement state of the server.
|
* \brief Get the plugin enforcement state of the server.
|
||||||
|
@ -144,7 +146,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return The enforcement state.
|
* \return The enforcement state.
|
||||||
*/
|
*/
|
||||||
static bool GetPluginEnforcementState() noexcept;
|
EXPORT_APIFUNCTION bool CDECL GetPluginEnforcementState() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the script error ignoring state of the server.
|
* \brief Get the script error ignoring state of the server.
|
||||||
|
@ -153,7 +155,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return The script error ignoring state.
|
* \return The script error ignoring state.
|
||||||
*/
|
*/
|
||||||
static bool GetScriptErrorIgnoringState() noexcept;
|
EXPORT_APIFUNCTION bool CDECL GetScriptErrorIgnoringState() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the game mode of the server, as displayed in the server browser.
|
* \brief Set the game mode of the server, as displayed in the server browser.
|
||||||
|
@ -161,7 +163,7 @@ public:
|
||||||
* \param name The new game mode.
|
* \param name The new game mode.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetGameMode(const char* gameMode) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetGameMode(const char* gameMode) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the name of the server, as displayed in the server browser.
|
* \brief Set the name of the server, as displayed in the server browser.
|
||||||
|
@ -169,7 +171,7 @@ public:
|
||||||
* \param name The new name.
|
* \param name The new name.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetHostname(const char* name) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetHostname(const char* name) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the password required to join the server.
|
* \brief Set the password required to join the server.
|
||||||
|
@ -177,7 +179,7 @@ public:
|
||||||
* \param password The password.
|
* \param password The password.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetServerPassword(const char *password) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetServerPassword(const char *password) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the plugin enforcement state of the server.
|
* \brief Set the plugin enforcement state of the server.
|
||||||
|
@ -187,7 +189,7 @@ public:
|
||||||
* \param state The new enforcement state.
|
* \param state The new enforcement state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetPluginEnforcementState(bool state) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetPluginEnforcementState(bool state) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set whether script errors should be ignored or not.
|
* \brief Set whether script errors should be ignored or not.
|
||||||
|
@ -199,7 +201,7 @@ public:
|
||||||
* \param state The new script error ignoring state.
|
* \param state The new script error ignoring state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetScriptErrorIgnoringState(bool state) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetScriptErrorIgnoringState(bool state) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set a rule string for the server details displayed in the server browser.
|
* \brief Set a rule string for the server details displayed in the server browser.
|
||||||
|
@ -208,7 +210,7 @@ public:
|
||||||
* \param value The string value of the rule.
|
* \param value The string value of the rule.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRuleString(const char *key, const char *value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRuleString(const char *key, const char *value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set a rule value for the server details displayed in the server browser.
|
* \brief Set a rule value for the server details displayed in the server browser.
|
||||||
|
@ -217,16 +219,16 @@ public:
|
||||||
* \param value The numerical value of the rule.
|
* \param value The numerical value of the rule.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRuleValue(const char *key, double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRuleValue(const char *key, double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Adds plugins to the internal server structure to validate players.
|
* \brief Adds plugins to the internal server structure to validate players.
|
||||||
* @param pluginName Name with extension of the plugin or master file.
|
* @param pluginName Name with extension of the plugin or master file.
|
||||||
* @param hash Hash string
|
* @param hash Hash string
|
||||||
*/
|
*/
|
||||||
static void AddPluginHash(const char *pluginName, const char *hash) noexcept;
|
EXPORT_APIFUNCTION void CDECL AddPluginHash(const char *pluginName, const char *hash) noexcept;
|
||||||
|
|
||||||
static const char *GetModDir() noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetModDir() noexcept;
|
||||||
};
|
}
|
||||||
|
|
||||||
#endif //OPENMW_SERVERAPI_HPP
|
#endif //OPENMW_SERVERAPI_HPP
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
void SettingFunctions::SetDifficulty(unsigned short pid, int difficulty)
|
extern "C" void SettingFunctions::SetDifficulty(unsigned short pid, int difficulty)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -17,7 +17,7 @@ void SettingFunctions::SetDifficulty(unsigned short pid, int difficulty)
|
||||||
player->difficulty = difficulty;
|
player->difficulty = difficulty;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingFunctions::SetEnforcedLogLevel(unsigned short pid, int enforcedLogLevel)
|
extern "C" void SettingFunctions::SetEnforcedLogLevel(unsigned short pid, int enforcedLogLevel)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -25,7 +25,7 @@ void SettingFunctions::SetEnforcedLogLevel(unsigned short pid, int enforcedLogLe
|
||||||
player->enforcedLogLevel = enforcedLogLevel;
|
player->enforcedLogLevel = enforcedLogLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingFunctions::SetPhysicsFramerate(unsigned short pid, double physicsFramerate)
|
extern "C" void SettingFunctions::SetPhysicsFramerate(unsigned short pid, double physicsFramerate)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -33,7 +33,7 @@ void SettingFunctions::SetPhysicsFramerate(unsigned short pid, double physicsFra
|
||||||
player->physicsFramerate = physicsFramerate;
|
player->physicsFramerate = physicsFramerate;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingFunctions::SetConsoleAllowed(unsigned short pid, bool state)
|
extern "C" void SettingFunctions::SetConsoleAllowed(unsigned short pid, bool state)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -41,7 +41,7 @@ void SettingFunctions::SetConsoleAllowed(unsigned short pid, bool state)
|
||||||
player->consoleAllowed = state;
|
player->consoleAllowed = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingFunctions::SetBedRestAllowed(unsigned short pid, bool state)
|
extern "C" void SettingFunctions::SetBedRestAllowed(unsigned short pid, bool state)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -49,7 +49,7 @@ void SettingFunctions::SetBedRestAllowed(unsigned short pid, bool state)
|
||||||
player->bedRestAllowed = state;
|
player->bedRestAllowed = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingFunctions::SetWildernessRestAllowed(unsigned short pid, bool state)
|
extern "C" void SettingFunctions::SetWildernessRestAllowed(unsigned short pid, bool state)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -57,7 +57,7 @@ void SettingFunctions::SetWildernessRestAllowed(unsigned short pid, bool state)
|
||||||
player->wildernessRestAllowed = state;
|
player->wildernessRestAllowed = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingFunctions::SetWaitAllowed(unsigned short pid, bool state)
|
extern "C" void SettingFunctions::SetWaitAllowed(unsigned short pid, bool state)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -65,7 +65,7 @@ void SettingFunctions::SetWaitAllowed(unsigned short pid, bool state)
|
||||||
player->waitAllowed = state;
|
player->waitAllowed = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingFunctions::SendSettings(unsigned short pid) noexcept
|
extern "C" void SettingFunctions::SendSettings(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include "../Types.hpp"
|
#include "../Types.hpp"
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define SETTINGSAPI \
|
#define SETTINGSAPI \
|
||||||
{"SetDifficulty", SettingFunctions::SetDifficulty},\
|
{"SetDifficulty", SettingFunctions::SetDifficulty},\
|
||||||
{"SetEnforcedLogLevel", SettingFunctions::SetEnforcedLogLevel},\
|
{"SetEnforcedLogLevel", SettingFunctions::SetEnforcedLogLevel},\
|
||||||
|
@ -15,10 +17,8 @@
|
||||||
\
|
\
|
||||||
{"SendSettings", SettingFunctions::SendSettings}
|
{"SendSettings", SettingFunctions::SendSettings}
|
||||||
|
|
||||||
class SettingFunctions
|
namespace SettingFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the difficulty for a player.
|
* \brief Set the difficulty for a player.
|
||||||
*
|
*
|
||||||
|
@ -29,7 +29,7 @@ public:
|
||||||
* \param difficulty The difficulty.
|
* \param difficulty The difficulty.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetDifficulty(unsigned short pid, int difficulty);
|
EXPORT_APIFUNCTION void CDECL SetDifficulty(unsigned short pid, int difficulty);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the client log level enforced for a player.
|
* \brief Set the client log level enforced for a player.
|
||||||
|
@ -47,7 +47,7 @@ public:
|
||||||
* \param enforcedLogLevel The enforced log level.
|
* \param enforcedLogLevel The enforced log level.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetEnforcedLogLevel(unsigned short pid, int enforcedLogLevel);
|
EXPORT_APIFUNCTION void CDECL SetEnforcedLogLevel(unsigned short pid, int enforcedLogLevel);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the physics framerate for a player.
|
* \brief Set the physics framerate for a player.
|
||||||
|
@ -59,7 +59,7 @@ public:
|
||||||
* \param physicsFramerate The physics framerate.
|
* \param physicsFramerate The physics framerate.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetPhysicsFramerate(unsigned short pid, double physicsFramerate);
|
EXPORT_APIFUNCTION void CDECL SetPhysicsFramerate(unsigned short pid, double physicsFramerate);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set whether the console is allowed for a player.
|
* \brief Set whether the console is allowed for a player.
|
||||||
|
@ -71,7 +71,7 @@ public:
|
||||||
* \param state The console permission state.
|
* \param state The console permission state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetConsoleAllowed(unsigned short pid, bool state);
|
EXPORT_APIFUNCTION void CDECL SetConsoleAllowed(unsigned short pid, bool state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set whether resting in beds is allowed for a player.
|
* \brief Set whether resting in beds is allowed for a player.
|
||||||
|
@ -83,7 +83,7 @@ public:
|
||||||
* \param state The resting permission state.
|
* \param state The resting permission state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetBedRestAllowed(unsigned short pid, bool state);
|
EXPORT_APIFUNCTION void CDECL SetBedRestAllowed(unsigned short pid, bool state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set whether resting in the wilderness is allowed for a player.
|
* \brief Set whether resting in the wilderness is allowed for a player.
|
||||||
|
@ -95,7 +95,7 @@ public:
|
||||||
* \param state The resting permission state.
|
* \param state The resting permission state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetWildernessRestAllowed(unsigned short pid, bool state);
|
EXPORT_APIFUNCTION void CDECL SetWildernessRestAllowed(unsigned short pid, bool state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set whether waiting is allowed for a player.
|
* \brief Set whether waiting is allowed for a player.
|
||||||
|
@ -107,7 +107,7 @@ public:
|
||||||
* \param state The waiting permission state.
|
* \param state The waiting permission state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetWaitAllowed(unsigned short pid, bool state);
|
EXPORT_APIFUNCTION void CDECL SetWaitAllowed(unsigned short pid, bool state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerSettings packet to the player affected by it.
|
* \brief Send a PlayerSettings packet to the player affected by it.
|
||||||
|
@ -115,7 +115,7 @@ public:
|
||||||
* \param pid The player ID to send it to.
|
* \param pid The player ID to send it to.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendSettings(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendSettings(unsigned short pid) noexcept;
|
||||||
};
|
}
|
||||||
|
|
||||||
#endif //OPENMW_SETTINGSAPI_HPP
|
#endif //OPENMW_SETTINGSAPI_HPP
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
double ShapeshiftFunctions::GetScale(unsigned short pid) noexcept
|
extern "C" double ShapeshiftFunctions::GetScale(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -17,7 +17,7 @@ double ShapeshiftFunctions::GetScale(unsigned short pid) noexcept
|
||||||
return player->scale;
|
return player->scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShapeshiftFunctions::IsWerewolf(unsigned short pid) noexcept
|
extern "C" bool ShapeshiftFunctions::IsWerewolf(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -25,7 +25,7 @@ bool ShapeshiftFunctions::IsWerewolf(unsigned short pid) noexcept
|
||||||
return player->isWerewolf;
|
return player->isWerewolf;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ShapeshiftFunctions::GetCreatureRefId(unsigned short pid) noexcept
|
extern "C" const char *ShapeshiftFunctions::GetCreatureRefId(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -33,7 +33,7 @@ const char *ShapeshiftFunctions::GetCreatureRefId(unsigned short pid) noexcept
|
||||||
return player->creatureRefId.c_str();
|
return player->creatureRefId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShapeshiftFunctions::GetCreatureNameDisplayState(unsigned short pid) noexcept
|
extern "C" bool ShapeshiftFunctions::GetCreatureNameDisplayState(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -41,7 +41,7 @@ bool ShapeshiftFunctions::GetCreatureNameDisplayState(unsigned short pid) noexce
|
||||||
return player->displayCreatureName;
|
return player->displayCreatureName;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShapeshiftFunctions::SetScale(unsigned short pid, double scale) noexcept
|
extern "C" void ShapeshiftFunctions::SetScale(unsigned short pid, double scale) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -49,7 +49,7 @@ void ShapeshiftFunctions::SetScale(unsigned short pid, double scale) noexcept
|
||||||
player->scale = scale;
|
player->scale = scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShapeshiftFunctions::SetWerewolfState(unsigned short pid, bool isWerewolf) noexcept
|
extern "C" void ShapeshiftFunctions::SetWerewolfState(unsigned short pid, bool isWerewolf) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -57,7 +57,7 @@ void ShapeshiftFunctions::SetWerewolfState(unsigned short pid, bool isWerewolf)
|
||||||
player->isWerewolf = isWerewolf;
|
player->isWerewolf = isWerewolf;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShapeshiftFunctions::SetCreatureRefId(unsigned short pid, const char *refId) noexcept
|
extern "C" void ShapeshiftFunctions::SetCreatureRefId(unsigned short pid, const char *refId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -65,7 +65,7 @@ void ShapeshiftFunctions::SetCreatureRefId(unsigned short pid, const char *refId
|
||||||
player->creatureRefId = refId;
|
player->creatureRefId = refId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShapeshiftFunctions::SetCreatureNameDisplayState(unsigned short pid, bool displayState) noexcept
|
extern "C" void ShapeshiftFunctions::SetCreatureNameDisplayState(unsigned short pid, bool displayState) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -73,7 +73,7 @@ void ShapeshiftFunctions::SetCreatureNameDisplayState(unsigned short pid, bool d
|
||||||
player->displayCreatureName = displayState;
|
player->displayCreatureName = displayState;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShapeshiftFunctions::SendShapeshift(unsigned short pid)
|
extern "C" void ShapeshiftFunctions::SendShapeshift(unsigned short pid)
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include "../Types.hpp"
|
#include "../Types.hpp"
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define SHAPESHIFTAPI \
|
#define SHAPESHIFTAPI \
|
||||||
{"GetScale", ShapeshiftFunctions::GetScale},\
|
{"GetScale", ShapeshiftFunctions::GetScale},\
|
||||||
{"IsWerewolf", ShapeshiftFunctions::IsWerewolf},\
|
{"IsWerewolf", ShapeshiftFunctions::IsWerewolf},\
|
||||||
|
@ -16,17 +18,15 @@
|
||||||
\
|
\
|
||||||
{"SendShapeshift", ShapeshiftFunctions::SendShapeshift}
|
{"SendShapeshift", ShapeshiftFunctions::SendShapeshift}
|
||||||
|
|
||||||
class ShapeshiftFunctions
|
namespace ShapeshiftFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the scale of a player.
|
* \brief Get the scale of a player.
|
||||||
*
|
*
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The scale.
|
* \return The scale.
|
||||||
*/
|
*/
|
||||||
static double GetScale(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetScale(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether a player is a werewolf.
|
* \brief Check whether a player is a werewolf.
|
||||||
|
@ -36,7 +36,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The werewolf state.
|
* \return The werewolf state.
|
||||||
*/
|
*/
|
||||||
static bool IsWerewolf(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION bool CDECL IsWerewolf(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the refId of the creature the player is disguised as.
|
* \brief Get the refId of the creature the player is disguised as.
|
||||||
|
@ -44,7 +44,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The creature refId.
|
* \return The creature refId.
|
||||||
*/
|
*/
|
||||||
static const char *GetCreatureRefId(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetCreatureRefId(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether a player's name is replaced by that of the creature they are
|
* \brief Check whether a player's name is replaced by that of the creature they are
|
||||||
|
@ -55,7 +55,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The creature name display state.
|
* \return The creature name display state.
|
||||||
*/
|
*/
|
||||||
static bool GetCreatureNameDisplayState(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION bool CDECL GetCreatureNameDisplayState(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the scale of a player.
|
* \brief Set the scale of a player.
|
||||||
|
@ -67,7 +67,7 @@ public:
|
||||||
* \param scale The new scale.
|
* \param scale The new scale.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetScale(unsigned short pid, double scale) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetScale(unsigned short pid, double scale) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the werewolf state of a player.
|
* \brief Set the werewolf state of a player.
|
||||||
|
@ -79,7 +79,7 @@ public:
|
||||||
* \param isWerewolf The new werewolf state.
|
* \param isWerewolf The new werewolf state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetWerewolfState(unsigned short pid, bool isWerewolf) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetWerewolfState(unsigned short pid, bool isWerewolf) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the refId of the creature a player is disguised as.
|
* \brief Set the refId of the creature a player is disguised as.
|
||||||
|
@ -93,7 +93,7 @@ public:
|
||||||
* when hovered over by others.
|
* when hovered over by others.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetCreatureRefId(unsigned short pid, const char *refId) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetCreatureRefId(unsigned short pid, const char *refId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set whether a player's name is replaced by that of the creature they are
|
* \brief Set whether a player's name is replaced by that of the creature they are
|
||||||
|
@ -103,7 +103,7 @@ public:
|
||||||
* \param displayState The creature name display state.
|
* \param displayState The creature name display state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetCreatureNameDisplayState(unsigned short pid, bool displayState) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetCreatureNameDisplayState(unsigned short pid, bool displayState) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerShapeshift packet about a player.
|
* \brief Send a PlayerShapeshift packet about a player.
|
||||||
|
@ -114,7 +114,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendShapeshift(unsigned short pid);
|
EXPORT_APIFUNCTION void CDECL SendShapeshift(unsigned short pid);
|
||||||
};
|
}
|
||||||
|
|
||||||
#endif //OPENMW_SHAPESHIFTAPI_HPP
|
#endif //OPENMW_SHAPESHIFTAPI_HPP
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
using namespace mwmp;
|
using namespace mwmp;
|
||||||
|
|
||||||
void SpellFunctions::ClearSpellbookChanges(unsigned short pid) noexcept
|
extern "C" void SpellFunctions::ClearSpellbookChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -16,7 +16,7 @@ void SpellFunctions::ClearSpellbookChanges(unsigned short pid) noexcept
|
||||||
player->spellbookChanges.spells.clear();
|
player->spellbookChanges.spells.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int SpellFunctions::GetSpellbookChangesSize(unsigned short pid) noexcept
|
extern "C" unsigned int SpellFunctions::GetSpellbookChangesSize(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -24,7 +24,7 @@ unsigned int SpellFunctions::GetSpellbookChangesSize(unsigned short pid) noexcep
|
||||||
return player->spellbookChanges.count;
|
return player->spellbookChanges.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int SpellFunctions::GetSpellbookChangesAction(unsigned short pid) noexcept
|
extern "C" unsigned int SpellFunctions::GetSpellbookChangesAction(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -32,7 +32,7 @@ unsigned int SpellFunctions::GetSpellbookChangesAction(unsigned short pid) noexc
|
||||||
return player->spellbookChanges.action;
|
return player->spellbookChanges.action;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpellFunctions::SetSpellbookChangesAction(unsigned short pid, unsigned char action) noexcept
|
extern "C" void SpellFunctions::SetSpellbookChangesAction(unsigned short pid, unsigned char action) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -40,7 +40,7 @@ void SpellFunctions::SetSpellbookChangesAction(unsigned short pid, unsigned char
|
||||||
player->spellbookChanges.action = action;
|
player->spellbookChanges.action = action;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpellFunctions::AddSpell(unsigned short pid, const char* spellId) noexcept
|
extern "C" void SpellFunctions::AddSpell(unsigned short pid, const char* spellId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -51,7 +51,7 @@ void SpellFunctions::AddSpell(unsigned short pid, const char* spellId) noexcept
|
||||||
player->spellbookChanges.spells.push_back(spell);
|
player->spellbookChanges.spells.push_back(spell);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *SpellFunctions::GetSpellId(unsigned short pid, unsigned int index) noexcept
|
extern "C" const char *SpellFunctions::GetSpellId(unsigned short pid, unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, "");
|
GET_PLAYER(pid, player, "");
|
||||||
|
@ -62,7 +62,7 @@ const char *SpellFunctions::GetSpellId(unsigned short pid, unsigned int index) n
|
||||||
return player->spellbookChanges.spells.at(index).mId.c_str();
|
return player->spellbookChanges.spells.at(index).mId.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpellFunctions::SendSpellbookChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void SpellFunctions::SendSpellbookChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -76,7 +76,7 @@ void SpellFunctions::SendSpellbookChanges(unsigned short pid, bool sendToOtherPl
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
extern "C" // All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
void SpellFunctions::InitializeSpellbookChanges(unsigned short pid) noexcept
|
void SpellFunctions::InitializeSpellbookChanges(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef OPENMW_SPELLAPI_HPP
|
#ifndef OPENMW_SPELLAPI_HPP
|
||||||
#define OPENMW_SPELLAPI_HPP
|
#define OPENMW_SPELLAPI_HPP
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define SPELLAPI \
|
#define SPELLAPI \
|
||||||
{"ClearSpellbookChanges", SpellFunctions::ClearSpellbookChanges},\
|
{"ClearSpellbookChanges", SpellFunctions::ClearSpellbookChanges},\
|
||||||
\
|
\
|
||||||
|
@ -16,10 +18,8 @@
|
||||||
\
|
\
|
||||||
{"InitializeSpellbookChanges", SpellFunctions::InitializeSpellbookChanges}
|
{"InitializeSpellbookChanges", SpellFunctions::InitializeSpellbookChanges}
|
||||||
|
|
||||||
class SpellFunctions
|
namespace SpellFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the last recorded spellbook changes for a player.
|
* \brief Clear the last recorded spellbook changes for a player.
|
||||||
*
|
*
|
||||||
|
@ -28,7 +28,7 @@ public:
|
||||||
* \param pid The player ID whose spellbook changes should be used.
|
* \param pid The player ID whose spellbook changes should be used.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearSpellbookChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearSpellbookChanges(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in a player's latest spellbook changes.
|
* \brief Get the number of indexes in a player's latest spellbook changes.
|
||||||
|
@ -36,7 +36,7 @@ public:
|
||||||
* \param pid The player ID whose spellbook changes should be used.
|
* \param pid The player ID whose spellbook changes should be used.
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetSpellbookChangesSize(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetSpellbookChangesSize(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the action type used in a player's latest spellbook changes.
|
* \brief Get the action type used in a player's latest spellbook changes.
|
||||||
|
@ -44,7 +44,7 @@ public:
|
||||||
* \param pid The player ID whose spellbook changes should be used.
|
* \param pid The player ID whose spellbook changes should be used.
|
||||||
* \return The action type (0 for SET, 1 for ADD, 2 for REMOVE).
|
* \return The action type (0 for SET, 1 for ADD, 2 for REMOVE).
|
||||||
*/
|
*/
|
||||||
static unsigned int GetSpellbookChangesAction(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetSpellbookChangesAction(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the action type in a player's spellbook changes.
|
* \brief Set the action type in a player's spellbook changes.
|
||||||
|
@ -53,7 +53,7 @@ public:
|
||||||
* \param action The action (0 for SET, 1 for ADD, 2 for REMOVE).
|
* \param action The action (0 for SET, 1 for ADD, 2 for REMOVE).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetSpellbookChangesAction(unsigned short pid, unsigned char action) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetSpellbookChangesAction(unsigned short pid, unsigned char action) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a new spell to the spellbook changes for a player.
|
* \brief Add a new spell to the spellbook changes for a player.
|
||||||
|
@ -62,7 +62,7 @@ public:
|
||||||
* \param spellId The spellId of the spell.
|
* \param spellId The spellId of the spell.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddSpell(unsigned short pid, const char* spellId) noexcept;
|
EXPORT_APIFUNCTION void CDECL AddSpell(unsigned short pid, const char* spellId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the spellId at a certain index in a player's latest spellbook changes.
|
* \brief Get the spellId at a certain index in a player's latest spellbook changes.
|
||||||
|
@ -71,7 +71,7 @@ public:
|
||||||
* \param index The index of the spell.
|
* \param index The index of the spell.
|
||||||
* \return The spellId.
|
* \return The spellId.
|
||||||
*/
|
*/
|
||||||
static const char *GetSpellId(unsigned short pid, unsigned int index) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetSpellId(unsigned short pid, unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerSpellbook packet with a player's recorded spellbook changes.
|
* \brief Send a PlayerSpellbook packet with a player's recorded spellbook changes.
|
||||||
|
@ -83,14 +83,11 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendSpellbookChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendSpellbookChanges(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
static void InitializeSpellbookChanges(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL InitializeSpellbookChanges(unsigned short pid) noexcept;
|
||||||
|
}
|
||||||
private:
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif //OPENMW_SPELLAPI_HPP
|
#endif //OPENMW_SPELLAPI_HPP
|
||||||
|
|
|
@ -14,17 +14,17 @@
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace ESM;
|
using namespace ESM;
|
||||||
|
|
||||||
int StatsFunctions::GetAttributeCount() noexcept
|
extern "C" int StatsFunctions::GetAttributeCount() noexcept
|
||||||
{
|
{
|
||||||
return Attribute::Length;
|
return Attribute::Length;
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetSkillCount() noexcept
|
extern "C" int StatsFunctions::GetSkillCount() noexcept
|
||||||
{
|
{
|
||||||
return Skill::Length;
|
return Skill::Length;
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetAttributeId(const char *name) noexcept
|
extern "C" int StatsFunctions::GetAttributeId(const char *name) noexcept
|
||||||
{
|
{
|
||||||
for (int x = 0; x < Attribute::Length; x++)
|
for (int x = 0; x < Attribute::Length; x++)
|
||||||
{
|
{
|
||||||
|
@ -37,7 +37,7 @@ int StatsFunctions::GetAttributeId(const char *name) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetSkillId(const char *name) noexcept
|
extern "C" int StatsFunctions::GetSkillId(const char *name) noexcept
|
||||||
{
|
{
|
||||||
for (int x = 0; x < Skill::Length; x++)
|
for (int x = 0; x < Skill::Length; x++)
|
||||||
{
|
{
|
||||||
|
@ -50,7 +50,7 @@ int StatsFunctions::GetSkillId(const char *name) noexcept
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *StatsFunctions::GetAttributeName(unsigned short attributeId) noexcept
|
extern "C" const char *StatsFunctions::GetAttributeName(unsigned short attributeId) noexcept
|
||||||
{
|
{
|
||||||
if (attributeId >= Attribute::Length)
|
if (attributeId >= Attribute::Length)
|
||||||
return "invalid";
|
return "invalid";
|
||||||
|
@ -58,7 +58,7 @@ const char *StatsFunctions::GetAttributeName(unsigned short attributeId) noexcep
|
||||||
return Attribute::sAttributeNames[attributeId].c_str();
|
return Attribute::sAttributeNames[attributeId].c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *StatsFunctions::GetSkillName(unsigned short skillId) noexcept
|
extern "C" const char *StatsFunctions::GetSkillName(unsigned short skillId) noexcept
|
||||||
{
|
{
|
||||||
if (skillId >= Skill::Length)
|
if (skillId >= Skill::Length)
|
||||||
return "invalid";
|
return "invalid";
|
||||||
|
@ -66,7 +66,7 @@ const char *StatsFunctions::GetSkillName(unsigned short skillId) noexcept
|
||||||
return Skill::sSkillNames[skillId].c_str();
|
return Skill::sSkillNames[skillId].c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *StatsFunctions::GetName(unsigned short pid) noexcept
|
extern "C" const char *StatsFunctions::GetName(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
|
|
||||||
Player *player;
|
Player *player;
|
||||||
|
@ -75,7 +75,7 @@ const char *StatsFunctions::GetName(unsigned short pid) noexcept
|
||||||
return player->npc.mName.c_str();
|
return player->npc.mName.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *StatsFunctions::GetRace(unsigned short pid) noexcept
|
extern "C" const char *StatsFunctions::GetRace(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -83,7 +83,7 @@ const char *StatsFunctions::GetRace(unsigned short pid) noexcept
|
||||||
return player->npc.mRace.c_str();
|
return player->npc.mRace.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *StatsFunctions::GetHead(unsigned short pid) noexcept
|
extern "C" const char *StatsFunctions::GetHead(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -91,7 +91,7 @@ const char *StatsFunctions::GetHead(unsigned short pid) noexcept
|
||||||
return player->npc.mHead.c_str();
|
return player->npc.mHead.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *StatsFunctions::GetHairstyle(unsigned short pid) noexcept
|
extern "C" const char *StatsFunctions::GetHairstyle(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -99,7 +99,7 @@ const char *StatsFunctions::GetHairstyle(unsigned short pid) noexcept
|
||||||
return player->npc.mHair.c_str();
|
return player->npc.mHair.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetIsMale(unsigned short pid) noexcept
|
extern "C" int StatsFunctions::GetIsMale(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, false);
|
GET_PLAYER(pid, player, false);
|
||||||
|
@ -107,7 +107,7 @@ int StatsFunctions::GetIsMale(unsigned short pid) noexcept
|
||||||
return player->npc.isMale();
|
return player->npc.isMale();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *StatsFunctions::GetBirthsign(unsigned short pid) noexcept
|
extern "C" const char *StatsFunctions::GetBirthsign(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -115,7 +115,7 @@ const char *StatsFunctions::GetBirthsign(unsigned short pid) noexcept
|
||||||
return player->birthsign.c_str();
|
return player->birthsign.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetLevel(unsigned short pid) noexcept
|
extern "C" int StatsFunctions::GetLevel(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -123,7 +123,7 @@ int StatsFunctions::GetLevel(unsigned short pid) noexcept
|
||||||
return player->creatureStats.mLevel;
|
return player->creatureStats.mLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetLevelProgress(unsigned short pid) noexcept
|
extern "C" int StatsFunctions::GetLevelProgress(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -131,7 +131,7 @@ int StatsFunctions::GetLevelProgress(unsigned short pid) noexcept
|
||||||
return player->npcStats.mLevelProgress;
|
return player->npcStats.mLevelProgress;
|
||||||
}
|
}
|
||||||
|
|
||||||
double StatsFunctions::GetHealthBase(unsigned short pid) noexcept
|
extern "C" double StatsFunctions::GetHealthBase(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -139,7 +139,7 @@ double StatsFunctions::GetHealthBase(unsigned short pid) noexcept
|
||||||
return player->creatureStats.mDynamic[0].mBase;
|
return player->creatureStats.mDynamic[0].mBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
double StatsFunctions::GetHealthCurrent(unsigned short pid) noexcept
|
extern "C" double StatsFunctions::GetHealthCurrent(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -147,7 +147,7 @@ double StatsFunctions::GetHealthCurrent(unsigned short pid) noexcept
|
||||||
return player->creatureStats.mDynamic[0].mCurrent;
|
return player->creatureStats.mDynamic[0].mCurrent;
|
||||||
}
|
}
|
||||||
|
|
||||||
double StatsFunctions::GetMagickaBase(unsigned short pid) noexcept
|
extern "C" double StatsFunctions::GetMagickaBase(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -155,7 +155,7 @@ double StatsFunctions::GetMagickaBase(unsigned short pid) noexcept
|
||||||
return player->creatureStats.mDynamic[1].mBase;
|
return player->creatureStats.mDynamic[1].mBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
double StatsFunctions::GetMagickaCurrent(unsigned short pid) noexcept
|
extern "C" double StatsFunctions::GetMagickaCurrent(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -163,7 +163,7 @@ double StatsFunctions::GetMagickaCurrent(unsigned short pid) noexcept
|
||||||
return player->creatureStats.mDynamic[1].mCurrent;
|
return player->creatureStats.mDynamic[1].mCurrent;
|
||||||
}
|
}
|
||||||
|
|
||||||
double StatsFunctions::GetFatigueBase(unsigned short pid) noexcept
|
extern "C" double StatsFunctions::GetFatigueBase(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -171,7 +171,7 @@ double StatsFunctions::GetFatigueBase(unsigned short pid) noexcept
|
||||||
return player->creatureStats.mDynamic[2].mBase;
|
return player->creatureStats.mDynamic[2].mBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
double StatsFunctions::GetFatigueCurrent(unsigned short pid) noexcept
|
extern "C" double StatsFunctions::GetFatigueCurrent(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -179,7 +179,7 @@ double StatsFunctions::GetFatigueCurrent(unsigned short pid) noexcept
|
||||||
return player->creatureStats.mDynamic[2].mCurrent;
|
return player->creatureStats.mDynamic[2].mCurrent;
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetAttributeBase(unsigned short pid, unsigned short attributeId) noexcept
|
extern "C" int StatsFunctions::GetAttributeBase(unsigned short pid, unsigned short attributeId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -190,7 +190,7 @@ int StatsFunctions::GetAttributeBase(unsigned short pid, unsigned short attribut
|
||||||
return player->creatureStats.mAttributes[attributeId].mBase;
|
return player->creatureStats.mAttributes[attributeId].mBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetAttributeModifier(unsigned short pid, unsigned short attributeId) noexcept
|
extern "C" int StatsFunctions::GetAttributeModifier(unsigned short pid, unsigned short attributeId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -201,7 +201,7 @@ int StatsFunctions::GetAttributeModifier(unsigned short pid, unsigned short attr
|
||||||
return player->creatureStats.mAttributes[attributeId].mMod;
|
return player->creatureStats.mAttributes[attributeId].mMod;
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetSkillBase(unsigned short pid, unsigned short skillId) noexcept
|
extern "C" int StatsFunctions::GetSkillBase(unsigned short pid, unsigned short skillId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -212,7 +212,7 @@ int StatsFunctions::GetSkillBase(unsigned short pid, unsigned short skillId) noe
|
||||||
return player->npcStats.mSkills[skillId].mBase;
|
return player->npcStats.mSkills[skillId].mBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetSkillModifier(unsigned short pid, unsigned short skillId) noexcept
|
extern "C" int StatsFunctions::GetSkillModifier(unsigned short pid, unsigned short skillId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -223,7 +223,7 @@ int StatsFunctions::GetSkillModifier(unsigned short pid, unsigned short skillId)
|
||||||
return player->npcStats.mSkills[skillId].mMod;
|
return player->npcStats.mSkills[skillId].mMod;
|
||||||
}
|
}
|
||||||
|
|
||||||
double StatsFunctions::GetSkillProgress(unsigned short pid, unsigned short skillId) noexcept
|
extern "C" double StatsFunctions::GetSkillProgress(unsigned short pid, unsigned short skillId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0.0f);
|
GET_PLAYER(pid, player, 0.0f);
|
||||||
|
@ -234,18 +234,18 @@ double StatsFunctions::GetSkillProgress(unsigned short pid, unsigned short skill
|
||||||
return player->npcStats.mSkills[skillId].mProgress;
|
return player->npcStats.mSkills[skillId].mProgress;
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetSkillIncrease(unsigned short pid, unsigned int attributeId) noexcept
|
extern "C" int StatsFunctions::GetSkillIncrease(unsigned short pid, unsigned int attributeId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
|
||||||
if (attributeId > Attribute::Length)
|
if (attributeId >= Attribute::Length)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return player->npcStats.mSkillIncrease[attributeId];
|
return player->npcStats.mSkillIncrease[attributeId];
|
||||||
}
|
}
|
||||||
|
|
||||||
int StatsFunctions::GetBounty(unsigned short pid) noexcept
|
extern "C" int StatsFunctions::GetBounty(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, 0);
|
GET_PLAYER(pid, player, 0);
|
||||||
|
@ -253,7 +253,7 @@ int StatsFunctions::GetBounty(unsigned short pid) noexcept
|
||||||
return player->npcStats.mBounty;
|
return player->npcStats.mBounty;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetName(unsigned short pid, const char *name) noexcept
|
extern "C" void StatsFunctions::SetName(unsigned short pid, const char *name) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -264,7 +264,7 @@ void StatsFunctions::SetName(unsigned short pid, const char *name) noexcept
|
||||||
player->npc.mName = name;
|
player->npc.mName = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetRace(unsigned short pid, const char *race) noexcept
|
extern "C" void StatsFunctions::SetRace(unsigned short pid, const char *race) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -278,7 +278,7 @@ void StatsFunctions::SetRace(unsigned short pid, const char *race) noexcept
|
||||||
player->npc.mRace = race;
|
player->npc.mRace = race;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetHead(unsigned short pid, const char *head) noexcept
|
extern "C" void StatsFunctions::SetHead(unsigned short pid, const char *head) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -289,7 +289,7 @@ void StatsFunctions::SetHead(unsigned short pid, const char *head) noexcept
|
||||||
player->npc.mHead = head;
|
player->npc.mHead = head;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetHairstyle(unsigned short pid, const char *hairstyle) noexcept
|
extern "C" void StatsFunctions::SetHairstyle(unsigned short pid, const char *hairstyle) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -300,7 +300,7 @@ void StatsFunctions::SetHairstyle(unsigned short pid, const char *hairstyle) noe
|
||||||
player->npc.mHair = hairstyle;
|
player->npc.mHair = hairstyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetIsMale(unsigned short pid, int state) noexcept
|
extern "C" void StatsFunctions::SetIsMale(unsigned short pid, int state) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -308,7 +308,7 @@ void StatsFunctions::SetIsMale(unsigned short pid, int state) noexcept
|
||||||
player->npc.setIsMale(state == true);
|
player->npc.setIsMale(state == true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetBirthsign(unsigned short pid, const char *sign) noexcept
|
extern "C" void StatsFunctions::SetBirthsign(unsigned short pid, const char *sign) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -319,7 +319,7 @@ void StatsFunctions::SetBirthsign(unsigned short pid, const char *sign) noexcept
|
||||||
player->birthsign = sign;
|
player->birthsign = sign;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetResetStats(unsigned short pid, bool resetStats) noexcept
|
extern "C" void StatsFunctions::SetResetStats(unsigned short pid, bool resetStats) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -327,7 +327,7 @@ void StatsFunctions::SetResetStats(unsigned short pid, bool resetStats) noexcept
|
||||||
player->resetStats = resetStats;
|
player->resetStats = resetStats;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetLevel(unsigned short pid, int value) noexcept
|
extern "C" void StatsFunctions::SetLevel(unsigned short pid, int value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -335,7 +335,7 @@ void StatsFunctions::SetLevel(unsigned short pid, int value) noexcept
|
||||||
player->creatureStats.mLevel = value;
|
player->creatureStats.mLevel = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetLevelProgress(unsigned short pid, int value) noexcept
|
extern "C" void StatsFunctions::SetLevelProgress(unsigned short pid, int value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -343,7 +343,7 @@ void StatsFunctions::SetLevelProgress(unsigned short pid, int value) noexcept
|
||||||
player->npcStats.mLevelProgress = value;
|
player->npcStats.mLevelProgress = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetHealthBase(unsigned short pid, double value) noexcept
|
extern "C" void StatsFunctions::SetHealthBase(unsigned short pid, double value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -354,7 +354,7 @@ void StatsFunctions::SetHealthBase(unsigned short pid, double value) noexcept
|
||||||
player->statsDynamicIndexChanges.push_back(0);
|
player->statsDynamicIndexChanges.push_back(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetHealthCurrent(unsigned short pid, double value) noexcept
|
extern "C" void StatsFunctions::SetHealthCurrent(unsigned short pid, double value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -365,7 +365,7 @@ void StatsFunctions::SetHealthCurrent(unsigned short pid, double value) noexcept
|
||||||
player->statsDynamicIndexChanges.push_back(0);
|
player->statsDynamicIndexChanges.push_back(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetMagickaBase(unsigned short pid, double value) noexcept
|
extern "C" void StatsFunctions::SetMagickaBase(unsigned short pid, double value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -376,7 +376,7 @@ void StatsFunctions::SetMagickaBase(unsigned short pid, double value) noexcept
|
||||||
player->statsDynamicIndexChanges.push_back(1);
|
player->statsDynamicIndexChanges.push_back(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetMagickaCurrent(unsigned short pid, double value) noexcept
|
extern "C" void StatsFunctions::SetMagickaCurrent(unsigned short pid, double value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -387,7 +387,7 @@ void StatsFunctions::SetMagickaCurrent(unsigned short pid, double value) noexcep
|
||||||
player->statsDynamicIndexChanges.push_back(1);
|
player->statsDynamicIndexChanges.push_back(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetFatigueBase(unsigned short pid, double value) noexcept
|
extern "C" void StatsFunctions::SetFatigueBase(unsigned short pid, double value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -398,7 +398,7 @@ void StatsFunctions::SetFatigueBase(unsigned short pid, double value) noexcept
|
||||||
player->statsDynamicIndexChanges.push_back(2);
|
player->statsDynamicIndexChanges.push_back(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetFatigueCurrent(unsigned short pid, double value) noexcept
|
extern "C" void StatsFunctions::SetFatigueCurrent(unsigned short pid, double value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -409,7 +409,7 @@ void StatsFunctions::SetFatigueCurrent(unsigned short pid, double value) noexcep
|
||||||
player->statsDynamicIndexChanges.push_back(2);
|
player->statsDynamicIndexChanges.push_back(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetAttributeBase(unsigned short pid, unsigned short attributeId, int value) noexcept
|
extern "C" void StatsFunctions::SetAttributeBase(unsigned short pid, unsigned short attributeId, int value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -423,7 +423,7 @@ void StatsFunctions::SetAttributeBase(unsigned short pid, unsigned short attribu
|
||||||
player->attributeIndexChanges.push_back(attributeId);
|
player->attributeIndexChanges.push_back(attributeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::ClearAttributeModifier(unsigned short pid, unsigned short attributeId) noexcept
|
extern "C" void StatsFunctions::ClearAttributeModifier(unsigned short pid, unsigned short attributeId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -437,7 +437,7 @@ void StatsFunctions::ClearAttributeModifier(unsigned short pid, unsigned short a
|
||||||
player->attributeIndexChanges.push_back(attributeId);
|
player->attributeIndexChanges.push_back(attributeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetSkillBase(unsigned short pid, unsigned short skillId, int value) noexcept
|
extern "C" void StatsFunctions::SetSkillBase(unsigned short pid, unsigned short skillId, int value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -451,7 +451,7 @@ void StatsFunctions::SetSkillBase(unsigned short pid, unsigned short skillId, in
|
||||||
player->skillIndexChanges.push_back(skillId);
|
player->skillIndexChanges.push_back(skillId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::ClearSkillModifier(unsigned short pid, unsigned short skillId) noexcept
|
extern "C" void StatsFunctions::ClearSkillModifier(unsigned short pid, unsigned short skillId) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -465,7 +465,7 @@ void StatsFunctions::ClearSkillModifier(unsigned short pid, unsigned short skill
|
||||||
player->skillIndexChanges.push_back(skillId);
|
player->skillIndexChanges.push_back(skillId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetSkillProgress(unsigned short pid, unsigned short skillId, double value) noexcept
|
extern "C" void StatsFunctions::SetSkillProgress(unsigned short pid, unsigned short skillId, double value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -479,12 +479,12 @@ void StatsFunctions::SetSkillProgress(unsigned short pid, unsigned short skillId
|
||||||
player->skillIndexChanges.push_back(skillId);
|
player->skillIndexChanges.push_back(skillId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetSkillIncrease(unsigned short pid, unsigned int attributeId, int value) noexcept
|
extern "C" void StatsFunctions::SetSkillIncrease(unsigned short pid, unsigned int attributeId, int value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
|
||||||
if (attributeId > Attribute::Length)
|
if (attributeId >= Attribute::Length)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
player->npcStats.mSkillIncrease[attributeId] = value;
|
player->npcStats.mSkillIncrease[attributeId] = value;
|
||||||
|
@ -493,7 +493,7 @@ void StatsFunctions::SetSkillIncrease(unsigned short pid, unsigned int attribute
|
||||||
player->attributeIndexChanges.push_back(attributeId);
|
player->attributeIndexChanges.push_back(attributeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetBounty(unsigned short pid, int value) noexcept
|
extern "C" void StatsFunctions::SetBounty(unsigned short pid, int value) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -501,7 +501,7 @@ void StatsFunctions::SetBounty(unsigned short pid, int value) noexcept
|
||||||
player->npcStats.mBounty = value;
|
player->npcStats.mBounty = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SetCharGenStage(unsigned short pid, int currentStage, int endStage) noexcept
|
extern "C" void StatsFunctions::SetCharGenStage(unsigned short pid, int currentStage, int endStage) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -516,7 +516,7 @@ void StatsFunctions::SetCharGenStage(unsigned short pid, int currentStage, int e
|
||||||
packet->Send(false);
|
packet->Send(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SendBaseInfo(unsigned short pid) noexcept
|
extern "C" void StatsFunctions::SendBaseInfo(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -528,7 +528,7 @@ void StatsFunctions::SendBaseInfo(unsigned short pid) noexcept
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SendStatsDynamic(unsigned short pid) noexcept
|
extern "C" void StatsFunctions::SendStatsDynamic(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -542,7 +542,7 @@ void StatsFunctions::SendStatsDynamic(unsigned short pid) noexcept
|
||||||
player->statsDynamicIndexChanges.clear();
|
player->statsDynamicIndexChanges.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SendAttributes(unsigned short pid) noexcept
|
extern "C" void StatsFunctions::SendAttributes(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -556,7 +556,7 @@ void StatsFunctions::SendAttributes(unsigned short pid) noexcept
|
||||||
player->attributeIndexChanges.clear();
|
player->attributeIndexChanges.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SendSkills(unsigned short pid) noexcept
|
extern "C" void StatsFunctions::SendSkills(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player,);
|
GET_PLAYER(pid, player,);
|
||||||
|
@ -570,7 +570,7 @@ void StatsFunctions::SendSkills(unsigned short pid) noexcept
|
||||||
player->skillIndexChanges.clear();
|
player->skillIndexChanges.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SendLevel(unsigned short pid) noexcept
|
extern "C" void StatsFunctions::SendLevel(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -582,7 +582,7 @@ void StatsFunctions::SendLevel(unsigned short pid) noexcept
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsFunctions::SendBounty(unsigned short pid) noexcept
|
extern "C" void StatsFunctions::SendBounty(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef OPENMW_STATAPI_HPP
|
#ifndef OPENMW_STATAPI_HPP
|
||||||
#define OPENMW_STATAPI_HPP
|
#define OPENMW_STATAPI_HPP
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define STATAPI \
|
#define STATAPI \
|
||||||
{"GetAttributeCount", StatsFunctions::GetAttributeCount},\
|
{"GetAttributeCount", StatsFunctions::GetAttributeCount},\
|
||||||
{"GetSkillCount", StatsFunctions::GetSkillCount},\
|
{"GetSkillCount", StatsFunctions::GetSkillCount},\
|
||||||
|
@ -75,10 +77,8 @@
|
||||||
{"SendLevel", StatsFunctions::SendLevel},\
|
{"SendLevel", StatsFunctions::SendLevel},\
|
||||||
{"SendBounty", StatsFunctions::SendBounty}
|
{"SendBounty", StatsFunctions::SendBounty}
|
||||||
|
|
||||||
class StatsFunctions
|
namespace StatsFunctions
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of attributes.
|
* \brief Get the number of attributes.
|
||||||
*
|
*
|
||||||
|
@ -86,7 +86,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return The number of attributes.
|
* \return The number of attributes.
|
||||||
*/
|
*/
|
||||||
static int GetAttributeCount() noexcept;
|
EXPORT_APIFUNCTION int CDECL GetAttributeCount() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of skills.
|
* \brief Get the number of skills.
|
||||||
|
@ -95,7 +95,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return The number of skills.
|
* \return The number of skills.
|
||||||
*/
|
*/
|
||||||
static int GetSkillCount() noexcept;
|
EXPORT_APIFUNCTION int CDECL GetSkillCount() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the numerical ID of an attribute with a certain name.
|
* \brief Get the numerical ID of an attribute with a certain name.
|
||||||
|
@ -105,7 +105,7 @@ public:
|
||||||
* \param name The name of the attribute.
|
* \param name The name of the attribute.
|
||||||
* \return The ID of the attribute.
|
* \return The ID of the attribute.
|
||||||
*/
|
*/
|
||||||
static int GetAttributeId(const char *name) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetAttributeId(const char *name) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the numerical ID of a skill with a certain name.
|
* \brief Get the numerical ID of a skill with a certain name.
|
||||||
|
@ -115,7 +115,7 @@ public:
|
||||||
* \param name The name of the skill.
|
* \param name The name of the skill.
|
||||||
* \return The ID of the skill.
|
* \return The ID of the skill.
|
||||||
*/
|
*/
|
||||||
static int GetSkillId(const char *name) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetSkillId(const char *name) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the name of the attribute with a certain numerical ID.
|
* \brief Get the name of the attribute with a certain numerical ID.
|
||||||
|
@ -125,7 +125,7 @@ public:
|
||||||
* \param attributeId The ID of the attribute.
|
* \param attributeId The ID of the attribute.
|
||||||
* \return The name of the attribute.
|
* \return The name of the attribute.
|
||||||
*/
|
*/
|
||||||
static const char *GetAttributeName(unsigned short attributeId) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetAttributeName(unsigned short attributeId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the name of the skill with a certain numerical ID.
|
* \brief Get the name of the skill with a certain numerical ID.
|
||||||
|
@ -135,7 +135,7 @@ public:
|
||||||
* \param skillId The ID of the skill.
|
* \param skillId The ID of the skill.
|
||||||
* \return The name of the skill.
|
* \return The name of the skill.
|
||||||
*/
|
*/
|
||||||
static const char *GetSkillName(unsigned short skillId) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetSkillName(unsigned short skillId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the name of a player.
|
* \brief Get the name of a player.
|
||||||
|
@ -143,7 +143,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The name of the player.
|
* \return The name of the player.
|
||||||
*/
|
*/
|
||||||
static const char *GetName(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetName(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the race of a player.
|
* \brief Get the race of a player.
|
||||||
|
@ -151,7 +151,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The race of the player.
|
* \return The race of the player.
|
||||||
*/
|
*/
|
||||||
static const char *GetRace(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetRace(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the head mesh used by a player.
|
* \brief Get the head mesh used by a player.
|
||||||
|
@ -159,7 +159,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The head mesh of the player.
|
* \return The head mesh of the player.
|
||||||
*/
|
*/
|
||||||
static const char *GetHead(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetHead(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the hairstyle mesh used by a player.
|
* \brief Get the hairstyle mesh used by a player.
|
||||||
|
@ -167,7 +167,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The hairstyle mesh of the player.
|
* \return The hairstyle mesh of the player.
|
||||||
*/
|
*/
|
||||||
static const char *GetHairstyle(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetHairstyle(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Check whether a player is male or not.
|
* \brief Check whether a player is male or not.
|
||||||
|
@ -175,7 +175,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return Whether the player is male.
|
* \return Whether the player is male.
|
||||||
*/
|
*/
|
||||||
static int GetIsMale(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetIsMale(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the birthsign of a player.
|
* \brief Get the birthsign of a player.
|
||||||
|
@ -183,7 +183,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The birthsign of the player.
|
* \return The birthsign of the player.
|
||||||
*/
|
*/
|
||||||
static const char *GetBirthsign(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetBirthsign(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the character level of a player.
|
* \brief Get the character level of a player.
|
||||||
|
@ -191,7 +191,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The level of the player.
|
* \return The level of the player.
|
||||||
*/
|
*/
|
||||||
static int GetLevel(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetLevel(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the player's progress to their next character level.
|
* \brief Get the player's progress to their next character level.
|
||||||
|
@ -199,7 +199,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The level progress.
|
* \return The level progress.
|
||||||
*/
|
*/
|
||||||
static int GetLevelProgress(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetLevelProgress(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the base health of the player.
|
* \brief Get the base health of the player.
|
||||||
|
@ -207,7 +207,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The base health.
|
* \return The base health.
|
||||||
*/
|
*/
|
||||||
static double GetHealthBase(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetHealthBase(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the current health of the player.
|
* \brief Get the current health of the player.
|
||||||
|
@ -215,7 +215,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The current health.
|
* \return The current health.
|
||||||
*/
|
*/
|
||||||
static double GetHealthCurrent(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetHealthCurrent(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the base magicka of the player.
|
* \brief Get the base magicka of the player.
|
||||||
|
@ -223,7 +223,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The base magicka.
|
* \return The base magicka.
|
||||||
*/
|
*/
|
||||||
static double GetMagickaBase(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetMagickaBase(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the current magicka of the player.
|
* \brief Get the current magicka of the player.
|
||||||
|
@ -231,7 +231,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The current magicka.
|
* \return The current magicka.
|
||||||
*/
|
*/
|
||||||
static double GetMagickaCurrent(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetMagickaCurrent(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the base fatigue of the player.
|
* \brief Get the base fatigue of the player.
|
||||||
|
@ -239,7 +239,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The base fatigue.
|
* \return The base fatigue.
|
||||||
*/
|
*/
|
||||||
static double GetFatigueBase(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetFatigueBase(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the current fatigue of the player.
|
* \brief Get the current fatigue of the player.
|
||||||
|
@ -247,7 +247,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The current fatigue.
|
* \return The current fatigue.
|
||||||
*/
|
*/
|
||||||
static double GetFatigueCurrent(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetFatigueCurrent(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the base value of a player's attribute.
|
* \brief Get the base value of a player's attribute.
|
||||||
|
@ -256,7 +256,7 @@ public:
|
||||||
* \param attributeId The attribute ID.
|
* \param attributeId The attribute ID.
|
||||||
* \return The base value of the attribute.
|
* \return The base value of the attribute.
|
||||||
*/
|
*/
|
||||||
static int GetAttributeBase(unsigned short pid, unsigned short attributeId) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetAttributeBase(unsigned short pid, unsigned short attributeId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the modifier value of a player's attribute.
|
* \brief Get the modifier value of a player's attribute.
|
||||||
|
@ -265,7 +265,7 @@ public:
|
||||||
* \param attributeId The attribute ID.
|
* \param attributeId The attribute ID.
|
||||||
* \return The modifier value of the attribute.
|
* \return The modifier value of the attribute.
|
||||||
*/
|
*/
|
||||||
static int GetAttributeModifier(unsigned short pid, unsigned short attributeId) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetAttributeModifier(unsigned short pid, unsigned short attributeId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the base value of a player's skill.
|
* \brief Get the base value of a player's skill.
|
||||||
|
@ -274,7 +274,7 @@ public:
|
||||||
* \param skillId The skill ID.
|
* \param skillId The skill ID.
|
||||||
* \return The base value of the skill.
|
* \return The base value of the skill.
|
||||||
*/
|
*/
|
||||||
static int GetSkillBase(unsigned short pid, unsigned short skillId) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetSkillBase(unsigned short pid, unsigned short skillId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the modifier value of a player's skill.
|
* \brief Get the modifier value of a player's skill.
|
||||||
|
@ -283,7 +283,7 @@ public:
|
||||||
* \param skillId The skill ID.
|
* \param skillId The skill ID.
|
||||||
* \return The modifier value of the skill.
|
* \return The modifier value of the skill.
|
||||||
*/
|
*/
|
||||||
static int GetSkillModifier(unsigned short pid, unsigned short skillId) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetSkillModifier(unsigned short pid, unsigned short skillId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the progress the player has made towards increasing a certain skill by 1.
|
* \brief Get the progress the player has made towards increasing a certain skill by 1.
|
||||||
|
@ -292,7 +292,7 @@ public:
|
||||||
* \param skillId The skill ID.
|
* \param skillId The skill ID.
|
||||||
* \return The skill progress.
|
* \return The skill progress.
|
||||||
*/
|
*/
|
||||||
static double GetSkillProgress(unsigned short pid, unsigned short skillId) noexcept;
|
EXPORT_APIFUNCTION double CDECL GetSkillProgress(unsigned short pid, unsigned short skillId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the bonus applied to a certain attribute at the next level up as a result
|
* \brief Get the bonus applied to a certain attribute at the next level up as a result
|
||||||
|
@ -304,7 +304,7 @@ public:
|
||||||
* \param skillId The attribute ID.
|
* \param skillId The attribute ID.
|
||||||
* \return The increase in the attribute caused by skills.
|
* \return The increase in the attribute caused by skills.
|
||||||
*/
|
*/
|
||||||
static int GetSkillIncrease(unsigned short pid, unsigned int attributeId) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetSkillIncrease(unsigned short pid, unsigned int attributeId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the bounty of the player.
|
* \brief Get the bounty of the player.
|
||||||
|
@ -312,7 +312,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return The bounty.
|
* \return The bounty.
|
||||||
*/
|
*/
|
||||||
static int GetBounty(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetBounty(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the name of a player.
|
* \brief Set the name of a player.
|
||||||
|
@ -321,7 +321,7 @@ public:
|
||||||
* \param name The new name of the player.
|
* \param name The new name of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetName(unsigned short pid, const char *name) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetName(unsigned short pid, const char *name) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the race of a player.
|
* \brief Set the race of a player.
|
||||||
|
@ -330,7 +330,7 @@ public:
|
||||||
* \param race The new race of the player.
|
* \param race The new race of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetRace(unsigned short pid, const char *race) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetRace(unsigned short pid, const char *race) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the head mesh used by a player.
|
* \brief Set the head mesh used by a player.
|
||||||
|
@ -339,7 +339,7 @@ public:
|
||||||
* \param head The new head mesh of the player.
|
* \param head The new head mesh of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetHead(unsigned short pid, const char *head) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetHead(unsigned short pid, const char *head) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the hairstyle mesh used by a player.
|
* \brief Set the hairstyle mesh used by a player.
|
||||||
|
@ -348,7 +348,7 @@ public:
|
||||||
* \param hairstyle The new hairstyle mesh of the player.
|
* \param hairstyle The new hairstyle mesh of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetHairstyle(unsigned short pid, const char *hairstyle) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetHairstyle(unsigned short pid, const char *hairstyle) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set whether a player is male or not.
|
* \brief Set whether a player is male or not.
|
||||||
|
@ -357,7 +357,7 @@ public:
|
||||||
* \param state Whether the player is male.
|
* \param state Whether the player is male.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetIsMale(unsigned short pid, int state) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetIsMale(unsigned short pid, int state) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the birthsign of a player.
|
* \brief Set the birthsign of a player.
|
||||||
|
@ -366,7 +366,7 @@ public:
|
||||||
* \param name The new birthsign of the player.
|
* \param name The new birthsign of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetBirthsign(unsigned short pid, const char *name) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetBirthsign(unsigned short pid, const char *name) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set whether the player's stats should be reset based on their
|
* \brief Set whether the player's stats should be reset based on their
|
||||||
|
@ -379,7 +379,7 @@ public:
|
||||||
* \param resetStats The stat reset state.
|
* \param resetStats The stat reset state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetResetStats(unsigned short pid, bool resetStats) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetResetStats(unsigned short pid, bool resetStats) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the character level of a player.
|
* \brief Set the character level of a player.
|
||||||
|
@ -388,7 +388,7 @@ public:
|
||||||
* \param value The new level of the player.
|
* \param value The new level of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetLevel(unsigned short pid, int value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetLevel(unsigned short pid, int value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the player's progress to their next character level.
|
* \brief Set the player's progress to their next character level.
|
||||||
|
@ -397,7 +397,7 @@ public:
|
||||||
* \param value The new level progress of the player.
|
* \param value The new level progress of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetLevelProgress(unsigned short pid, int value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetLevelProgress(unsigned short pid, int value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the base health of a player.
|
* \brief Set the base health of a player.
|
||||||
|
@ -406,7 +406,7 @@ public:
|
||||||
* \param name The new base health of the player.
|
* \param name The new base health of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetHealthBase(unsigned short pid, double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetHealthBase(unsigned short pid, double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the current health of a player.
|
* \brief Set the current health of a player.
|
||||||
|
@ -415,7 +415,7 @@ public:
|
||||||
* \param name The new current health of the player.
|
* \param name The new current health of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetHealthCurrent(unsigned short pid, double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetHealthCurrent(unsigned short pid, double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the base magicka of a player.
|
* \brief Set the base magicka of a player.
|
||||||
|
@ -424,7 +424,7 @@ public:
|
||||||
* \param name The new base magicka of the player.
|
* \param name The new base magicka of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetMagickaBase(unsigned short pid, double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetMagickaBase(unsigned short pid, double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the current magicka of a player.
|
* \brief Set the current magicka of a player.
|
||||||
|
@ -433,7 +433,7 @@ public:
|
||||||
* \param name The new current magicka of the player.
|
* \param name The new current magicka of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetMagickaCurrent(unsigned short pid, double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetMagickaCurrent(unsigned short pid, double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the base fatigue of a player.
|
* \brief Set the base fatigue of a player.
|
||||||
|
@ -442,7 +442,7 @@ public:
|
||||||
* \param name The new base fatigue of the player.
|
* \param name The new base fatigue of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetFatigueBase(unsigned short pid, double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetFatigueBase(unsigned short pid, double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the current fatigue of a player.
|
* \brief Set the current fatigue of a player.
|
||||||
|
@ -451,7 +451,7 @@ public:
|
||||||
* \param name The new current fatigue of the player.
|
* \param name The new current fatigue of the player.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetFatigueCurrent(unsigned short pid, double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetFatigueCurrent(unsigned short pid, double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the base value of a player's attribute.
|
* \brief Set the base value of a player's attribute.
|
||||||
|
@ -461,7 +461,7 @@ public:
|
||||||
* \param value The new base value of the player's attribute.
|
* \param value The new base value of the player's attribute.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetAttributeBase(unsigned short pid, unsigned short attributeId, int value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetAttributeBase(unsigned short pid, unsigned short attributeId, int value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the modifier value of a player's attribute.
|
* \brief Clear the modifier value of a player's attribute.
|
||||||
|
@ -475,7 +475,7 @@ public:
|
||||||
* \param attributeId The attribute ID.
|
* \param attributeId The attribute ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearAttributeModifier(unsigned short pid, unsigned short attributeId) noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearAttributeModifier(unsigned short pid, unsigned short attributeId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the base value of a player's skill.
|
* \brief Set the base value of a player's skill.
|
||||||
|
@ -485,7 +485,7 @@ public:
|
||||||
* \param value The new base value of the player's skill.
|
* \param value The new base value of the player's skill.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetSkillBase(unsigned short pid, unsigned short skillId, int value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetSkillBase(unsigned short pid, unsigned short skillId, int value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the modifier value of a player's skill.
|
* \brief Clear the modifier value of a player's skill.
|
||||||
|
@ -499,7 +499,7 @@ public:
|
||||||
* \param skillId The skill ID.
|
* \param skillId The skill ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearSkillModifier(unsigned short pid, unsigned short skillId) noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearSkillModifier(unsigned short pid, unsigned short skillId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the progress the player has made towards increasing a certain skill by 1.
|
* \brief Set the progress the player has made towards increasing a certain skill by 1.
|
||||||
|
@ -509,7 +509,7 @@ public:
|
||||||
* \param value The progress value.
|
* \param value The progress value.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetSkillProgress(unsigned short pid, unsigned short skillId, double value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetSkillProgress(unsigned short pid, unsigned short skillId, double value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the bonus applied to a certain attribute at the next level up as a result
|
* \brief Set the bonus applied to a certain attribute at the next level up as a result
|
||||||
|
@ -522,7 +522,7 @@ public:
|
||||||
* \param value The increase in the attribute caused by skills.
|
* \param value The increase in the attribute caused by skills.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetSkillIncrease(unsigned short pid, unsigned int attributeId, int value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetSkillIncrease(unsigned short pid, unsigned int attributeId, int value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the bounty of a player.
|
* \brief Set the bounty of a player.
|
||||||
|
@ -531,7 +531,7 @@ public:
|
||||||
* \param value The new bounty.
|
* \param value The new bounty.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetBounty(unsigned short pid, int value) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetBounty(unsigned short pid, int value) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the current and ending stages of character generation for a player.
|
* \brief Set the current and ending stages of character generation for a player.
|
||||||
|
@ -543,7 +543,7 @@ public:
|
||||||
* \param endStage The new ending stage.
|
* \param endStage The new ending stage.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetCharGenStage(unsigned short pid, int currentStage, int endStage) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetCharGenStage(unsigned short pid, int currentStage, int endStage) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerBaseInfo packet with a player's name, race, head mesh,
|
* \brief Send a PlayerBaseInfo packet with a player's name, race, head mesh,
|
||||||
|
@ -554,7 +554,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendBaseInfo(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendBaseInfo(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerStatsDynamic packet with a player's dynamic stats (health,
|
* \brief Send a PlayerStatsDynamic packet with a player's dynamic stats (health,
|
||||||
|
@ -565,7 +565,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendStatsDynamic(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendStatsDynamic(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerAttribute packet with a player's attributes and bonuses
|
* \brief Send a PlayerAttribute packet with a player's attributes and bonuses
|
||||||
|
@ -577,7 +577,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendAttributes(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendAttributes(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerSkill packet with a player's skills.
|
* \brief Send a PlayerSkill packet with a player's skills.
|
||||||
|
@ -587,7 +587,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendSkills(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendSkills(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerLevel packet with a player's character level and
|
* \brief Send a PlayerLevel packet with a player's character level and
|
||||||
|
@ -598,7 +598,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendLevel(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendLevel(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a PlayerBounty packet with a player's bounty.
|
* \brief Send a PlayerBounty packet with a player's bounty.
|
||||||
|
@ -608,7 +608,7 @@ public:
|
||||||
* \param pid The player ID.
|
* \param pid The player ID.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendBounty(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendBounty(unsigned short pid) noexcept;
|
||||||
};
|
}
|
||||||
|
|
||||||
#endif //OPENMW_STATAPI_HPP
|
#endif //OPENMW_STATAPI_HPP
|
||||||
|
|
|
@ -11,17 +11,17 @@
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace mwmp;
|
using namespace mwmp;
|
||||||
|
|
||||||
int ScriptFunctions::CreateTimer(ScriptFunc callback, int msec) noexcept
|
extern "C" int TimerFunctions::CreateTimer(ScriptFunc callback, int msec) noexcept
|
||||||
{
|
{
|
||||||
return mwmp::TimerAPI::CreateTimer(callback, msec, "", vector<boost::any>());
|
return mwmp::TimerAPI::CreateTimer(callback, msec, "", vector<boost::any>());
|
||||||
}
|
}
|
||||||
|
|
||||||
int ScriptFunctions::CreateTimerEx(ScriptFunc callback, int msec, const char *types, va_list args) noexcept
|
extern "C" int TimerFunctions::CreateTimerEx(ScriptFunc callback, int msec, const char *types, va_list args) noexcept
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
vector<boost::any> params;
|
vector<boost::any> params;
|
||||||
GetArguments(params, args, types);
|
ScriptFunctions::GetArguments(params, args, types);
|
||||||
|
|
||||||
return mwmp::TimerAPI::CreateTimer(callback, msec, types, params);
|
return mwmp::TimerAPI::CreateTimer(callback, msec, types, params);
|
||||||
}
|
}
|
||||||
|
@ -32,27 +32,27 @@ int ScriptFunctions::CreateTimerEx(ScriptFunc callback, int msec, const char *ty
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptFunctions::StartTimer(int timerId) noexcept
|
extern "C" void TimerFunctions::StartTimer(int timerId) noexcept
|
||||||
{
|
{
|
||||||
TimerAPI::StartTimer(timerId);
|
TimerAPI::StartTimer(timerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptFunctions::StopTimer(int timerId) noexcept
|
extern "C" void TimerFunctions::StopTimer(int timerId) noexcept
|
||||||
{
|
{
|
||||||
TimerAPI::StopTimer(timerId);
|
TimerAPI::StopTimer(timerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptFunctions::RestartTimer(int timerId, int msec) noexcept
|
extern "C" void TimerFunctions::RestartTimer(int timerId, int msec) noexcept
|
||||||
{
|
{
|
||||||
TimerAPI::ResetTimer(timerId, msec);
|
TimerAPI::ResetTimer(timerId, msec);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptFunctions::FreeTimer(int timerId) noexcept
|
extern "C" void TimerFunctions::FreeTimer(int timerId) noexcept
|
||||||
{
|
{
|
||||||
TimerAPI::FreeTimer(timerId);
|
TimerAPI::FreeTimer(timerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ScriptFunctions::IsTimerElapsed(int timerId) noexcept
|
extern "C" bool TimerFunctions::IsTimerElapsed(int timerId) noexcept
|
||||||
{
|
{
|
||||||
return TimerAPI::IsEndTimer(timerId);
|
return TimerAPI::IsEndTimer(timerId);
|
||||||
}
|
}
|
||||||
|
|
80
apps/openmw-mp/Script/Functions/Timer.hpp
Normal file
80
apps/openmw-mp/Script/Functions/Timer.hpp
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
//
|
||||||
|
// Created by koncord on 09.12.18.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef OPENMW_TIMER_HPP
|
||||||
|
#define OPENMW_TIMER_HPP
|
||||||
|
|
||||||
|
#include <Script/ScriptFunction.hpp>
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
|
namespace TimerFunctions
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* \brief Create a timer that will run a script function after a certain interval.
|
||||||
|
*
|
||||||
|
* \param callback The Lua script function.
|
||||||
|
* \param msec The interval in miliseconds.
|
||||||
|
* \return The ID of the timer thus created.
|
||||||
|
*/
|
||||||
|
EXPORT_APIFUNCTION int CDECL CreateTimer(ScriptFunc callback, int msec) noexcept;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Create a timer that will run a script function after a certain interval and pass
|
||||||
|
* certain arguments to it.
|
||||||
|
*
|
||||||
|
* Example usage:
|
||||||
|
* - tes3mp.CreateTimerEx("OnTimerTest1", 250, "i", 90)
|
||||||
|
* - tes3mp.CreateTimerEx("OnTimerTest2", 500, "sif", "Test string", 60, 77.321)
|
||||||
|
*
|
||||||
|
* \param callback The Lua script function.
|
||||||
|
* \param msec The interval in miliseconds.
|
||||||
|
* \param types The argument types.
|
||||||
|
* \param args The arguments.
|
||||||
|
* \return The ID of the timer thus created.
|
||||||
|
*/
|
||||||
|
EXPORT_APIFUNCTION int CDECL CreateTimerEx(ScriptFunc callback, int msec, const char *types, va_list args) noexcept;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Start the timer with a certain ID.
|
||||||
|
*
|
||||||
|
* \param timerId The timer ID.
|
||||||
|
* \return void
|
||||||
|
*/
|
||||||
|
EXPORT_APIFUNCTION void CDECL StartTimer(int timerId) noexcept;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Stop the timer with a certain ID.
|
||||||
|
*
|
||||||
|
* \param timerId The timer ID.
|
||||||
|
* \return void
|
||||||
|
*/
|
||||||
|
EXPORT_APIFUNCTION void CDECL StopTimer(int timerId) noexcept;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Restart the timer with a certain ID for a certain interval.
|
||||||
|
*
|
||||||
|
* \param timerId The timer ID.
|
||||||
|
* \param msec The interval in miliseconds.
|
||||||
|
* \return void
|
||||||
|
*/
|
||||||
|
EXPORT_APIFUNCTION void CDECL RestartTimer(int timerId, int msec) noexcept;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Free the timer with a certain ID.
|
||||||
|
*
|
||||||
|
* \param timerId The timer ID.
|
||||||
|
* \return void
|
||||||
|
*/
|
||||||
|
EXPORT_APIFUNCTION void CDECL FreeTimer(int timerId) noexcept;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Check whether a timer is elapsed.
|
||||||
|
*
|
||||||
|
* \param timerId The timer ID.
|
||||||
|
* \return Whether the timer is elapsed.
|
||||||
|
*/
|
||||||
|
EXPORT_APIFUNCTION bool CDECL IsTimerElapsed(int timerId) noexcept;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //OPENMW_TIMER_HPP
|
|
@ -13,157 +13,157 @@ using namespace mwmp;
|
||||||
BaseWorldstate *WorldstateFunctions::readWorldstate;
|
BaseWorldstate *WorldstateFunctions::readWorldstate;
|
||||||
BaseWorldstate WorldstateFunctions::writeWorldstate;
|
BaseWorldstate WorldstateFunctions::writeWorldstate;
|
||||||
|
|
||||||
void WorldstateFunctions::ReadReceivedWorldstate() noexcept
|
extern "C" void WorldstateFunctions::ReadReceivedWorldstate() noexcept
|
||||||
{
|
{
|
||||||
readWorldstate = mwmp::Networking::getPtr()->getReceivedWorldstate();
|
readWorldstate = mwmp::Networking::getPtr()->getReceivedWorldstate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::CopyReceivedWorldstateToStore() noexcept
|
extern "C" void WorldstateFunctions::CopyReceivedWorldstateToStore() noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate = *readWorldstate;
|
writeWorldstate = *readWorldstate;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::ClearMapChanges() noexcept
|
extern "C" void WorldstateFunctions::ClearMapChanges() noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.mapTiles.clear();
|
writeWorldstate.mapTiles.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int WorldstateFunctions::GetMapChangesSize() noexcept
|
extern "C" unsigned int WorldstateFunctions::GetMapChangesSize() noexcept
|
||||||
{
|
{
|
||||||
return readWorldstate->mapTiles.size();
|
return readWorldstate->mapTiles.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *WorldstateFunctions::GetWeatherRegion() noexcept
|
extern "C" const char *WorldstateFunctions::GetWeatherRegion() noexcept
|
||||||
{
|
{
|
||||||
return readWorldstate->weather.region.c_str();
|
return readWorldstate->weather.region.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int WorldstateFunctions::GetWeatherCurrent() noexcept
|
extern "C" int WorldstateFunctions::GetWeatherCurrent() noexcept
|
||||||
{
|
{
|
||||||
return readWorldstate->weather.currentWeather;
|
return readWorldstate->weather.currentWeather;
|
||||||
}
|
}
|
||||||
|
|
||||||
int WorldstateFunctions::GetWeatherNext() noexcept
|
extern "C" int WorldstateFunctions::GetWeatherNext() noexcept
|
||||||
{
|
{
|
||||||
return readWorldstate->weather.nextWeather;
|
return readWorldstate->weather.nextWeather;
|
||||||
}
|
}
|
||||||
|
|
||||||
int WorldstateFunctions::GetWeatherQueued() noexcept
|
extern "C" int WorldstateFunctions::GetWeatherQueued() noexcept
|
||||||
{
|
{
|
||||||
return readWorldstate->weather.queuedWeather;
|
return readWorldstate->weather.queuedWeather;
|
||||||
}
|
}
|
||||||
|
|
||||||
double WorldstateFunctions::GetWeatherTransitionFactor() noexcept
|
extern "C" double WorldstateFunctions::GetWeatherTransitionFactor() noexcept
|
||||||
{
|
{
|
||||||
return readWorldstate->weather.transitionFactor;
|
return readWorldstate->weather.transitionFactor;
|
||||||
}
|
}
|
||||||
|
|
||||||
int WorldstateFunctions::GetMapTileCellX(unsigned int index) noexcept
|
extern "C" int WorldstateFunctions::GetMapTileCellX(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readWorldstate->mapTiles.at(index).x;
|
return readWorldstate->mapTiles.at(index).x;
|
||||||
}
|
}
|
||||||
|
|
||||||
int WorldstateFunctions::GetMapTileCellY(unsigned int index) noexcept
|
extern "C" int WorldstateFunctions::GetMapTileCellY(unsigned int index) noexcept
|
||||||
{
|
{
|
||||||
return readWorldstate->mapTiles.at(index).y;
|
return readWorldstate->mapTiles.at(index).y;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetAuthorityRegion(const char* authorityRegion) noexcept
|
extern "C" void WorldstateFunctions::SetAuthorityRegion(const char* authorityRegion) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.authorityRegion = authorityRegion;
|
writeWorldstate.authorityRegion = authorityRegion;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetWeatherRegion(const char* region) noexcept
|
extern "C" void WorldstateFunctions::SetWeatherRegion(const char* region) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.weather.region = region;
|
writeWorldstate.weather.region = region;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetWeatherForceState(bool forceState) noexcept
|
extern "C" void WorldstateFunctions::SetWeatherForceState(bool forceState) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.forceWeather = forceState;
|
writeWorldstate.forceWeather = forceState;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetWeatherCurrent(int currentWeather) noexcept
|
extern "C" void WorldstateFunctions::SetWeatherCurrent(int currentWeather) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.weather.currentWeather = currentWeather;
|
writeWorldstate.weather.currentWeather = currentWeather;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetWeatherNext(int nextWeather) noexcept
|
extern "C" void WorldstateFunctions::SetWeatherNext(int nextWeather) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.weather.nextWeather = nextWeather;
|
writeWorldstate.weather.nextWeather = nextWeather;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetWeatherQueued(int queuedWeather) noexcept
|
extern "C" void WorldstateFunctions::SetWeatherQueued(int queuedWeather) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.weather.queuedWeather = queuedWeather;
|
writeWorldstate.weather.queuedWeather = queuedWeather;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetWeatherTransitionFactor(double transitionFactor) noexcept
|
extern "C" void WorldstateFunctions::SetWeatherTransitionFactor(double transitionFactor) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.weather.transitionFactor = transitionFactor;
|
writeWorldstate.weather.transitionFactor = transitionFactor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetHour(double hour) noexcept
|
extern "C" void WorldstateFunctions::SetHour(double hour) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.time.hour = hour;
|
writeWorldstate.time.hour = hour;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetDay(int day) noexcept
|
extern "C" void WorldstateFunctions::SetDay(int day) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.time.day = day;
|
writeWorldstate.time.day = day;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetMonth(int month) noexcept
|
extern "C" void WorldstateFunctions::SetMonth(int month) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.time.month = month;
|
writeWorldstate.time.month = month;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetYear(int year) noexcept
|
extern "C" void WorldstateFunctions::SetYear(int year) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.time.year = year;
|
writeWorldstate.time.year = year;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetDaysPassed(int daysPassed) noexcept
|
extern "C" void WorldstateFunctions::SetDaysPassed(int daysPassed) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.time.daysPassed = daysPassed;
|
writeWorldstate.time.daysPassed = daysPassed;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetTimeScale(double timeScale) noexcept
|
extern "C" void WorldstateFunctions::SetTimeScale(double timeScale) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.time.timeScale = timeScale;
|
writeWorldstate.time.timeScale = timeScale;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetPlayerCollisionState(bool state) noexcept
|
extern "C" void WorldstateFunctions::SetPlayerCollisionState(bool state) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.hasPlayerCollision = state;
|
writeWorldstate.hasPlayerCollision = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetActorCollisionState(bool state) noexcept
|
extern "C" void WorldstateFunctions::SetActorCollisionState(bool state) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.hasActorCollision = state;
|
writeWorldstate.hasActorCollision = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SetPlacedObjectCollisionState(bool state) noexcept
|
extern "C" void WorldstateFunctions::SetPlacedObjectCollisionState(bool state) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.hasPlacedObjectCollision = state;
|
writeWorldstate.hasPlacedObjectCollision = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::UseActorCollisionForPlacedObjects(bool useActorCollision) noexcept
|
extern "C" void WorldstateFunctions::UseActorCollisionForPlacedObjects(bool useActorCollision) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.useActorCollisionForPlacedObjects = useActorCollision;
|
writeWorldstate.useActorCollisionForPlacedObjects = useActorCollision;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::AddEnforcedCollisionRefId(const char *refId) noexcept
|
extern "C" void WorldstateFunctions::AddEnforcedCollisionRefId(const char *refId) noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.enforcedCollisionRefIds.push_back(refId);
|
writeWorldstate.enforcedCollisionRefIds.push_back(refId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::ClearEnforcedCollisionRefIds() noexcept
|
extern "C" void WorldstateFunctions::ClearEnforcedCollisionRefIds() noexcept
|
||||||
{
|
{
|
||||||
writeWorldstate.enforcedCollisionRefIds.clear();
|
writeWorldstate.enforcedCollisionRefIds.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SaveMapTileImageFile(unsigned int index, const char *filePath) noexcept
|
extern "C" void WorldstateFunctions::SaveMapTileImageFile(unsigned int index, const char *filePath) noexcept
|
||||||
{
|
{
|
||||||
if (index >= readWorldstate->mapTiles.size())
|
if (index >= readWorldstate->mapTiles.size())
|
||||||
return;
|
return;
|
||||||
|
@ -175,7 +175,7 @@ void WorldstateFunctions::SaveMapTileImageFile(unsigned int index, const char *f
|
||||||
std::copy(imageData.begin(), imageData.end(), outputIterator);
|
std::copy(imageData.begin(), imageData.end(), outputIterator);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::LoadMapTileImageFile(int cellX, int cellY, const char* filePath) noexcept
|
extern "C" void WorldstateFunctions::LoadMapTileImageFile(int cellX, int cellY, const char* filePath) noexcept
|
||||||
{
|
{
|
||||||
mwmp::MapTile mapTile;
|
mwmp::MapTile mapTile;
|
||||||
mapTile.x = cellX;
|
mapTile.x = cellX;
|
||||||
|
@ -196,7 +196,7 @@ void WorldstateFunctions::LoadMapTileImageFile(int cellX, int cellY, const char*
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SendWorldMap(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void WorldstateFunctions::SendWorldMap(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -212,7 +212,7 @@ void WorldstateFunctions::SendWorldMap(unsigned short pid, bool sendToOtherPlaye
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SendWorldTime(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void WorldstateFunctions::SendWorldTime(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -228,7 +228,7 @@ void WorldstateFunctions::SendWorldTime(unsigned short pid, bool sendToOtherPlay
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SendWorldWeather(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void WorldstateFunctions::SendWorldWeather(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -244,7 +244,7 @@ void WorldstateFunctions::SendWorldWeather(unsigned short pid, bool sendToOtherP
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SendWorldCollisionOverride(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
extern "C" void WorldstateFunctions::SendWorldCollisionOverride(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -260,7 +260,7 @@ void WorldstateFunctions::SendWorldCollisionOverride(unsigned short pid, bool se
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::SendWorldRegionAuthority(unsigned short pid) noexcept
|
extern "C" void WorldstateFunctions::SendWorldRegionAuthority(unsigned short pid) noexcept
|
||||||
{
|
{
|
||||||
Player *player;
|
Player *player;
|
||||||
GET_PLAYER(pid, player, );
|
GET_PLAYER(pid, player, );
|
||||||
|
@ -276,7 +276,7 @@ void WorldstateFunctions::SendWorldRegionAuthority(unsigned short pid) noexcept
|
||||||
packet->Send(true);
|
packet->Send(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C"
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
void WorldstateFunctions::ReadLastWorldstate() noexcept
|
void WorldstateFunctions::ReadLastWorldstate() noexcept
|
||||||
|
@ -284,7 +284,7 @@ void WorldstateFunctions::ReadLastWorldstate() noexcept
|
||||||
ReadReceivedWorldstate();
|
ReadReceivedWorldstate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldstateFunctions::CopyLastWorldstateToStore() noexcept
|
extern "C" void WorldstateFunctions::CopyLastWorldstateToStore() noexcept
|
||||||
{
|
{
|
||||||
CopyReceivedWorldstateToStore();
|
CopyReceivedWorldstateToStore();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
#include <components/openmw-mp/Base/BaseWorldstate.hpp>
|
#include <components/openmw-mp/Base/BaseWorldstate.hpp>
|
||||||
#include "../Types.hpp"
|
#include "../Types.hpp"
|
||||||
|
|
||||||
|
#include <Script/Platform.hpp>
|
||||||
|
|
||||||
#define WORLDSTATEAPI \
|
#define WORLDSTATEAPI \
|
||||||
{"ReadReceivedWorldstate", WorldstateFunctions::ReadReceivedWorldstate},\
|
{"ReadReceivedWorldstate", WorldstateFunctions::ReadReceivedWorldstate},\
|
||||||
\
|
\
|
||||||
|
@ -58,19 +60,17 @@
|
||||||
{"ReadLastWorldstate", WorldstateFunctions::ReadLastWorldstate},\
|
{"ReadLastWorldstate", WorldstateFunctions::ReadLastWorldstate},\
|
||||||
{"CopyLastWorldstateToStore", WorldstateFunctions::CopyLastWorldstateToStore}
|
{"CopyLastWorldstateToStore", WorldstateFunctions::CopyLastWorldstateToStore}
|
||||||
|
|
||||||
class WorldstateFunctions
|
namespace WorldstateFunctions
|
||||||
{
|
{
|
||||||
public:
|
EXPORT_APIFUNCTION mwmp::BaseWorldstate CDECL *readWorldstate;
|
||||||
|
EXPORT_APIFUNCTION mwmp::BaseWorldstate CDECL writeWorldstate;
|
||||||
static mwmp::BaseWorldstate *readWorldstate;
|
|
||||||
static mwmp::BaseWorldstate writeWorldstate;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Use the last worldstate received by the server as the one being read.
|
* \brief Use the last worldstate received by the server as the one being read.
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ReadReceivedWorldstate() noexcept;
|
EXPORT_APIFUNCTION void CDECL ReadReceivedWorldstate() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Take the contents of the read-only worldstate last received by the
|
* \brief Take the contents of the read-only worldstate last received by the
|
||||||
|
@ -79,7 +79,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void CopyReceivedWorldstateToStore() noexcept;
|
EXPORT_APIFUNCTION void CDECL CopyReceivedWorldstateToStore() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the map changes for the write-only worldstate.
|
* \brief Clear the map changes for the write-only worldstate.
|
||||||
|
@ -88,49 +88,49 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearMapChanges() noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearMapChanges() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the number of indexes in the read worldstate's map changes.
|
* \brief Get the number of indexes in the read worldstate's map changes.
|
||||||
*
|
*
|
||||||
* \return The number of indexes.
|
* \return The number of indexes.
|
||||||
*/
|
*/
|
||||||
static unsigned int GetMapChangesSize() noexcept;
|
EXPORT_APIFUNCTION unsigned int CDECL GetMapChangesSize() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the weather region in the read worldstate.
|
* \brief Get the weather region in the read worldstate.
|
||||||
*
|
*
|
||||||
* \return The weather region.
|
* \return The weather region.
|
||||||
*/
|
*/
|
||||||
static const char *GetWeatherRegion() noexcept;
|
EXPORT_APIFUNCTION const char *CDECL GetWeatherRegion() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the current weather in the read worldstate.
|
* \brief Get the current weather in the read worldstate.
|
||||||
*
|
*
|
||||||
* \return The current weather.
|
* \return The current weather.
|
||||||
*/
|
*/
|
||||||
static int GetWeatherCurrent() noexcept;
|
EXPORT_APIFUNCTION int CDECL GetWeatherCurrent() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the next weather in the read worldstate.
|
* \brief Get the next weather in the read worldstate.
|
||||||
*
|
*
|
||||||
* \return The next weather.
|
* \return The next weather.
|
||||||
*/
|
*/
|
||||||
static int GetWeatherNext() noexcept;
|
EXPORT_APIFUNCTION int CDECL GetWeatherNext() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the queued weather in the read worldstate.
|
* \brief Get the queued weather in the read worldstate.
|
||||||
*
|
*
|
||||||
* \return The queued weather.
|
* \return The queued weather.
|
||||||
*/
|
*/
|
||||||
static int GetWeatherQueued() noexcept;
|
EXPORT_APIFUNCTION int CDECL GetWeatherQueued() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the transition factor of the weather in the read worldstate.
|
* \brief Get the transition factor of the weather in the read worldstate.
|
||||||
*
|
*
|
||||||
* \return The transition factor of the weather.
|
* \return The transition factor of the weather.
|
||||||
*/
|
*/
|
||||||
static double GetWeatherTransitionFactor() noexcept;
|
EXPORT_APIFUNCTION double CDECL GetWeatherTransitionFactor() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the X coordinate of the cell corresponding to the map tile at a certain index in
|
* \brief Get the X coordinate of the cell corresponding to the map tile at a certain index in
|
||||||
|
@ -139,7 +139,7 @@ public:
|
||||||
* \param index The index of the map tile.
|
* \param index The index of the map tile.
|
||||||
* \return The X coordinate of the cell.
|
* \return The X coordinate of the cell.
|
||||||
*/
|
*/
|
||||||
static int GetMapTileCellX(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetMapTileCellX(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the Y coordinate of the cell corresponding to the map tile at a certain index in
|
* \brief Get the Y coordinate of the cell corresponding to the map tile at a certain index in
|
||||||
|
@ -148,7 +148,7 @@ public:
|
||||||
* \param index The index of the map tile.
|
* \param index The index of the map tile.
|
||||||
* \return The Y coordinate of the cell.
|
* \return The Y coordinate of the cell.
|
||||||
*/
|
*/
|
||||||
static int GetMapTileCellY(unsigned int index) noexcept;
|
EXPORT_APIFUNCTION int CDECL GetMapTileCellY(unsigned int index) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the region affected by the next WorldRegionAuthority packet sent.
|
* \brief Set the region affected by the next WorldRegionAuthority packet sent.
|
||||||
|
@ -156,7 +156,7 @@ public:
|
||||||
* \param region The region.
|
* \param region The region.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetAuthorityRegion(const char* authorityRegion) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetAuthorityRegion(const char* authorityRegion) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the weather region in the write-only worldstate stored on the server.
|
* \brief Set the weather region in the write-only worldstate stored on the server.
|
||||||
|
@ -164,7 +164,7 @@ public:
|
||||||
* \param region The region.
|
* \param region The region.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetWeatherRegion(const char* region) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetWeatherRegion(const char* region) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the weather forcing state in the write-only worldstate stored on the server.
|
* \brief Set the weather forcing state in the write-only worldstate stored on the server.
|
||||||
|
@ -174,7 +174,7 @@ public:
|
||||||
* \param forceState The weather forcing state.
|
* \param forceState The weather forcing state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetWeatherForceState(bool forceState) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetWeatherForceState(bool forceState) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the current weather in the write-only worldstate stored on the server.
|
* \brief Set the current weather in the write-only worldstate stored on the server.
|
||||||
|
@ -182,7 +182,7 @@ public:
|
||||||
* \param currentWeather The current weather.
|
* \param currentWeather The current weather.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetWeatherCurrent(int currentWeather) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetWeatherCurrent(int currentWeather) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the next weather in the write-only worldstate stored on the server.
|
* \brief Set the next weather in the write-only worldstate stored on the server.
|
||||||
|
@ -190,7 +190,7 @@ public:
|
||||||
* \param nextWeather The next weather.
|
* \param nextWeather The next weather.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetWeatherNext(int nextWeather) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetWeatherNext(int nextWeather) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the queued weather in the write-only worldstate stored on the server.
|
* \brief Set the queued weather in the write-only worldstate stored on the server.
|
||||||
|
@ -198,7 +198,7 @@ public:
|
||||||
* \param queuedWeather The queued weather.
|
* \param queuedWeather The queued weather.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetWeatherQueued(int queuedWeather) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetWeatherQueued(int queuedWeather) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the transition factor for the weather in the write-only worldstate stored on the server.
|
* \brief Set the transition factor for the weather in the write-only worldstate stored on the server.
|
||||||
|
@ -206,7 +206,7 @@ public:
|
||||||
* \param transitionFactor The transition factor.
|
* \param transitionFactor The transition factor.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetWeatherTransitionFactor(double transitionFactor) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetWeatherTransitionFactor(double transitionFactor) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the world's hour in the write-only worldstate stored on the server.
|
* \brief Set the world's hour in the write-only worldstate stored on the server.
|
||||||
|
@ -214,7 +214,7 @@ public:
|
||||||
* \param hour The hour.
|
* \param hour The hour.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetHour(double hour) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetHour(double hour) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the world's day in the write-only worldstate stored on the server.
|
* \brief Set the world's day in the write-only worldstate stored on the server.
|
||||||
|
@ -222,7 +222,7 @@ public:
|
||||||
* \param day The day.
|
* \param day The day.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetDay(int day) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetDay(int day) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the world's month in the write-only worldstate stored on the server.
|
* \brief Set the world's month in the write-only worldstate stored on the server.
|
||||||
|
@ -230,7 +230,7 @@ public:
|
||||||
* \param month The month.
|
* \param month The month.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetMonth(int month) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetMonth(int month) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the world's year in the write-only worldstate stored on the server.
|
* \brief Set the world's year in the write-only worldstate stored on the server.
|
||||||
|
@ -238,7 +238,7 @@ public:
|
||||||
* \param year The year.
|
* \param year The year.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetYear(int year) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetYear(int year) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the world's days passed in the write-only worldstate stored on the server.
|
* \brief Set the world's days passed in the write-only worldstate stored on the server.
|
||||||
|
@ -246,7 +246,7 @@ public:
|
||||||
* \param daysPassed The days passed.
|
* \param daysPassed The days passed.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetDaysPassed(int daysPassed) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetDaysPassed(int daysPassed) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the world's time scale in the write-only worldstate stored on the server.
|
* \brief Set the world's time scale in the write-only worldstate stored on the server.
|
||||||
|
@ -255,7 +255,7 @@ public:
|
||||||
* \param timeScale The time scale.
|
* \param timeScale The time scale.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetTimeScale(double timeScale) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetTimeScale(double timeScale) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the collision state for other players in the write-only worldstate stored
|
* \brief Set the collision state for other players in the write-only worldstate stored
|
||||||
|
@ -264,7 +264,7 @@ public:
|
||||||
* \param state The collision state.
|
* \param state The collision state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetPlayerCollisionState(bool state) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetPlayerCollisionState(bool state) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the collision state for actors in the write-only worldstate stored on the
|
* \brief Set the collision state for actors in the write-only worldstate stored on the
|
||||||
|
@ -273,7 +273,7 @@ public:
|
||||||
* \param state The collision state.
|
* \param state The collision state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetActorCollisionState(bool state) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetActorCollisionState(bool state) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Set the collision state for placed objects in the write-only worldstate stored
|
* \brief Set the collision state for placed objects in the write-only worldstate stored
|
||||||
|
@ -282,7 +282,7 @@ public:
|
||||||
* \param state The collision state.
|
* \param state The collision state.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SetPlacedObjectCollisionState(bool state) noexcept;
|
EXPORT_APIFUNCTION void CDECL SetPlacedObjectCollisionState(bool state) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Whether placed objects with collision turned on should use actor collision, i.e.
|
* \brief Whether placed objects with collision turned on should use actor collision, i.e.
|
||||||
|
@ -291,7 +291,7 @@ public:
|
||||||
* \param useActorCollision Whether to use actor collision.
|
* \param useActorCollision Whether to use actor collision.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void UseActorCollisionForPlacedObjects(bool useActorCollision) noexcept;
|
EXPORT_APIFUNCTION void CDECL UseActorCollisionForPlacedObjects(bool useActorCollision) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a refId to the list of refIds for which collision should be enforced
|
* \brief Add a refId to the list of refIds for which collision should be enforced
|
||||||
|
@ -300,7 +300,7 @@ public:
|
||||||
* \param refId The refId.
|
* \param refId The refId.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void AddEnforcedCollisionRefId(const char* refId) noexcept;
|
EXPORT_APIFUNCTION void CDECL AddEnforcedCollisionRefId(const char* refId) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Clear the list of refIdsd for which collision should be enforced irrespective
|
* \brief Clear the list of refIdsd for which collision should be enforced irrespective
|
||||||
|
@ -308,7 +308,7 @@ public:
|
||||||
*
|
*
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void ClearEnforcedCollisionRefIds() noexcept;
|
EXPORT_APIFUNCTION void CDECL ClearEnforcedCollisionRefIds() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Save the .png image data of the map tile at a certain index in the read worldstate's
|
* \brief Save the .png image data of the map tile at a certain index in the read worldstate's
|
||||||
|
@ -318,7 +318,7 @@ public:
|
||||||
* \param filePath The file path of the resulting file.
|
* \param filePath The file path of the resulting file.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SaveMapTileImageFile(unsigned int index, const char *filePath) noexcept;
|
EXPORT_APIFUNCTION void CDECL SaveMapTileImageFile(unsigned int index, const char *filePath) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Load a .png file as the image data for a map tile and add it to the write-only worldstate
|
* \brief Load a .png file as the image data for a map tile and add it to the write-only worldstate
|
||||||
|
@ -329,7 +329,7 @@ public:
|
||||||
* \param filePath The file path of the loaded file.
|
* \param filePath The file path of the loaded file.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void LoadMapTileImageFile(int cellX, int cellY, const char* filePath) noexcept;
|
EXPORT_APIFUNCTION void CDECL LoadMapTileImageFile(int cellX, int cellY, const char* filePath) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a WorldRegionAuthority packet establishing a certain player as the only one who
|
* \brief Send a WorldRegionAuthority packet establishing a certain player as the only one who
|
||||||
|
@ -340,7 +340,7 @@ public:
|
||||||
* \param pid The player ID attached to the packet.
|
* \param pid The player ID attached to the packet.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendWorldRegionAuthority(unsigned short pid) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendWorldRegionAuthority(unsigned short pid) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a WorldMap packet with the current set of map changes in the write-only
|
* \brief Send a WorldMap packet with the current set of map changes in the write-only
|
||||||
|
@ -351,7 +351,7 @@ public:
|
||||||
* or to all players on the server.
|
* or to all players on the server.
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendWorldMap(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendWorldMap(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a WorldTime packet with the current time and time scale in the write-only
|
* \brief Send a WorldTime packet with the current time and time scale in the write-only
|
||||||
|
@ -364,7 +364,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendWorldTime(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendWorldTime(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a WorldWeather packet with the current weather in the write-only worldstate.
|
* \brief Send a WorldWeather packet with the current weather in the write-only worldstate.
|
||||||
|
@ -376,7 +376,7 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendWorldWeather(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendWorldWeather(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Send a WorldCollisionOverride packet with the current collision overrides in
|
* \brief Send a WorldCollisionOverride packet with the current collision overrides in
|
||||||
|
@ -389,14 +389,13 @@ public:
|
||||||
* to the packet (false by default).
|
* to the packet (false by default).
|
||||||
* \return void
|
* \return void
|
||||||
*/
|
*/
|
||||||
static void SendWorldCollisionOverride(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
EXPORT_APIFUNCTION void CDECL SendWorldCollisionOverride(unsigned short pid, bool sendToOtherPlayers, bool skipAttachedPlayer) noexcept;
|
||||||
|
|
||||||
|
|
||||||
// All methods below are deprecated versions of methods from above
|
// All methods below are deprecated versions of methods from above
|
||||||
|
|
||||||
static void ReadLastWorldstate() noexcept;
|
EXPORT_APIFUNCTION void CDECL ReadLastWorldstate() noexcept;
|
||||||
static void CopyLastWorldstateToStore() noexcept;
|
EXPORT_APIFUNCTION void CDECL CopyLastWorldstateToStore() noexcept;
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
||||||
#endif //OPENMW_WORLDSTATEAPI_HPP
|
#endif //OPENMW_WORLDSTATEAPI_HPP
|
||||||
|
|
|
@ -223,7 +223,7 @@ boost::any LangLua::Call(const char *name, const char *argl, int buf, ...)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw runtime_error("C++ call: Unknown argument identifier " + argl[index]);
|
throw runtime_error(std::string("C++ call: Unknown argument identifier ") + argl[index]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -275,7 +275,7 @@ boost::any LangLua::Call(const char *name, const char *argl, const std::vector<b
|
||||||
luabridge::Stack<bool>::push(lua, boost::any_cast<int>(args.at(index)));
|
luabridge::Stack<bool>::push(lua, boost::any_cast<int>(args.at(index)));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw runtime_error("Lua call: Unknown argument identifier " + argl[index]);
|
throw runtime_error(std::string("Lua call: Unknown argument identifier ") + argl[index]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,3 +292,13 @@ void LangLua::AddPackageCPath(const std::string& path)
|
||||||
{
|
{
|
||||||
packageCPath.emplace(path);
|
packageCPath.emplace(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LangLua::Init()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void LangLua::Free()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -45,6 +45,9 @@ public:
|
||||||
virtual bool IsCallbackPresent(const char *name) override;
|
virtual bool IsCallbackPresent(const char *name) override;
|
||||||
virtual boost::any Call(const char *name, const char *argl, int buf, ...) override;
|
virtual boost::any Call(const char *name, const char *argl, int buf, ...) override;
|
||||||
virtual boost::any Call(const char *name, const char *argl, const std::vector<boost::any> &args) override;
|
virtual boost::any Call(const char *name, const char *argl, const std::vector<boost::any> &args) override;
|
||||||
|
|
||||||
|
static void Init();
|
||||||
|
static void Free();
|
||||||
private:
|
private:
|
||||||
static std::set<std::string> packageCPath;
|
static std::set<std::string> packageCPath;
|
||||||
static std::set<std::string> packagePath;
|
static std::set<std::string> packagePath;
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
inline vector<boost::any> DefToVec(lua_State *lua, string types, int args_begin, int args_n)
|
inline vector<boost::any> DefToVec(lua_State *lua, const string &types, int args_begin, int args_n)
|
||||||
{
|
{
|
||||||
vector<boost::any> args;
|
vector<boost::any> args;
|
||||||
|
|
||||||
|
@ -93,13 +93,15 @@ int LangLua::CallPublic(lua_State *lua)
|
||||||
if (result.empty())
|
if (result.empty())
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (result.type().hash_code() == typeid(signed int).hash_code())
|
auto retTypeHash = result.type().hash_code();
|
||||||
|
|
||||||
|
if (retTypeHash == typeid(signed int).hash_code())
|
||||||
luabridge::Stack<signed int>::push(lua, boost::any_cast<signed int>(result));
|
luabridge::Stack<signed int>::push(lua, boost::any_cast<signed int>(result));
|
||||||
else if (result.type().hash_code() == typeid(unsigned int).hash_code())
|
else if (retTypeHash == typeid(unsigned int).hash_code())
|
||||||
luabridge::Stack<unsigned int>::push(lua, boost::any_cast<unsigned int>(result));
|
luabridge::Stack<unsigned int>::push(lua, boost::any_cast<unsigned int>(result));
|
||||||
else if (result.type().hash_code() == typeid(double).hash_code())
|
else if (retTypeHash == typeid(double).hash_code())
|
||||||
luabridge::Stack<double>::push(lua, boost::any_cast<double>(result));
|
luabridge::Stack<double>::push(lua, boost::any_cast<double>(result));
|
||||||
else if (result.type().hash_code() == typeid(const char*).hash_code())
|
else if (retTypeHash == typeid(const char*).hash_code())
|
||||||
luabridge::Stack<const char*>::push(lua, boost::any_cast<const char*>(result));
|
luabridge::Stack<const char*>::push(lua, boost::any_cast<const char*>(result));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
519
apps/openmw-mp/Script/LangMono/LangMono.cpp
Normal file
519
apps/openmw-mp/Script/LangMono/LangMono.cpp
Normal file
|
@ -0,0 +1,519 @@
|
||||||
|
//
|
||||||
|
// Created by koncord on 08.12.18.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <cstdarg>
|
||||||
|
#include <mono/metadata/appdomain.h>
|
||||||
|
#include <mono/metadata/object-forward.h>
|
||||||
|
#include <mono/jit/jit.h>
|
||||||
|
#include <mono/metadata/assembly.h>
|
||||||
|
#include <mono/metadata/mono-config.h>
|
||||||
|
#include <mono/metadata/mono-debug.h>
|
||||||
|
#include <Script/ScriptFunctions.hpp>
|
||||||
|
#include <Script/API/TimerAPI.hpp>
|
||||||
|
#include <Script/API/PublicFnAPI.hpp>
|
||||||
|
#include "LangMono.hpp"
|
||||||
|
|
||||||
|
static MonoDomain *domain = nullptr; // shared domain
|
||||||
|
|
||||||
|
std::string monoStringToStdString(MonoString *monoString)
|
||||||
|
{
|
||||||
|
char *utf8 = mono_string_to_utf8(monoString);
|
||||||
|
std::string str = utf8;
|
||||||
|
mono_free(utf8);
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
boost::any LangMono::ObjectToAny(MonoObject *obj)
|
||||||
|
{
|
||||||
|
MonoClass *klass = mono_object_get_class(obj);
|
||||||
|
MonoType *rawType = mono_class_get_type(klass);
|
||||||
|
|
||||||
|
switch ((MonoTypeEnum) mono_type_get_type(rawType))
|
||||||
|
{
|
||||||
|
case MONO_TYPE_END:
|
||||||
|
case MONO_TYPE_VOID:
|
||||||
|
break;
|
||||||
|
case MONO_TYPE_BOOLEAN:
|
||||||
|
return (bool) Unbox<MonoBoolean>(obj);
|
||||||
|
case MONO_TYPE_CHAR:
|
||||||
|
return Unbox<uint16_t>(obj);
|
||||||
|
case MONO_TYPE_I1:
|
||||||
|
return Unbox<int8_t>(obj);
|
||||||
|
case MONO_TYPE_U1:
|
||||||
|
return Unbox<uint8_t>(obj);
|
||||||
|
case MONO_TYPE_I2:
|
||||||
|
return Unbox<int16_t>(obj);
|
||||||
|
case MONO_TYPE_U2:
|
||||||
|
return Unbox<uint16_t>(obj);
|
||||||
|
case MONO_TYPE_I4:
|
||||||
|
return Unbox<int32_t>(obj);
|
||||||
|
case MONO_TYPE_U4:
|
||||||
|
return Unbox<uint32_t>(obj);
|
||||||
|
case MONO_TYPE_I8:
|
||||||
|
return Unbox<int64_t>(obj);
|
||||||
|
case MONO_TYPE_U8:
|
||||||
|
return Unbox<uint64_t>(obj);
|
||||||
|
case MONO_TYPE_R4:
|
||||||
|
return Unbox<float>(obj);
|
||||||
|
case MONO_TYPE_R8:
|
||||||
|
return Unbox<double>(obj);
|
||||||
|
case MONO_TYPE_STRING:
|
||||||
|
return monoStringToStdString((MonoString *) obj);
|
||||||
|
case MONO_TYPE_ARRAY:
|
||||||
|
case MONO_TYPE_SZARRAY:
|
||||||
|
{
|
||||||
|
//MonoArrayType *arrayType = mono_type_get_array_type(rawType);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return boost::any();
|
||||||
|
}
|
||||||
|
return boost::any();
|
||||||
|
}
|
||||||
|
|
||||||
|
int LangMono::CreateTimerEx(MonoObject *delegate, long msec, MonoString *monoStr, MonoArray *monoArgs)
|
||||||
|
{
|
||||||
|
size_t argsLength = mono_array_length(monoArgs);
|
||||||
|
std::vector<boost::any> params (argsLength);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < argsLength; ++i)
|
||||||
|
params[i] = ObjectToAny(mono_array_get(monoArgs, MonoObject*, i));
|
||||||
|
|
||||||
|
char *types = mono_string_to_utf8(monoStr);
|
||||||
|
int id = mwmp::TimerAPI::CreateTimerMono(delegate, msec, types, params);
|
||||||
|
mono_free(types);
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
char GetTes3mpType(MonoType *type)
|
||||||
|
{
|
||||||
|
int typeId = mono_type_get_type(type);
|
||||||
|
switch (typeId)
|
||||||
|
{
|
||||||
|
case MONO_TYPE_VOID:
|
||||||
|
return 'v';
|
||||||
|
case MONO_TYPE_BOOLEAN:
|
||||||
|
return 'b';
|
||||||
|
case MONO_TYPE_CHAR:
|
||||||
|
return 'q';
|
||||||
|
case MONO_TYPE_I1:
|
||||||
|
return 'q';
|
||||||
|
case MONO_TYPE_U1:
|
||||||
|
return 'i';
|
||||||
|
case MONO_TYPE_I2:
|
||||||
|
return 'q';
|
||||||
|
case MONO_TYPE_U2:
|
||||||
|
return 'i';
|
||||||
|
case MONO_TYPE_I4:
|
||||||
|
return 'q';
|
||||||
|
case MONO_TYPE_U4:
|
||||||
|
return 'i';
|
||||||
|
case MONO_TYPE_I8:
|
||||||
|
return 'w';
|
||||||
|
case MONO_TYPE_U8:
|
||||||
|
return 'l';
|
||||||
|
case MONO_TYPE_R4:
|
||||||
|
return 'f';
|
||||||
|
case MONO_TYPE_R8:
|
||||||
|
return 'f';
|
||||||
|
case MONO_TYPE_STRING:
|
||||||
|
return 's';
|
||||||
|
}
|
||||||
|
throw std::invalid_argument("Mono: invalid type of argument");
|
||||||
|
}
|
||||||
|
|
||||||
|
MonoObject *LangMono::AnyToObject(boost::any any, char ret_type)
|
||||||
|
{
|
||||||
|
MonoObject *object;
|
||||||
|
switch (ret_type)
|
||||||
|
{
|
||||||
|
case 'i':
|
||||||
|
{
|
||||||
|
auto val = boost::any_cast<unsigned int>(any);
|
||||||
|
object = mono_object_new(mono_get_root_domain(), mono_get_uint32_class());
|
||||||
|
ObjectSetValue(object, val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'q':
|
||||||
|
{
|
||||||
|
auto val = boost::any_cast<signed int>(any);
|
||||||
|
object = mono_object_new(mono_get_root_domain(), mono_get_int32_class());
|
||||||
|
ObjectSetValue(object, val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'l':
|
||||||
|
{
|
||||||
|
auto val = boost::any_cast<unsigned long long>(any);
|
||||||
|
object = mono_object_new(mono_get_root_domain(), mono_get_uint64_class());
|
||||||
|
ObjectSetValue(object, val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'w':
|
||||||
|
{
|
||||||
|
auto val = boost::any_cast<signed long long>(any);
|
||||||
|
object = mono_object_new(mono_get_root_domain(), mono_get_int64_class());
|
||||||
|
ObjectSetValue(object, val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'f':
|
||||||
|
{
|
||||||
|
auto val = boost::any_cast<double>(any);
|
||||||
|
object = mono_object_new(mono_get_root_domain(), mono_get_double_class());
|
||||||
|
ObjectSetValue(object, val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'p':
|
||||||
|
{
|
||||||
|
auto val = boost::any_cast<void *>(any);
|
||||||
|
object = mono_object_new(mono_get_root_domain(), mono_get_intptr_class());
|
||||||
|
ObjectSetValue(object, (intptr_t) val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 's':
|
||||||
|
{
|
||||||
|
auto val = mono_string_new(mono_domain_get(), boost::any_cast<const char *>(any));
|
||||||
|
object = (MonoObject*) val;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'b':
|
||||||
|
{
|
||||||
|
auto val = boost::any_cast<int>(any);
|
||||||
|
object = mono_object_new(mono_get_root_domain(), mono_get_boolean_class());
|
||||||
|
ObjectSetValue(object, (bool) val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw std::runtime_error(std::string("Mono call: Unknown argument identifier ") + ret_type);
|
||||||
|
}
|
||||||
|
return object;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void LangMono::MakePublic(MonoObject *delegate, MonoString *monoName) noexcept
|
||||||
|
{
|
||||||
|
MonoClass *klass = mono_object_get_class(delegate);
|
||||||
|
MonoMethod *method = mono_get_delegate_invoke(klass);
|
||||||
|
MonoMethodSignature *signature = mono_method_signature(method);
|
||||||
|
|
||||||
|
MonoType *retType = mono_signature_get_return_type(signature);
|
||||||
|
size_t argsCnt = mono_signature_get_param_count(signature);
|
||||||
|
|
||||||
|
void *iter = nullptr;
|
||||||
|
std::vector<char> def(argsCnt + 1);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < argsCnt; ++i)
|
||||||
|
def[i] = GetTes3mpType(mono_signature_get_params(signature, &iter));
|
||||||
|
|
||||||
|
char ret_type = GetTes3mpType(retType);
|
||||||
|
char *name = mono_string_to_utf8(monoName);
|
||||||
|
Public::MakePublic(delegate, name, ret_type, def.data());
|
||||||
|
mono_free(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
MonoObject *LangMono::CallPublic(MonoString *monoFnName, MonoArray *monoArgs)
|
||||||
|
{
|
||||||
|
size_t argsLength = mono_array_length(monoArgs);
|
||||||
|
char *fnName = mono_string_to_utf8(monoFnName);
|
||||||
|
|
||||||
|
auto pPublic = Public::GetPublic(fnName);
|
||||||
|
mono_free(fnName);
|
||||||
|
|
||||||
|
if (argsLength != pPublic->def.size())
|
||||||
|
throw std::invalid_argument("Mono call: Number of arguments does not match definition");
|
||||||
|
|
||||||
|
std::vector<boost::any> params(argsLength);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < argsLength; ++i)
|
||||||
|
params[i] = ObjectToAny(mono_array_get(monoArgs, MonoObject*, i));
|
||||||
|
|
||||||
|
boost::any ret = pPublic->ScriptFunction::Call(params);
|
||||||
|
|
||||||
|
return AnyToObject(ret, pPublic->ret_type);
|
||||||
|
}
|
||||||
|
|
||||||
|
lib_t LangMono::GetInterface()
|
||||||
|
{
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
LangMono::LangMono()
|
||||||
|
{
|
||||||
|
instance = new MonoInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
LangMono::LangMono(MonoInstance *instance) : instance(instance)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
LangMono::~LangMono()
|
||||||
|
{
|
||||||
|
delete instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LangMono::Init()
|
||||||
|
{
|
||||||
|
if (domain != nullptr)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (Script::IsDebugMode())
|
||||||
|
{
|
||||||
|
std::string debugServerAddress = "127.0.0.1:10000";
|
||||||
|
LOG_MESSAGE_SIMPLE(Log::LOG_INFO, "Waiting for debugger on %s...", debugServerAddress.c_str());
|
||||||
|
std::string connectionString = "--debugger-agent=transport=dt_socket,server=y,address=" + debugServerAddress;
|
||||||
|
std::vector<const char*> options {
|
||||||
|
"--soft-breakpoints",
|
||||||
|
connectionString.c_str()
|
||||||
|
};
|
||||||
|
mono_jit_parse_options(options.size(), (char**) options.data());
|
||||||
|
|
||||||
|
mono_debug_init(MONO_DEBUG_FORMAT_MONO);
|
||||||
|
}
|
||||||
|
|
||||||
|
domain = mono_jit_init("TES3MP Mono VM");
|
||||||
|
|
||||||
|
if (Script::IsDebugMode())
|
||||||
|
{
|
||||||
|
mono_debug_domain_create(domain);
|
||||||
|
}
|
||||||
|
|
||||||
|
mono_add_internal_call("TES3MPSharp.TES3MP::CreateTimerEx", (void*) &LangMono::CreateTimerEx);
|
||||||
|
mono_add_internal_call("TES3MPSharp.TES3MP::MakePublic", (void*) &LangMono::MakePublic);
|
||||||
|
mono_add_internal_call("TES3MPSharp.TES3MP::CallPublic", (void*) &LangMono::CallPublic);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LangMono::Free()
|
||||||
|
{
|
||||||
|
mono_domain_free(domain, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<MonoClass *> getInstanceClassList(MonoImage *image, const std::string &parentName)
|
||||||
|
{
|
||||||
|
std::vector<MonoClass *> classes;
|
||||||
|
|
||||||
|
const MonoTableInfo *tableInfo = mono_image_get_table_info(image, MONO_TABLE_TYPEDEF);
|
||||||
|
|
||||||
|
int rows = mono_table_info_get_rows(tableInfo);
|
||||||
|
|
||||||
|
for (int i = 0; i < rows; i++)
|
||||||
|
{
|
||||||
|
MonoClass *klass = nullptr;
|
||||||
|
uint32_t cols[MONO_TYPEDEF_SIZE];
|
||||||
|
mono_metadata_decode_row(tableInfo, i, cols, MONO_TYPEDEF_SIZE);
|
||||||
|
const char *name = mono_metadata_string_heap(image, cols[MONO_TYPEDEF_NAME]);
|
||||||
|
const char *nameSpace = mono_metadata_string_heap(image, cols[MONO_TYPEDEF_NAMESPACE]);
|
||||||
|
klass = mono_class_from_name(image, nameSpace, name);
|
||||||
|
|
||||||
|
if (klass == nullptr)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
MonoClass *parent = mono_class_get_parent(klass);
|
||||||
|
if (parent != nullptr && parentName == mono_class_get_name(parent))
|
||||||
|
classes.push_back(klass);
|
||||||
|
}
|
||||||
|
return classes;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LangMono::LoadProgram(const char *filename)
|
||||||
|
{
|
||||||
|
MonoAssembly *assembly = mono_domain_assembly_open(domain, filename);
|
||||||
|
|
||||||
|
if(!assembly)
|
||||||
|
throw std::runtime_error("Cannot load: " + std::string(filename));
|
||||||
|
|
||||||
|
instance->assembly = assembly;
|
||||||
|
instance->image = mono_assembly_get_image(instance->assembly);
|
||||||
|
|
||||||
|
std::vector<MonoClass *> list = getInstanceClassList(instance->image, "Instance");
|
||||||
|
for (auto &&klass : list)
|
||||||
|
{
|
||||||
|
instance->object = mono_object_new(domain, klass);
|
||||||
|
mono_runtime_object_init(instance->object); // call default ctor
|
||||||
|
|
||||||
|
instance->klass = klass;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int LangMono::FreeProgram()
|
||||||
|
{
|
||||||
|
for(auto &&method : methodsCache)
|
||||||
|
{
|
||||||
|
if(method.second != nullptr)
|
||||||
|
mono_free_method(method.second);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LangMono::IsCallbackPresent(const char *name)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
boost::any LangMono::Call(const char *name, const char *argl, int buf, ...)
|
||||||
|
{
|
||||||
|
va_list vargs;
|
||||||
|
va_start(vargs, buf);
|
||||||
|
|
||||||
|
int n_args = (int) (strlen(argl));
|
||||||
|
|
||||||
|
std::vector<void *> vec(n_args);
|
||||||
|
TMonoArgsStore argsStore(n_args);
|
||||||
|
|
||||||
|
for (int index = 0; index < n_args; index++)
|
||||||
|
{
|
||||||
|
switch (argl[index])
|
||||||
|
{
|
||||||
|
case 'i':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<unsigned int>(argsStore, vargs, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'q':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<signed int>(argsStore, vargs, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'l':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<unsigned long long>(argsStore, vargs, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'w':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<signed long long>(argsStore, vargs, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'f':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<double>(argsStore, vargs, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'p':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<void *>(argsStore, vargs, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 's':
|
||||||
|
{
|
||||||
|
vec[index] = (mono_string_new(mono_domain_get(), va_arg(vargs, const char*)));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'b':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<int>(argsStore, vargs, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw std::runtime_error(std::string("Mono call: Unknown argument identifier ") + argl[index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
va_end(vargs);
|
||||||
|
|
||||||
|
MonoMethod *method;
|
||||||
|
auto it = methodsCache.find({name, n_args});
|
||||||
|
if (it != methodsCache.end())
|
||||||
|
{
|
||||||
|
method = it->second;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
method = mono_class_get_method_from_name(instance->klass, name, n_args);
|
||||||
|
methodsCache[{name, n_args}] = method;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (method == nullptr)
|
||||||
|
return boost::any();
|
||||||
|
|
||||||
|
MonoObject *ret = mono_runtime_invoke(method, instance->object, vec.data(), nullptr);
|
||||||
|
if (ret)
|
||||||
|
return boost::any(mono_object_unbox(ret));
|
||||||
|
else
|
||||||
|
return boost::any();
|
||||||
|
}
|
||||||
|
|
||||||
|
boost::any LangMono::Call(const char *name, const char *argl, const std::vector<boost::any> &args)
|
||||||
|
{
|
||||||
|
int n_args = args.size();
|
||||||
|
|
||||||
|
std::vector<void *> vec(n_args);
|
||||||
|
TMonoArgsStore argsStore(n_args);
|
||||||
|
|
||||||
|
for (int index = 0; index < n_args; index++)
|
||||||
|
{
|
||||||
|
switch (argl[index])
|
||||||
|
{
|
||||||
|
case 'i':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<unsigned int>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'q':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<signed int>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'l':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<unsigned long long>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'w':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<signed long long>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'f':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<double>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'p':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<void *>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 's':
|
||||||
|
{
|
||||||
|
auto val = mono_string_new(mono_domain_get(), boost::any_cast<const char *>(args.at(index)));
|
||||||
|
vec[index] = (val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'b':
|
||||||
|
{
|
||||||
|
vec[index] = MonoStoreAndGetPtr<int>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw std::runtime_error(std::string("Mono call: Unknown argument identifier ") + argl[index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MonoMethod *method;
|
||||||
|
auto it = methodsCache.find({name, n_args});
|
||||||
|
if (it != methodsCache.end())
|
||||||
|
{
|
||||||
|
method = it->second;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
method = mono_class_get_method_from_name(instance->klass, name, n_args);
|
||||||
|
methodsCache[{name, n_args}] = method;
|
||||||
|
}
|
||||||
|
|
||||||
|
MonoObject *ret = mono_runtime_invoke(method, instance->object, vec.data(), nullptr);
|
||||||
|
if (ret)
|
||||||
|
return boost::any(mono_object_unbox(ret));
|
||||||
|
else
|
||||||
|
return boost::any();
|
||||||
|
}
|
104
apps/openmw-mp/Script/LangMono/LangMono.hpp
Normal file
104
apps/openmw-mp/Script/LangMono/LangMono.hpp
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
//
|
||||||
|
// Created by koncord on 08.12.18.
|
||||||
|
//
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Script/Language.hpp>
|
||||||
|
#include <Script/SystemInterface.hpp>
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <mono/metadata/object.h>
|
||||||
|
#include <boost/variant.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
typedef boost::variant<unsigned int, signed int, unsigned long long, signed long long, double, void*> TMonoArgVariant;
|
||||||
|
typedef std::vector<TMonoArgVariant> TMonoArgsStore;
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void *MonoStoreAndGetPtr(TMonoArgsStore &argsStore, va_list &vargs, size_t index)
|
||||||
|
{
|
||||||
|
argsStore[index] = va_arg(vargs, T);
|
||||||
|
return (void *) &boost::get<T&>(argsStore[index]);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void *MonoStoreAndGetPtr(TMonoArgsStore &argsStore, const std::vector<boost::any> &args, size_t index)
|
||||||
|
{
|
||||||
|
argsStore[index] = boost::any_cast<T>(args.at(index));
|
||||||
|
return (void *) &boost::get<T&>(argsStore[index]);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct MethodKey
|
||||||
|
{
|
||||||
|
inline bool operator==(const MethodKey &other) const
|
||||||
|
{
|
||||||
|
return other.paramsCnt == paramsCnt && other.name == name;
|
||||||
|
}
|
||||||
|
|
||||||
|
MethodKey(const std::string &name, int paramsCnt): name(name), paramsCnt(paramsCnt)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string name;
|
||||||
|
int paramsCnt;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
namespace std
|
||||||
|
{
|
||||||
|
template<>
|
||||||
|
struct hash<MethodKey>
|
||||||
|
{
|
||||||
|
std::size_t operator()(const MethodKey &key) const
|
||||||
|
{
|
||||||
|
return hash<string>()(key.name)
|
||||||
|
^ (hash<uint32_t>()(key.paramsCnt) >> 1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
struct MonoInstance
|
||||||
|
{
|
||||||
|
MonoObject *object;
|
||||||
|
MonoClass *klass;
|
||||||
|
MonoAssembly *assembly;
|
||||||
|
MonoImage *image;
|
||||||
|
};
|
||||||
|
|
||||||
|
class LangMono: public Language
|
||||||
|
{
|
||||||
|
MonoInstance *instance;
|
||||||
|
std::unordered_map<MethodKey, MonoMethod *> methodsCache;
|
||||||
|
public:
|
||||||
|
virtual lib_t GetInterface() override;
|
||||||
|
LangMono();
|
||||||
|
LangMono(MonoInstance *instance);
|
||||||
|
~LangMono();
|
||||||
|
virtual void LoadProgram(const char *filename) override;
|
||||||
|
virtual int FreeProgram() override;
|
||||||
|
virtual bool IsCallbackPresent(const char *name) override;
|
||||||
|
virtual boost::any Call(const char *name, const char *argl, int buf, ...) override;
|
||||||
|
virtual boost::any Call(const char *name, const char *argl, const std::vector<boost::any> &args) override;
|
||||||
|
|
||||||
|
static int CreateTimerEx(MonoObject *delegate, long msec, MonoString *monoStr, MonoArray *args);
|
||||||
|
static void MakePublic(MonoObject *delegate, MonoString *name) noexcept;
|
||||||
|
static MonoObject *CallPublic(MonoString *name, MonoArray *args);
|
||||||
|
|
||||||
|
static void Init();
|
||||||
|
static void Free();
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
static T Unbox(MonoObject *obj)
|
||||||
|
{
|
||||||
|
return *(T *) mono_object_unbox(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
static void ObjectSetValue(MonoObject *obj, T value)
|
||||||
|
{
|
||||||
|
*(T*) mono_object_unbox(obj) = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static boost::any ObjectToAny(MonoObject *obj);
|
||||||
|
static MonoObject *AnyToObject(boost::any any, char ret_type);
|
||||||
|
};
|
|
@ -91,7 +91,7 @@ lib_t LangNative::GetInterface()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LangNative::LangNative()
|
LangNative::LangNative(): lib(nullptr)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -100,3 +100,13 @@ LangNative::~LangNative()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LangNative::Init()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void LangNative::Free()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -22,6 +22,8 @@ public:
|
||||||
virtual boost::any Call(const char *name, const char *argl, int buf, ...) override;
|
virtual boost::any Call(const char *name, const char *argl, int buf, ...) override;
|
||||||
virtual boost::any Call(const char *name, const char *argl, const std::vector<boost::any> &args) override;
|
virtual boost::any Call(const char *name, const char *argl, const std::vector<boost::any> &args) override;
|
||||||
|
|
||||||
|
static void Init();
|
||||||
|
static void Free();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
class Language
|
class Language
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~Language(){}
|
virtual ~Language() = default;
|
||||||
virtual void LoadProgram(const char* filename) = 0;
|
virtual void LoadProgram(const char* filename) = 0;
|
||||||
virtual int FreeProgram() = 0;
|
virtual int FreeProgram() = 0;
|
||||||
virtual bool IsCallbackPresent(const char* name) = 0;
|
virtual bool IsCallbackPresent(const char* name) = 0;
|
||||||
|
|
|
@ -5,16 +5,24 @@
|
||||||
#ifndef PLATFORM_HPP
|
#ifndef PLATFORM_HPP
|
||||||
#define PLATFORM_HPP
|
#define PLATFORM_HPP
|
||||||
|
|
||||||
#if _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#ifdef _M_X86
|
#ifdef _M_X86
|
||||||
#define ARCH_X86
|
#define ARCH_X86
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GNUC__
|
#ifdef __GNUC__
|
||||||
#ifdef __i386__
|
#ifdef __i386__
|
||||||
#define ARCH_X86
|
#define ARCH_X86
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define EXPORT_APIFUNCTION extern "C" __declspec(dllexport)
|
||||||
|
#define CDECL __cdecl
|
||||||
|
#else
|
||||||
|
#define EXPORT_APIFUNCTION extern "C" __attribute__ ((visibility ("default")))
|
||||||
|
#define CDECL
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif //PLATFORM_HPP
|
#endif //PLATFORM_HPP
|
||||||
|
|
|
@ -9,10 +9,28 @@
|
||||||
#include "LangLua/LangLua.hpp"
|
#include "LangLua/LangLua.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_MONO
|
||||||
|
#include "LangMono/LangMono.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
Script::ScriptList Script::scripts;
|
Script::ScriptList Script::scripts;
|
||||||
std::string Script::moddir;
|
std::string Script::moddir;
|
||||||
|
bool Script::debugMode = false;
|
||||||
|
|
||||||
|
inline void Load(Language *lang, const std::string &path)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
lang->LoadProgram(path.c_str());
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
lang->FreeProgram();
|
||||||
|
throw std::runtime_error("Failed to load: " + path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Script::Script(const char *path)
|
Script::Script(const char *path)
|
||||||
{
|
{
|
||||||
|
@ -23,35 +41,45 @@ Script::Script(const char *path)
|
||||||
|
|
||||||
fclose(file);
|
fclose(file);
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
if (strstr(path, ".dll"))
|
if (strstr(path, ".dll"))
|
||||||
#else
|
{
|
||||||
if (strstr(path, ".so"))
|
#ifdef ENABLE_MONO
|
||||||
|
script_type = SCRIPT_MONO;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
lang = new LangMono();
|
||||||
|
Load(lang, path);
|
||||||
|
}
|
||||||
|
catch(...)
|
||||||
|
{
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef _WIN32
|
||||||
|
script_type = SCRIPT_CPP;
|
||||||
|
lang = new LangNative();
|
||||||
|
Load(lang, path);
|
||||||
|
#endif
|
||||||
|
#ifdef ENABLE_MONO
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#ifndef _WIN32
|
||||||
|
else if (strstr(path, ".so"))
|
||||||
{
|
{
|
||||||
script_type = SCRIPT_CPP;
|
script_type = SCRIPT_CPP;
|
||||||
lang = new LangNative();
|
lang = new LangNative();
|
||||||
|
Load(lang, path);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#if defined (ENABLE_LUA)
|
#if defined (ENABLE_LUA)
|
||||||
else if (strstr(path, ".lua") || strstr(path, ".t"))
|
else if (strstr(path, ".lua") || strstr(path, ".t"))
|
||||||
{
|
{
|
||||||
lang = new LangLua();
|
|
||||||
script_type = SCRIPT_LUA;
|
script_type = SCRIPT_LUA;
|
||||||
|
lang = new LangLua();
|
||||||
|
Load(lang, path);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
else
|
else
|
||||||
throw runtime_error("Script type not recognized: " + string(path));
|
throw runtime_error("Script type not recognized: " + string(path));
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
lang->LoadProgram(path);
|
|
||||||
}
|
|
||||||
catch (...)
|
|
||||||
{
|
|
||||||
lang->FreeProgram();
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -106,3 +134,35 @@ const char* Script::GetModDir()
|
||||||
{
|
{
|
||||||
return moddir.c_str();
|
return moddir.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Script::IsDebugMode()
|
||||||
|
{
|
||||||
|
return debugMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Script::EnableDebugMode()
|
||||||
|
{
|
||||||
|
debugMode = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Script::Init()
|
||||||
|
{
|
||||||
|
#ifdef ENABLE_MONO
|
||||||
|
LangMono::Init();
|
||||||
|
#endif
|
||||||
|
#ifdef ENABLE_LUA
|
||||||
|
LangLua::Init();
|
||||||
|
#endif
|
||||||
|
LangNative::Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Script::Free()
|
||||||
|
{
|
||||||
|
#ifdef ENABLE_MONO
|
||||||
|
LangMono::Free();
|
||||||
|
#endif
|
||||||
|
#ifdef ENABLE_LUA
|
||||||
|
LangLua::Free();
|
||||||
|
#endif
|
||||||
|
LangNative::Free();
|
||||||
|
}
|
||||||
|
|
|
@ -27,7 +27,8 @@ private:
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
SCRIPT_CPP,
|
SCRIPT_CPP,
|
||||||
SCRIPT_LUA
|
SCRIPT_LUA,
|
||||||
|
SCRIPT_MONO
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename R>
|
template<typename R>
|
||||||
|
@ -56,9 +57,14 @@ private:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static std::string moddir;
|
static std::string moddir;
|
||||||
|
static bool debugMode;
|
||||||
public:
|
public:
|
||||||
~Script();
|
~Script();
|
||||||
|
|
||||||
|
static void Init();
|
||||||
|
static void Free();
|
||||||
|
static bool IsDebugMode();
|
||||||
|
static void EnableDebugMode();
|
||||||
static void LoadScript(const char *script, const char* base);
|
static void LoadScript(const char *script, const char* base);
|
||||||
static void LoadScripts(char* scripts, const char* base);
|
static void LoadScripts(char* scripts, const char* base);
|
||||||
static void UnloadScripts();
|
static void UnloadScripts();
|
||||||
|
@ -95,8 +101,7 @@ public:
|
||||||
|
|
||||||
if (script->script_type == SCRIPT_CPP)
|
if (script->script_type == SCRIPT_CPP)
|
||||||
(callback)(std::forward<Args>(args)...);
|
(callback)(std::forward<Args>(args)...);
|
||||||
#if defined (ENABLE_LUA)
|
else
|
||||||
else if (script->script_type == SCRIPT_LUA)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -110,7 +115,6 @@ public:
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
++count;
|
++count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,9 @@
|
||||||
#if defined (ENABLE_LUA)
|
#if defined (ENABLE_LUA)
|
||||||
#include "LangLua/LangLua.hpp"
|
#include "LangLua/LangLua.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(ENABLE_MONO)
|
||||||
|
#include "LangMono/LangMono.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
@ -24,7 +27,12 @@ ScriptFunction::ScriptFunction(const ScriptFuncLua &fLua, lua_State *lua, char r
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#if defined (ENABLE_MONO)
|
||||||
|
ScriptFunction::ScriptFunction(MonoObject *delegate, char ret_type, const std::string &def) :
|
||||||
|
fMono({delegate}), ret_type(ret_type), def(def), script_type(SCRIPT_MONO)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
ScriptFunction::~ScriptFunction()
|
ScriptFunction::~ScriptFunction()
|
||||||
{
|
{
|
||||||
|
@ -36,7 +44,7 @@ ScriptFunction::~ScriptFunction()
|
||||||
|
|
||||||
boost::any ScriptFunction::Call(const vector<boost::any> &args)
|
boost::any ScriptFunction::Call(const vector<boost::any> &args)
|
||||||
{
|
{
|
||||||
boost::any result;
|
boost::any result = boost::any();
|
||||||
|
|
||||||
if (def.length() != args.size())
|
if (def.length() != args.size())
|
||||||
throw runtime_error("Script call: Number of arguments does not match definition");
|
throw runtime_error("Script call: Number of arguments does not match definition");
|
||||||
|
@ -61,13 +69,78 @@ boost::any ScriptFunction::Call(const vector<boost::any> &args)
|
||||||
result = boost::any_cast<luabridge::LuaRef>(any).cast<const char*>();
|
result = boost::any_cast<luabridge::LuaRef>(any).cast<const char*>();
|
||||||
break;
|
break;
|
||||||
case 'v':
|
case 'v':
|
||||||
result = boost::any();
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw runtime_error("Lua call: Unknown return type" + ret_type);
|
throw runtime_error("Lua call: Unknown return type" + ret_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#if defined (ENABLE_MONO)
|
||||||
|
else if (script_type == SCRIPT_MONO)
|
||||||
|
{
|
||||||
|
std::vector<void *> argList(args.size());
|
||||||
|
TMonoArgsStore argsStore(args.size());
|
||||||
|
|
||||||
|
for (size_t index = 0; index < args.size(); index++)
|
||||||
|
{
|
||||||
|
switch (def[index])
|
||||||
|
{
|
||||||
|
case 'i':
|
||||||
|
{
|
||||||
|
argList[index] = MonoStoreAndGetPtr<unsigned int>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'q':
|
||||||
|
{
|
||||||
|
argList[index] = MonoStoreAndGetPtr<signed int>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'l':
|
||||||
|
{
|
||||||
|
argList[index] = MonoStoreAndGetPtr<unsigned long long>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'w':
|
||||||
|
{
|
||||||
|
argList[index] = MonoStoreAndGetPtr<signed long long>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'f':
|
||||||
|
{
|
||||||
|
argList[index] = MonoStoreAndGetPtr<double>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'p':
|
||||||
|
{
|
||||||
|
argList[index] = MonoStoreAndGetPtr<void *>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 's':
|
||||||
|
{
|
||||||
|
if (args.at(index).type() == typeid(std::string)) // mono to mono call
|
||||||
|
argList[index] = mono_string_new(mono_domain_get(),
|
||||||
|
boost::any_cast<std::string>(args.at(index)).c_str());
|
||||||
|
else // lua to mono
|
||||||
|
argList[index] = mono_string_new(mono_domain_get(),
|
||||||
|
boost::any_cast<const char *>(args.at(index)));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'b':
|
||||||
|
{
|
||||||
|
argList[index] = MonoStoreAndGetPtr<int>(argsStore, args, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw std::runtime_error("Call: Unknown argument identifier " + def[index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MonoObject *monoRet = mono_runtime_delegate_invoke(fMono.delegate, argList.data(), NULL);
|
||||||
|
if (monoRet != nullptr)
|
||||||
|
result = LangMono::ObjectToAny(monoRet);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,11 @@
|
||||||
#include "LangLua/LangLua.hpp"
|
#include "LangLua/LangLua.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined (ENABLE_MONO)
|
||||||
|
#include <mono/metadata/object.h>
|
||||||
|
#include <mono/metadata/appdomain.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef unsigned long long(*ScriptFunc)();
|
typedef unsigned long long(*ScriptFunc)();
|
||||||
#if defined (ENABLE_LUA)
|
#if defined (ENABLE_LUA)
|
||||||
typedef std::string ScriptFuncLua;
|
typedef std::string ScriptFuncLua;
|
||||||
|
@ -29,26 +34,37 @@ protected:
|
||||||
lua_State *lua;
|
lua_State *lua;
|
||||||
ScriptFuncLua name;
|
ScriptFuncLua name;
|
||||||
} fLua;
|
} fLua;
|
||||||
|
#endif
|
||||||
|
#ifdef ENABLE_MONO
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
MonoObject *delegate;
|
||||||
|
} fMono;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
protected:
|
public:
|
||||||
char ret_type;
|
char ret_type;
|
||||||
std::string def;
|
std::string def;
|
||||||
int script_type;
|
int script_type;
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
SCRIPT_CPP,
|
SCRIPT_CPP,
|
||||||
SCRIPT_LUA
|
SCRIPT_LUA,
|
||||||
|
SCRIPT_MONO
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boost::any Call(const std::vector<boost::any> &args);
|
||||||
|
protected:
|
||||||
|
|
||||||
ScriptFunction(ScriptFunc fCpp, char ret_type, const std::string &def);
|
ScriptFunction(ScriptFunc fCpp, char ret_type, const std::string &def);
|
||||||
#if defined (ENABLE_LUA)
|
#if defined (ENABLE_LUA)
|
||||||
ScriptFunction(const ScriptFuncLua &fPawn, lua_State *lua, char ret_type, const std::string &def);
|
ScriptFunction(const ScriptFuncLua &fPawn, lua_State *lua, char ret_type, const std::string &def);
|
||||||
|
#endif
|
||||||
|
#if defined (ENABLE_MONO)
|
||||||
|
ScriptFunction(MonoObject *delegate, char ret_type, const std::string &def);
|
||||||
#endif
|
#endif
|
||||||
virtual ~ScriptFunction();
|
virtual ~ScriptFunction();
|
||||||
|
|
||||||
boost::any Call(const std::vector<boost::any> &args);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //SCRIPTFUNCTION_HPP
|
#endif //SCRIPTFUNCTION_HPP
|
||||||
|
|
|
@ -56,7 +56,7 @@ void ScriptFunctions::GetArguments(std::vector<boost::any> ¶ms, va_list args
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw runtime_error("C++ call: Unknown argument identifier " + c);
|
throw runtime_error(std::string("C++ call: Unknown argument identifier ") + c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -68,24 +68,3 @@ void ScriptFunctions::GetArguments(std::vector<boost::any> ¶ms, va_list args
|
||||||
}
|
}
|
||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptFunctions::MakePublic(ScriptFunc _public, const char *name, char ret_type, const char *def) noexcept
|
|
||||||
{
|
|
||||||
Public::MakePublic(_public, name, ret_type, def);
|
|
||||||
}
|
|
||||||
|
|
||||||
boost::any ScriptFunctions::CallPublic(const char *name, va_list args) noexcept
|
|
||||||
{
|
|
||||||
vector<boost::any> params;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string def = Public::GetDefinition(name);
|
|
||||||
GetArguments(params, args, def);
|
|
||||||
|
|
||||||
return Public::Call(name, params);
|
|
||||||
}
|
|
||||||
catch (...) {}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <Script/Functions/Miscellaneous.hpp>
|
#include <Script/Functions/Miscellaneous.hpp>
|
||||||
#include <Script/Functions/Objects.hpp>
|
#include <Script/Functions/Objects.hpp>
|
||||||
#include <Script/Functions/Positions.hpp>
|
#include <Script/Functions/Positions.hpp>
|
||||||
|
#include <Script/Functions/Public.hpp>
|
||||||
#include <Script/Functions/Quests.hpp>
|
#include <Script/Functions/Quests.hpp>
|
||||||
#include <Script/Functions/RecordsDynamic.hpp>
|
#include <Script/Functions/RecordsDynamic.hpp>
|
||||||
#include <Script/Functions/Shapeshift.hpp>
|
#include <Script/Functions/Shapeshift.hpp>
|
||||||
|
@ -21,6 +22,7 @@
|
||||||
#include <Script/Functions/Settings.hpp>
|
#include <Script/Functions/Settings.hpp>
|
||||||
#include <Script/Functions/Spells.hpp>
|
#include <Script/Functions/Spells.hpp>
|
||||||
#include <Script/Functions/Stats.hpp>
|
#include <Script/Functions/Stats.hpp>
|
||||||
|
#include <Script/Functions/Timer.hpp>
|
||||||
#include <Script/Functions/Worldstate.hpp>
|
#include <Script/Functions/Worldstate.hpp>
|
||||||
#include <RakNetTypes.h>
|
#include <RakNetTypes.h>
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
|
@ -46,89 +48,19 @@
|
||||||
class ScriptFunctions
|
class ScriptFunctions
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
static void GetArguments(std::vector<boost::any> ¶ms, va_list args, const std::string &def);
|
static void GetArguments(std::vector<boost::any> ¶ms, va_list args, const std::string &def);
|
||||||
static void MakePublic(ScriptFunc _public, const char *name, char ret_type, const char *def) noexcept;
|
|
||||||
static boost::any CallPublic(const char *name, va_list args) noexcept;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Create a timer that will run a script function after a certain interval.
|
|
||||||
*
|
|
||||||
* \param callback The Lua script function.
|
|
||||||
* \param msec The interval in miliseconds.
|
|
||||||
* \return The ID of the timer thus created.
|
|
||||||
*/
|
|
||||||
static int CreateTimer(ScriptFunc callback, int msec) noexcept;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Create a timer that will run a script function after a certain interval and pass
|
|
||||||
* certain arguments to it.
|
|
||||||
*
|
|
||||||
* Example usage:
|
|
||||||
* - tes3mp.CreateTimerEx("OnTimerTest1", 250, "i", 90)
|
|
||||||
* - tes3mp.CreateTimerEx("OnTimerTest2", 500, "sif", "Test string", 60, 77.321)
|
|
||||||
*
|
|
||||||
* \param callback The Lua script function.
|
|
||||||
* \param msec The interval in miliseconds.
|
|
||||||
* \param types The argument types.
|
|
||||||
* \param args The arguments.
|
|
||||||
* \return The ID of the timer thus created.
|
|
||||||
*/
|
|
||||||
static int CreateTimerEx(ScriptFunc callback, int msec, const char *types, va_list args) noexcept;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Start the timer with a certain ID.
|
|
||||||
*
|
|
||||||
* \param timerId The timer ID.
|
|
||||||
* \return void
|
|
||||||
*/
|
|
||||||
static void StartTimer(int timerId) noexcept;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Stop the timer with a certain ID.
|
|
||||||
*
|
|
||||||
* \param timerId The timer ID.
|
|
||||||
* \return void
|
|
||||||
*/
|
|
||||||
static void StopTimer(int timerId) noexcept;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Restart the timer with a certain ID for a certain interval.
|
|
||||||
*
|
|
||||||
* \param timerId The timer ID.
|
|
||||||
* \param msec The interval in miliseconds.
|
|
||||||
* \return void
|
|
||||||
*/
|
|
||||||
static void RestartTimer(int timerId, int msec) noexcept;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Free the timer with a certain ID.
|
|
||||||
*
|
|
||||||
* \param timerId The timer ID.
|
|
||||||
* \return void
|
|
||||||
*/
|
|
||||||
static void FreeTimer(int timerId) noexcept;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Check whether a timer is elapsed.
|
|
||||||
*
|
|
||||||
* \param timerId The timer ID.
|
|
||||||
* \return Whether the timer is elapsed.
|
|
||||||
*/
|
|
||||||
static bool IsTimerElapsed(int timerId) noexcept;
|
|
||||||
|
|
||||||
|
|
||||||
static constexpr ScriptFunctionData functions[]{
|
static constexpr ScriptFunctionData functions[]{
|
||||||
{"CreateTimer", ScriptFunctions::CreateTimer},
|
{"CreateTimer", TimerFunctions::CreateTimer},
|
||||||
{"CreateTimerEx", ScriptFunctions::CreateTimerEx},
|
{"CreateTimerEx", TimerFunctions::CreateTimerEx},
|
||||||
{"MakePublic", ScriptFunctions::MakePublic},
|
{"MakePublic", PublicFunctions::MakePublic},
|
||||||
{"CallPublic", ScriptFunctions::CallPublic},
|
{"CallPublic", PublicFunctions::CallPublic},
|
||||||
|
|
||||||
{"StartTimer", ScriptFunctions::StartTimer},
|
{"StartTimer", TimerFunctions::StartTimer},
|
||||||
{"StopTimer", ScriptFunctions::StopTimer},
|
{"StopTimer", TimerFunctions::StopTimer},
|
||||||
{"RestartTimer", ScriptFunctions::RestartTimer},
|
{"RestartTimer", TimerFunctions::RestartTimer},
|
||||||
{"FreeTimer", ScriptFunctions::FreeTimer},
|
{"FreeTimer", TimerFunctions::FreeTimer},
|
||||||
{"IsTimerElapsed", ScriptFunctions::IsTimerElapsed},
|
{"IsTimerElapsed", TimerFunctions::IsTimerElapsed},
|
||||||
|
|
||||||
ACTORAPI,
|
ACTORAPI,
|
||||||
BOOKAPI,
|
BOOKAPI,
|
||||||
|
|
|
@ -103,13 +103,9 @@ struct CallbackIdentity
|
||||||
struct ScriptFunctionPointer : public ScriptIdentity
|
struct ScriptFunctionPointer : public ScriptIdentity
|
||||||
{
|
{
|
||||||
void *addr;
|
void *addr;
|
||||||
#if (!defined(__clang__) && defined(__GNUC__))
|
|
||||||
template<typename R, typename... Types>
|
template<typename R, typename... Types>
|
||||||
constexpr ScriptFunctionPointer(Function<R, Types...> addr) : ScriptIdentity(addr), addr(reinterpret_cast<void*>(addr)) {}
|
constexpr ScriptFunctionPointer(Function<R, Types...> addr) : ScriptIdentity(addr), addr((void*)(addr)) {}
|
||||||
#else
|
|
||||||
template<typename R, typename... Types>
|
|
||||||
constexpr ScriptFunctionPointer(Function<R, Types...> addr) : ScriptIdentity(addr), addr(addr) {}
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ScriptFunctionData
|
struct ScriptFunctionData
|
||||||
|
|
|
@ -17,7 +17,6 @@ const vector<string> Utils::split(const string &str, int delimiter)
|
||||||
else if (!buffer.empty())
|
else if (!buffer.empty())
|
||||||
{
|
{
|
||||||
result.push_back(move(buffer));
|
result.push_back(move(buffer));
|
||||||
buffer.clear();
|
|
||||||
}
|
}
|
||||||
if (!buffer.empty())
|
if (!buffer.empty())
|
||||||
result.push_back(move(buffer));
|
result.push_back(move(buffer));
|
||||||
|
@ -25,7 +24,7 @@ const vector<string> Utils::split(const string &str, int delimiter)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
ESM::Cell Utils::getCellFromDescription(std::string cellDescription)
|
ESM::Cell Utils::getCellFromDescription(const std::string &cellDescription)
|
||||||
{
|
{
|
||||||
ESM::Cell cell;
|
ESM::Cell cell;
|
||||||
cell.blank();
|
cell.blank();
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace Utils
|
||||||
{
|
{
|
||||||
const std::vector<std::string> split(const std::string &str, int delimiter);
|
const std::vector<std::string> split(const std::string &str, int delimiter);
|
||||||
|
|
||||||
ESM::Cell getCellFromDescription(std::string cellDescription);
|
ESM::Cell getCellFromDescription(const std::string &cellDescription);
|
||||||
|
|
||||||
template<size_t N>
|
template<size_t N>
|
||||||
constexpr unsigned int hash(const char(&str)[N], size_t I = N)
|
constexpr unsigned int hash(const char(&str)[N], size_t I = N)
|
||||||
|
|
|
@ -27,6 +27,10 @@
|
||||||
|
|
||||||
#include <apps/openmw-mp/Script/Script.hpp>
|
#include <apps/openmw-mp/Script/Script.hpp>
|
||||||
|
|
||||||
|
#ifdef ENABLE_MONO
|
||||||
|
#include <mono/metadata/assembly.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_BREAKPAD
|
#ifdef ENABLE_BREAKPAD
|
||||||
#include <handler/exception_handler.h>
|
#include <handler/exception_handler.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -130,6 +134,7 @@ boost::program_options::variables_map launchOptions(int argc, char *argv[], File
|
||||||
|
|
||||||
desc.add_options()
|
desc.add_options()
|
||||||
("resources", bpo::value<Files::EscapeHashString>()->default_value("resources"), "set resources directory")
|
("resources", bpo::value<Files::EscapeHashString>()->default_value("resources"), "set resources directory")
|
||||||
|
("debug", bpo::value<bool>()->implicit_value(true)->default_value(false), "Enable debug mode for scripts (if supported)")
|
||||||
("no-logs", bpo::value<bool>()->implicit_value(true)->default_value(false),
|
("no-logs", bpo::value<bool>()->implicit_value(true)->default_value(false),
|
||||||
"Do not write logs. Useful for daemonizing.");
|
"Do not write logs. Useful for daemonizing.");
|
||||||
|
|
||||||
|
@ -233,6 +238,10 @@ int main(int argc, char *argv[])
|
||||||
LangLua::AddPackageCPath(Utils::convertPath(plugin_home + "/lib/?.so"));
|
LangLua::AddPackageCPath(Utils::convertPath(plugin_home + "/lib/?.so"));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_MONO
|
||||||
|
mono_set_dirs(Utils::convertPath(plugin_home + "/mono").c_str(), Utils::convertPath(plugin_home + "/mono/etc").c_str());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int code;
|
int code;
|
||||||
|
@ -256,6 +265,9 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (variables["debug"].as<bool>())
|
||||||
|
Script::EnableDebugMode();
|
||||||
|
Script::Init();
|
||||||
for (auto plugin : plugins)
|
for (auto plugin : plugins)
|
||||||
Script::LoadScript(plugin.c_str(), plugin_home.c_str());
|
Script::LoadScript(plugin.c_str(), plugin_home.c_str());
|
||||||
|
|
||||||
|
@ -309,13 +321,15 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
networking.InitQuery(masterAddr, (unsigned short) masterPort);
|
networking.InitQuery(masterAddr, (unsigned short) masterPort);
|
||||||
networking.getMasterClient()->SetMaxPlayers((unsigned) players);
|
auto masterClient = networking.getMasterClient();
|
||||||
networking.getMasterClient()->SetUpdateRate((unsigned) updateRate);
|
|
||||||
string hostname = mgr.getString("hostname", "General");
|
|
||||||
networking.getMasterClient()->SetHostname(hostname);
|
|
||||||
networking.getMasterClient()->SetRuleString("CommitHash", version.mCommitHash.substr(0, 10));
|
|
||||||
|
|
||||||
networking.getMasterClient()->Start();
|
masterClient->SetMaxPlayers((unsigned) players);
|
||||||
|
masterClient->SetUpdateRate((unsigned) updateRate);
|
||||||
|
string hostname = mgr.getString("hostname", "General");
|
||||||
|
masterClient->SetHostname(hostname);
|
||||||
|
masterClient->SetRuleString("CommitHash", version.mCommitHash.substr(0, 10));
|
||||||
|
|
||||||
|
masterClient->Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
networking.postInit();
|
networking.postInit();
|
||||||
|
@ -323,6 +337,7 @@ int main(int argc, char *argv[])
|
||||||
code = networking.mainLoop();
|
code = networking.mainLoop();
|
||||||
|
|
||||||
networking.getMasterClient()->Stop();
|
networking.getMasterClient()->Stop();
|
||||||
|
Script::Free();
|
||||||
}
|
}
|
||||||
catch (std::exception &e)
|
catch (std::exception &e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,7 +31,7 @@ bool ActorProcessor::Process(RakNet::Packet &packet, BaseActorList &actorList) n
|
||||||
if (!processor.second->avoidReading)
|
if (!processor.second->avoidReading)
|
||||||
myPacket->Read();
|
myPacket->Read();
|
||||||
|
|
||||||
if (actorList.isValid)
|
if (actorList.isValid) // -V547
|
||||||
processor.second->Do(*myPacket, *player, actorList);
|
processor.second->Do(*myPacket, *player, actorList);
|
||||||
else
|
else
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
||||||
|
|
|
@ -31,7 +31,7 @@ bool ObjectProcessor::Process(RakNet::Packet &packet, BaseObjectList &objectList
|
||||||
if (!processor.second->avoidReading)
|
if (!processor.second->avoidReading)
|
||||||
myPacket->Read();
|
myPacket->Read();
|
||||||
|
|
||||||
if (objectList.isValid)
|
if (objectList.isValid) // -V547 (PVS Studio false-positive warning)
|
||||||
processor.second->Do(*myPacket, *player, objectList);
|
processor.second->Do(*myPacket, *player, objectList);
|
||||||
else
|
else
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
||||||
|
|
|
@ -28,7 +28,7 @@ bool WorldstateProcessor::Process(RakNet::Packet &packet, BaseWorldstate &worlds
|
||||||
if (!processor.second->avoidReading)
|
if (!processor.second->avoidReading)
|
||||||
myPacket->Read();
|
myPacket->Read();
|
||||||
|
|
||||||
if (worldstate.isValid)
|
if (worldstate.isValid) // -V547 (PVS Studio false-positive warning)
|
||||||
processor.second->Do(*myPacket, *player, worldstate);
|
processor.second->Do(*myPacket, *player, worldstate);
|
||||||
else
|
else
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
||||||
|
|
|
@ -265,3 +265,10 @@ endif (MSVC)
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
INSTALL(TARGETS tes3mp RUNTIME DESTINATION ".")
|
INSTALL(TARGETS tes3mp RUNTIME DESTINATION ".")
|
||||||
endif (WIN32)
|
endif (WIN32)
|
||||||
|
|
||||||
|
if (ENABLE_PVS)
|
||||||
|
pvs_studio_add_target(TARGET tes3mp.analyze ALL
|
||||||
|
OUTPUT FORMAT errorfile
|
||||||
|
ANALYZE tes3mp
|
||||||
|
LOG target_tes3mp.err)
|
||||||
|
endif()
|
||||||
|
|
|
@ -146,14 +146,11 @@ mwmp::Target MechanicsHelper::getTarget(const MWWorld::Ptr& ptr)
|
||||||
{
|
{
|
||||||
MWWorld::CellRef *ptrRef = &ptr.getCellRef();
|
MWWorld::CellRef *ptrRef = &ptr.getCellRef();
|
||||||
|
|
||||||
if (ptrRef)
|
target.isPlayer = false;
|
||||||
{
|
target.refId = ptrRef->getRefId();
|
||||||
target.isPlayer = false;
|
target.refNum = ptrRef->getRefNum().mIndex;
|
||||||
target.refId = ptrRef->getRefId();
|
target.mpNum = ptrRef->getMpNum();
|
||||||
target.refNum = ptrRef->getRefNum().mIndex;
|
target.name = ptr.getClass().getName(ptr);
|
||||||
target.mpNum = ptrRef->getMpNum();
|
|
||||||
target.name = ptr.getClass().getName(ptr);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -453,8 +453,6 @@ void RecordHelper::overrideArmorRecord(const mwmp::ArmorRecord& record)
|
||||||
ESM::Armor finalData = *baseData;
|
ESM::Armor finalData = *baseData;
|
||||||
finalData.mId = recordData.mId;
|
finalData.mId = recordData.mId;
|
||||||
|
|
||||||
finalData.mParts.mParts.at(0);
|
|
||||||
|
|
||||||
if (record.baseOverrides.hasName)
|
if (record.baseOverrides.hasName)
|
||||||
finalData.mName = recordData.mName;
|
finalData.mName = recordData.mName;
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ bool ActorProcessor::Process(RakNet::Packet &packet, ActorList &actorList)
|
||||||
myPacket->Read();
|
myPacket->Read();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actorList.isValid)
|
if (actorList.isValid) // -V547 (PVS Studio false-positive warning)
|
||||||
processor.second->Do(*myPacket, actorList);
|
processor.second->Do(*myPacket, actorList);
|
||||||
else
|
else
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
||||||
|
|
|
@ -31,7 +31,7 @@ bool ObjectProcessor::Process(RakNet::Packet &packet, ObjectList &objectList)
|
||||||
if (!request && !processor.second->avoidReading)
|
if (!request && !processor.second->avoidReading)
|
||||||
myPacket->Read();
|
myPacket->Read();
|
||||||
|
|
||||||
if (objectList.isValid)
|
if (objectList.isValid) // -V547 (PVS Studio false-positive warning)
|
||||||
processor.second->Do(*myPacket, objectList);
|
processor.second->Do(*myPacket, objectList);
|
||||||
else
|
else
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
||||||
|
|
|
@ -31,7 +31,7 @@ bool WorldstateProcessor::Process(RakNet::Packet &packet, Worldstate &worldstate
|
||||||
if (!request && !processor.second->avoidReading)
|
if (!request && !processor.second->avoidReading)
|
||||||
myPacket->Read();
|
myPacket->Read();
|
||||||
|
|
||||||
if (worldstate.isValid)
|
if (worldstate.isValid) // -V547 (PVS Studio false-positive warning)
|
||||||
processor.second->Do(*myPacket, worldstate);
|
processor.second->Do(*myPacket, worldstate);
|
||||||
else
|
else
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
LOG_MESSAGE_SIMPLE(Log::LOG_ERROR, "Received %s that failed integrity check and was ignored!", processor.second->strPacketID.c_str());
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace mwmp
|
||||||
ProcessorPlayerCellState()
|
ProcessorPlayerCellState()
|
||||||
{
|
{
|
||||||
BPP_INIT(ID_PLAYER_CELL_STATE)
|
BPP_INIT(ID_PLAYER_CELL_STATE)
|
||||||
avoidReading = true;
|
avoidReading = true; // -V519 (PVS Studio false-positive warning)
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void Do(PlayerPacket &packet, BasePlayer *player)
|
virtual void Do(PlayerPacket &packet, BasePlayer *player)
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace mwmp
|
||||||
ProcessorPlayerDeath()
|
ProcessorPlayerDeath()
|
||||||
{
|
{
|
||||||
BPP_INIT(ID_PLAYER_DEATH)
|
BPP_INIT(ID_PLAYER_DEATH)
|
||||||
avoidReading = true;
|
avoidReading = true; // -V519 (PVS Studio false-positive warning)
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void Do(PlayerPacket &packet, BasePlayer *player)
|
virtual void Do(PlayerPacket &packet, BasePlayer *player)
|
||||||
|
|
|
@ -18,7 +18,7 @@ namespace mwmp
|
||||||
ProcessorUserDisconnected()
|
ProcessorUserDisconnected()
|
||||||
{
|
{
|
||||||
BPP_INIT(ID_USER_DISCONNECTED)
|
BPP_INIT(ID_USER_DISCONNECTED)
|
||||||
avoidReading = true;
|
avoidReading = true; // -V519 (PVS Studio false-positive warning)
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void Do(PlayerPacket &packet, BasePlayer *player)
|
virtual void Do(PlayerPacket &packet, BasePlayer *player)
|
||||||
|
|
9
cmake/FindMono.cmake
Normal file
9
cmake/FindMono.cmake
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
include(LibFindMacros)
|
||||||
|
|
||||||
|
libfind_pkg_detect(MONO mono-2.0
|
||||||
|
FIND_PATH mono/jit/jit.h
|
||||||
|
PATH_SUFFIXES mono-2.0
|
||||||
|
FIND_LIBRARY NAMES mono-2.0
|
||||||
|
)
|
||||||
|
|
||||||
|
libfind_process(MONO)
|
|
@ -306,3 +306,10 @@ endif()
|
||||||
|
|
||||||
# Make the variable accessible for other subdirectories
|
# Make the variable accessible for other subdirectories
|
||||||
set(COMPONENT_FILES ${COMPONENT_FILES} PARENT_SCOPE)
|
set(COMPONENT_FILES ${COMPONENT_FILES} PARENT_SCOPE)
|
||||||
|
|
||||||
|
if (ENABLE_PVS)
|
||||||
|
pvs_studio_add_target(TARGET components.analyze ALL
|
||||||
|
OUTPUT FORMAT errorfile
|
||||||
|
ANALYZE components
|
||||||
|
LOG target_components.err)
|
||||||
|
endif()
|
||||||
|
|
|
@ -61,7 +61,7 @@ namespace mwmp
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
BaseActorList()
|
BaseActorList(): count(0), action(0), isValid(false)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,12 +81,13 @@ namespace mwmp
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
BaseObjectList(RakNet::RakNetGUID guid) : guid(guid)
|
BaseObjectList(RakNet::RakNetGUID guid) : guid(guid), baseObjectCount(0), packetOrigin(0), action(0),
|
||||||
|
containerSubAction(0), isValid(false)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseObjectList()
|
BaseObjectList(): baseObjectCount(0), packetOrigin(0), action(0), containerSubAction(0), isValid(false)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,15 +43,15 @@ struct QueryData
|
||||||
QueryData()
|
QueryData()
|
||||||
{
|
{
|
||||||
rules["name"].type = ServerRule::Type::string;
|
rules["name"].type = ServerRule::Type::string;
|
||||||
rules["name"].str = "";
|
rules["name"].str.clear();
|
||||||
rules["version"].type = ServerRule::Type::string;
|
rules["version"].type = ServerRule::Type::string;
|
||||||
rules["version"].str = "";
|
rules["version"].str.clear();
|
||||||
rules["players"].type = ServerRule::Type::number;
|
rules["players"].type = ServerRule::Type::number;
|
||||||
rules["players"].val = 0;
|
rules["players"].val = 0;
|
||||||
rules["maxPlayers"].type = ServerRule::Type::number;
|
rules["maxPlayers"].type = ServerRule::Type::number;
|
||||||
rules["maxPlayers"].val = 0;
|
rules["maxPlayers"].val = 0;
|
||||||
rules["gamemode"].type = ServerRule::Type::string;
|
rules["gamemode"].type = ServerRule::Type::string;
|
||||||
rules["gamemode"].str = "";
|
rules["gamemode"].str.clear();
|
||||||
rules["passw"].type = ServerRule::Type::number;
|
rules["passw"].type = ServerRule::Type::number;
|
||||||
rules["passw"].val = 0;
|
rules["passw"].val = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,8 @@ using namespace std;
|
||||||
|
|
||||||
PacketMasterAnnounce::PacketMasterAnnounce(RakNet::RakPeerInterface *peer) : BasePacket(peer)
|
PacketMasterAnnounce::PacketMasterAnnounce(RakNet::RakPeerInterface *peer) : BasePacket(peer)
|
||||||
{
|
{
|
||||||
|
server = nullptr;
|
||||||
|
func = 0;
|
||||||
packetID = ID_MASTER_ANNOUNCE;
|
packetID = ID_MASTER_ANNOUNCE;
|
||||||
orderChannel = CHANNEL_MASTER;
|
orderChannel = CHANNEL_MASTER;
|
||||||
reliability = RELIABLE_ORDERED_WITH_ACK_RECEIPT;
|
reliability = RELIABLE_ORDERED_WITH_ACK_RECEIPT;
|
||||||
|
|
|
@ -15,6 +15,7 @@ using namespace RakNet;
|
||||||
|
|
||||||
PacketMasterQuery::PacketMasterQuery(RakNet::RakPeerInterface *peer) : BasePacket(peer)
|
PacketMasterQuery::PacketMasterQuery(RakNet::RakPeerInterface *peer) : BasePacket(peer)
|
||||||
{
|
{
|
||||||
|
servers = nullptr;
|
||||||
packetID = ID_MASTER_QUERY;
|
packetID = ID_MASTER_QUERY;
|
||||||
orderChannel = CHANNEL_MASTER;
|
orderChannel = CHANNEL_MASTER;
|
||||||
reliability = RELIABLE_ORDERED_WITH_ACK_RECEIPT;
|
reliability = RELIABLE_ORDERED_WITH_ACK_RECEIPT;
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue