Merge branch 'master' into jgrpp
# Conflicts: # CMakeLists.txt # src/saveload/town_sl.cpp # src/screenshot.h # src/script/api/ai/ai_date.hpp.sq # src/script/api/ai/ai_marine.hpp.sq # src/script/api/ai/ai_station.hpp.sq # src/script/api/game/game_date.hpp.sq # src/script/api/game/game_marine.hpp.sq # src/script/api/game/game_station.hpp.sq # src/script/api/game/game_window.hpp.sq # src/script/api/script_window.hpp # src/script/api/template/template_window.hpp.sq # src/signal.cpp # src/statusbar_gui.cpp # src/toolbar_gui.cpp # src/viewport.cpp # src/viewport_func.hpull/192/head
commit
5b78090a61
@ -0,0 +1,119 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
#
|
||||
# CMake script to automatically generate the enums in script_window.hpp
|
||||
#
|
||||
# The file is scanned for @enum tokens, and the placeholder is filled with an enum from a different file.
|
||||
#
|
||||
# Example:
|
||||
# // @enum enumname filename@placeholder@
|
||||
# ... content here is replaced ...
|
||||
# // @endenum
|
||||
#
|
||||
# The parameter "enumname" specifies the enumeration to extract. This can also be a regular expression.
|
||||
# The parameter "filename" specifies the relative path to the file, where the enumeration is extracted from. This can also be a glob expression.
|
||||
#
|
||||
#
|
||||
|
||||
if (NOT GENERATE_SOURCE_FILE)
|
||||
message(FATAL_ERROR "Script needs GENERATE_SOURCE_FILE defined")
|
||||
endif (NOT GENERATE_SOURCE_FILE)
|
||||
if (NOT GENERATE_BINARY_FILE)
|
||||
message(FATAL_ERROR "Script needs GENERATE_BINARY_FILE defined")
|
||||
endif (NOT GENERATE_BINARY_FILE)
|
||||
|
||||
file(STRINGS ${GENERATE_SOURCE_FILE} ENUM_LINES REGEX "@enum")
|
||||
|
||||
foreach(ENUM IN LISTS ENUM_LINES)
|
||||
string(REGEX REPLACE "^( )// @enum ([^ ]+) ([^ ]+)@([^ ]+)@" "\\4" PLACE_HOLDER "${ENUM}")
|
||||
set(ADD_INDENT "${CMAKE_MATCH_1}")
|
||||
set(ENUM_PATTERN "${CMAKE_MATCH_2}")
|
||||
|
||||
file(GLOB FILENAMES "${CMAKE_MATCH_3}")
|
||||
list(SORT FILENAMES)
|
||||
|
||||
foreach(FILE IN LISTS FILENAMES)
|
||||
unset(ACTIVE)
|
||||
unset(ACTIVE_COMMENT)
|
||||
unset(COMMENT)
|
||||
|
||||
file(STRINGS ${FILE} SOURCE_LINES)
|
||||
|
||||
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" FILE ${FILE})
|
||||
string(APPEND ${PLACE_HOLDER} "\n${ADD_INDENT}/* automatically generated from ${FILE} */")
|
||||
|
||||
foreach(LINE IN LISTS SOURCE_LINES)
|
||||
string(REPLACE "${RM_INDENT}" "" LINE "${LINE}")
|
||||
|
||||
# Remember possible doxygen comment before enum declaration
|
||||
if ((NOT ACTIVE) AND "${LINE}" MATCHES "/\\*\\*")
|
||||
set(COMMENT "${ADD_INDENT}${LINE}")
|
||||
set(ACTIVE_COMMENT 1)
|
||||
elseif (ACTIVE_COMMENT EQUAL 1)
|
||||
string(APPEND COMMENT "\n${ADD_INDENT}${LINE}")
|
||||
endif()
|
||||
|
||||
# Check for enum match
|
||||
if ("${LINE}" MATCHES "^ *enum *${ENUM_PATTERN} *\{")
|
||||
# REGEX REPLACE does a REGEX MATCHALL and fails if an empty string is matched
|
||||
string(REGEX MATCH "[^ ]*" RESULT "${LINE}")
|
||||
string(REPLACE "${RESULT}" "" RM_INDENT "${LINE}")
|
||||
|
||||
set(ACTIVE 1)
|
||||
if (ACTIVE_COMMENT GREATER 0)
|
||||
string(APPEND ${PLACE_HOLDER} "\n${COMMENT}")
|
||||
endif (ACTIVE_COMMENT GREATER 0)
|
||||
unset(ACTIVE_COMMENT)
|
||||
unset(COMMENT)
|
||||
endif ("${LINE}" MATCHES "^ *enum *${ENUM_PATTERN} *\{")
|
||||
|
||||
# Forget doxygen comment, if no enum follows
|
||||
if (ACTIVE_COMMENT EQUAL 2 AND NOT "${LINE}" STREQUAL "")
|
||||
unset(ACTIVE_COMMENT)
|
||||
unset(COMMENT)
|
||||
endif (ACTIVE_COMMENT EQUAL 2 AND NOT "${LINE}" STREQUAL "")
|
||||
if (ACTIVE_COMMENT EQUAL 1 AND "${LINE}" MATCHES "\\*/")
|
||||
set(ACTIVE_COMMENT 2)
|
||||
endif (ACTIVE_COMMENT EQUAL 1 AND "${LINE}" MATCHES "\\*/")
|
||||
|
||||
if (ACTIVE)
|
||||
if ("${LINE}" MATCHES "^ *[A-Za-z0-9_]* *[,=]")
|
||||
# Transform enum values
|
||||
# REGEX REPLACE does a REGEX MATCHALL and replaces too much
|
||||
string(REGEX MATCH " *=[^,]*" RESULT "${LINE}")
|
||||
string(REPLACE "${RESULT}" "" LINE "${LINE}")
|
||||
|
||||
string(REGEX REPLACE " *//" " //" LINE "${LINE}")
|
||||
|
||||
string(REGEX MATCH "^( *)([A-Za-z0-9_]+),(.*)" RESULT "${LINE}")
|
||||
|
||||
string(LENGTH "${CMAKE_MATCH_2}" LEN)
|
||||
math(EXPR LEN "43 - ${LEN}")
|
||||
unset(SPACES)
|
||||
foreach(i RANGE ${LEN})
|
||||
string(APPEND SPACES " ")
|
||||
endforeach(i)
|
||||
|
||||
if (CMAKE_MATCH_3)
|
||||
string(APPEND ${PLACE_HOLDER} "\n${ADD_INDENT}${CMAKE_MATCH_1}${CMAKE_MATCH_2}${SPACES} = ::${CMAKE_MATCH_2},${SPACES}${CMAKE_MATCH_3}")
|
||||
else (CMAKE_MATCH_3)
|
||||
string(APPEND ${PLACE_HOLDER} "\n${ADD_INDENT}${CMAKE_MATCH_1}${CMAKE_MATCH_2}${SPACES} = ::${CMAKE_MATCH_2},")
|
||||
endif (CMAKE_MATCH_3)
|
||||
elseif ("${LINE}" STREQUAL "")
|
||||
string(APPEND ${PLACE_HOLDER} "\n")
|
||||
else ()
|
||||
string(APPEND ${PLACE_HOLDER} "\n${ADD_INDENT}${LINE}")
|
||||
endif ()
|
||||
endif (ACTIVE)
|
||||
|
||||
if ("${LINE}" MATCHES "^ *\};")
|
||||
if (ACTIVE)
|
||||
string(APPEND ${PLACE_HOLDER} "\n")
|
||||
endif (ACTIVE)
|
||||
unset(ACTIVE)
|
||||
endif ("${LINE}" MATCHES "^ *\};")
|
||||
endforeach(LINE)
|
||||
endforeach(FILE)
|
||||
endforeach(ENUM)
|
||||
|
||||
configure_file(${GENERATE_SOURCE_FILE} ${GENERATE_BINARY_FILE})
|
@ -0,0 +1,667 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
if (NOT SCRIPT_API_SOURCE_FILE)
|
||||
message(FATAL_ERROR "Script needs SCRIPT_API_SOURCE_FILE defined")
|
||||
endif (NOT SCRIPT_API_SOURCE_FILE)
|
||||
if (NOT SCRIPT_API_BINARY_FILE)
|
||||
message(FATAL_ERROR "Script needs SCRIPT_API_BINARY_FILE defined")
|
||||
endif (NOT SCRIPT_API_BINARY_FILE)
|
||||
if (NOT SCRIPT_API_FILE)
|
||||
message(FATAL_ERROR "Script needs SCRIPT_API_FILE defined")
|
||||
endif (NOT SCRIPT_API_FILE)
|
||||
if (NOT APIUC)
|
||||
message(FATAL_ERROR "Script needs APIUC defined")
|
||||
endif (NOT APIUC)
|
||||
if (NOT APILC)
|
||||
message(FATAL_ERROR "Script needs APILC defined")
|
||||
endif (NOT APILC)
|
||||
|
||||
macro(dump_fileheader)
|
||||
get_filename_component(SCRIPT_API_FILE_NAME "${SCRIPT_API_FILE}" NAME)
|
||||
string(APPEND SQUIRREL_EXPORT "\n#include \"../${SCRIPT_API_FILE_NAME}\"")
|
||||
if (NOT "${APIUC}" STREQUAL "Template")
|
||||
string(REPLACE "script_" "template_" SCRIPT_API_FILE_NAME "${SCRIPT_API_FILE_NAME}")
|
||||
string(APPEND SQUIRREL_EXPORT "\n#include \"../template/${SCRIPT_API_FILE_NAME}.sq\"")
|
||||
endif (NOT "${APIUC}" STREQUAL "Template")
|
||||
endmacro(dump_fileheader)
|
||||
|
||||
macro(dump_class_templates NAME)
|
||||
string(REGEX REPLACE "^Script" "" REALNAME ${NAME})
|
||||
|
||||
string(APPEND SQUIRREL_EXPORT "\n template <> inline ${NAME} *GetParam(ForceType<${NAME} *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (${NAME} *)instance; }")
|
||||
string(APPEND SQUIRREL_EXPORT "\n template <> inline ${NAME} &GetParam(ForceType<${NAME} &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(${NAME} *)instance; }")
|
||||
string(APPEND SQUIRREL_EXPORT "\n template <> inline const ${NAME} *GetParam(ForceType<const ${NAME} *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (${NAME} *)instance; }")
|
||||
string(APPEND SQUIRREL_EXPORT "\n template <> inline const ${NAME} &GetParam(ForceType<const ${NAME} &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(${NAME} *)instance; }")
|
||||
if ("${NAME}" STREQUAL "ScriptEvent")
|
||||
string(APPEND SQUIRREL_EXPORT "\n template <> inline int Return<${NAME} *>(HSQUIRRELVM vm, ${NAME} *res) { if (res == nullptr) { sq_pushnull(vm); return 1; } Squirrel::CreateClassInstanceVM(vm, \"${REALNAME}\", res, nullptr, DefSQDestructorCallback<${NAME}>, true); return 1; }")
|
||||
elseif ("${NAME}" STREQUAL "ScriptText")
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
string(APPEND SQUIRREL_EXPORT "\n template <> inline Text *GetParam(ForceType<Text *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) {")
|
||||
string(APPEND SQUIRREL_EXPORT "\n if (sq_gettype(vm, index) == OT_INSTANCE) {")
|
||||
string(APPEND SQUIRREL_EXPORT "\n return GetParam(ForceType<ScriptText *>(), vm, index, ptr);")
|
||||
string(APPEND SQUIRREL_EXPORT "\n }")
|
||||
string(APPEND SQUIRREL_EXPORT "\n if (sq_gettype(vm, index) == OT_STRING) {")
|
||||
string(APPEND SQUIRREL_EXPORT "\n return new RawText(GetParam(ForceType<const char *>(), vm, index, ptr));")
|
||||
string(APPEND SQUIRREL_EXPORT "\n }")
|
||||
string(APPEND SQUIRREL_EXPORT "\n return nullptr;")
|
||||
string(APPEND SQUIRREL_EXPORT "\n }")
|
||||
else ()
|
||||
string(APPEND SQUIRREL_EXPORT "\n template <> inline int Return<${NAME} *>(HSQUIRRELVM vm, ${NAME} *res) { if (res == nullptr) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, \"${REALNAME}\", res, nullptr, DefSQDestructorCallback<${NAME}>, true); return 1; }")
|
||||
endif ()
|
||||
endmacro(dump_class_templates)
|
||||
|
||||
macro(reset_reader)
|
||||
unset(ENUMS)
|
||||
unset(ENUM_VALUES)
|
||||
unset(CONST_VALUES)
|
||||
unset(STRUCTS)
|
||||
unset(ENUM_STRING_TO_ERRORS)
|
||||
unset(ENUM_ERROR_TO_STRINGS)
|
||||
unset(METHODS)
|
||||
unset(STATIC_METHODS)
|
||||
unset(CLS)
|
||||
unset(START_SQUIRREL_DEFINE_ON_NEXT_LINE)
|
||||
set(CLS_LEVEL 0)
|
||||
unset(CLS_IN_API)
|
||||
endmacro(reset_reader)
|
||||
|
||||
reset_reader()
|
||||
|
||||
file(STRINGS "${SCRIPT_API_FILE}" SOURCE_LINES)
|
||||
|
||||
foreach(LINE IN LISTS SOURCE_LINES)
|
||||
# Ignore special doxygen blocks
|
||||
if ("${LINE}" MATCHES "^#ifndef DOXYGEN_API")
|
||||
set(DOXYGEN_SKIP "next")
|
||||
continue()
|
||||
endif ()
|
||||
if ("${LINE}" MATCHES "^#ifdef DOXYGEN_API")
|
||||
set(DOXYGEN_SKIP "true")
|
||||
continue()
|
||||
endif ()
|
||||
if ("${LINE}" MATCHES "^#endif /\\* DOXYGEN_API \\*/")
|
||||
unset(DOXYGEN_SKIP)
|
||||
continue()
|
||||
endif ()
|
||||
if ("${LINE}" MATCHES "^#else")
|
||||
if ("${DOXYGEN_SKIP}" STREQUAL "next")
|
||||
set(DOXYGEN_SKIP "true")
|
||||
else()
|
||||
unset(DOXYGEN_SKIP)
|
||||
endif()
|
||||
continue()
|
||||
endif ()
|
||||
if ("${DOXYGEN_SKIP}" STREQUAL "true")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
if ("${LINE}" MATCHES "^([ ]*)\\* @api (.*)$")
|
||||
set(LINE ${CMAKE_MATCH_2})
|
||||
# By default, classes are not selected
|
||||
if (NOT CLS_LEVEL)
|
||||
set(API_SELECTED FALSE)
|
||||
endif (NOT CLS_LEVEL)
|
||||
|
||||
if ("${APIUC}" STREQUAL "Template")
|
||||
set(API_SELECTED TRUE)
|
||||
if ("${LINE}" STREQUAL "none" OR "${LINE}" STREQUAL "-all")
|
||||
set(API_SELECTED FALSE)
|
||||
endif ("${LINE}" STREQUAL "none" OR "${LINE}" STREQUAL "-all")
|
||||
continue()
|
||||
endif("${APIUC}" STREQUAL "Template")
|
||||
|
||||
if ("${LINE}" STREQUAL "none" OR "${LINE}" STREQUAL "-all")
|
||||
set(API_SELECTED FALSE)
|
||||
elseif ("${LINE}" MATCHES "-${APILC}")
|
||||
set(API_SELECTED FALSE)
|
||||
elseif ("${LINE}" MATCHES "${APILC}")
|
||||
set(API_SELECTED TRUE)
|
||||
endif ()
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^([ ]*)\\* @api (.*)$")
|
||||
|
||||
# Remove the old squirrel stuff
|
||||
if ("${LINE}" MATCHES "#ifdef DEFINE_SQUIRREL_CLASS")
|
||||
set(SQUIRREL_STUFF TRUE)
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "#ifdef DEFINE_SQUIRREL_CLASS")
|
||||
if ("${LINE}" MATCHES "^#endif /\\* DEFINE_SQUIRREL_CLASS \\*/")
|
||||
unset(SQUIRREL_STUFF)
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^#endif /\\* DEFINE_SQUIRREL_CLASS \\*/")
|
||||
if (SQUIRREL_STUFF)
|
||||
continue()
|
||||
endif (SQUIRREL_STUFF)
|
||||
|
||||
# Ignore forward declarations of classes
|
||||
if ("${LINE}" MATCHES "^( *)class(.*);")
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^( *)class(.*);")
|
||||
|
||||
# We only want to have public functions exported for now
|
||||
if ("${LINE}" MATCHES "^( *)class (.*) (: public|: protected|: private|:) ([^ ]*)")
|
||||
if (NOT CLS_LEVEL)
|
||||
if (NOT DEFINED API_SELECTED)
|
||||
message(WARNING "Class '${CMAKE_MATCH_2}' has no @api. It won't be published to any API.")
|
||||
set(API_SELECTED FALSE)
|
||||
endif (NOT DEFINED API_SELECTED)
|
||||
unset(IS_PUBLIC)
|
||||
unset(CLS_PARAM_0)
|
||||
set(CLS_PARAM_1 1)
|
||||
set(CLS_PARAM_2 "x")
|
||||
set(CLS_IN_API ${API_SELECTED})
|
||||
unset(API_SELECTED)
|
||||
set(CLS "${CMAKE_MATCH_2}")
|
||||
set(SUPER_CLS "${CMAKE_MATCH_4}")
|
||||
elseif (CLS_LEVEL EQUAL 1)
|
||||
if (NOT DEFINED API_SELECTED)
|
||||
set(API_SELECTED ${CLS_IN_API})
|
||||
endif (NOT API_SELECTED)
|
||||
|
||||
if (API_SELECTED)
|
||||
list(APPEND STRUCTS "${CLS}::${CMAKE_MATCH_2}")
|
||||
endif (API_SELECTED)
|
||||
unset(API_SELECTED)
|
||||
endif ()
|
||||
math(EXPR CLS_LEVEL "${CLS_LEVEL} + 1")
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^( *)class (.*) (: public|: protected|: private|:) ([^ ]*)")
|
||||
if ("${LINE}" MATCHES "^( *)public")
|
||||
if (CLS_LEVEL EQUAL 1)
|
||||
set(IS_PUBLIC TRUE)
|
||||
endif (CLS_LEVEL EQUAL 1)
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^( *)public")
|
||||
if ("${LINE}" MATCHES "^( *)protected")
|
||||
if (CLS_LEVEL EQUAL 1)
|
||||
unset(IS_PUBLIC)
|
||||
endif (CLS_LEVEL EQUAL 1)
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^( *)protected")
|
||||
if ("${LINE}" MATCHES "^( *)private")
|
||||
if (CLS_LEVEL EQUAL 1)
|
||||
unset(IS_PUBLIC)
|
||||
endif (CLS_LEVEL EQUAL 1)
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^( *)private")
|
||||
|
||||
# Ignore the comments
|
||||
if ("${LINE}" MATCHES "^#")
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^#")
|
||||
if ("${LINE}" MATCHES "/\\*.*\\*/")
|
||||
unset(COMMENT)
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "/\\*.*\\*/")
|
||||
if ("${LINE}" MATCHES "/\\*")
|
||||
set(COMMENT TRUE)
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "/\\*")
|
||||
if ("${LINE}" MATCHES "\\*/")
|
||||
unset(COMMENT)
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "\\*/")
|
||||
if (COMMENT)
|
||||
continue()
|
||||
endif (COMMENT)
|
||||
|
||||
# We need to make specialized conversions for structs
|
||||
if ("${LINE}" MATCHES "^( *)struct ([^ ]*)")
|
||||
math(EXPR CLS_LEVEL "${CLS_LEVEL} + 1")
|
||||
|
||||
# Check if we want to publish this struct
|
||||
if (NOT DEFINED API_SELECTED)
|
||||
set(API_SELECTED ${CLS_IN_API})
|
||||
endif (NOT DEFINED API_SELECTED)
|
||||
if (NOT API_SELECTED)
|
||||
unset(API_SELECTED)
|
||||
continue()
|
||||
endif (NOT API_SELECTED)
|
||||
unset(API_SELECTED)
|
||||
|
||||
if (NOT IS_PUBLIC OR NOT CLS_LEVEL EQUAL 1)
|
||||
continue()
|
||||
endif (NOT IS_PUBLIC OR NOT CLS_LEVEL EQUAL 1)
|
||||
|
||||
list(APPEND STRUCTS "${CLS}::${CMAKE_MATCH_2}")
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^( *)struct ([^ ]*)")
|
||||
|
||||
# We need to make specialized conversions for enums
|
||||
if ("${LINE}" MATCHES "^( *)enum ([^ ]*)")
|
||||
math(EXPR CLS_LEVEL "${CLS_LEVEL} + 1")
|
||||
|
||||
# Check if we want to publish this enum
|
||||
if (NOT DEFINED API_SELECTED)
|
||||
set(API_SELECTED ${CLS_IN_API})
|
||||
endif (NOT DEFINED API_SELECTED)
|
||||
if (NOT API_SELECTED)
|
||||
unset(API_SELECTED)
|
||||
continue()
|
||||
endif (NOT API_SELECTED)
|
||||
unset(API_SELECTED)
|
||||
|
||||
if (NOT IS_PUBLIC)
|
||||
continue()
|
||||
endif (NOT IS_PUBLIC)
|
||||
|
||||
set(IN_ENUM TRUE)
|
||||
list(APPEND ENUMS "${CLS}::${CMAKE_MATCH_2}")
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^( *)enum ([^ ]*)")
|
||||
|
||||
# Maybe the end of the class, if so we can start with the Squirrel export pretty soon
|
||||
if ("${LINE}" MATCHES "};")
|
||||
math(EXPR CLS_LEVEL "${CLS_LEVEL} - 1")
|
||||
if (CLS_LEVEL)
|
||||
unset(IN_ENUM)
|
||||
continue()
|
||||
endif (CLS_LEVEL)
|
||||
|
||||
if (CLS)
|
||||
set(START_SQUIRREL_DEFINE_ON_NEXT_LINE TRUE)
|
||||
endif (CLS)
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "};")
|
||||
|
||||
# Empty/white lines. When we may do the Squirrel export, do that export.
|
||||
if ("${LINE}" MATCHES "^([ ]*)$")
|
||||
if (NOT START_SQUIRREL_DEFINE_ON_NEXT_LINE)
|
||||
continue()
|
||||
endif (NOT START_SQUIRREL_DEFINE_ON_NEXT_LINE)
|
||||
|
||||
if (NOT CLS_IN_API)
|
||||
reset_reader()
|
||||
continue()
|
||||
endif (NOT CLS_IN_API)
|
||||
|
||||
if (NOT HAS_FILEHEADER)
|
||||
dump_fileheader()
|
||||
set(HAS_FILEHEADER TRUE)
|
||||
endif (NOT HAS_FILEHEADER)
|
||||
|
||||
unset(IS_PUBLIC)
|
||||
unset(NAMESPACE_OPENED)
|
||||
|
||||
string(REGEX REPLACE "^Script" "${APIUC}" API_CLS "${CLS}")
|
||||
string(REGEX REPLACE "^Script" "${APIUC}" API_SUPER_CLS "${SUPER_CLS}")
|
||||
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
|
||||
if ("${APIUC}" STREQUAL "Template")
|
||||
# First check whether we have enums to print
|
||||
if (DEFINED ENUMS)
|
||||
if (NOT NAMESPACE_OPENED)
|
||||
string(APPEND SQUIRREL_EXPORT "\nnamespace SQConvert {")
|
||||
set(NAMESPACE_OPENED TRUE)
|
||||
endif (NOT NAMESPACE_OPENED)
|
||||
string(APPEND SQUIRREL_EXPORT "\n /* Allow enums to be used as Squirrel parameters */")
|
||||
foreach(ENUM IN LISTS ENUMS)
|
||||
string(APPEND SQUIRREL_EXPORT "\n template <> inline ${ENUM} GetParam(ForceType<${ENUM}>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (${ENUM})tmp; }")
|
||||
string(APPEND SQUIRREL_EXPORT "\n template <> inline int Return<${ENUM}>(HSQUIRRELVM vm, ${ENUM} res) { sq_pushinteger(vm, (int32)res); return 1; }")
|
||||
endforeach(ENUM)
|
||||
endif (DEFINED ENUMS)
|
||||
|
||||
# Then check whether we have structs/classes to print
|
||||
if (DEFINED STRUCTS)
|
||||
if (NOT NAMESPACE_OPENED)
|
||||
string(APPEND SQUIRREL_EXPORT "\nnamespace SQConvert {")
|
||||
set(NAMESPACE_OPENED TRUE)
|
||||
endif (NOT NAMESPACE_OPENED)
|
||||
string(APPEND SQUIRREL_EXPORT "\n /* Allow inner classes/structs to be used as Squirrel parameters */")
|
||||
foreach(STRUCT IN LISTS STRUCTS)
|
||||
dump_class_templates(${STRUCT})
|
||||
endforeach(STRUCT)
|
||||
endif (DEFINED STRUCTS)
|
||||
|
||||
if (NOT NAMESPACE_OPENED)
|
||||
string(APPEND SQUIRREL_EXPORT "\nnamespace SQConvert {")
|
||||
set(NAMESPACE_OPENED TRUE)
|
||||
else (NOT NAMESPACE_OPENED)
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
endif (NOT NAMESPACE_OPENED)
|
||||
string(APPEND SQUIRREL_EXPORT "\n /* Allow ${CLS} to be used as Squirrel parameter */")
|
||||
dump_class_templates(${CLS})
|
||||
|
||||
string(APPEND SQUIRREL_EXPORT "\n} // namespace SQConvert")
|
||||
|
||||
reset_reader()
|
||||
continue()
|
||||
endif ("${APIUC}" STREQUAL "Template")
|
||||
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
string(APPEND SQUIRREL_EXPORT "\ntemplate <> const char *GetClassName<${CLS}, ST_${APIUC}>() { return \"${API_CLS}\"; }")
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
|
||||
# Then do the registration functions of the class.
|
||||
string(APPEND SQUIRREL_EXPORT "\nvoid SQ${API_CLS}_Register(Squirrel *engine)")
|
||||
string(APPEND SQUIRREL_EXPORT "\n{")
|
||||
string(APPEND SQUIRREL_EXPORT "\n DefSQClass<${CLS}, ST_${APIUC}> SQ${API_CLS}(\"${API_CLS}\");")
|
||||
if ("${SUPER_CLS}" STREQUAL "Text" OR "${SUPER_CLS}" STREQUAL "ScriptObject" OR "${SUPER_CLS}" STREQUAL "AIAbstractiveList::Valuator")
|
||||
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.PreRegister(engine);")
|
||||
else ("${SUPER_CLS}" STREQUAL "Text" OR "${SUPER_CLS}" STREQUAL "ScriptObject" OR "${SUPER_CLS}" STREQUAL "AIAbstractiveList::Valuator")
|
||||
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.PreRegister(engine, \"${API_SUPER_CLS}\");")
|
||||
endif ("${SUPER_CLS}" STREQUAL "Text" OR "${SUPER_CLS}" STREQUAL "ScriptObject" OR "${SUPER_CLS}" STREQUAL "AIAbstractiveList::Valuator")
|
||||
if (NOT "${SUPER_CLS}" STREQUAL "ScriptEvent")
|
||||
if ("${CLS_PARAM_2}" STREQUAL "v")
|
||||
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.AddSQAdvancedConstructor(engine);")
|
||||
else ("${CLS_PARAM_2}" STREQUAL "v")
|
||||
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.AddConstructor<void (${CLS}::*)(${CLS_PARAM_0}), ${CLS_PARAM_1}>(engine, \"${CLS_PARAM_2}\");")
|
||||
endif ("${CLS_PARAM_2}" STREQUAL "v")
|
||||
endif (NOT "${SUPER_CLS}" STREQUAL "ScriptEvent")
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
|
||||
# Enum values
|
||||
set(MLEN 0)
|
||||
foreach(ENUM_VALUE IN LISTS ENUM_VALUES)
|
||||
string(LENGTH "${ENUM_VALUE}" LEN)
|
||||
if (MLEN LESS LEN)
|
||||
set(MLEN ${LEN})
|
||||
endif (MLEN LESS LEN)
|
||||
endforeach(ENUM_VALUE)
|
||||
foreach(ENUM_VALUE IN LISTS ENUM_VALUES)
|
||||
string(LENGTH "${ENUM_VALUE}" LEN)
|
||||
math(EXPR LEN "${MLEN} - ${LEN}")
|
||||
unset(SPACES)
|
||||
foreach(i RANGE ${LEN})
|
||||
string(APPEND SPACES " ")
|
||||
endforeach(i)
|
||||
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQConst(engine, ${CLS}::${ENUM_VALUE},${SPACES}\"${ENUM_VALUE}\");")
|
||||
endforeach(ENUM_VALUE)
|
||||
if (MLEN)
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
endif (MLEN)
|
||||
|
||||
# Const values
|
||||
set(MLEN 0)
|
||||
foreach(CONST_VALUE IN LISTS CONST_VALUES)
|
||||
string(LENGTH "${CONST_VALUE}" LEN)
|
||||
if (MLEN LESS LEN)
|
||||
set(MLEN ${LEN})
|
||||
endif (MLEN LESS LEN)
|
||||
endforeach(CONST_VALUE)
|
||||
foreach(CONST_VALUE IN LISTS CONST_VALUES)
|
||||
string(LENGTH "${CONST_VALUE}" LEN)
|
||||
math(EXPR LEN "${MLEN} - ${LEN}")
|
||||
unset(SPACES)
|
||||
foreach(i RANGE ${LEN})
|
||||
string(APPEND SPACES " ")
|
||||
endforeach(i)
|
||||
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQConst(engine, ${CLS}::${CONST_VALUE},${SPACES}\"${CONST_VALUE}\");")
|
||||
endforeach(CONST_VALUE)
|
||||
if (MLEN)
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
endif (MLEN)
|
||||
|
||||
# Mapping of OTTD strings to errors
|
||||
set(MLEN 0)
|
||||
foreach(ENUM_STRING_TO_ERROR IN LISTS ENUM_STRING_TO_ERRORS)
|
||||
string(REPLACE ":" ";" ENUM_STRING_TO_ERROR "${ENUM_STRING_TO_ERROR}")
|
||||
list(GET ENUM_STRING_TO_ERROR 0 ENUM_STRING)
|
||||
string(LENGTH "${ENUM_STRING}" LEN)
|
||||
if (MLEN LESS LEN)
|
||||
set(MLEN ${LEN})
|
||||
endif (MLEN LESS LEN)
|
||||
endforeach(ENUM_STRING_TO_ERROR)
|
||||
foreach(ENUM_STRING_TO_ERROR IN LISTS ENUM_STRING_TO_ERRORS)
|
||||
string(REPLACE ":" ";" ENUM_STRING_TO_ERROR "${ENUM_STRING_TO_ERROR}")
|
||||
list(GET ENUM_STRING_TO_ERROR 0 ENUM_STRING)
|
||||
list(GET ENUM_STRING_TO_ERROR 1 ENUM_ERROR)
|
||||
string(LENGTH "${ENUM_STRING}" LEN)
|
||||
math(EXPR LEN "${MLEN} - ${LEN}")
|
||||
unset(SPACES)
|
||||
foreach(i RANGE ${LEN})
|
||||
string(APPEND SPACES " ")
|
||||
endforeach(i)
|
||||
string(APPEND SQUIRREL_EXPORT "\n ScriptError::RegisterErrorMap(${ENUM_STRING},${SPACES}${CLS}::${ENUM_ERROR});")
|
||||
endforeach(ENUM_STRING_TO_ERROR)
|
||||
if (MLEN)
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
endif (MLEN)
|
||||
|
||||
# Mapping of errors to human 'readable' strings.
|
||||
set(MLEN 0)
|
||||
foreach(ENUM_ERROR_TO_STRING IN LISTS ENUM_ERROR_TO_STRINGS)
|
||||
string(LENGTH "${ENUM_ERROR_TO_STRING}" LEN)
|
||||
if (MLEN LESS LEN)
|
||||
set(MLEN ${LEN})
|
||||
endif (MLEN LESS LEN)
|
||||
endforeach(ENUM_ERROR_TO_STRING)
|
||||
foreach(ENUM_ERROR_TO_STRING IN LISTS ENUM_ERROR_TO_STRINGS)
|
||||
string(LENGTH "${ENUM_ERROR_TO_STRING}" LEN)
|
||||
math(EXPR LEN "${MLEN} - ${LEN}")
|
||||
unset(SPACES)
|
||||
foreach(i RANGE ${LEN})
|
||||
string(APPEND SPACES " ")
|
||||
endforeach(i)
|
||||
string(APPEND SQUIRREL_EXPORT "\n ScriptError::RegisterErrorMapString(${CLS}::${ENUM_ERROR_TO_STRING},${SPACES}\"${ENUM_ERROR_TO_STRING}\");")
|
||||
endforeach(ENUM_ERROR_TO_STRING)
|
||||
if (MLEN)
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
endif (MLEN)
|
||||
|
||||
# Static methods
|
||||
set(MLEN 0)
|
||||
foreach(STATIC_METHOD IN LISTS STATIC_METHODS)
|
||||
string(REPLACE ":" ";" STATIC_METHOD "${STATIC_METHOD}")
|
||||
list(GET STATIC_METHOD 0 FUNCNAME)
|
||||
string(LENGTH "${FUNCNAME}" LEN)
|
||||
if (MLEN LESS LEN)
|
||||
set(MLEN ${LEN})
|
||||
endif (MLEN LESS LEN)
|
||||
endforeach(STATIC_METHOD)
|
||||
foreach(STATIC_METHOD IN LISTS STATIC_METHODS)
|
||||
string(REPLACE ":" ";" STATIC_METHOD "${STATIC_METHOD}")
|
||||
list(GET STATIC_METHOD 0 FUNCNAME)
|
||||
list(GET STATIC_METHOD 1 ARGC)
|
||||
list(GET STATIC_METHOD 2 TYPES)
|
||||
string(LENGTH "${FUNCNAME}" LEN)
|
||||
math(EXPR LEN "${MLEN} - ${LEN}")
|
||||
if ("${TYPES}" STREQUAL "v")
|
||||
if (LEN GREATER 8)
|
||||
math(EXPR LEN "${LEN} - 8")
|
||||
else (LEN GREATER 8)
|
||||
set(LEN 0)
|
||||
endif (LEN GREATER 8)
|
||||
endif ("${TYPES}" STREQUAL "v")
|
||||
unset(SPACES)
|
||||
foreach(i RANGE ${LEN})
|
||||
string(APPEND SPACES " ")
|
||||
endforeach(i)
|
||||
if ("${TYPES}" STREQUAL "v")
|
||||
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQAdvancedStaticMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\");")
|
||||
else ("${TYPES}" STREQUAL "v")
|
||||
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQStaticMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\",${SPACES}${ARGC}, \"${TYPES}\");")
|
||||
endif ("${TYPES}" STREQUAL "v")
|
||||
endforeach(STATIC_METHOD)
|
||||
if (MLEN)
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
endif (MLEN)
|
||||
|
||||
# Non-static methods
|
||||
set(MLEN 0)
|
||||
foreach(METHOD IN LISTS METHODS)
|
||||
string(REPLACE ":" ";" METHOD "${METHOD}")
|
||||
list(GET METHOD 0 FUNCNAME)
|
||||
string(LENGTH "${FUNCNAME}" LEN)
|
||||
if (MLEN LESS LEN)
|
||||
set(MLEN ${LEN})
|
||||
endif (MLEN LESS LEN)
|
||||
endforeach(METHOD)
|
||||
foreach(METHOD IN LISTS METHODS)
|
||||
string(REPLACE ":" ";" METHOD "${METHOD}")
|
||||
list(GET METHOD 0 FUNCNAME)
|
||||
list(GET METHOD 1 ARGC)
|
||||
list(GET METHOD 2 TYPES)
|
||||
string(LENGTH "${FUNCNAME}" LEN)
|
||||
math(EXPR LEN "${MLEN} - ${LEN}")
|
||||
if ("${TYPES}" STREQUAL "v")
|
||||
if (LEN GREATER 8)
|
||||
math(EXPR LEN "${LEN} - 8")
|
||||
else (LEN GREATER 8)
|
||||
set(LEN 0)
|
||||
endif (LEN GREATER 8)
|
||||
endif ("${TYPES}" STREQUAL "v")
|
||||
unset(SPACES)
|
||||
foreach(i RANGE ${LEN})
|
||||
string(APPEND SPACES " ")
|
||||
endforeach(i)
|
||||
if ("${TYPES}" STREQUAL "v")
|
||||
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQAdvancedMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\");")
|
||||
else ("${TYPES}" STREQUAL "v")
|
||||
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\",${SPACES}${ARGC}, \"${TYPES}\");")
|
||||
endif ("${TYPES}" STREQUAL "v")
|
||||
endforeach(METHOD)
|
||||
if (MLEN)
|
||||
string(APPEND SQUIRREL_EXPORT "\n")
|
||||
endif (MLEN)
|
||||
|
||||
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.PostRegister(engine);")
|
||||
string(APPEND SQUIRREL_EXPORT "\n}")
|
||||
|
||||
reset_reader()
|
||||
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^([ ]*)$")
|
||||
|
||||
# Skip non-public functions
|
||||
if (NOT IS_PUBLIC)
|
||||
continue()
|
||||
endif (NOT IS_PUBLIC)
|
||||
|
||||
# Add enums
|
||||
if (IN_ENUM)
|
||||
string(REGEX MATCH "([^, ]+)" ENUM_VALUE "${LINE}")
|
||||
list(APPEND ENUM_VALUES "${ENUM_VALUE}")
|
||||
|
||||
# Check if this a special error enum
|
||||
list(GET ENUMS -1 ENUM)
|
||||
if ("${ENUM}" MATCHES ".*::ErrorMessages")
|
||||
# syntax:
|
||||
# enum ErrorMessages {
|
||||
# ERR_SOME_ERROR, // [STR_ITEM1, STR_ITEM2, ...]
|
||||
# }
|
||||
|
||||
# Set the mappings
|
||||
if ("${LINE}" MATCHES "\\[(.*)\\]")
|
||||
string(REGEX REPLACE "[ ]" "" MAPPINGS "${CMAKE_MATCH_1}")
|
||||
string(REPLACE "," ";" MAPPINGS "${MAPPINGS}")
|
||||
|
||||
foreach(MAPPING IN LISTS MAPPINGS)
|
||||
list(APPEND ENUM_STRING_TO_ERRORS "${MAPPING}:${ENUM_VALUE}")
|
||||
endforeach(MAPPING)
|
||||
|
||||
list(APPEND ENUM_ERROR_TO_STRINGS "${ENUM_VALUE}")
|
||||
endif ("${LINE}" MATCHES "\\[(.*)\\]")
|
||||
endif ("${ENUM}" MATCHES ".*::ErrorMessages")
|
||||
continue()
|
||||
endif (IN_ENUM)
|
||||
|
||||
# Add a const (non-enum) value
|
||||
if ("${LINE}" MATCHES "^[ ]*static const [^ ]+ ([^ ]+) = -?\\(?[^ ]*\\)?[^ ]+;")
|
||||
list(APPEND CONST_VALUES "${CMAKE_MATCH_1}")
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^[ ]*static const [^ ]+ ([^ ]+) = -?\\(?[^ ]*\\)?[^ ]+;")
|
||||
|
||||
# Add a method to the list
|
||||
if ("${LINE}" MATCHES "^.*\\(.*\\).*$")
|
||||
if (NOT CLS_LEVEL EQUAL 1)
|
||||
continue()
|
||||
endif (NOT CLS_LEVEL EQUAL 1)
|
||||
if ("${LINE}" MATCHES "~")
|
||||
if (DEFINED API_SELECTED)
|
||||
message(WARNING "Destructor for '${CLS}' has @api. Tag ignored.")
|
||||
unset(API_SELECTED)
|
||||
endif (DEFINED API_SELECTED)
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "~")
|
||||
|
||||
unset(IS_STATIC)
|
||||
if ("${LINE}" MATCHES "static")
|
||||
set(IS_STATIC TRUE)
|
||||
endif ("${LINE}" MATCHES "static")
|
||||
|
||||
string(REGEX REPLACE "(virtual|static|const)[ ]+" "" LINE "${LINE}")
|
||||
string(REGEX REPLACE "{.*" "" LINE "${LINE}")
|
||||
set(PARAM_S "${LINE}")
|
||||
string(REGEX REPLACE "\\*" "" LINE "${LINE}")
|
||||
string(REGEX REPLACE "\\(.*" "" LINE "${LINE}")
|
||||
|
||||
string(REGEX REPLACE ".*\\(" "" PARAM_S "${PARAM_S}")
|
||||
string(REGEX REPLACE "\\).*" "" PARAM_S "${PARAM_S}")
|
||||
|
||||
string(REGEX MATCH "([^ ]+)( ([^ ]+))?" RESULT "${LINE}")
|
||||
set(FUNCTYPE "${CMAKE_MATCH_1}")
|
||||
set(FUNCNAME "${CMAKE_MATCH_3}")
|
||||
if ("${FUNCTYPE}" STREQUAL "${CLS}" AND NOT FUNCNAME)
|
||||
if (DEFINED API_SELECTED)
|
||||
message(WARNING "Constructor for '${CLS}' has @api. Tag ignored.")
|
||||
unset(API_SELECTED)
|
||||
endif (DEFINED API_SELECTED)
|
||||
set(CLS_PARAM_0 "${PARAM_S}")
|
||||
if (NOT PARAM_S)
|
||||
continue()
|
||||
endif (NOT PARAM_S)
|
||||
elseif (NOT FUNCNAME)
|
||||
continue()
|
||||
endif ()
|
||||
|
||||
string(REPLACE "," ";" PARAMS "${PARAM_S}")
|
||||
if (IS_STATIC)
|
||||
set(TYPES ".")
|
||||
else (IS_STATIC)
|
||||
set(TYPES "x")
|
||||
endif (IS_STATIC)
|
||||
|
||||
set(LEN 1)
|
||||
foreach(PARAM IN LISTS PARAMS)
|
||||
math(EXPR LEN "${LEN} + 1")
|
||||
string(STRIP "${PARAM}" PARAM)
|
||||
if ("${PARAM}" MATCHES "\\*|&")
|
||||
if ("${PARAM}" MATCHES "^char")
|
||||
# Many types can be converted to string, so use '.', not 's'. (handled by our glue code)
|
||||
string(APPEND TYPES ".")
|
||||
elseif ("${PARAM}" MATCHES "^void")
|
||||
string(APPEND TYPES "p")
|
||||
elseif ("${PARAM}" MATCHES "^Array")
|
||||
string(APPEND TYPES "a")
|
||||
elseif ("${PARAM}" MATCHES "^struct Array")
|
||||
string(APPEND TYPES "a")
|
||||
elseif ("${PARAM}" MATCHES "^Text")
|
||||
string(APPEND TYPES ".")
|
||||
else ()
|
||||
string(APPEND TYPES "x")
|
||||
endif ()
|
||||
elseif ("${PARAM}" MATCHES "^bool")
|
||||
string(APPEND TYPES "b")
|
||||
elseif ("${PARAM}" MATCHES "^HSQUIRRELVM")
|
||||
set(TYPES "v")
|
||||
else ()
|
||||
string(APPEND TYPES "i")
|
||||
endif ()
|
||||
endforeach(PARAM)
|
||||
|
||||
# Check if we want to publish this function
|
||||
if (NOT DEFINED API_SELECTED)
|
||||
set(API_SELECTED ${CLS_IN_API})
|
||||
endif (NOT DEFINED API_SELECTED)
|
||||
if (NOT API_SELECTED)
|
||||
unset(API_SELECTED)
|
||||
continue()
|
||||
endif (NOT API_SELECTED)
|
||||
unset(API_SELECTED)
|
||||
|
||||
if ("${FUNCTYPE}" STREQUAL "${CLS}" AND NOT FUNCNAME)
|
||||
set(CLS_PARAM_1 ${LEN})
|
||||
set(CLS_PARAM_2 "${TYPES}")
|
||||
elseif ("${FUNCNAME}" MATCHES "^_" AND NOT "${TYPES}" STREQUAL "v")
|
||||
elseif (IS_STATIC)
|
||||
list(APPEND STATIC_METHODS "${FUNCNAME}:${LEN}:${TYPES}")
|
||||
else ()
|
||||
list(APPEND METHODS "${FUNCNAME}:${LEN}:${TYPES}")
|
||||
endif ()
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "^.*\\(.*\\).*$")
|
||||
endforeach(LINE)
|
||||
|
||||
configure_file(${SCRIPT_API_SOURCE_FILE} ${SCRIPT_API_BINARY_FILE})
|
@ -0,0 +1,60 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
if (NOT INCLUDES_SOURCE_FILE)
|
||||
message(FATAL_ERROR "Script needs INCLUDES_SOURCE_FILE defined")
|
||||
endif (NOT INCLUDES_SOURCE_FILE)
|
||||
if (NOT INCLUDES_BINARY_FILE)
|
||||
message(FATAL_ERROR "Script needs INCLUDES_BINARY_FILE defined")
|
||||
endif (NOT INCLUDES_BINARY_FILE)
|
||||
if (NOT APILC)
|
||||
message(FATAL_ERROR "Script needs APILC defined")
|
||||
endif (NOT APILC)
|
||||
if (NOT APIUC)
|
||||
message(FATAL_ERROR "Script needs APIUC defined")
|
||||
endif (NOT APIUC)
|
||||
|
||||
set(ARGC 1)
|
||||
set(ARG_READ NO)
|
||||
|
||||
# Read all the arguments given to CMake; we are looking for -- and everything
|
||||
# that follows. Those are our api files.
|
||||
while(ARGC LESS CMAKE_ARGC)
|
||||
set(ARG ${CMAKE_ARGV${ARGC}})
|
||||
|
||||
if (ARG_READ)
|
||||
list(APPEND SCRIPT_API_BINARY_FILES "${ARG}")
|
||||
endif (ARG_READ)
|
||||
|
||||
if (ARG STREQUAL "--")
|
||||
set(ARG_READ YES)
|
||||
endif (ARG STREQUAL "--")
|
||||
|
||||
math(EXPR ARGC "${ARGC} + 1")
|
||||
endwhile()
|
||||
|
||||
foreach(FILE IN LISTS SCRIPT_API_BINARY_FILES)
|
||||
file(STRINGS "${FILE}" LINES REGEX "^void SQ${APIUC}.*_Register\\(Squirrel \\*engine\\)$")
|
||||
if (LINES)
|
||||
string(REGEX REPLACE ".*api/${APILC}/(.*)" "#include \"\\1\"" FILE "${FILE}")
|
||||
list(APPEND SQUIRREL_INCLUDES "${FILE}")
|
||||
foreach(LINE IN LISTS LINES)
|
||||
if ("${LINE}" MATCHES "SQ${APIUC}(List|Controller)_Register")
|
||||
continue()
|
||||
endif ("${LINE}" MATCHES "SQ${APIUC}(List|Controller)_Register")
|
||||
string(REGEX REPLACE "^.*void " " " LINE "${LINE}")
|
||||
string(REGEX REPLACE "Squirrel \\*" "" LINE "${LINE}")
|
||||
list(APPEND SQUIRREL_REGISTER "${LINE}")
|
||||
endforeach(LINE)
|
||||
endif (LINES)
|
||||
endforeach(FILE)
|
||||
|
||||
list(SORT SQUIRREL_INCLUDES)
|
||||
string(REPLACE ";" "\n" SQUIRREL_INCLUDES "${SQUIRREL_INCLUDES}")
|
||||
|
||||
string(REGEX REPLACE "_Register" "0000Register" SQUIRREL_REGISTER "${SQUIRREL_REGISTER}")
|
||||
list(SORT SQUIRREL_REGISTER)
|
||||
string(REGEX REPLACE "0000Register" "_Register" SQUIRREL_REGISTER "${SQUIRREL_REGISTER}")
|
||||
string(REPLACE ";" ";\n" SQUIRREL_REGISTER "${SQUIRREL_REGISTER}")
|
||||
set(SQUIRREL_REGISTER " SQ${APIUC}List_Register(engine);\n${SQUIRREL_REGISTER};")
|
||||
|
||||
configure_file(${INCLUDES_SOURCE_FILE} ${INCLUDES_BINARY_FILE})
|
@ -1,26 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_accounting.hpp"
|
||||
#include "../template/template_accounting.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptAccounting, ST_AI>() { return "AIAccounting"; }
|
||||
|
||||
void SQAIAccounting_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptAccounting, ST_AI> SQAIAccounting("AIAccounting");
|
||||
SQAIAccounting.PreRegister(engine);
|
||||
SQAIAccounting.AddConstructor<void (ScriptAccounting::*)(), 1>(engine, "x");
|
||||
|
||||
SQAIAccounting.DefSQMethod(engine, &ScriptAccounting::GetCosts, "GetCosts", 1, "x");
|
||||
SQAIAccounting.DefSQMethod(engine, &ScriptAccounting::ResetCosts, "ResetCosts", 1, "x");
|
||||
|
||||
SQAIAccounting.PostRegister(engine);
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_airport.hpp"
|
||||
#include "../template/template_airport.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptAirport, ST_AI>() { return "AIAirport"; }
|
||||
|
||||
void SQAIAirport_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptAirport, ST_AI> SQAIAirport("AIAirport");
|
||||
SQAIAirport.PreRegister(engine);
|
||||
SQAIAirport.AddConstructor<void (ScriptAirport::*)(), 1>(engine, "x");
|
||||
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::AT_SMALL, "AT_SMALL");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::AT_LARGE, "AT_LARGE");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::AT_METROPOLITAN, "AT_METROPOLITAN");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::AT_INTERNATIONAL, "AT_INTERNATIONAL");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::AT_COMMUTER, "AT_COMMUTER");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::AT_INTERCON, "AT_INTERCON");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::AT_HELIPORT, "AT_HELIPORT");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::AT_HELISTATION, "AT_HELISTATION");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::AT_HELIDEPOT, "AT_HELIDEPOT");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::AT_INVALID, "AT_INVALID");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::PT_HELICOPTER, "PT_HELICOPTER");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::PT_SMALL_PLANE, "PT_SMALL_PLANE");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::PT_BIG_PLANE, "PT_BIG_PLANE");
|
||||
SQAIAirport.DefSQConst(engine, ScriptAirport::PT_INVALID, "PT_INVALID");
|
||||
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::IsValidAirportType, "IsValidAirportType", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::IsAirportInformationAvailable, "IsAirportInformationAvailable", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::GetPrice, "GetPrice", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::IsHangarTile, "IsHangarTile", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::IsAirportTile, "IsAirportTile", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::GetAirportWidth, "GetAirportWidth", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::GetAirportHeight, "GetAirportHeight", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::GetAirportCoverageRadius, "GetAirportCoverageRadius", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::GetNumHangars, "GetNumHangars", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::GetHangarOfAirport, "GetHangarOfAirport", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::BuildAirport, "BuildAirport", 4, ".iii");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::RemoveAirport, "RemoveAirport", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::GetAirportType, "GetAirportType", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::GetNoiseLevelIncrease, "GetNoiseLevelIncrease", 3, ".ii");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::GetNearestTown, "GetNearestTown", 3, ".ii");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::GetMaintenanceCostFactor, "GetMaintenanceCostFactor", 2, ".i");
|
||||
SQAIAirport.DefSQStaticMethod(engine, &ScriptAirport::GetMonthlyMaintenanceCost, "GetMonthlyMaintenanceCost", 2, ".i");
|
||||
|
||||
SQAIAirport.PostRegister(engine);
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_base.hpp"
|
||||
#include "../template/template_base.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptBase, ST_AI>() { return "AIBase"; }
|
||||
|
||||
void SQAIBase_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptBase, ST_AI> SQAIBase("AIBase");
|
||||
SQAIBase.PreRegister(engine);
|
||||
SQAIBase.AddConstructor<void (ScriptBase::*)(), 1>(engine, "x");
|
||||
|
||||
SQAIBase.DefSQStaticMethod(engine, &ScriptBase::Rand, "Rand", 1, ".");
|
||||
SQAIBase.DefSQStaticMethod(engine, &ScriptBase::RandItem, "RandItem", 2, ".i");
|
||||
SQAIBase.DefSQStaticMethod(engine, &ScriptBase::RandRange, "RandRange", 2, ".i");
|
||||
SQAIBase.DefSQStaticMethod(engine, &ScriptBase::RandRangeItem, "RandRangeItem", 3, ".ii");
|
||||
SQAIBase.DefSQStaticMethod(engine, &ScriptBase::Chance, "Chance", 3, ".ii");
|
||||
SQAIBase.DefSQStaticMethod(engine, &ScriptBase::ChanceItem, "ChanceItem", 4, ".iii");
|
||||
|
||||
SQAIBase.PostRegister(engine);
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_basestation.hpp"
|
||||
#include "../template/template_basestation.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptBaseStation, ST_AI>() { return "AIBaseStation"; }
|
||||
|
||||
void SQAIBaseStation_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptBaseStation, ST_AI> SQAIBaseStation("AIBaseStation");
|
||||
SQAIBaseStation.PreRegister(engine);
|
||||
SQAIBaseStation.AddConstructor<void (ScriptBaseStation::*)(), 1>(engine, "x");
|
||||
|
||||
SQAIBaseStation.DefSQConst(engine, ScriptBaseStation::STATION_NEW, "STATION_NEW");
|
||||
SQAIBaseStation.DefSQConst(engine, ScriptBaseStation::STATION_JOIN_ADJACENT, "STATION_JOIN_ADJACENT");
|
||||
SQAIBaseStation.DefSQConst(engine, ScriptBaseStation::STATION_INVALID, "STATION_INVALID");
|
||||
|
||||
SQAIBaseStation.DefSQStaticMethod(engine, &ScriptBaseStation::IsValidBaseStation, "IsValidBaseStation", 2, ".i");
|
||||
SQAIBaseStation.DefSQStaticMethod(engine, &ScriptBaseStation::GetName, "GetName", 2, ".i");
|
||||
SQAIBaseStation.DefSQStaticMethod(engine, &ScriptBaseStation::SetName, "SetName", 3, ".i.");
|
||||
SQAIBaseStation.DefSQStaticMethod(engine, &ScriptBaseStation::GetLocation, "GetLocation", 2, ".i");
|
||||
SQAIBaseStation.DefSQStaticMethod(engine, &ScriptBaseStation::GetConstructionDate, "GetConstructionDate", 2, ".i");
|
||||
|
||||
SQAIBaseStation.PostRegister(engine);
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_bridge.hpp"
|
||||
#include "../template/template_bridge.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptBridge, ST_AI>() { return "AIBridge"; }
|
||||
|
||||
void SQAIBridge_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptBridge, ST_AI> SQAIBridge("AIBridge");
|
||||
SQAIBridge.PreRegister(engine);
|
||||
SQAIBridge.AddConstructor<void (ScriptBridge::*)(), 1>(engine, "x");
|
||||
|
||||
SQAIBridge.DefSQConst(engine, ScriptBridge::ERR_BRIDGE_BASE, "ERR_BRIDGE_BASE");
|
||||
SQAIBridge.DefSQConst(engine, ScriptBridge::ERR_BRIDGE_TYPE_UNAVAILABLE, "ERR_BRIDGE_TYPE_UNAVAILABLE");
|
||||
SQAIBridge.DefSQConst(engine, ScriptBridge::ERR_BRIDGE_CANNOT_END_IN_WATER, "ERR_BRIDGE_CANNOT_END_IN_WATER");
|
||||
SQAIBridge.DefSQConst(engine, ScriptBridge::ERR_BRIDGE_HEADS_NOT_ON_SAME_HEIGHT, "ERR_BRIDGE_HEADS_NOT_ON_SAME_HEIGHT");
|
||||
|
||||
ScriptError::RegisterErrorMap(STR_ERROR_CAN_T_BUILD_BRIDGE_HERE, ScriptBridge::ERR_BRIDGE_TYPE_UNAVAILABLE);
|
||||
ScriptError::RegisterErrorMap(STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH, ScriptBridge::ERR_BRIDGE_CANNOT_END_IN_WATER);
|
||||
ScriptError::RegisterErrorMap(STR_ERROR_BRIDGEHEADS_NOT_SAME_HEIGHT, ScriptBridge::ERR_BRIDGE_HEADS_NOT_ON_SAME_HEIGHT);
|
||||
|
||||
ScriptError::RegisterErrorMapString(ScriptBridge::ERR_BRIDGE_TYPE_UNAVAILABLE, "ERR_BRIDGE_TYPE_UNAVAILABLE");
|
||||
ScriptError::RegisterErrorMapString(ScriptBridge::ERR_BRIDGE_CANNOT_END_IN_WATER, "ERR_BRIDGE_CANNOT_END_IN_WATER");
|
||||
ScriptError::RegisterErrorMapString(ScriptBridge::ERR_BRIDGE_HEADS_NOT_ON_SAME_HEIGHT, "ERR_BRIDGE_HEADS_NOT_ON_SAME_HEIGHT");
|
||||
|
||||
SQAIBridge.DefSQStaticMethod(engine, &ScriptBridge::IsValidBridge, "IsValidBridge", 2, ".i");
|
||||
SQAIBridge.DefSQStaticMethod(engine, &ScriptBridge::IsBridgeTile, "IsBridgeTile", 2, ".i");
|
||||
SQAIBridge.DefSQStaticMethod(engine, &ScriptBridge::GetBridgeID, "GetBridgeID", 2, ".i");
|
||||
SQAIBridge.DefSQStaticMethod(engine, &ScriptBridge::GetName, "GetName", 3, ".ii");
|
||||
SQAIBridge.DefSQStaticMethod(engine, &ScriptBridge::GetMaxSpeed, "GetMaxSpeed", 2, ".i");
|
||||
SQAIBridge.DefSQStaticMethod(engine, &ScriptBridge::GetPrice, "GetPrice", 3, ".ii");
|
||||
SQAIBridge.DefSQStaticMethod(engine, &ScriptBridge::GetMaxLength, "GetMaxLength", 2, ".i");
|
||||
SQAIBridge.DefSQStaticMethod(engine, &ScriptBridge::GetMinLength, "GetMinLength", 2, ".i");
|
||||
SQAIBridge.DefSQStaticMethod(engine, &ScriptBridge::BuildBridge, "BuildBridge", 5, ".iiii");
|
||||
SQAIBridge.DefSQStaticMethod(engine, &ScriptBridge::RemoveBridge, "RemoveBridge", 2, ".i");
|
||||
SQAIBridge.DefSQStaticMethod(engine, &ScriptBridge::GetOtherBridgeEnd, "GetOtherBridgeEnd", 2, ".i");
|
||||
|
||||
SQAIBridge.PostRegister(engine);
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_bridgelist.hpp"
|
||||
#include "../template/template_bridgelist.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptBridgeList, ST_AI>() { return "AIBridgeList"; }
|
||||
|
||||
void SQAIBridgeList_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptBridgeList, ST_AI> SQAIBridgeList("AIBridgeList");
|
||||
SQAIBridgeList.PreRegister(engine, "AIList");
|
||||
SQAIBridgeList.AddConstructor<void (ScriptBridgeList::*)(), 1>(engine, "x");
|
||||
|
||||
SQAIBridgeList.PostRegister(engine);
|
||||
}
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptBridgeList_Length, ST_AI>() { return "AIBridgeList_Length"; }
|
||||
|
||||
void SQAIBridgeList_Length_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptBridgeList_Length, ST_AI> SQAIBridgeList_Length("AIBridgeList_Length");
|
||||
SQAIBridgeList_Length.PreRegister(engine, "AIList");
|
||||
SQAIBridgeList_Length.AddConstructor<void (ScriptBridgeList_Length::*)(uint length), 2>(engine, "xi");
|
||||
|
||||
SQAIBridgeList_Length.PostRegister(engine);
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_cargo.hpp"
|
||||
#include "../template/template_cargo.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptCargo, ST_AI>() { return "AICargo"; }
|
||||
|
||||
void SQAICargo_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptCargo, ST_AI> SQAICargo("AICargo");
|
||||
SQAICargo.PreRegister(engine);
|
||||
SQAICargo.AddConstructor<void (ScriptCargo::*)(), 1>(engine, "x");
|
||||
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CC_PASSENGERS, "CC_PASSENGERS");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CC_MAIL, "CC_MAIL");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CC_EXPRESS, "CC_EXPRESS");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CC_ARMOURED, "CC_ARMOURED");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CC_BULK, "CC_BULK");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CC_PIECE_GOODS, "CC_PIECE_GOODS");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CC_LIQUID, "CC_LIQUID");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CC_REFRIGERATED, "CC_REFRIGERATED");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CC_HAZARDOUS, "CC_HAZARDOUS");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CC_COVERED, "CC_COVERED");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::TE_NONE, "TE_NONE");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::TE_PASSENGERS, "TE_PASSENGERS");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::TE_MAIL, "TE_MAIL");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::TE_GOODS, "TE_GOODS");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::TE_WATER, "TE_WATER");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::TE_FOOD, "TE_FOOD");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CT_AUTO_REFIT, "CT_AUTO_REFIT");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::CT_NO_REFIT, "CT_NO_REFIT");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::DT_MANUAL, "DT_MANUAL");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::DT_ASYMMETRIC, "DT_ASYMMETRIC");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::DT_SYMMETRIC, "DT_SYMMETRIC");
|
||||
SQAICargo.DefSQConst(engine, ScriptCargo::INVALID_DISTRIBUTION_TYPE, "INVALID_DISTRIBUTION_TYPE");
|
||||
|
||||
SQAICargo.DefSQStaticMethod(engine, &ScriptCargo::IsValidCargo, "IsValidCargo", 2, ".i");
|
||||
SQAICargo.DefSQStaticMethod(engine, &ScriptCargo::IsValidTownEffect, "IsValidTownEffect", 2, ".i");
|
||||
SQAICargo.DefSQStaticMethod(engine, &ScriptCargo::GetCargoLabel, "GetCargoLabel", 2, ".i");
|
||||
SQAICargo.DefSQStaticMethod(engine, &ScriptCargo::IsFreight, "IsFreight", 2, ".i");
|
||||
SQAICargo.DefSQStaticMethod(engine, &ScriptCargo::HasCargoClass, "HasCargoClass", 3, ".ii");
|
||||
SQAICargo.DefSQStaticMethod(engine, &ScriptCargo::GetTownEffect, "GetTownEffect", 2, ".i");
|
||||
SQAICargo.DefSQStaticMethod(engine, &ScriptCargo::GetCargoIncome, "GetCargoIncome", 4, ".iii");
|
||||
SQAICargo.DefSQStaticMethod(engine, &ScriptCargo::GetDistributionType, "GetDistributionType", 2, ".i");
|
||||
|
||||
SQAICargo.PostRegister(engine);
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_cargolist.hpp"
|
||||
#include "../template/template_cargolist.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptCargoList, ST_AI>() { return "AICargoList"; }
|
||||
|
||||
void SQAICargoList_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptCargoList, ST_AI> SQAICargoList("AICargoList");
|
||||
SQAICargoList.PreRegister(engine, "AIList");
|
||||
SQAICargoList.AddConstructor<void (ScriptCargoList::*)(), 1>(engine, "x");
|
||||
|
||||
SQAICargoList.PostRegister(engine);
|
||||
}
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptCargoList_IndustryAccepting, ST_AI>() { return "AICargoList_IndustryAccepting"; }
|
||||
|
||||
void SQAICargoList_IndustryAccepting_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptCargoList_IndustryAccepting, ST_AI> SQAICargoList_IndustryAccepting("AICargoList_IndustryAccepting");
|
||||
SQAICargoList_IndustryAccepting.PreRegister(engine, "AIList");
|
||||
SQAICargoList_IndustryAccepting.AddConstructor<void (ScriptCargoList_IndustryAccepting::*)(IndustryID industry_id), 2>(engine, "xi");
|
||||
|
||||
SQAICargoList_IndustryAccepting.PostRegister(engine);
|
||||
}
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptCargoList_IndustryProducing, ST_AI>() { return "AICargoList_IndustryProducing"; }
|
||||
|
||||
void SQAICargoList_IndustryProducing_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptCargoList_IndustryProducing, ST_AI> SQAICargoList_IndustryProducing("AICargoList_IndustryProducing");
|
||||
SQAICargoList_IndustryProducing.PreRegister(engine, "AIList");
|
||||
SQAICargoList_IndustryProducing.AddConstructor<void (ScriptCargoList_IndustryProducing::*)(IndustryID industry_id), 2>(engine, "xi");
|
||||
|
||||
SQAICargoList_IndustryProducing.PostRegister(engine);
|
||||
}
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptCargoList_StationAccepting, ST_AI>() { return "AICargoList_StationAccepting"; }
|
||||
|
||||
void SQAICargoList_StationAccepting_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptCargoList_StationAccepting, ST_AI> SQAICargoList_StationAccepting("AICargoList_StationAccepting");
|
||||
SQAICargoList_StationAccepting.PreRegister(engine, "AIList");
|
||||
SQAICargoList_StationAccepting.AddConstructor<void (ScriptCargoList_StationAccepting::*)(StationID station_id), 2>(engine, "xi");
|
||||
|
||||
SQAICargoList_StationAccepting.PostRegister(engine);
|
||||
}
|
@ -1,107 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_company.hpp"
|
||||
#include "../template/template_company.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptCompany, ST_AI>() { return "AICompany"; }
|
||||
|
||||
void SQAICompany_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptCompany, ST_AI> SQAICompany("AICompany");
|
||||
SQAICompany.PreRegister(engine);
|
||||
SQAICompany.AddConstructor<void (ScriptCompany::*)(), 1>(engine, "x");
|
||||
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::CURRENT_QUARTER, "CURRENT_QUARTER");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::EARLIEST_QUARTER, "EARLIEST_QUARTER");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_FIRST, "COMPANY_FIRST");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_LAST, "COMPANY_LAST");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_INVALID, "COMPANY_INVALID");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_SELF, "COMPANY_SELF");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_SPECTATOR, "COMPANY_SPECTATOR");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_MALE, "GENDER_MALE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_FEMALE, "GENDER_FEMALE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_INVALID, "GENDER_INVALID");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_DEFAULT, "LS_DEFAULT");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_STEAM, "LS_STEAM");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_DIESEL, "LS_DIESEL");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_ELECTRIC, "LS_ELECTRIC");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_MONORAIL, "LS_MONORAIL");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_MAGLEV, "LS_MAGLEV");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_DMU, "LS_DMU");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_EMU, "LS_EMU");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_STEAM, "LS_PASSENGER_WAGON_STEAM");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_DIESEL, "LS_PASSENGER_WAGON_DIESEL");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_ELECTRIC, "LS_PASSENGER_WAGON_ELECTRIC");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_MONORAIL, "LS_PASSENGER_WAGON_MONORAIL");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_MAGLEV, "LS_PASSENGER_WAGON_MAGLEV");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_WAGON, "LS_FREIGHT_WAGON");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_BUS, "LS_BUS");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_TRUCK, "LS_TRUCK");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_SHIP, "LS_PASSENGER_SHIP");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_SHIP, "LS_FREIGHT_SHIP");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_HELICOPTER, "LS_HELICOPTER");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_SMALL_PLANE, "LS_SMALL_PLANE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_LARGE_PLANE, "LS_LARGE_PLANE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_TRAM, "LS_PASSENGER_TRAM");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_TRAM, "LS_FREIGHT_TRAM");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_INVALID, "LS_INVALID");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_DARK_BLUE, "COLOUR_DARK_BLUE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_PALE_GREEN, "COLOUR_PALE_GREEN");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_PINK, "COLOUR_PINK");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_YELLOW, "COLOUR_YELLOW");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_RED, "COLOUR_RED");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_LIGHT_BLUE, "COLOUR_LIGHT_BLUE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_GREEN, "COLOUR_GREEN");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_DARK_GREEN, "COLOUR_DARK_GREEN");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_BLUE, "COLOUR_BLUE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_CREAM, "COLOUR_CREAM");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_MAUVE, "COLOUR_MAUVE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_PURPLE, "COLOUR_PURPLE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_ORANGE, "COLOUR_ORANGE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_BROWN, "COLOUR_BROWN");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_GREY, "COLOUR_GREY");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_WHITE, "COLOUR_WHITE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_INVALID, "COLOUR_INVALID");
|
||||
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::ResolveCompanyID, "ResolveCompanyID", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::IsMine, "IsMine", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetName, "SetName", 2, "..");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetName, "GetName", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetPresidentName, "SetPresidentName", 2, "..");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetPresidentName, "GetPresidentName", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetPresidentGender, "SetPresidentGender", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetPresidentGender, "GetPresidentGender", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetLoanAmount, "SetLoanAmount", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetMinimumLoanAmount, "SetMinimumLoanAmount", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetLoanAmount, "GetLoanAmount", 1, ".");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetMaxLoanAmount, "GetMaxLoanAmount", 1, ".");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetLoanInterval, "GetLoanInterval", 1, ".");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetBankBalance, "GetBankBalance", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetQuarterlyIncome, "GetQuarterlyIncome", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetQuarterlyExpenses, "GetQuarterlyExpenses", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetQuarterlyCargoDelivered, "GetQuarterlyCargoDelivered", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetQuarterlyPerformanceRating, "GetQuarterlyPerformanceRating", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetQuarterlyCompanyValue, "GetQuarterlyCompanyValue", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::BuildCompanyHQ, "BuildCompanyHQ", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetCompanyHQ, "GetCompanyHQ", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetAutoRenewStatus, "SetAutoRenewStatus", 2, ".b");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetAutoRenewStatus, "GetAutoRenewStatus", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetAutoRenewMonths, "SetAutoRenewMonths", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetAutoRenewMonths, "GetAutoRenewMonths", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetAutoRenewMoney, "SetAutoRenewMoney", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetAutoRenewMoney, "GetAutoRenewMoney", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetPrimaryLiveryColour, "SetPrimaryLiveryColour", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetSecondaryLiveryColour, "SetSecondaryLiveryColour", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetPrimaryLiveryColour, "GetPrimaryLiveryColour", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetSecondaryLiveryColour, "GetSecondaryLiveryColour", 2, ".i");
|
||||
|
||||
SQAICompany.PostRegister(engine);
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_date.hpp"
|
||||
#include "../template/template_date.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptDate, ST_AI>() { return "AIDate"; }
|
||||
|
||||
void SQAIDate_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptDate, ST_AI> SQAIDate("AIDate");
|
||||
SQAIDate.PreRegister(engine);
|
||||
SQAIDate.AddConstructor<void (ScriptDate::*)(), 1>(engine, "x");
|
||||
|
||||
SQAIDate.DefSQConst(engine, ScriptDate::DATE_INVALID, "DATE_INVALID");
|
||||
|
||||
SQAIDate.DefSQStaticMethod(engine, &ScriptDate::IsValidDate, "IsValidDate", 2, ".i");
|
||||
SQAIDate.DefSQStaticMethod(engine, &ScriptDate::GetCurrentDate, "GetCurrentDate", 1, ".");
|
||||
SQAIDate.DefSQStaticMethod(engine, &ScriptDate::GetDayLengthFactor, "GetDayLengthFactor", 1, ".");
|
||||
SQAIDate.DefSQStaticMethod(engine, &ScriptDate::GetYear, "GetYear", 2, ".i");
|
||||
SQAIDate.DefSQStaticMethod(engine, &ScriptDate::GetMonth, "GetMonth", 2, ".i");
|
||||
SQAIDate.DefSQStaticMethod(engine, &ScriptDate::GetDayOfMonth, "GetDayOfMonth", 2, ".i");
|
||||
SQAIDate.DefSQStaticMethod(engine, &ScriptDate::GetDate, "GetDate", 4, ".iii");
|
||||
|
||||
SQAIDate.PostRegister(engine);
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_depotlist.hpp"
|
||||
#include "../template/template_depotlist.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptDepotList, ST_AI>() { return "AIDepotList"; }
|
||||
|
||||
void SQAIDepotList_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptDepotList, ST_AI> SQAIDepotList("AIDepotList");
|
||||
SQAIDepotList.PreRegister(engine, "AIList");
|
||||
SQAIDepotList.AddConstructor<void (ScriptDepotList::*)(ScriptTile::TransportType transport_type), 2>(engine, "xi");
|
||||
|
||||
SQAIDepotList.PostRegister(engine);
|
||||
}
|
@ -1,51 +0,0 @@
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_engine.hpp"
|
||||
#include "../template/template_engine.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptEngine, ST_AI>() { return "AIEngine"; }
|
||||
|
||||
void SQAIEngine_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptEngine, ST_AI> SQAIEngine("AIEngine");
|
||||
SQAIEngine.PreRegister(engine);
|
||||
SQAIEngine.AddConstructor<void (ScriptEngine::*)(), 1>(engine, "x");
|
||||
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::IsValidEngine, "IsValidEngine", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::IsBuildable, "IsBuildable", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetName, "GetName", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetCargoType, "GetCargoType", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::CanRefitCargo, "CanRefitCargo", 3, ".ii");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::CanPullCargo, "CanPullCargo", 3, ".ii");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetCapacity, "GetCapacity", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetReliability, "GetReliability", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetMaxSpeed, "GetMaxSpeed", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetPrice, "GetPrice", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetMaxAge, "GetMaxAge", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetRunningCost, "GetRunningCost", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetPower, "GetPower", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetWeight, "GetWeight", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetMaxTractiveEffort, "GetMaxTractiveEffort", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetDesignDate, "GetDesignDate", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetVehicleType, "GetVehicleType", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::IsWagon, "IsWagon", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::CanRunOnRail, "CanRunOnRail", 3, ".ii");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::HasPowerOnRail, "HasPowerOnRail", 3, ".ii");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::CanRunOnRoad, "CanRunOnRoad", 3, ".ii");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::HasPowerOnRoad, "HasPowerOnRoad", 3, ".ii");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetRoadType, "GetRoadType", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetRailType, "GetRailType", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::IsArticulated, "IsArticulated", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetPlaneType, "GetPlaneType", 2, ".i");
|
||||
SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetMaximumOrderDistance, "GetMaximumOrderDistance", 2, ".i");
|
||||
|
||||
SQAIEngine.PostRegister(engine);
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue