Compare commits
35 Commits
master
...
stable-5.4
Author | SHA1 | Date |
---|---|---|
Maikel de Vries | df1d93992f | |
Tobias Zwick | 1066c4a4b3 | |
Sven Eberhardt | 455c35e2e5 | |
Martin Plicht | 92186db246 | |
Martin Plicht | 75f3fb2d70 | |
Maikel de Vries | ce56d6a681 | |
Martin Plicht | d63ea57e5f | |
Martin Plicht | f90e67d4ca | |
Martin Plicht | e3b7d9841c | |
Martin Plicht | a9abbd0cc8 | |
Martin Plicht | 16e55f9915 | |
Martin Plicht | b76b4342aa | |
Martin Plicht | b6083f0e9f | |
Martin Plicht | bbc2547ab7 | |
Martin Plicht | 7338153627 | |
Martin Plicht | 6c8b944272 | |
Martin Plicht | 80fce0968d | |
Maikel de Vries | 72d8fd88c0 | |
Tobias Zwick | c772ff8df6 | |
Tobias Zwick | ba64fda137 | |
Sven Eberhardt | 48cc4be206 | |
Nicolas Hake | 4745f881c4 | |
Nicolas Hake | a7199c26a0 | |
Tobias Zwick | 65873fbfdb | |
Sven Eberhardt | 638467d5a6 | |
Tobias Zwick | b63f46d0ba | |
Maikel de Vries | 38ea88bdb2 | |
Tobias Zwick | 8741283ecb | |
Maikel de Vries | 037d167de8 | |
Maikel de Vries | 1f34a2bbef | |
Tobias Zwick | 325d2b80e1 | |
Tobias Zwick | ba2d71c942 | |
Tobias Zwick | 8bc4b086d5 | |
Tobias Zwick | 2f5946d419 | |
Tobias Zwick | 47984a322d |
204
CMakeLists.txt
|
@ -99,6 +99,12 @@ set(CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}")
|
|||
CHECK_CXX_SOURCE_COMPILES("#include <regex>\nint main() { std::cregex_iterator ri; }" HAVE_WORKING_REGEX)
|
||||
CMAKE_DEPENDENT_OPTION(USE_BOOST_REGEX "Use Boost.Regex even if the C++ runtime has a working implementation of <regex>" OFF "HAVE_WORKING_REGEX" ON)
|
||||
|
||||
# We link Boost statically because that makes it easier for us to distribute
|
||||
# the resulting binary. Distributions have the ability to guarantee a certain
|
||||
# version of the library exists on the system though, so they may prefer
|
||||
# dynamic linking.
|
||||
option(USE_STATIC_BOOST "Link Boost libraries statically" ON)
|
||||
|
||||
if(MSVC_VERSION GREATER 1499)
|
||||
list(APPEND OC_CXX_FLAGS /MP)
|
||||
list(REMOVE_ITEM OC_CXX_FLAGS_DEBUG /Gm)
|
||||
|
@ -843,8 +849,13 @@ if(NOT WIN32)
|
|||
endif()
|
||||
|
||||
if(NOT USE_CONSOLE)
|
||||
find_package(Freetype REQUIRED)
|
||||
include_directories(${FREETYPE_INCLUDE_DIRS})
|
||||
if(APPLE)
|
||||
include(LegacyFindFreetype)
|
||||
include_directories(${FREETYPE_INCLUDE_DIRS})
|
||||
else()
|
||||
find_package(Freetype REQUIRED)
|
||||
include_directories(${FREETYPE_INCLUDE_DIRS})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# FINDLIB works the same as find_library, but also marks the resulting var as
|
||||
|
@ -925,11 +936,6 @@ if(APPLE)
|
|||
src/res/Clonk.icns
|
||||
src/res/ocd.icns src/res/ocf.icns src/res/ocg.icns
|
||||
src/res/C4P.icns src/res/ocs.icns src/res/ocu.icns
|
||||
src/res/MainMenu.xib
|
||||
src/res/FullScreen.xib
|
||||
src/res/EditorGUIWindow.xib
|
||||
src/res/EditorViewport.xib
|
||||
src/res/Editor.xib
|
||||
src/res/Mouse_Trans.png
|
||||
src/res/Cursor_Trans.png
|
||||
src/res/Brush_Trans.png
|
||||
|
@ -945,6 +951,24 @@ if(APPLE)
|
|||
src/res/Ift_Trans.png
|
||||
src/res/NoIft_Trans.png
|
||||
)
|
||||
|
||||
if (CMAKE_GENERATOR STREQUAL Xcode)
|
||||
list(APPEND OC_BUNDLE_RESOURCES
|
||||
src/res/MainMenu.xib
|
||||
src/res/FullScreen.xib
|
||||
src/res/EditorGUIWindow.xib
|
||||
src/res/EditorViewport.xib
|
||||
src/res/Editor.xib
|
||||
)
|
||||
else()
|
||||
list(APPEND OC_BUNDLE_RESOURCES
|
||||
src/res/nib/MainMenu.nib
|
||||
src/res/nib/FullScreen.nib
|
||||
src/res/nib/EditorGUIWindow.nib
|
||||
src/res/nib/EditorViewport.nib
|
||||
src/res/nib/Editor.nib
|
||||
)
|
||||
endif()
|
||||
|
||||
# Add icon resources
|
||||
set_source_files_properties(
|
||||
|
@ -1241,35 +1265,36 @@ endif()
|
|||
############################################################################
|
||||
|
||||
if (APPLE)
|
||||
add_custom_command(TARGET openclonk
|
||||
POST_BUILD COMMAND "/usr/bin/ruby" "${CMAKE_CURRENT_SOURCE_DIR}/tools/osx_bundle_libs"
|
||||
)
|
||||
|
||||
set(CMAKE_XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h")
|
||||
|
||||
SET_TARGET_PROPERTIES(openclonk PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES)
|
||||
SET_TARGET_PROPERTIES(openclonk PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++ objective-c++")
|
||||
SET_TARGET_PROPERTIES(openclonk PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h")
|
||||
SET_TARGET_PROPERTIES(c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES)
|
||||
SET_TARGET_PROPERTIES(c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++ objective-c++")
|
||||
SET_TARGET_PROPERTIES(c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h")
|
||||
SET_TARGET_PROPERTIES(libmisc PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES)
|
||||
SET_TARGET_PROPERTIES(libmisc PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++ objective-c++")
|
||||
SET_TARGET_PROPERTIES(libmisc PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h")
|
||||
SET_TARGET_PROPERTIES(openclonk PROPERTIES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES)
|
||||
|
||||
if (USE_APPLE_CLANG)
|
||||
# for good measure - seems to be part of default OSX installation
|
||||
# linking with static freetype library requires it
|
||||
target_link_libraries(openclonk "/usr/lib/libbz2.dylib")
|
||||
|
||||
set(HAVE_RVALUE_REF ON)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -std=c++0x -g -Wall -fobjc-arc")
|
||||
|
||||
if(CMAKE_GENERATOR STREQUAL Xcode)
|
||||
add_custom_command(TARGET openclonk
|
||||
POST_BUILD COMMAND "/usr/bin/ruby" "${CMAKE_CURRENT_SOURCE_DIR}/tools/osx_bundle_libs"
|
||||
)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES)
|
||||
set(CMAKE_XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h")
|
||||
set_target_properties(openclonk PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES)
|
||||
set_target_properties(openclonk PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++ objective-c++")
|
||||
set_target_properties(openclonk PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h")
|
||||
set_target_properties(c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES)
|
||||
set_target_properties(c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++ objective-c++")
|
||||
set_target_properties(c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h")
|
||||
set_target_properties(libmisc PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES)
|
||||
set_target_properties(libmisc PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++ objective-c++")
|
||||
set_target_properties(libmisc PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h")
|
||||
set_target_properties(openclonk PROPERTIES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES)
|
||||
|
||||
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++0x")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -std=c++0x -stdlib=libc++ -g -Wall")
|
||||
SET_TARGET_PROPERTIES(c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++0x objective-c++0x")
|
||||
SET_TARGET_PROPERTIES(openclonk PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++0x objective-c++0x")
|
||||
|
||||
set(HAVE_RVALUE_REF ON)
|
||||
else()
|
||||
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
|
||||
set_target_properties(c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++0x objective-c++0x")
|
||||
set_target_properties(openclonk PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++0x objective-c++0x")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -1400,7 +1425,7 @@ if(HAVE_UPNP)
|
|||
endif()
|
||||
|
||||
if(USE_BOOST_REGEX)
|
||||
SET(Boost_USE_STATIC_LIBS ON)
|
||||
SET(Boost_USE_STATIC_LIBS ${USE_STATIC_BOOST})
|
||||
find_package(Boost 1.40.0 REQUIRED COMPONENTS regex)
|
||||
# Disable automatic linking, we'll do it ourselves
|
||||
add_definitions(-DBOOST_REGEX_NO_LIB)
|
||||
|
@ -1439,38 +1464,44 @@ install(
|
|||
)"
|
||||
)
|
||||
|
||||
add_custom_target(icon32 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc32.png)
|
||||
add_custom_target(icon64 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc64.png)
|
||||
add_custom_target(icon128 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc128.png)
|
||||
add_custom_target(icon256 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc256.png)
|
||||
add_custom_target(icon512 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc512.png)
|
||||
add_dependencies(data icon32 icon64 icon128 icon256 icon512)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc32.png
|
||||
DESTINATION share/icons/hicolor/32x32/apps
|
||||
RENAME openclonk.png
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc64.png
|
||||
DESTINATION share/icons/hicolor/64x64/apps
|
||||
RENAME openclonk.png
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc128.png
|
||||
DESTINATION share/icons/hicolor/128x128/apps
|
||||
RENAME openclonk.png
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc256.png
|
||||
DESTINATION share/icons/hicolor/256x256/apps
|
||||
RENAME openclonk.png
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc512.png
|
||||
DESTINATION share/icons/hicolor/512x512/apps
|
||||
RENAME openclonk.png
|
||||
)
|
||||
if (NOT APPLE)
|
||||
add_custom_target(icon32 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc32.png)
|
||||
add_custom_target(icon64 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc64.png)
|
||||
add_custom_target(icon128 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc128.png)
|
||||
add_custom_target(icon256 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc256.png)
|
||||
add_custom_target(icon512 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc512.png)
|
||||
add_dependencies(data icon32 icon64 icon128 icon256 icon512)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc32.png
|
||||
DESTINATION share/icons/hicolor/32x32/apps
|
||||
RENAME openclonk.png
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc64.png
|
||||
DESTINATION share/icons/hicolor/64x64/apps
|
||||
RENAME openclonk.png
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc128.png
|
||||
DESTINATION share/icons/hicolor/128x128/apps
|
||||
RENAME openclonk.png
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc256.png
|
||||
DESTINATION share/icons/hicolor/256x256/apps
|
||||
RENAME openclonk.png
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc512.png
|
||||
DESTINATION share/icons/hicolor/512x512/apps
|
||||
RENAME openclonk.png
|
||||
)
|
||||
endif()
|
||||
|
||||
# NOTE: The scripts that does the autobuilds and ultimately the automated
|
||||
# releases as well do keep their own list of group files around currently.
|
||||
# So if you change anything here, change it in the release scripts as well.
|
||||
# See openclonk-release-scripts.git/groupcontent.py
|
||||
set(OC_C4GROUPS
|
||||
Graphics.ocg
|
||||
Material.ocg
|
||||
|
@ -1489,12 +1520,23 @@ get_target_property(C4GROUP_LOCATION c4group LOCATION)
|
|||
get_target_property(CLONK_LOCATION openclonk LOCATION)
|
||||
foreach(group ${OC_C4GROUPS})
|
||||
if (APPLE)
|
||||
add_custom_command(TARGET openclonk
|
||||
POST_BUILD COMMAND "/bin/sh" "${CMAKE_CURRENT_SOURCE_DIR}/tools/osx_pack_gamedata.sh"
|
||||
"${C4GROUP_LOCATION}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/planet/${group}"
|
||||
DEPENDS c4group
|
||||
if (CMAKE_GENERATOR STREQUAL Xcode)
|
||||
add_custom_command(TARGET openclonk
|
||||
POST_BUILD COMMAND "/bin/sh" "${CMAKE_CURRENT_SOURCE_DIR}/tools/osx_pack_gamedata.sh"
|
||||
"${C4GROUP_LOCATION}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/planet/${group}"
|
||||
# leave out third parameter here so the script can figure out Xcode-ish paths as usual
|
||||
DEPENDS c4group
|
||||
)
|
||||
else()
|
||||
add_custom_command(TARGET openclonk
|
||||
POST_BUILD COMMAND "/bin/sh" "${CMAKE_CURRENT_SOURCE_DIR}/tools/osx_pack_gamedata.sh"
|
||||
"${C4GROUP_LOCATION}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/planet/${group}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/openclonk.app/Contents/Resources"
|
||||
DEPENDS c4group
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${group}
|
||||
|
@ -1502,22 +1544,30 @@ foreach(group ${OC_C4GROUPS})
|
|||
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/planet/${group}
|
||||
DEPENDS c4group
|
||||
VERBATIM
|
||||
)
|
||||
)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${group} DESTINATION share/games/openclonk)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if (NOT APPLE)
|
||||
add_custom_target(groups DEPENDS ${OC_C4GROUPS})
|
||||
add_dependencies(data groups)
|
||||
|
||||
# Install new files
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/openclonk.desktop DESTINATION share/applications)
|
||||
|
||||
# Install binaries
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/openclonk DESTINATION games/)
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/c4group DESTINATION bin/)
|
||||
else()
|
||||
install(TARGETS openclonk
|
||||
BUNDLE DESTINATION .
|
||||
)
|
||||
install(TARGETS c4group c4script
|
||||
RUNTIME DESTINATION .
|
||||
)
|
||||
endif()
|
||||
|
||||
# Install new files
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/openclonk.desktop DESTINATION share/applications)
|
||||
|
||||
# Install binaries
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/openclonk DESTINATION games/)
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/c4group DESTINATION bin/)
|
||||
|
||||
############################################################################
|
||||
# setup_openclonk.exe
|
||||
############################################################################
|
||||
|
|
|
@ -13,7 +13,7 @@ SET(C4ENGINEID "${C4PROJECT_TLD}.${C4PROJECT_DOMAIN}.${C4ENGINENICK}")
|
|||
|
||||
SET(C4XVER1 5)
|
||||
SET(C4XVER2 4)
|
||||
SET(C4XVER3 0)
|
||||
SET(C4XVER3 1)
|
||||
|
||||
# C4VERSIONBUILDNAME should be witty and somewhat frequently changing
|
||||
# for alpha and beta releases, and meaningful and stable for stable releases.
|
||||
|
|
|
@ -1,143 +1,42 @@
|
|||
# - Locate FreeType library
|
||||
# OpenClonk, http://www.openclonk.org
|
||||
#
|
||||
# Copyright (c) 2014, The OpenClonk Team and contributors
|
||||
#
|
||||
# Distributed under the terms of the ISC license; see accompanying file
|
||||
# "COPYING" for details.
|
||||
#
|
||||
# "Clonk" is a registered trademark of Matthes Bender, used with permission.
|
||||
# See accompanying file "TRADEMARK" for details.
|
||||
#
|
||||
# To redistribute this file separately, substitute the full license texts
|
||||
# for the above references.
|
||||
|
||||
# This module defines
|
||||
# FREETYPE_LIBRARIES, the library to link against
|
||||
# FREETYPE_FOUND, if false, do not try to link to FREETYPE
|
||||
# FREETYPE_INCLUDE_DIRS, where to find headers.
|
||||
# FREETYPE_VERSION_STRING, the version of freetype found (since CMake 2.8.8)
|
||||
# This is the concatenation of the paths:
|
||||
# FREETYPE_INCLUDE_DIR_ft2build
|
||||
# FREETYPE_INCLUDE_DIR_freetype2
|
||||
#
|
||||
# $FREETYPE_DIR is an environment variable that would
|
||||
# correspond to the ./configure --prefix=$FREETYPE_DIR
|
||||
# used in building FREETYPE.
|
||||
# FREETYPE_VERSION_STRING, the version of freetype found
|
||||
|
||||
#=============================================================================
|
||||
# CMake - Cross Platform Makefile Generator
|
||||
# Copyright 2000-2011 Kitware, Inc., Insight Software Consortium
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# * Neither the names of Kitware, Inc., the Insight Software Consortium,
|
||||
# nor the names of their contributors may be used to endorse or promote
|
||||
# products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
# Created by Eric Wing.
|
||||
# Modifications by Alexander Neundorf.
|
||||
# This file has been renamed to "FindFreetype.cmake" instead of the correct
|
||||
# "FindFreeType.cmake" in order to be compatible with the one from KDE4, Alex.
|
||||
|
||||
# Modified by Nicolas Hake for the OpenClonk Project to make FindFreetype also
|
||||
# look for the versioned libraries the freetype MSVC project generates.
|
||||
|
||||
# Ugh, FreeType seems to use some #include trickery which
|
||||
# makes this harder than it should be. It looks like they
|
||||
# put ft2build.h in a common/easier-to-find location which
|
||||
# then contains a #include to a more specific header in a
|
||||
# more specific location (#include <freetype/config/ftheader.h>).
|
||||
# Then from there, they need to set a bunch of #define's
|
||||
# so you can do something like:
|
||||
# #include FT_FREETYPE_H
|
||||
# Unfortunately, using CMake's mechanisms like include_directories()
|
||||
# wants explicit full paths and this trickery doesn't work too well.
|
||||
# I'm going to attempt to cut out the middleman and hope
|
||||
# everything still works.
|
||||
find_path(FREETYPE_INCLUDE_DIR_ft2build ft2build.h
|
||||
HINTS
|
||||
ENV FREETYPE_DIR
|
||||
PATHS
|
||||
/usr/X11R6
|
||||
/usr/local/X11R6
|
||||
/usr/local/X11
|
||||
/usr/freeware
|
||||
PATH_SUFFIXES include/freetype2 include
|
||||
)
|
||||
|
||||
find_path(FREETYPE_INCLUDE_DIR_freetype2 freetype/config/ftheader.h
|
||||
HINTS
|
||||
ENV FREETYPE_DIR
|
||||
PATHS
|
||||
/usr/X11R6
|
||||
/usr/local/X11R6
|
||||
/usr/local/X11
|
||||
/usr/freeware
|
||||
PATH_SUFFIXES include/freetype2 include
|
||||
)
|
||||
|
||||
if(FREETYPE_INCLUDE_DIR_freetype2 AND EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h")
|
||||
file(STRINGS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h" freetype_version_str
|
||||
REGEX "^#[\t ]*define[\t ]+FREETYPE_(MAJOR|MINOR|PATCH)[\t ]+[0-9]+$")
|
||||
|
||||
unset(FREETYPE_VERSION_STRING)
|
||||
foreach(VPART MAJOR MINOR PATCH)
|
||||
foreach(VLINE ${freetype_version_str})
|
||||
if(VLINE MATCHES "^#[\t ]*define[\t ]+FREETYPE_${VPART}")
|
||||
string(REGEX REPLACE "^#[\t ]*define[\t ]+FREETYPE_${VPART}[\t ]+([0-9]+)$" "\\1"
|
||||
FREETYPE_VERSION_PART "${VLINE}")
|
||||
if(FREETYPE_VERSION_STRING)
|
||||
set(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_STRING}.${FREETYPE_VERSION_PART}")
|
||||
else()
|
||||
set(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_PART}")
|
||||
endif()
|
||||
unset(FREETYPE_VERSION_PART)
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
if(FREETYPE_VERSION_STRING)
|
||||
string(REPLACE "." "" FREETYPE_VERSIONED_LIBRARY "${FREETYPE_VERSION_STRING}")
|
||||
set(FREETYPE_VERSIONED_LIBRARY "freetype${FREETYPE_VERSIONED_LIBRARY}")
|
||||
endif()
|
||||
# Use pkg-config if possible instead of doing guesswork like the default CMake module does
|
||||
find_package(PkgConfig QUIET)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
set(_ft_pkgconfig_args "")
|
||||
if(FREETYPE_FIND_REQUIRED)
|
||||
set(_ft_pkgconfig_args "${_ft_pkgconfig_args}REQUIRED ")
|
||||
endif()
|
||||
if(FREETYPE_FIND_QUIET)
|
||||
set(_ft_pkgconfig_args "${_ft_pkgconfig_args}QUIET ")
|
||||
endif()
|
||||
set(_ft_pkgconfig_args "${_ft_pkgconfig_args}freetype2")
|
||||
if(FREETYPE_FIND_VERSION)
|
||||
if(NOT FREETYPE_FIND_VERSION_EXACT)
|
||||
set(_ft_pkgconfig_args "${_ft_pkgconfig_args}>")
|
||||
endif()
|
||||
set(_ft_pkgconfig_args "${_ft_pkgconfig_args}=${FREETYPE_FIND_VERSION} ")
|
||||
endif()
|
||||
pkg_check_modules(FREETYPE ${_ft_pkgconfig_args})
|
||||
endif()
|
||||
|
||||
find_library(FREETYPE_LIBRARY
|
||||
NAMES freetype libfreetype freetype219 ${FREETYPE_VERSIONED_LIBRARY}
|
||||
HINTS
|
||||
ENV FREETYPE_DIR
|
||||
PATH_SUFFIXES lib
|
||||
PATHS
|
||||
/usr/X11R6
|
||||
/usr/local/X11R6
|
||||
/usr/local/X11
|
||||
/usr/freeware
|
||||
)
|
||||
|
||||
unset(FREETYPE_VERSIONED_LIBRARY)
|
||||
|
||||
# set the user variables
|
||||
if(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
|
||||
set(FREETYPE_INCLUDE_DIRS "${FREETYPE_INCLUDE_DIR_ft2build};${FREETYPE_INCLUDE_DIR_freetype2}")
|
||||
if(NOT FREETYPE_FOUND)
|
||||
include(LegacyFindFreetype)
|
||||
endif()
|
||||
set(FREETYPE_LIBRARIES "${FREETYPE_LIBRARY}")
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set FREETYPE_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Freetype
|
||||
REQUIRED_VARS FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS
|
||||
VERSION_VAR FREETYPE_VERSION_STRING)
|
||||
|
||||
mark_as_advanced(FREETYPE_LIBRARY FREETYPE_INCLUDE_DIR_freetype2 FREETYPE_INCLUDE_DIR_ft2build)
|
||||
|
|
|
@ -0,0 +1,143 @@
|
|||
# - Locate FreeType library
|
||||
# This module defines
|
||||
# FREETYPE_LIBRARIES, the library to link against
|
||||
# FREETYPE_FOUND, if false, do not try to link to FREETYPE
|
||||
# FREETYPE_INCLUDE_DIRS, where to find headers.
|
||||
# FREETYPE_VERSION_STRING, the version of freetype found (since CMake 2.8.8)
|
||||
# This is the concatenation of the paths:
|
||||
# FREETYPE_INCLUDE_DIR_ft2build
|
||||
# FREETYPE_INCLUDE_DIR_freetype2
|
||||
#
|
||||
# $FREETYPE_DIR is an environment variable that would
|
||||
# correspond to the ./configure --prefix=$FREETYPE_DIR
|
||||
# used in building FREETYPE.
|
||||
|
||||
#=============================================================================
|
||||
# CMake - Cross Platform Makefile Generator
|
||||
# Copyright 2000-2011 Kitware, Inc., Insight Software Consortium
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# * Neither the names of Kitware, Inc., the Insight Software Consortium,
|
||||
# nor the names of their contributors may be used to endorse or promote
|
||||
# products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
# Created by Eric Wing.
|
||||
# Modifications by Alexander Neundorf.
|
||||
# This file has been renamed to "FindFreetype.cmake" instead of the correct
|
||||
# "FindFreeType.cmake" in order to be compatible with the one from KDE4, Alex.
|
||||
|
||||
# Modified by Nicolas Hake for the OpenClonk Project to make FindFreetype also
|
||||
# look for the versioned libraries the freetype MSVC project generates.
|
||||
|
||||
# Ugh, FreeType seems to use some #include trickery which
|
||||
# makes this harder than it should be. It looks like they
|
||||
# put ft2build.h in a common/easier-to-find location which
|
||||
# then contains a #include to a more specific header in a
|
||||
# more specific location (#include <freetype/config/ftheader.h>).
|
||||
# Then from there, they need to set a bunch of #define's
|
||||
# so you can do something like:
|
||||
# #include FT_FREETYPE_H
|
||||
# Unfortunately, using CMake's mechanisms like include_directories()
|
||||
# wants explicit full paths and this trickery doesn't work too well.
|
||||
# I'm going to attempt to cut out the middleman and hope
|
||||
# everything still works.
|
||||
find_path(FREETYPE_INCLUDE_DIR_ft2build ft2build.h
|
||||
HINTS
|
||||
ENV FREETYPE_DIR
|
||||
PATHS
|
||||
/usr/X11R6
|
||||
/usr/local/X11R6
|
||||
/usr/local/X11
|
||||
/usr/freeware
|
||||
PATH_SUFFIXES include/freetype2 include
|
||||
)
|
||||
|
||||
find_path(FREETYPE_INCLUDE_DIR_freetype2 freetype/config/ftheader.h
|
||||
HINTS
|
||||
ENV FREETYPE_DIR
|
||||
PATHS
|
||||
/usr/X11R6
|
||||
/usr/local/X11R6
|
||||
/usr/local/X11
|
||||
/usr/freeware
|
||||
PATH_SUFFIXES include/freetype2 include
|
||||
)
|
||||
|
||||
if(FREETYPE_INCLUDE_DIR_freetype2 AND EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h")
|
||||
file(STRINGS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h" freetype_version_str
|
||||
REGEX "^#[\t ]*define[\t ]+FREETYPE_(MAJOR|MINOR|PATCH)[\t ]+[0-9]+$")
|
||||
|
||||
unset(FREETYPE_VERSION_STRING)
|
||||
foreach(VPART MAJOR MINOR PATCH)
|
||||
foreach(VLINE ${freetype_version_str})
|
||||
if(VLINE MATCHES "^#[\t ]*define[\t ]+FREETYPE_${VPART}")
|
||||
string(REGEX REPLACE "^#[\t ]*define[\t ]+FREETYPE_${VPART}[\t ]+([0-9]+)$" "\\1"
|
||||
FREETYPE_VERSION_PART "${VLINE}")
|
||||
if(FREETYPE_VERSION_STRING)
|
||||
set(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_STRING}.${FREETYPE_VERSION_PART}")
|
||||
else()
|
||||
set(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_PART}")
|
||||
endif()
|
||||
unset(FREETYPE_VERSION_PART)
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
if(FREETYPE_VERSION_STRING)
|
||||
string(REPLACE "." "" FREETYPE_VERSIONED_LIBRARY "${FREETYPE_VERSION_STRING}")
|
||||
set(FREETYPE_VERSIONED_LIBRARY "freetype${FREETYPE_VERSIONED_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_library(FREETYPE_LIBRARY
|
||||
NAMES freetype libfreetype freetype219 ${FREETYPE_VERSIONED_LIBRARY}
|
||||
HINTS
|
||||
ENV FREETYPE_DIR
|
||||
PATH_SUFFIXES lib
|
||||
PATHS
|
||||
/usr/X11R6
|
||||
/usr/local/X11R6
|
||||
/usr/local/X11
|
||||
/usr/freeware
|
||||
)
|
||||
|
||||
unset(FREETYPE_VERSIONED_LIBRARY)
|
||||
|
||||
# set the user variables
|
||||
if(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
|
||||
set(FREETYPE_INCLUDE_DIRS "${FREETYPE_INCLUDE_DIR_ft2build};${FREETYPE_INCLUDE_DIR_freetype2}")
|
||||
endif()
|
||||
set(FREETYPE_LIBRARIES "${FREETYPE_LIBRARY}")
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set FREETYPE_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Freetype
|
||||
REQUIRED_VARS FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS
|
||||
VERSION_VAR FREETYPE_VERSION_STRING)
|
||||
|
||||
mark_as_advanced(FREETYPE_LIBRARY FREETYPE_INCLUDE_DIR_freetype2 FREETYPE_INCLUDE_DIR_ft2build)
|
|
@ -16,7 +16,7 @@
|
|||
</dd>
|
||||
<dt id="fullscreen">--fullscreen</dt>
|
||||
<dd>
|
||||
<text>Starts in fullscreen mode (also called player mode). If no scenario and no direct join adress is given, the startup menu is shown.</text>
|
||||
<text>Starts in fullscreen mode (also called player mode). If no scenario and no direct join address is given, the startup menu is shown.</text>
|
||||
</dd>
|
||||
<dt id="config">--config=Filename</dt>
|
||||
<dd>
|
||||
|
|
Before Width: | Height: | Size: 22 KiB |
|
@ -11,6 +11,7 @@ Dig2ObjectRatio=140
|
|||
Blast2ObjectRatio=200
|
||||
MaxAirSpeed=100
|
||||
MaxSlide=1
|
||||
Corrode=50
|
||||
Placement=40
|
||||
TextureOverlay=coal
|
||||
OverlayType=8
|
||||
|
|
|
@ -11,6 +11,7 @@ Blast2Object=Firestone
|
|||
Blast2ObjectRatio=115
|
||||
MaxAirSpeed=100
|
||||
MaxSlide=1
|
||||
Corrode=50
|
||||
Placement=40
|
||||
TextureOverlay=firestone
|
||||
Inflammable=1
|
|
@ -47,6 +47,7 @@ global func FxIntIntroStart(object target, proplist effect)
|
|||
effect.Pilot->SetDir(DIR_Left);
|
||||
effect.Pilot->SetObjectLayer(effect.Pilot);
|
||||
effect.Dialog = effect.Pilot->SetDialogue("Pilot");
|
||||
effect.Dialog->SetInteraction(false);
|
||||
|
||||
effect.Plane->FaceRight();
|
||||
effect.Plane->StartInstantFlight(90, 15);
|
||||
|
@ -106,10 +107,11 @@ global func FxIntIntroTimer(object target, proplist effect, int time)
|
|||
if(effect.Time == 500)
|
||||
for(var i = 0; i < GetPlayerCount(); ++i)
|
||||
GetCursor(GetPlayerByIndex(i))->CloseMenu();
|
||||
|
||||
|
||||
if(effect.Time >= 830)
|
||||
{
|
||||
effect.Pilot->SetCommand("MoveTo", effect.Pilot, 120 - effect.Pilot->GetX(), 860 - effect.Pilot->GetY());
|
||||
effect.Dialog->SetInteraction(true);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ MsgIntro1=Wow, it's very turbulent here...
|
|||
MsgIntro2=Have a look at that lava lake!
|
||||
MsgIntro3=Come on old girl, hang in there...
|
||||
MsgIntro4=Uh oh...
|
||||
MsgIntro5=Quick! The ejecter seats!
|
||||
MsgIntro5=Quick! The ejection seats!
|
||||
|
||||
# NPC Pilot
|
||||
NamePilot=Pilot
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
[DefCore]
|
||||
id=Dialogue
|
||||
id=DialogueCastle
|
||||
Version=5,2,0,1
|
||||
Category=C4D_StaticBack
|
||||
Picture=0,0,64,64
|
||||
Width=1
|
||||
Height=1
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -12,12 +12,12 @@ func GetPortraitDef(object talker)
|
|||
var portrait = talker.portrait;
|
||||
// Default definition has Clonk portrait
|
||||
// (Can't get default from skin, because there's no function GetSkin D:)
|
||||
if (!portrait || portrait == "" || portrait == "Clonk") return Dialogue;
|
||||
if (!portrait || portrait == "" || portrait == "Clonk") return DialogueCastle;
|
||||
// Otherwise, bind portrait to an invisible object
|
||||
// (note: invisible object is leaked. can't really know when the message will be gone.)
|
||||
if (!talker.portrait_obj)
|
||||
{
|
||||
talker.portrait_obj = CreateObject(Dialogue);
|
||||
talker.portrait_obj = CreateObject(DialogueCastle);
|
||||
talker.portrait_obj->SetAction("Attach", talker);
|
||||
talker.portrait_obj->SetGraphics(portrait);
|
||||
talker.portrait_obj.Visibility = VIS_None;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
/* Automatically created objects file */
|
||||
|
||||
static g_shroom1, g_shroom2, g_shroom3, g_shroom4, g_ruin1, g_ruin2, g_ruin3, g_elev1, g_elev2, g_farmer, g_king;
|
||||
|
||||
func InitializeObjects()
|
||||
{
|
||||
var Grass0001 = CreateObject(Grass, 396, 1149);
|
||||
|
@ -30,18 +32,22 @@ func InitializeObjects()
|
|||
var Fern0011 = CreateObject(Fern, 312, 1432);
|
||||
Fern0011->SetClrModulation(0xffa08060);
|
||||
|
||||
var LargeCaveMushroom0015 = CreateObject(LargeCaveMushroom, 1355, 1451);
|
||||
LargeCaveMushroom0015->SetClrModulation(0xffcddfdf);
|
||||
var LargeCaveMushroom0019 = CreateObject(LargeCaveMushroom, 1308, 1409);
|
||||
LargeCaveMushroom0019->SetR(180);
|
||||
LargeCaveMushroom0019->SetClrModulation(0xffdae7dc);
|
||||
LargeCaveMushroom0019->SetPosition(1308, 1384);
|
||||
var LargeCaveMushroom0023 = CreateObject(LargeCaveMushroom, 1411, 1447);
|
||||
LargeCaveMushroom0023->SetClrModulation(0xffe9d5dd);
|
||||
var LargeCaveMushroom0027 = CreateObject(LargeCaveMushroom, 1420, 1397);
|
||||
LargeCaveMushroom0027->SetR(160);
|
||||
LargeCaveMushroom0027->SetClrModulation(0xffeaedfb);
|
||||
LargeCaveMushroom0027->SetPosition(1420, 1374);
|
||||
g_shroom1 = CreateObject(LargeCaveMushroom, 1355, 1451);
|
||||
g_shroom1->SetClrModulation(0xffcddfdf);
|
||||
g_shroom1.StaticSaveVar = "g_shroom1";
|
||||
g_shroom2 = CreateObject(LargeCaveMushroom, 1308, 1409);
|
||||
g_shroom2->SetR(180);
|
||||
g_shroom2->SetClrModulation(0xffdae7dc);
|
||||
g_shroom2.StaticSaveVar = "g_shroom2";
|
||||
g_shroom2->SetPosition(1308, 1384);
|
||||
g_shroom3 = CreateObject(LargeCaveMushroom, 1411, 1447);
|
||||
g_shroom3->SetClrModulation(0xffe9d5dd);
|
||||
g_shroom3.StaticSaveVar = "g_shroom3";
|
||||
g_shroom4 = CreateObject(LargeCaveMushroom, 1420, 1397);
|
||||
g_shroom4->SetR(160);
|
||||
g_shroom4->SetClrModulation(0xffeaedfb);
|
||||
g_shroom4.StaticSaveVar = "g_shroom4";
|
||||
g_shroom4->SetPosition(1420, 1374);
|
||||
|
||||
var Rank0031 = CreateObject(Rank, 1430, 1423);
|
||||
Rank0031->SetR(-25);
|
||||
|
@ -68,77 +74,96 @@ func InitializeObjects()
|
|||
CreateObject(EnvPack_Candle, 1054, 672);
|
||||
|
||||
var EnvPack_Candle_Shine0049 = CreateObject(EnvPack_Candle_Shine, 1054, 672);
|
||||
EnvPack_Candle_Shine0049->SetClrModulation(0xbfffffff);
|
||||
EnvPack_Candle_Shine0049->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0049->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0050 = CreateObject(EnvPack_Candle_Shine, 1054, 672);
|
||||
EnvPack_Candle_Shine0050->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0050->SetClrModulation(0xbfffffff);
|
||||
EnvPack_Candle_Shine0050->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0051 = CreateObject(EnvPack_Candle_Shine, 1054, 671);
|
||||
EnvPack_Candle_Shine0051->SetClrModulation(0xc9ffffff);
|
||||
var EnvPack_Candle_Shine0051 = CreateObject(EnvPack_Candle_Shine, 1054, 672);
|
||||
EnvPack_Candle_Shine0051->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0051->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0052 = CreateObject(EnvPack_Candle_Shine, 1054, 671);
|
||||
EnvPack_Candle_Shine0052->SetClrModulation(0xc9ffffff);
|
||||
EnvPack_Candle_Shine0052->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
|
||||
CreateObject(EnvPack_Candle, 1054, 575);
|
||||
|
||||
var EnvPack_Candle_Shine0053 = CreateObject(EnvPack_Candle_Shine, 1054, 575);
|
||||
EnvPack_Candle_Shine0053->SetClrModulation(0xd9ffffff);
|
||||
EnvPack_Candle_Shine0053->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0054 = CreateObject(EnvPack_Candle_Shine, 1054, 575);
|
||||
EnvPack_Candle_Shine0054->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0054->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0055 = CreateObject(EnvPack_Candle_Shine, 1054, 575);
|
||||
EnvPack_Candle_Shine0055->SetClrModulation(0xd8ffffff);
|
||||
EnvPack_Candle_Shine0055->SetClrModulation(0xd9ffffff);
|
||||
EnvPack_Candle_Shine0055->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0056 = CreateObject(EnvPack_Candle_Shine, 1054, 575);
|
||||
EnvPack_Candle_Shine0056->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0056->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0057 = CreateObject(EnvPack_Candle_Shine, 1054, 575);
|
||||
EnvPack_Candle_Shine0057->SetClrModulation(0xd8ffffff);
|
||||
EnvPack_Candle_Shine0057->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
|
||||
CreateObject(EnvPack_Candle, 1185, 616);
|
||||
|
||||
var EnvPack_Candle_Shine0057 = CreateObject(EnvPack_Candle_Shine, 1185, 616);
|
||||
EnvPack_Candle_Shine0057->SetClrModulation(0xc6ffffff);
|
||||
EnvPack_Candle_Shine0057->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0058 = CreateObject(EnvPack_Candle_Shine, 1185, 616);
|
||||
EnvPack_Candle_Shine0058->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0058->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0059 = CreateObject(EnvPack_Candle_Shine, 1185, 616);
|
||||
EnvPack_Candle_Shine0059->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0059->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0060 = CreateObject(EnvPack_Candle_Shine, 1185, 616);
|
||||
EnvPack_Candle_Shine0060->SetClrModulation(0xc6ffffff);
|
||||
EnvPack_Candle_Shine0060->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0061 = CreateObject(EnvPack_Candle_Shine, 1185, 616);
|
||||
EnvPack_Candle_Shine0061->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0061->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0062 = CreateObject(EnvPack_Candle_Shine, 1185, 616);
|
||||
EnvPack_Candle_Shine0062->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0062->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
|
||||
CreateObject(EnvPack_Candle, 1531, 448);
|
||||
|
||||
var EnvPack_Candle_Shine0061 = CreateObject(EnvPack_Candle_Shine, 1531, 448);
|
||||
EnvPack_Candle_Shine0061->SetClrModulation(0xd4ffffff);
|
||||
EnvPack_Candle_Shine0061->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0062 = CreateObject(EnvPack_Candle_Shine, 1531, 448);
|
||||
EnvPack_Candle_Shine0062->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0062->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0063 = CreateObject(EnvPack_Candle_Shine, 1531, 447);
|
||||
EnvPack_Candle_Shine0063->SetClrModulation(0xddffffff);
|
||||
EnvPack_Candle_Shine0063->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0064 = CreateObject(EnvPack_Candle_Shine, 1531, 448);
|
||||
EnvPack_Candle_Shine0064->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0064->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0065 = CreateObject(EnvPack_Candle_Shine, 1531, 448);
|
||||
EnvPack_Candle_Shine0065->SetClrModulation(0xd4ffffff);
|
||||
EnvPack_Candle_Shine0065->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0066 = CreateObject(EnvPack_Candle_Shine, 1531, 448);
|
||||
EnvPack_Candle_Shine0066->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0066->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0067 = CreateObject(EnvPack_Candle_Shine, 1531, 447);
|
||||
EnvPack_Candle_Shine0067->SetClrModulation(0xddffffff);
|
||||
EnvPack_Candle_Shine0067->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
|
||||
CreateObject(EnvPack_Candle, 1362, 432);
|
||||
|
||||
var EnvPack_Candle_Shine0065 = CreateObject(EnvPack_Candle_Shine, 1362, 432);
|
||||
EnvPack_Candle_Shine0065->SetClrModulation(0xc7ffffff);
|
||||
EnvPack_Candle_Shine0065->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0066 = CreateObject(EnvPack_Candle_Shine, 1362, 432);
|
||||
EnvPack_Candle_Shine0066->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0066->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0067 = CreateObject(EnvPack_Candle_Shine, 1361, 430);
|
||||
EnvPack_Candle_Shine0067->SetClrModulation(0xcbffffff);
|
||||
EnvPack_Candle_Shine0067->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0069 = CreateObject(EnvPack_Candle_Shine, 1362, 432);
|
||||
EnvPack_Candle_Shine0069->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0069->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0070 = CreateObject(EnvPack_Candle_Shine, 1362, 432);
|
||||
EnvPack_Candle_Shine0070->SetClrModulation(0xc7ffffff);
|
||||
EnvPack_Candle_Shine0070->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0071 = CreateObject(EnvPack_Candle_Shine, 1362, 432);
|
||||
EnvPack_Candle_Shine0071->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0071->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0072 = CreateObject(EnvPack_Candle_Shine, 1361, 430);
|
||||
EnvPack_Candle_Shine0072->SetClrModulation(0xcbffffff);
|
||||
EnvPack_Candle_Shine0072->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
|
||||
CreateObject(EnvPack_CandleSmall, 1556, 432);
|
||||
|
||||
var EnvPack_CandleSmall_Shine0069 = CreateObject(EnvPack_CandleSmall_Shine, 1556, 423);
|
||||
EnvPack_CandleSmall_Shine0069->SetCon(40);
|
||||
EnvPack_CandleSmall_Shine0069->SetClrModulation(0x43ffffff);
|
||||
EnvPack_CandleSmall_Shine0069->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_CandleSmall_Shine0070 = CreateObject(EnvPack_CandleSmall_Shine, 1556, 429);
|
||||
EnvPack_CandleSmall_Shine0070->SetCon(40);
|
||||
EnvPack_CandleSmall_Shine0070->SetClrModulation(0x46ffffff);
|
||||
EnvPack_CandleSmall_Shine0070->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_CandleSmall_Shine0071 = CreateObject(EnvPack_CandleSmall_Shine, 1555, 432);
|
||||
EnvPack_CandleSmall_Shine0071->SetCon(40);
|
||||
EnvPack_CandleSmall_Shine0071->SetClrModulation(0x41ffffff);
|
||||
EnvPack_CandleSmall_Shine0071->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_CandleSmall_Shine0074 = CreateObject(EnvPack_CandleSmall_Shine, 1556, 435);
|
||||
EnvPack_CandleSmall_Shine0074->SetCon(40);
|
||||
EnvPack_CandleSmall_Shine0074->SetClrModulation(0x46ffffff);
|
||||
EnvPack_CandleSmall_Shine0074->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_CandleSmall_Shine0075 = CreateObject(EnvPack_CandleSmall_Shine, 1556, 423);
|
||||
EnvPack_CandleSmall_Shine0075->SetCon(40);
|
||||
EnvPack_CandleSmall_Shine0075->SetClrModulation(0x43ffffff);
|
||||
EnvPack_CandleSmall_Shine0075->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_CandleSmall_Shine0076 = CreateObject(EnvPack_CandleSmall_Shine, 1556, 429);
|
||||
EnvPack_CandleSmall_Shine0076->SetCon(40);
|
||||
EnvPack_CandleSmall_Shine0076->SetClrModulation(0x46ffffff);
|
||||
EnvPack_CandleSmall_Shine0076->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_CandleSmall_Shine0077 = CreateObject(EnvPack_CandleSmall_Shine, 1555, 432);
|
||||
EnvPack_CandleSmall_Shine0077->SetCon(40);
|
||||
EnvPack_CandleSmall_Shine0077->SetClrModulation(0x41ffffff);
|
||||
EnvPack_CandleSmall_Shine0077->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
|
||||
CreateObject(EnvPack_Crate, 1017, 576);
|
||||
|
||||
|
@ -149,27 +174,33 @@ func InitializeObjects()
|
|||
|
||||
CreateObject(EnvPack_Lantern, 894, 488);
|
||||
|
||||
var EnvPack_Lantern_Shine0077 = CreateObject(EnvPack_Lantern_Shine, 894, 477);
|
||||
EnvPack_Lantern_Shine0077->SetClrModulation(0xd3ffffff);
|
||||
EnvPack_Lantern_Shine0077->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0078 = CreateObject(EnvPack_Lantern_Shine, 894, 477);
|
||||
EnvPack_Lantern_Shine0078->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Lantern_Shine0078->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0079 = CreateObject(EnvPack_Lantern_Shine, 894, 477);
|
||||
EnvPack_Lantern_Shine0079->SetClrModulation(0xc6ffffff);
|
||||
EnvPack_Lantern_Shine0079->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0083 = CreateObject(EnvPack_Lantern_Shine, 894, 477);
|
||||
EnvPack_Lantern_Shine0083->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Lantern_Shine0083->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0084 = CreateObject(EnvPack_Lantern_Shine, 894, 477);
|
||||
EnvPack_Lantern_Shine0084->SetClrModulation(0xd3ffffff);
|
||||
EnvPack_Lantern_Shine0084->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0085 = CreateObject(EnvPack_Lantern_Shine, 894, 477);
|
||||
EnvPack_Lantern_Shine0085->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Lantern_Shine0085->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0086 = CreateObject(EnvPack_Lantern_Shine, 894, 477);
|
||||
EnvPack_Lantern_Shine0086->SetClrModulation(0xc6ffffff);
|
||||
EnvPack_Lantern_Shine0086->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
|
||||
CreateObject(EnvPack_Lantern, 1291, 472);
|
||||
|
||||
var EnvPack_Lantern_Shine0081 = CreateObject(EnvPack_Lantern_Shine, 1291, 461);
|
||||
EnvPack_Lantern_Shine0081->SetClrModulation(0xd5ffffff);
|
||||
EnvPack_Lantern_Shine0081->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0082 = CreateObject(EnvPack_Lantern_Shine, 1291, 461);
|
||||
EnvPack_Lantern_Shine0082->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Lantern_Shine0082->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0083 = CreateObject(EnvPack_Lantern_Shine, 1291, 461);
|
||||
EnvPack_Lantern_Shine0083->SetClrModulation(0xccffffff);
|
||||
EnvPack_Lantern_Shine0083->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0088 = CreateObject(EnvPack_Lantern_Shine, 1291, 461);
|
||||
EnvPack_Lantern_Shine0088->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Lantern_Shine0088->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0089 = CreateObject(EnvPack_Lantern_Shine, 1291, 461);
|
||||
EnvPack_Lantern_Shine0089->SetClrModulation(0xd5ffffff);
|
||||
EnvPack_Lantern_Shine0089->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0090 = CreateObject(EnvPack_Lantern_Shine, 1291, 461);
|
||||
EnvPack_Lantern_Shine0090->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Lantern_Shine0090->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Lantern_Shine0091 = CreateObject(EnvPack_Lantern_Shine, 1291, 461);
|
||||
EnvPack_Lantern_Shine0091->SetClrModulation(0xccffffff);
|
||||
EnvPack_Lantern_Shine0091->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
|
||||
CreateObject(EnvPack_Painting, 1235, 537);
|
||||
|
||||
|
@ -184,191 +215,213 @@ func InitializeObjects()
|
|||
|
||||
CreateObject(EnvPack_Candle, 1471, 552);
|
||||
|
||||
var EnvPack_Candle_Shine0091 = CreateObject(EnvPack_Candle_Shine, 1471, 552);
|
||||
EnvPack_Candle_Shine0091->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0091->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0092 = CreateObject(EnvPack_Candle_Shine, 1471, 552);
|
||||
EnvPack_Candle_Shine0092->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0092->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0093 = CreateObject(EnvPack_Candle_Shine, 1472, 552);
|
||||
EnvPack_Candle_Shine0093->SetClrModulation(0xddffffff);
|
||||
EnvPack_Candle_Shine0093->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0099 = CreateObject(EnvPack_Candle_Shine, 1471, 552);
|
||||
EnvPack_Candle_Shine0099->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0099->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0100 = CreateObject(EnvPack_Candle_Shine, 1471, 552);
|
||||
EnvPack_Candle_Shine0100->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0100->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0101 = CreateObject(EnvPack_Candle_Shine, 1471, 552);
|
||||
EnvPack_Candle_Shine0101->SetClrModulation(0xe4ffffff);
|
||||
EnvPack_Candle_Shine0101->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
var EnvPack_Candle_Shine0102 = CreateObject(EnvPack_Candle_Shine, 1472, 552);
|
||||
EnvPack_Candle_Shine0102->SetClrModulation(0xddffffff);
|
||||
EnvPack_Candle_Shine0102->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
|
||||
var Ruin10094 = CreateObject(Ruin1, 97, 1179);
|
||||
Ruin10094->SetR(16);
|
||||
Ruin10094->SetPosition(97, 1150);
|
||||
g_ruin1 = CreateObject(Ruin1, 97, 1179);
|
||||
g_ruin1->SetR(16);
|
||||
g_ruin1.StaticSaveVar = "g_ruin1";
|
||||
g_ruin1->SetPosition(97, 1150);
|
||||
|
||||
CreateObject(Ruin2, 353, 1145);
|
||||
g_ruin2 = CreateObject(Ruin2, 353, 1145);
|
||||
g_ruin2.StaticSaveVar = "g_ruin2";
|
||||
|
||||
CreateObject(Ruin3, 267, 1180);
|
||||
g_ruin3 = CreateObject(Ruin3, 267, 1180);
|
||||
g_ruin3.StaticSaveVar = "g_ruin3";
|
||||
|
||||
CreateObject(Foundry, 238, 1287);
|
||||
|
||||
var Chest0100 = CreateObject(Chest, 1473, 1414);
|
||||
var Chest0101 = CreateObject(Chest, 1574, 583);
|
||||
var Chest0102 = CreateObject(Chest, 823, 887);
|
||||
var Chest0103 = CreateObject(Chest, 856, 887);
|
||||
var Chest0104 = CreateObject(Chest, 1032, 575);
|
||||
var Chest0105 = CreateObject(Chest, 136, 103);
|
||||
var Chest0109 = CreateObject(Chest, 1473, 1414);
|
||||
var Chest0110 = CreateObject(Chest, 1574, 583);
|
||||
var Chest0111 = CreateObject(Chest, 823, 887);
|
||||
var Chest0112 = CreateObject(Chest, 856, 887);
|
||||
var Chest0113 = CreateObject(Chest, 1032, 575);
|
||||
var Chest0114 = CreateObject(Chest, 136, 103);
|
||||
|
||||
var StoneDoor0106 = CreateObject(StoneDoor, 940, 671);
|
||||
StoneDoor0106->SetComDir(COMD_Down);
|
||||
var StoneDoor0107 = CreateObject(StoneDoor, 1348, 527);
|
||||
StoneDoor0107->SetComDir(COMD_Down);
|
||||
var StoneDoor0108 = CreateObject(StoneDoor, 1347, 431);
|
||||
StoneDoor0108->SetComDir(COMD_Down);
|
||||
var StoneDoor0115 = CreateObject(StoneDoor, 940, 671);
|
||||
StoneDoor0115->SetComDir(COMD_Down);
|
||||
var StoneDoor0116 = CreateObject(StoneDoor, 1348, 527);
|
||||
StoneDoor0116->SetComDir(COMD_Down);
|
||||
var StoneDoor0117 = CreateObject(StoneDoor, 1347, 431);
|
||||
StoneDoor0117->SetComDir(COMD_Down);
|
||||
|
||||
var SpinWheel0109 = CreateObject(SpinWheel, 961, 672);
|
||||
SpinWheel0109->SetStoneDoor(StoneDoor0106);
|
||||
var SpinWheel0110 = CreateObject(SpinWheel, 1367, 527);
|
||||
SpinWheel0110->SetStoneDoor(StoneDoor0107);
|
||||
var SpinWheel0111 = CreateObject(SpinWheel, 1384, 471);
|
||||
SpinWheel0111->SetStoneDoor(StoneDoor0108);
|
||||
var SpinWheel0118 = CreateObject(SpinWheel, 961, 672);
|
||||
SpinWheel0118->SetStoneDoor(StoneDoor0115);
|
||||
var SpinWheel0119 = CreateObject(SpinWheel, 1367, 527);
|
||||
SpinWheel0119->SetStoneDoor(StoneDoor0116);
|
||||
var SpinWheel0120 = CreateObject(SpinWheel, 1384, 471);
|
||||
SpinWheel0120->SetStoneDoor(StoneDoor0117);
|
||||
|
||||
CreateObject(Column, 1197, 551);
|
||||
CreateObject(Column, 1218, 463);
|
||||
|
||||
CreateObject(Idol, 1080, 575);
|
||||
|
||||
var SteamEngine0115 = CreateObject(SteamEngine, 1529, 585);
|
||||
SteamEngine0115->SetCategory(C4D_StaticBack);
|
||||
var SteamEngine0124 = CreateObject(SteamEngine, 1529, 585);
|
||||
SteamEngine0124->SetCategory(C4D_StaticBack);
|
||||
|
||||
CreateObject(Elevator, 1366, 615);
|
||||
var Elevator0180 = CreateObject(Elevator, 167, 1184);
|
||||
Elevator0180->SetClrModulation(0xffa08060);
|
||||
g_elev1 = CreateObject(Elevator, 167, 1184);
|
||||
g_elev1.StaticSaveVar = "g_elev1";
|
||||
g_elev1->SetClrModulation(0xffa08060);
|
||||
g_elev1->CreateShaft(4);
|
||||
g_elev1->SetCasePosition(1176);
|
||||
g_elev2 = CreateObject(Elevator, 1366, 615);
|
||||
g_elev2.StaticSaveVar = "g_elev2";
|
||||
g_elev2->CreateShaft(4);
|
||||
g_elev2->SetCasePosition(607);
|
||||
|
||||
CreateObject(Airship, 931, 495);
|
||||
|
||||
var Catapult0202 = CreateObject(Catapult, 697, 887);
|
||||
Catapult0202->SetRDir(2);
|
||||
var Catapult0211 = CreateObject(Catapult, 697, 887);
|
||||
Catapult0211->SetRDir(2);
|
||||
|
||||
var Lorry0203 = CreateObject(Lorry, 149, 1324);
|
||||
Lorry0203->SetR(24);
|
||||
Lorry0203->SetPosition(149, 1315);
|
||||
var Lorry0205 = CreateObject(Lorry, 1428, 1253);
|
||||
Lorry0205->SetR(-30);
|
||||
Lorry0205->SetPosition(1428, 1243);
|
||||
var Lorry0212 = CreateObject(Lorry, 149, 1324);
|
||||
Lorry0212->SetR(24);
|
||||
Lorry0212->SetPosition(149, 1315);
|
||||
var Lorry0214 = CreateObject(Lorry, 1428, 1253);
|
||||
Lorry0214->SetR(-30);
|
||||
Lorry0214->SetPosition(1428, 1243);
|
||||
|
||||
CreateObject(Airship_Burnt, 38, 1152);
|
||||
|
||||
var Cannon0208 = CreateObject(Cannon, 788, 679);
|
||||
Cannon0208->SetR(30);
|
||||
Cannon0208->SetPosition(788, 669);
|
||||
var Cannon0217 = CreateObject(Cannon, 788, 679);
|
||||
Cannon0217->SetR(30);
|
||||
Cannon0217->SetPosition(788, 669);
|
||||
CreateObject(Cannon, 1004, 471);
|
||||
CreateObject(Cannon, 1336, 336);
|
||||
|
||||
var Clonk0211 = CreateObject(Clonk, 673, 886);
|
||||
Clonk0211->SetColor(0xff);
|
||||
Clonk0211->SetName("Horst");
|
||||
S2AI->AddAI(Clonk0211);
|
||||
S2AI->SetHome(Clonk0211, 670, 878, DIR_Left);
|
||||
S2AI->SetGuardRange(Clonk0211, 400, 800, 500, 150);
|
||||
S2AI->SetAllyAlertRange(Clonk0211, 60);
|
||||
S2AI->SetEncounterCB(Clonk0211, "EncounterOutpost");
|
||||
var Clonk0219 = CreateObject(Clonk, 710, 887);
|
||||
Clonk0219->SetColor(0xff);
|
||||
Clonk0219->SetName("Hanniball");
|
||||
S2AI->AddAI(Clonk0219);
|
||||
S2AI->SetHome(Clonk0219, 709, 877, DIR_Left);
|
||||
S2AI->SetGuardRange(Clonk0219, 300, 700, 500, 250);
|
||||
S2AI->SetAllyAlertRange(Clonk0219, 60);
|
||||
var Clonk0226 = CreateObject(Clonk, 781, 671);
|
||||
Clonk0226->SetDir(DIR_Right);
|
||||
Clonk0226->SetColor(0xff);
|
||||
Clonk0226->SetName("Twonky");
|
||||
S2AI->AddAI(Clonk0226);
|
||||
S2AI->SetHome(Clonk0226, 781, 663, DIR_Right);
|
||||
S2AI->SetGuardRange(Clonk0226, 481, 511, 600, 300);
|
||||
var Clonk0234 = CreateObject(Clonk, 1010, 671);
|
||||
var Clonk0220 = CreateObject(Clonk, 673, 886);
|
||||
Clonk0220->SetColor(0xff);
|
||||
Clonk0220->SetName("Horst");
|
||||
S2AI->AddAI(Clonk0220);
|
||||
S2AI->SetHome(Clonk0220, 670, 878, DIR_Left);
|
||||
S2AI->SetGuardRange(Clonk0220, 400, 800, 500, 150);
|
||||
S2AI->SetAllyAlertRange(Clonk0220, 60);
|
||||
S2AI->SetEncounterCB(Clonk0220, "EncounterOutpost");
|
||||
Clonk0220->SetDir(DIR_Left);
|
||||
var Clonk0227 = CreateObject(Clonk, 710, 887);
|
||||
Clonk0227->SetColor(0xff);
|
||||
Clonk0227->SetName("Hanniball");
|
||||
S2AI->AddAI(Clonk0227);
|
||||
S2AI->SetHome(Clonk0227, 709, 877, DIR_Left);
|
||||
S2AI->SetGuardRange(Clonk0227, 300, 700, 500, 250);
|
||||
S2AI->SetAllyAlertRange(Clonk0227, 60);
|
||||
Clonk0227->SetDir(DIR_Left);
|
||||
var Clonk0234 = CreateObject(Clonk, 781, 671);
|
||||
Clonk0234->SetDir(DIR_Right);
|
||||
Clonk0234->SetColor(0xff);
|
||||
Clonk0234->SetName("Sven");
|
||||
Clonk0234->SetName("Twonky");
|
||||
S2AI->AddAI(Clonk0234);
|
||||
S2AI->SetHome(Clonk0234, 1010, 663, DIR_Right);
|
||||
S2AI->SetGuardRange(Clonk0234, 710, 511, 600, 300);
|
||||
var Clonk0242 = CreateObject(Clonk, 985, 671);
|
||||
Clonk0242->SetDir(DIR_Right);
|
||||
Clonk0242->SetColor(0xff);
|
||||
Clonk0242->SetName("Luki");
|
||||
S2AI->AddAI(Clonk0242);
|
||||
S2AI->SetHome(Clonk0242, 985, 663, DIR_Right);
|
||||
S2AI->SetGuardRange(Clonk0242, 685, 511, 600, 300);
|
||||
var Clonk0250 = CreateObject(Clonk, 1373, 1246);
|
||||
Clonk0250->SetColor(0xffff0000);
|
||||
Clonk0250->SetName("Anna");
|
||||
S2AI->AddAI(Clonk0250);
|
||||
S2AI->SetHome(Clonk0250, 1370, 1237, DIR_Left);
|
||||
S2AI->SetGuardRange(Clonk0250, 1150, 1140, 320, 150);
|
||||
S2AI->SetAllyAlertRange(Clonk0250, 170);
|
||||
var Clonk0258 = CreateObject(Clonk, 1449, 1246);
|
||||
Clonk0258->SetColor(0xffff0000);
|
||||
Clonk0258->SetName("Cindy");
|
||||
S2AI->AddAI(Clonk0258);
|
||||
S2AI->SetHome(Clonk0258, 1448, 1237, DIR_Left);
|
||||
S2AI->SetGuardRange(Clonk0258, 1150, 1140, 320, 150);
|
||||
S2AI->SetAllyAlertRange(Clonk0258, 170);
|
||||
S2AI->SetEncounterCB(Clonk0258, "EncounterCave");
|
||||
var Clonk0266 = CreateObject(Clonk, 307, 1166);
|
||||
Clonk0266->SetDir(DIR_Right);
|
||||
Clonk0266->SetColor(0xff);
|
||||
Clonk0266->SetClrModulation(0xffffa020);
|
||||
Clonk0266->SetName("Farmer");
|
||||
var Clonk0273 = CreateObject(Clonk, 1197, 551);
|
||||
Clonk0273->SetDir(DIR_Right);
|
||||
Clonk0273->SetColor(0xff);
|
||||
Clonk0273->SetName("Sabrina");
|
||||
S2AI->AddAI(Clonk0273);
|
||||
S2AI->SetHome(Clonk0273, 1196, 542, DIR_Right);
|
||||
S2AI->SetGuardRange(Clonk0273, 896, 392, 600, 300);
|
||||
var Clonk0281 = CreateObject(Clonk, 1266, 550);
|
||||
Clonk0281->SetColor(0xff);
|
||||
Clonk0281->SetName("Laura");
|
||||
S2AI->AddAI(Clonk0281);
|
||||
S2AI->SetGuardRange(Clonk0281, 966, 391, 600, 300);
|
||||
S2AI->SetHome(Clonk0234, 781, 663, DIR_Right);
|
||||
S2AI->SetGuardRange(Clonk0234, 481, 511, 600, 300);
|
||||
var Clonk0241 = CreateObject(Clonk, 1010, 671);
|
||||
Clonk0241->SetDir(DIR_Right);
|
||||
Clonk0241->SetColor(0xff);
|
||||
Clonk0241->SetName("Sven");
|
||||
S2AI->AddAI(Clonk0241);
|
||||
S2AI->SetHome(Clonk0241, 1010, 663, DIR_Right);
|
||||
S2AI->SetGuardRange(Clonk0241, 710, 511, 600, 300);
|
||||
var Clonk0248 = CreateObject(Clonk, 985, 671);
|
||||
Clonk0248->SetDir(DIR_Right);
|
||||
Clonk0248->SetColor(0xff);
|
||||
Clonk0248->SetName("Luki");
|
||||
S2AI->AddAI(Clonk0248);
|
||||
S2AI->SetHome(Clonk0248, 985, 663, DIR_Right);
|
||||
S2AI->SetGuardRange(Clonk0248, 685, 511, 600, 300);
|
||||
var Clonk0255 = CreateObject(Clonk, 1373, 1246);
|
||||
Clonk0255->SetColor(0xffff0000);
|
||||
Clonk0255->SetName("Anna");
|
||||
S2AI->AddAI(Clonk0255);
|
||||
S2AI->SetHome(Clonk0255, 1370, 1237, DIR_Left);
|
||||
S2AI->SetGuardRange(Clonk0255, 1150, 1140, 320, 150);
|
||||
S2AI->SetAllyAlertRange(Clonk0255, 170);
|
||||
Clonk0255->SetDir(DIR_Left);
|
||||
var Clonk0262 = CreateObject(Clonk, 1449, 1246);
|
||||
Clonk0262->SetColor(0xffff0000);
|
||||
Clonk0262->SetName("Cindy");
|
||||
S2AI->AddAI(Clonk0262);
|
||||
S2AI->SetHome(Clonk0262, 1448, 1237, DIR_Left);
|
||||
S2AI->SetGuardRange(Clonk0262, 1150, 1140, 320, 150);
|
||||
S2AI->SetAllyAlertRange(Clonk0262, 170);
|
||||
S2AI->SetEncounterCB(Clonk0262, "EncounterCave");
|
||||
Clonk0262->SetDir(DIR_Left);
|
||||
g_farmer = CreateObject(Clonk, 307, 1166);
|
||||
g_farmer->SetDir(DIR_Left);
|
||||
g_farmer->SetColor(0xff0000);
|
||||
g_farmer->SetClrModulation(0xffffa020);
|
||||
g_farmer->SetName("Farmer");
|
||||
g_farmer.StaticSaveVar = "g_farmer";
|
||||
var Clonk0275 = CreateObject(Clonk, 1197, 551);
|
||||
Clonk0275->SetDir(DIR_Right);
|
||||
Clonk0275->SetColor(0xff);
|
||||
Clonk0275->SetName("Sabrina");
|
||||
S2AI->AddAI(Clonk0275);
|
||||
S2AI->SetHome(Clonk0275, 1196, 542, DIR_Right);
|
||||
S2AI->SetGuardRange(Clonk0275, 896, 392, 600, 300);
|
||||
var Clonk0282 = CreateObject(Clonk, 1266, 550);
|
||||
Clonk0282->SetColor(0xff);
|
||||
Clonk0282->SetName("Laura");
|
||||
S2AI->AddAI(Clonk0282);
|
||||
S2AI->SetGuardRange(Clonk0282, 966, 391, 600, 300);
|
||||
Clonk0282->SetDir(DIR_Left);
|
||||
var Clonk0289 = CreateObject(Clonk, 1287, 471);
|
||||
Clonk0289->SetDir(DIR_Right);
|
||||
Clonk0289->SetColor(0xff);
|
||||
S2AI->AddAI(Clonk0289);
|
||||
S2AI->SetHome(Clonk0289, 1287, 464, DIR_Right);
|
||||
S2AI->SetGuardRange(Clonk0289, 987, 312, 600, 300);
|
||||
var Clonk0297 = CreateObject(Clonk, 1092, 575);
|
||||
Clonk0297->SetDir(DIR_Right);
|
||||
Clonk0297->SetColor(0xff);
|
||||
Clonk0297->SetName("Wolfgang");
|
||||
S2AI->AddAI(Clonk0297);
|
||||
S2AI->SetHome(Clonk0297, 1092, 567, DIR_Right);
|
||||
S2AI->SetGuardRange(Clonk0297, 792, 416, 600, 300);
|
||||
var Clonk0305 = CreateObject(Clonk, 1569, 431);
|
||||
Clonk0305->Kill(Clonk0305, true);
|
||||
Clonk0305->SetCon(200);
|
||||
Clonk0305->SetColor(0xff);
|
||||
Clonk0305->SetClrModulation(0xffff8000);
|
||||
Clonk0305->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
Clonk0305->SetName("Horax");
|
||||
Clonk0305.MaxEnergy = 200000;
|
||||
Clonk0305->DoEnergy(150);
|
||||
S2AI->AddAI(Clonk0305);
|
||||
S2AI->SetHome(Clonk0305, 1568, 413, DIR_Left);
|
||||
S2AI->SetGuardRange(Clonk0305, 1268, 263, 600, 300);
|
||||
S2AI->SetEncounterCB(Clonk0305, "EncounterKing");
|
||||
var Clonk0312 = CreateObject(Clonk, 1070, 575);
|
||||
Clonk0312->SetColor(0xff);
|
||||
Clonk0312->SetName("Hans");
|
||||
S2AI->AddAI(Clonk0312);
|
||||
S2AI->SetHome(Clonk0312, 1069, 566, DIR_Left);
|
||||
S2AI->SetGuardRange(Clonk0312, 769, 416, 600, 300);
|
||||
var Clonk0320 = CreateObject(Clonk, 1019, 471);
|
||||
Clonk0320->SetColor(0xff);
|
||||
Clonk0320->SetName("Joki");
|
||||
S2AI->AddAI(Clonk0320);
|
||||
S2AI->SetGuardRange(Clonk0320, 719, 312, 600, 300);
|
||||
var Clonk0328 = CreateObject(Clonk, 285, 1182);
|
||||
Clonk0328->Kill(Clonk0328, true);
|
||||
Clonk0328->SetColor(0xffff0000);
|
||||
var Clonk0334 = CreateObject(Clonk, 208, 1183);
|
||||
Clonk0334->Kill(Clonk0334, true);
|
||||
Clonk0334->SetDir(DIR_Right);
|
||||
Clonk0334->SetColor(0xffff0000);
|
||||
var Clonk0296 = CreateObject(Clonk, 1092, 575);
|
||||
Clonk0296->SetDir(DIR_Right);
|
||||
Clonk0296->SetColor(0xff);
|
||||
Clonk0296->SetName("Wolfgang");
|
||||
S2AI->AddAI(Clonk0296);
|
||||
S2AI->SetHome(Clonk0296, 1092, 567, DIR_Right);
|
||||
S2AI->SetGuardRange(Clonk0296, 792, 416, 600, 300);
|
||||
g_king = CreateObject(Clonk, 1569, 431);
|
||||
g_king->SetDir(DIR_Left);
|
||||
g_king->SetCon(200);
|
||||
g_king->SetColor(0xff);
|
||||
g_king->SetClrModulation(0xffff8000);
|
||||
g_king->SetObjectBlitMode(GFX_BLIT_Additive);
|
||||
g_king->SetName("Horax");
|
||||
g_king.MaxEnergy = 200000;
|
||||
g_king->DoEnergy(150);
|
||||
g_king.StaticSaveVar = "g_king";
|
||||
S2AI->AddAI(g_king);
|
||||
S2AI->SetHome(g_king, 1568, 413, DIR_Left);
|
||||
S2AI->SetGuardRange(g_king, 1268, 263, 600, 300);
|
||||
S2AI->SetEncounterCB(g_king, "EncounterKing");
|
||||
var Clonk0310 = CreateObject(Clonk, 1070, 575);
|
||||
Clonk0310->SetDir(DIR_Right);
|
||||
Clonk0310->SetColor(0xff);
|
||||
Clonk0310->SetName("Hans");
|
||||
S2AI->AddAI(Clonk0310);
|
||||
S2AI->SetHome(Clonk0310, 1069, 566, DIR_Left);
|
||||
S2AI->SetGuardRange(Clonk0310, 769, 416, 600, 300);
|
||||
var Clonk0317 = CreateObject(Clonk, 1019, 471);
|
||||
Clonk0317->SetColor(0xff);
|
||||
Clonk0317->SetName("Joki");
|
||||
S2AI->AddAI(Clonk0317);
|
||||
S2AI->SetGuardRange(Clonk0317, 719, 312, 600, 300);
|
||||
Clonk0317->SetDir(DIR_Left);
|
||||
var Clonk0324 = CreateObject(Clonk, 285, 1182);
|
||||
Clonk0324->Kill(Clonk0324, true);
|
||||
Clonk0324->SetDir(DIR_Right);
|
||||
Clonk0324->SetColor(0xffff0000);
|
||||
var Clonk0330 = CreateObject(Clonk, 208, 1183);
|
||||
Clonk0330->Kill(Clonk0330, true);
|
||||
Clonk0330->SetDir(DIR_Right);
|
||||
Clonk0330->SetColor(0xffff0000);
|
||||
|
||||
CreateObject(Rock, 879, 1003);
|
||||
CreateObject(Rock, 262, 1182);
|
||||
|
@ -395,18 +448,18 @@ func InitializeObjects()
|
|||
CreateObject(Rock, 742, 1522);
|
||||
CreateObject(Rock, 712, 1351);
|
||||
CreateObject(Rock, 1047, 1207);
|
||||
Clonk0250->CreateContents(Rock);
|
||||
Clonk0250->CreateContents(Rock);
|
||||
Clonk0250->CreateContents(Rock);
|
||||
Clonk0255->CreateContents(Rock);
|
||||
Clonk0255->CreateContents(Rock);
|
||||
Clonk0255->CreateContents(Rock);
|
||||
|
||||
CreateObject(Coal, 59, 1346);
|
||||
CreateObject(Coal, 156, 1370);
|
||||
CreateObject(Coal, 243, 1555);
|
||||
CreateObject(Coal, 61, 1495);
|
||||
CreateObject(Coal, 140, 1380);
|
||||
SteamEngine0115->CreateContents(Coal);
|
||||
SteamEngine0115->CreateContents(Coal);
|
||||
SteamEngine0115->CreateContents(Coal);
|
||||
SteamEngine0124->CreateContents(Coal);
|
||||
SteamEngine0124->CreateContents(Coal);
|
||||
SteamEngine0124->CreateContents(Coal);
|
||||
|
||||
CreateObject(Ore, 227, 1366);
|
||||
CreateObject(Ore, 64, 1421);
|
||||
|
@ -425,65 +478,65 @@ func InitializeObjects()
|
|||
CreateObject(Wood, 19, 1135);
|
||||
CreateObject(Wood, 749, 1056);
|
||||
CreateObject(Wood, 168, 1512);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Lorry0203->CreateContents(Wood);
|
||||
Chest0103->CreateContents(Wood);
|
||||
Chest0103->CreateContents(Wood);
|
||||
Chest0103->CreateContents(Wood);
|
||||
Chest0103->CreateContents(Wood);
|
||||
Chest0103->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Lorry0212->CreateContents(Wood);
|
||||
Chest0112->CreateContents(Wood);
|
||||
Chest0112->CreateContents(Wood);
|
||||
Chest0112->CreateContents(Wood);
|
||||
Chest0112->CreateContents(Wood);
|
||||
Chest0112->CreateContents(Wood);
|
||||
CreateObject(Wood, 346, 1456);
|
||||
CreateObject(Wood, 336, 1456);
|
||||
Lorry0205->CreateContents(Wood);
|
||||
Chest0100->CreateContents(Wood);
|
||||
Chest0100->CreateContents(Wood);
|
||||
Chest0100->CreateContents(Wood);
|
||||
Chest0100->CreateContents(Wood);
|
||||
Chest0100->CreateContents(Wood);
|
||||
Chest0100->CreateContents(Wood);
|
||||
Chest0100->CreateContents(Wood);
|
||||
Lorry0205->CreateContents(Wood);
|
||||
Lorry0205->CreateContents(Wood);
|
||||
Lorry0205->CreateContents(Wood);
|
||||
Lorry0205->CreateContents(Wood);
|
||||
Chest0104->CreateContents(Wood);
|
||||
Chest0104->CreateContents(Wood);
|
||||
Chest0104->CreateContents(Wood);
|
||||
Chest0104->CreateContents(Wood);
|
||||
Chest0104->CreateContents(Wood);
|
||||
Lorry0214->CreateContents(Wood);
|
||||
Chest0109->CreateContents(Wood);
|
||||
Chest0109->CreateContents(Wood);
|
||||
Chest0109->CreateContents(Wood);
|
||||
Chest0109->CreateContents(Wood);
|
||||
Chest0109->CreateContents(Wood);
|
||||
Chest0109->CreateContents(Wood);
|
||||
Chest0109->CreateContents(Wood);
|
||||
Lorry0214->CreateContents(Wood);
|
||||
Lorry0214->CreateContents(Wood);
|
||||
Lorry0214->CreateContents(Wood);
|
||||
Lorry0214->CreateContents(Wood);
|
||||
Chest0113->CreateContents(Wood);
|
||||
Chest0113->CreateContents(Wood);
|
||||
Chest0113->CreateContents(Wood);
|
||||
Chest0113->CreateContents(Wood);
|
||||
Chest0113->CreateContents(Wood);
|
||||
CreateObject(Wood, 167, 1512);
|
||||
CreateObject(Wood, 177, 1512);
|
||||
CreateObject(Wood, 511, 1497);
|
||||
|
||||
Lorry0203->CreateContents(Loam);
|
||||
Lorry0212->CreateContents(Loam);
|
||||
CreateObject(Loam, 199, 1287);
|
||||
CreateObject(Loam, 283, 1431);
|
||||
CreateObject(Loam, 372, 1391);
|
||||
|
@ -505,125 +558,125 @@ func InitializeObjects()
|
|||
CreateObject(Loam, 1393, 644);
|
||||
CreateObject(Loam, 1462, 1079);
|
||||
CreateObject(Loam, 1501, 1415);
|
||||
Chest0103->CreateContents(Loam);
|
||||
Chest0103->CreateContents(Loam);
|
||||
Chest0103->CreateContents(Loam);
|
||||
Chest0105->CreateContents(Loam);
|
||||
Chest0105->CreateContents(Loam);
|
||||
Chest0105->CreateContents(Loam);
|
||||
Chest0105->CreateContents(Loam);
|
||||
Chest0105->CreateContents(Loam);
|
||||
Chest0112->CreateContents(Loam);
|
||||
Chest0112->CreateContents(Loam);
|
||||
Chest0112->CreateContents(Loam);
|
||||
Chest0114->CreateContents(Loam);
|
||||
Chest0114->CreateContents(Loam);
|
||||
Chest0114->CreateContents(Loam);
|
||||
Chest0114->CreateContents(Loam);
|
||||
Chest0114->CreateContents(Loam);
|
||||
|
||||
var GoldBar0478 = CreateObject(GoldBar, 1293, 1236);
|
||||
GoldBar0478->SetR(22);
|
||||
GoldBar0478->SetPosition(1293, 1235);
|
||||
Lorry0205->CreateContents(GoldBar);
|
||||
Lorry0205->CreateContents(GoldBar);
|
||||
var GoldBar0474 = CreateObject(GoldBar, 1293, 1236);
|
||||
GoldBar0474->SetR(22);
|
||||
GoldBar0474->SetPosition(1293, 1235);
|
||||
Lorry0214->CreateContents(GoldBar);
|
||||
Lorry0214->CreateContents(GoldBar);
|
||||
|
||||
Clonk0211->CreateContents(Sword);
|
||||
Clonk0258->CreateContents(Sword);
|
||||
Clonk0234->CreateContents(Sword);
|
||||
Clonk0242->CreateContents(Sword);
|
||||
Clonk0312->CreateContents(Sword);
|
||||
Clonk0220->CreateContents(Sword);
|
||||
Clonk0262->CreateContents(Sword);
|
||||
Clonk0241->CreateContents(Sword);
|
||||
Clonk0248->CreateContents(Sword);
|
||||
Clonk0310->CreateContents(Sword);
|
||||
Clonk0289->CreateContents(Sword);
|
||||
Clonk0305->CreateContents(Sword);
|
||||
Clonk0219->CreateContents(Sword);
|
||||
g_king->CreateContents(Sword);
|
||||
Clonk0227->CreateContents(Sword);
|
||||
|
||||
var Arrow0489 = Clonk0211->CreateContents(Arrow);
|
||||
var Arrow0485 = Clonk0220->CreateContents(Arrow);
|
||||
Arrow0485->SetR(90);
|
||||
var Arrow0486 = Clonk0220->CreateContents(Arrow);
|
||||
Arrow0486->SetR(90);
|
||||
var Arrow0487 = Chest0111->CreateContents(Arrow);
|
||||
Arrow0487->SetR(90);
|
||||
var Arrow0488 = Clonk0234->CreateContents(Arrow);
|
||||
Arrow0488->SetR(90);
|
||||
var Arrow0489 = Clonk0234->CreateContents(Arrow);
|
||||
Arrow0489->SetR(90);
|
||||
var Arrow0490 = Clonk0211->CreateContents(Arrow);
|
||||
var Arrow0490 = Clonk0317->CreateContents(Arrow);
|
||||
Arrow0490->SetR(90);
|
||||
var Arrow0491 = Chest0102->CreateContents(Arrow);
|
||||
var Arrow0491 = Clonk0317->CreateContents(Arrow);
|
||||
Arrow0491->SetR(90);
|
||||
var Arrow0492 = Clonk0226->CreateContents(Arrow);
|
||||
var Arrow0492 = g_king->CreateContents(Arrow);
|
||||
Arrow0492->SetR(90);
|
||||
var Arrow0493 = Clonk0226->CreateContents(Arrow);
|
||||
var Arrow0493 = g_king->CreateContents(Arrow);
|
||||
Arrow0493->SetR(90);
|
||||
var Arrow0494 = Clonk0320->CreateContents(Arrow);
|
||||
Arrow0494->SetR(90);
|
||||
var Arrow0495 = Clonk0320->CreateContents(Arrow);
|
||||
Arrow0495->SetR(90);
|
||||
var Arrow0496 = Clonk0305->CreateContents(Arrow);
|
||||
Arrow0496->SetR(90);
|
||||
var Arrow0497 = Clonk0305->CreateContents(Arrow);
|
||||
Arrow0497->SetR(90);
|
||||
|
||||
Clonk0211->CreateContents(Bow);
|
||||
Chest0102->CreateContents(Bow);
|
||||
Clonk0226->CreateContents(Bow);
|
||||
Clonk0320->CreateContents(Bow);
|
||||
Clonk0305->CreateContents(Bow);
|
||||
Clonk0220->CreateContents(Bow);
|
||||
Chest0111->CreateContents(Bow);
|
||||
Clonk0234->CreateContents(Bow);
|
||||
Clonk0317->CreateContents(Bow);
|
||||
g_king->CreateContents(Bow);
|
||||
|
||||
var Boompack0503 = CreateObject(Boompack, 135, 1324);
|
||||
Boompack0503->SetColor(0xff);
|
||||
var Boompack0499 = CreateObject(Boompack, 135, 1324);
|
||||
Boompack0499->SetColor(0xff);
|
||||
|
||||
Lorry0203->CreateContents(DynamiteBox);
|
||||
Lorry0205->CreateContents(DynamiteBox);
|
||||
Chest0100->CreateContents(DynamiteBox);
|
||||
Chest0100->CreateContents(DynamiteBox);
|
||||
Chest0105->CreateContents(DynamiteBox);
|
||||
Lorry0212->CreateContents(DynamiteBox);
|
||||
Lorry0214->CreateContents(DynamiteBox);
|
||||
Chest0109->CreateContents(DynamiteBox);
|
||||
Chest0109->CreateContents(DynamiteBox);
|
||||
Chest0114->CreateContents(DynamiteBox);
|
||||
|
||||
CreateObject(Dynamite, 1334, 1224);
|
||||
|
||||
Lorry0205->CreateContents(Pickaxe);
|
||||
Clonk0250->CreateContents(Pickaxe);
|
||||
Clonk0258->CreateContents(Pickaxe);
|
||||
Lorry0214->CreateContents(Pickaxe);
|
||||
Clonk0255->CreateContents(Pickaxe);
|
||||
Clonk0262->CreateContents(Pickaxe);
|
||||
|
||||
Lorry0203->CreateContents(Shovel);
|
||||
Lorry0212->CreateContents(Shovel);
|
||||
|
||||
var Barrel0514 = CreateObject(Barrel, 167, 1333);
|
||||
Barrel0514->SetR(-13);
|
||||
Barrel0514->SetPosition(167, 1327);
|
||||
var Barrel0510 = CreateObject(Barrel, 167, 1333);
|
||||
Barrel0510->SetR(-13);
|
||||
Barrel0510->SetPosition(167, 1327);
|
||||
|
||||
var Seaweed0516 = CreateObject(Seaweed, 169, 1543);
|
||||
Seaweed0516->SetPhase(49);
|
||||
var Seaweed0519 = CreateObject(Seaweed, 815, 1342);
|
||||
Seaweed0519->SetPhase(49);
|
||||
var Seaweed0522 = CreateObject(Seaweed, 719, 1078);
|
||||
Seaweed0522->SetPhase(68);
|
||||
var Seaweed0525 = CreateObject(Seaweed, 772, 1087);
|
||||
Seaweed0525->SetPhase(8);
|
||||
var Seaweed0528 = CreateObject(Seaweed, 1258, 1279);
|
||||
Seaweed0528->SetPhase(75);
|
||||
var Seaweed0628 = CreateObject(Seaweed, 847, 1366);
|
||||
Seaweed0628->SetCon(1);
|
||||
var Seaweed0512 = CreateObject(Seaweed, 169, 1543);
|
||||
Seaweed0512->SetPhase(49);
|
||||
var Seaweed0515 = CreateObject(Seaweed, 815, 1342);
|
||||
Seaweed0515->SetPhase(49);
|
||||
var Seaweed0518 = CreateObject(Seaweed, 719, 1078);
|
||||
Seaweed0518->SetPhase(68);
|
||||
var Seaweed0521 = CreateObject(Seaweed, 772, 1087);
|
||||
Seaweed0521->SetPhase(8);
|
||||
var Seaweed0524 = CreateObject(Seaweed, 1258, 1279);
|
||||
Seaweed0524->SetPhase(75);
|
||||
var Seaweed0527 = CreateObject(Seaweed, 847, 1366);
|
||||
Seaweed0527->SetCon(1);
|
||||
|
||||
CreateObject(Mushroom, 126, 1320);
|
||||
CreateObject(Mushroom, 212, 1287);
|
||||
CreateObject(Mushroom, 367, 1392);
|
||||
CreateObject(Mushroom, 268, 1431);
|
||||
|
||||
Chest0101->CreateContents(Musket);
|
||||
Chest0110->CreateContents(Musket);
|
||||
|
||||
Chest0101->CreateContents(LeadShot);
|
||||
Chest0101->CreateContents(LeadShot);
|
||||
Chest0101->CreateContents(LeadShot);
|
||||
Chest0110->CreateContents(LeadShot);
|
||||
Chest0110->CreateContents(LeadShot);
|
||||
Chest0110->CreateContents(LeadShot);
|
||||
|
||||
Clonk0281->CreateContents(Javelin);
|
||||
Clonk0273->CreateContents(Javelin);
|
||||
Clonk0281->CreateContents(Javelin);
|
||||
Clonk0273->CreateContents(Javelin);
|
||||
Clonk0281->CreateContents(Javelin);
|
||||
Clonk0273->CreateContents(Javelin);
|
||||
Clonk0282->CreateContents(Javelin);
|
||||
Clonk0275->CreateContents(Javelin);
|
||||
Clonk0282->CreateContents(Javelin);
|
||||
Clonk0275->CreateContents(Javelin);
|
||||
Clonk0282->CreateContents(Javelin);
|
||||
Clonk0275->CreateContents(Javelin);
|
||||
|
||||
Clonk0312->CreateContents(Shield);
|
||||
Clonk0310->CreateContents(Shield);
|
||||
Clonk0289->CreateContents(Shield);
|
||||
Clonk0305->CreateContents(Shield);
|
||||
g_king->CreateContents(Shield);
|
||||
|
||||
Chest0104->CreateContents(Bread);
|
||||
Chest0104->CreateContents(Bread);
|
||||
Chest0104->CreateContents(Bread);
|
||||
Chest0105->CreateContents(Bread);
|
||||
Chest0105->CreateContents(Bread);
|
||||
Chest0105->CreateContents(Bread);
|
||||
Chest0113->CreateContents(Bread);
|
||||
Chest0113->CreateContents(Bread);
|
||||
Chest0113->CreateContents(Bread);
|
||||
Chest0114->CreateContents(Bread);
|
||||
Chest0114->CreateContents(Bread);
|
||||
Chest0114->CreateContents(Bread);
|
||||
|
||||
CreateObject(EnvPack_ManaAltar, 1052, 471);
|
||||
|
||||
Catapult0202->CreateContents(Firestone);
|
||||
Catapult0202->CreateContents(Firestone);
|
||||
Catapult0202->CreateContents(Firestone);
|
||||
Catapult0202->CreateContents(Firestone);
|
||||
Catapult0202->CreateContents(Firestone);
|
||||
Catapult0211->CreateContents(Firestone);
|
||||
Catapult0211->CreateContents(Firestone);
|
||||
Catapult0211->CreateContents(Firestone);
|
||||
Catapult0211->CreateContents(Firestone);
|
||||
Catapult0211->CreateContents(Firestone);
|
||||
CreateObject(Firestone, 38, 1190);
|
||||
CreateObject(Firestone, 101, 1215);
|
||||
CreateObject(Firestone, 369, 1282);
|
||||
|
@ -647,22 +700,22 @@ func InitializeObjects()
|
|||
CreateObject(Firestone, 781, 911);
|
||||
CreateObject(Firestone, 1356, 806);
|
||||
CreateObject(Firestone, 1287, 852);
|
||||
Clonk0250->CreateContents(Firestone);
|
||||
Clonk0250->CreateContents(Firestone);
|
||||
Clonk0258->CreateContents(Firestone);
|
||||
Chest0103->CreateContents(Firestone);
|
||||
Chest0103->CreateContents(Firestone);
|
||||
Chest0103->CreateContents(Firestone);
|
||||
Clonk0297->CreateContents(Firestone);
|
||||
Clonk0297->CreateContents(Firestone);
|
||||
Clonk0297->CreateContents(Firestone);
|
||||
Clonk0297->CreateContents(Firestone);
|
||||
Chest0104->CreateContents(Firestone);
|
||||
Chest0104->CreateContents(Firestone);
|
||||
Chest0104->CreateContents(Firestone);
|
||||
Clonk0305->CreateContents(Firestone);
|
||||
Clonk0305->CreateContents(Firestone);
|
||||
Clonk0305->CreateContents(Firestone);
|
||||
Clonk0255->CreateContents(Firestone);
|
||||
Clonk0255->CreateContents(Firestone);
|
||||
Clonk0262->CreateContents(Firestone);
|
||||
Chest0112->CreateContents(Firestone);
|
||||
Chest0112->CreateContents(Firestone);
|
||||
Chest0112->CreateContents(Firestone);
|
||||
Clonk0296->CreateContents(Firestone);
|
||||
Clonk0296->CreateContents(Firestone);
|
||||
Clonk0296->CreateContents(Firestone);
|
||||
Clonk0296->CreateContents(Firestone);
|
||||
Chest0113->CreateContents(Firestone);
|
||||
Chest0113->CreateContents(Firestone);
|
||||
Chest0113->CreateContents(Firestone);
|
||||
g_king->CreateContents(Firestone);
|
||||
g_king->CreateContents(Firestone);
|
||||
g_king->CreateContents(Firestone);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -13,29 +13,30 @@ func DoInit(int first_player)
|
|||
{
|
||||
// Goal
|
||||
var goal = CreateObject(Goal_Assassination);
|
||||
if (goal) goal->SetVictim(Object(3816));
|
||||
if (goal) goal->SetVictim(g_king);
|
||||
// Elevators
|
||||
// Top
|
||||
Object(332)->SetNoPowerNeed(true);
|
||||
Object(331)->CreateShaft(470);
|
||||
g_elev2->SetNoPowerNeed(true);
|
||||
g_elev2->CreateShaft(470);
|
||||
// Left
|
||||
Object(420)->CreateShaft(100);
|
||||
g_elev1->SetNoPowerNeed(true);
|
||||
g_elev1->CreateShaft(100);
|
||||
// Shrooms
|
||||
Object(2318)->AddPoisonEffect(0,0); // floor left
|
||||
Object(2369)->AddPoisonEffect(0,0); // ceiling left
|
||||
Object(2375)->AddPoisonEffect(-20,0); // floor right
|
||||
Object(2398)->AddPoisonEffect(10,-10); // ceiling right
|
||||
g_shroom1->AddPoisonEffect(0,0); // floor left
|
||||
g_shroom2->AddPoisonEffect(0,0); // ceiling left
|
||||
g_shroom3->AddPoisonEffect(-20,0); // floor right
|
||||
g_shroom4->AddPoisonEffect(10,-10); // ceiling right
|
||||
// Message when first player enters shroom area
|
||||
ScheduleCall(nil, Scenario.ShroomCaveCheck, 21, 0xffffff);
|
||||
// Scorching village
|
||||
Object(343)->AddScorch(-20,-10, -45, 50, 1500);
|
||||
Object(344)->AddScorch(-15,42, 90, 50, 1200);
|
||||
Object(346)->AddScorch(-12,18, 130, 80, 1300);
|
||||
g_ruin1->AddScorch(-20,-10, -45, 50, 1500);
|
||||
g_ruin2->AddScorch(-15,42, 90, 50, 1200);
|
||||
g_ruin3->AddScorch(-12,18, 130, 80, 1300);
|
||||
// Rules
|
||||
CreateObject(Rule_TeamAccount);
|
||||
CreateObject(Rule_NoPowerNeed);
|
||||
// Horax
|
||||
Object(3816).JumpSpeed = 200;
|
||||
g_king.JumpSpeed = 200;
|
||||
// Update AI stuff
|
||||
var fx;
|
||||
for (var enemy in FindObjects(Find_ID(Clonk), Find_Owner(NO_OWNER)))
|
||||
|
@ -47,8 +48,9 @@ func DoInit(int first_player)
|
|||
enemy->AddEnergyBar();
|
||||
}
|
||||
// Intro. Message 250 frames + regular message time
|
||||
Dialogue->MessageBoxAll("$MsgIntro1$", Object(2648), true);
|
||||
Schedule(nil, "Dialogue->MessageBoxAll(\"$MsgIntro1$\", Object(2648))", 250, 1);
|
||||
g_farmer.portrait = "Farmer2";
|
||||
DialogueCastle->MessageBoxAll("$MsgIntro1$", g_farmer, true);
|
||||
Schedule(nil, "DialogueCastle->MessageBoxAll(\"$MsgIntro1$\", g_farmer)", 250, 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -106,20 +108,20 @@ func JoinPlayer(int plr)
|
|||
|
||||
func EncounterCave(object enemy, object player)
|
||||
{
|
||||
Dialogue->MessageBoxAll("$MsgEncounterCave$", enemy);
|
||||
DialogueCastle->MessageBoxAll("$MsgEncounterCave$", enemy);
|
||||
return true;
|
||||
}
|
||||
|
||||
func EncounterOutpost(object enemy, object player)
|
||||
{
|
||||
Dialogue->MessageBoxAll("$MsgEncounterOutpost$", enemy);
|
||||
DialogueCastle->MessageBoxAll("$MsgEncounterOutpost$", enemy);
|
||||
return true;
|
||||
}
|
||||
|
||||
func EncounterKing(object enemy, object player)
|
||||
{
|
||||
if (!player) player = enemy; // Leads to a funny message, but better than a null pointer.
|
||||
Dialogue->MessageBoxAll(Format("$MsgEncounterKing$", player->GetName()), enemy);
|
||||
DialogueCastle->MessageBoxAll(Format("$MsgEncounterKing$", player->GetName()), enemy);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -130,7 +132,7 @@ func ShroomCaveCheck()
|
|||
{
|
||||
var intruder = FindObject(Find_InRect(1252,1342,320,138), Find_OCF(OCF_CrewMember));
|
||||
if (!intruder) return true;
|
||||
Dialogue->MessageBoxAll("$MsgEncounterShrooms$", intruder);
|
||||
DialogueCastle->MessageBoxAll("$MsgEncounterShrooms$", intruder);
|
||||
ClearScheduleCall(nil, Scenario.ShroomCaveCheck);
|
||||
return true;
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
[DefCore]
|
||||
id=Dialogue
|
||||
Version=5,2,0,1
|
||||
Category=C4D_StaticBack
|
||||
Width=8
|
||||
Height=20
|
||||
Offset=-4,-10
|
||||
|
||||
|
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 8.4 KiB |
|
@ -1,215 +0,0 @@
|
|||
/**
|
||||
Dialogue
|
||||
|
||||
Attach to a non player charachter to provide a message interface.
|
||||
*/
|
||||
|
||||
|
||||
local dlg_target;
|
||||
local dlg_name;
|
||||
local dlg_info;
|
||||
local dlg_progress;
|
||||
local dlg_status;
|
||||
|
||||
static const DLG_Status_Active = 0;
|
||||
static const DLG_Status_Stop = 1;
|
||||
static const DLG_Status_Remove = 2;
|
||||
|
||||
|
||||
/*-- Dialogue creation --*/
|
||||
|
||||
// Sets a new dialogue for a npc.
|
||||
global func SetDialogue(string name)
|
||||
{
|
||||
if (!this)
|
||||
return;
|
||||
var dialogue = CreateObject(Dialogue);
|
||||
dialogue->InitDialogue(name, this);
|
||||
|
||||
dialogue->SetObjectLayer(nil);
|
||||
|
||||
return dialogue;
|
||||
}
|
||||
|
||||
// Removes the existing dialogue of an object.
|
||||
global func RemoveDialogue()
|
||||
{
|
||||
if (!this)
|
||||
return;
|
||||
|
||||
var dialogue = FindObject(Find_ID(Dialogue), Find_ActionTarget(this));
|
||||
if (dialogue)
|
||||
dialogue->RemoveObject();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/*-- Dialogue properties --*/
|
||||
|
||||
protected func Initialize()
|
||||
{
|
||||
// Dialogue progress to one.
|
||||
dlg_progress = 1;
|
||||
|
||||
dlg_status = DLG_Status_Active;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public func InitDialogue(string name, object target)
|
||||
{
|
||||
dlg_target = target;
|
||||
dlg_name = name;
|
||||
|
||||
// Attach dialogue object to target.
|
||||
SetAction("Dialogue", target);
|
||||
|
||||
// Update dialogue to target.
|
||||
UpdateDialogue();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
private func UpdateDialogue()
|
||||
{
|
||||
// Adapt size to target and its direction.
|
||||
var wdt = dlg_target->GetID()->GetDefWidth();
|
||||
var hgt = dlg_target->GetID()->GetDefHeight();
|
||||
var dir = dlg_target->GetDir();
|
||||
SetShape(-wdt/2 + 2*(dir-1)*wdt, -hgt/2, 3*wdt, hgt);
|
||||
// Transfer target name.
|
||||
//SetName(Format("$MsgSpeak$", dlg_target->GetName()));
|
||||
return;
|
||||
}
|
||||
|
||||
public func SetDialogueInfo()
|
||||
{
|
||||
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public func SetDialogueProgress(int progress)
|
||||
{
|
||||
dlg_progress = Max(1, progress);
|
||||
return;
|
||||
}
|
||||
|
||||
public func SetDialogueStatus(int status)
|
||||
{
|
||||
dlg_status = status;
|
||||
return;
|
||||
}
|
||||
|
||||
/*-- Interaction --*/
|
||||
|
||||
// Players can talk to NPC via the interaction bar.
|
||||
public func IsInteractable() { return true; }
|
||||
|
||||
// Adapt appearance in the interaction bar.
|
||||
public func GetInteractionMetaInfo(object clonk)
|
||||
{
|
||||
if (InDialogue(clonk))
|
||||
return { Description = Format("$MsgSpeak$", dlg_target->GetName()) , IconName = nil, IconID = Clonk, Selected = true };
|
||||
|
||||
return { Description = Format("$MsgSpeak$", dlg_target->GetName()) , IconName = nil, IconID = Clonk, Selected = false };
|
||||
}
|
||||
|
||||
// Called on player interaction.
|
||||
public func Interact(object clonk)
|
||||
{
|
||||
// Currently in a dialogue: abort that dialogue.
|
||||
if (InDialogue(clonk))
|
||||
clonk->CloseMenu();
|
||||
|
||||
// No conversation context: abort.
|
||||
if (!dlg_name)
|
||||
return true;
|
||||
|
||||
// Stop dialogue?
|
||||
if (dlg_status == DLG_Status_Stop)
|
||||
{
|
||||
clonk->CloseMenu();
|
||||
dlg_status = DLG_Status_Active;
|
||||
return true;
|
||||
}
|
||||
// Remove dialogue?
|
||||
if (dlg_status == DLG_Status_Remove)
|
||||
{
|
||||
clonk->CloseMenu();
|
||||
RemoveObject();
|
||||
return true;
|
||||
}
|
||||
|
||||
// Start conversation context.
|
||||
// Update dialogue progress first.
|
||||
var progress = dlg_progress;
|
||||
dlg_progress++;
|
||||
// Then call relevant functions.
|
||||
Call(Format("Dlg_%s_%d", dlg_name, progress), clonk);
|
||||
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private func InDialogue(object clonk)
|
||||
{
|
||||
return clonk->GetMenu() == Dialogue;
|
||||
}
|
||||
|
||||
public func MessageBoxAll(string message, object talker)
|
||||
{
|
||||
for(var i = 0; i < GetPlayerCount(); ++i)
|
||||
MessageBox(message, GetCursor(GetPlayerByIndex(i)), talker);
|
||||
}
|
||||
|
||||
private func MessageBox(string message, object clonk, object talker)
|
||||
{
|
||||
// Use current NPC as talker if unspecified.
|
||||
if (!talker)
|
||||
talker = dlg_target;
|
||||
|
||||
// Use a menu for this dialogue.
|
||||
clonk->CreateMenu(Dialogue, this, C4MN_Extra_None, nil, nil, C4MN_Style_Dialog, false, Dialogue);
|
||||
|
||||
// Add NPC portrait.
|
||||
//var portrait = Format("%i", talker->GetID()); //, Dialogue, talker->GetColor(), "1");
|
||||
clonk->AddMenuItem("", "", Dialogue, nil, nil, nil, C4MN_Add_ImgObject, talker); //TextSpec);
|
||||
|
||||
// Add NPC message.
|
||||
var msg = Format("<c %x>%s:</c> %s", talker->GetColor(), talker->GetName(), message);
|
||||
clonk->AddMenuItem(msg, "", nil, nil, nil, nil, C4MN_Add_ForceNoDesc);
|
||||
|
||||
// Add answers.
|
||||
//for (var i = 0; i < GetLength(message.Answers); i++)
|
||||
//{
|
||||
// var ans = message.Answers[i][0];
|
||||
// var call_back = message.Answers[i][1];
|
||||
// target->AddMenuItem(ans, call_back, nil, nil, target, nil, C4MN_Add_ForceNoDesc);
|
||||
//}
|
||||
|
||||
// Set menu decoration.
|
||||
clonk->SetMenuDecoration(GUI_MenuDeco);
|
||||
|
||||
// Set text progress to NPC name.
|
||||
var name = dlg_target->GetName();
|
||||
var n_length;
|
||||
while (GetChar(name, n_length))
|
||||
n_length++;
|
||||
clonk->SetMenuTextProgress(n_length + 1);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
local ActMap = {
|
||||
Dialogue = {
|
||||
Prototype = Action,
|
||||
Name = "Dialogue",
|
||||
Procedure = DFA_ATTACH,
|
||||
Delay = 0,
|
||||
NextAction = "Dialogue",
|
||||
}
|
||||
};
|
||||
local Name = "$Name$";
|
|
@ -1,2 +0,0 @@
|
|||
Name=Dialogue
|
||||
MsgSpeak=%s ansprechen
|
|
@ -1,2 +0,0 @@
|
|||
Name=Dialogue
|
||||
MsgSpeak=Speak to %s
|
|
@ -4,6 +4,4 @@ Version=5,2,0,1
|
|||
Category=C4D_StaticBack
|
||||
Width=8
|
||||
Height=20
|
||||
Offset=-4,-10
|
||||
|
||||
|
||||
Offset=-4,-10
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.4 KiB |
|
@ -10,6 +10,7 @@ local dlg_name;
|
|||
local dlg_info;
|
||||
local dlg_progress;
|
||||
local dlg_status;
|
||||
local dlg_interact;
|
||||
|
||||
static const DLG_Status_Active = 0;
|
||||
static const DLG_Status_Stop = 1;
|
||||
|
@ -50,9 +51,10 @@ protected func Initialize()
|
|||
{
|
||||
// Dialogue progress to one.
|
||||
dlg_progress = 1;
|
||||
|
||||
// Dialogue allows interaction by default.
|
||||
dlg_interact = true;
|
||||
// Dialogue is active by default.
|
||||
dlg_status = DLG_Status_Active;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -85,8 +87,12 @@ private func UpdateDialogue()
|
|||
public func SetDialogueInfo()
|
||||
{
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
public func SetInteraction(bool allow)
|
||||
{
|
||||
dlg_interact = allow;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -105,7 +111,7 @@ public func SetDialogueStatus(int status)
|
|||
/*-- Interaction --*/
|
||||
|
||||
// Players can talk to NPC via the interaction bar.
|
||||
public func IsInteractable() { return true; }
|
||||
public func IsInteractable() { return dlg_interact; }
|
||||
|
||||
// Adapt appearance in the interaction bar.
|
||||
public func GetInteractionMetaInfo(object clonk)
|
||||
|
@ -119,6 +125,10 @@ public func GetInteractionMetaInfo(object clonk)
|
|||
// Called on player interaction.
|
||||
public func Interact(object clonk)
|
||||
{
|
||||
// Should not happen: not active -> stop interaction
|
||||
if (!dlg_interact)
|
||||
return true;
|
||||
|
||||
// Currently in a dialogue: abort that dialogue.
|
||||
if (InDialogue(clonk))
|
||||
clonk->CloseMenu();
|
||||
|
@ -147,9 +157,8 @@ public func Interact(object clonk)
|
|||
var progress = dlg_progress;
|
||||
dlg_progress++;
|
||||
// Then call relevant functions.
|
||||
Call(Format("Dlg_%s_%d", dlg_name, progress), clonk);
|
||||
|
||||
|
||||
if (!Call(Format("Dlg_%s_%d", dlg_name, progress), clonk))
|
||||
GameCall(Format("Dlg_%s_%d", dlg_name, progress), this, clonk, dlg_target);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -176,11 +185,11 @@ private func MessageBox(string message, object clonk, object talker)
|
|||
|
||||
// Add NPC portrait.
|
||||
//var portrait = Format("%i", talker->GetID()); //, Dialogue, talker->GetColor(), "1");
|
||||
clonk->AddMenuItem("", "MenuOk", Dialogue, nil, clonk, nil, C4MN_Add_ImgObject, talker); //TextSpec);
|
||||
clonk->AddMenuItem("", "MenuOK", Dialogue, nil, clonk, nil, C4MN_Add_ImgObject, talker); //TextSpec);
|
||||
|
||||
// Add NPC message.
|
||||
var msg = Format("<c %x>%s:</c> %s", talker->GetColor(), talker->GetName(), message);
|
||||
clonk->AddMenuItem(msg, "", nil, nil, nil, nil, C4MN_Add_ForceNoDesc);
|
||||
clonk->AddMenuItem(msg, "MenuOK", nil, nil, clonk, nil, C4MN_Add_ForceNoDesc);
|
||||
|
||||
// Add answers.
|
||||
//for (var i = 0; i < GetLength(message.Answers); i++)
|
||||
|
@ -203,11 +212,29 @@ private func MessageBox(string message, object clonk, object talker)
|
|||
return;
|
||||
}
|
||||
|
||||
public func MenuOk(unused, object clonk)
|
||||
public func MenuOK(proplist menu_id, object clonk)
|
||||
{
|
||||
Interact(clonk);
|
||||
// prevent the menu from closing when pressing MenuOK
|
||||
if (dlg_interact)
|
||||
Interact(clonk);
|
||||
}
|
||||
|
||||
/* Scenario saving */
|
||||
|
||||
// Scenario saving
|
||||
func SaveScenarioObject(props)
|
||||
{
|
||||
if (!inherited(props, ...)) return false;
|
||||
if (!dlg_target) return false; // don't save dead dialogue object
|
||||
// Dialog has its own creation procedure
|
||||
props->RemoveCreation();
|
||||
props->Add(SAVEOBJ_Creation, "%s->SetDialogue(%v)", dlg_target->MakeScenarioSaveName(), dlg_name);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* Properties */
|
||||
|
||||
local ActMap = {
|
||||
Dialogue = {
|
||||
Prototype = Action,
|
|
@ -130,13 +130,21 @@ protected func DoSwing(object clonk, int ix, int iy)
|
|||
Sound("Clang?");
|
||||
}
|
||||
|
||||
//Do blastfree after landscape checks are made. Otherwise, mat always returns as "tunnel"
|
||||
// Call in clonk context to ensure DigOutObject callback is done in Clonk
|
||||
clonk->BlastFree(GetX()+x2,GetY()+y2,5,GetController(),MaxPickDensity);
|
||||
// Do blastfree after landscape checks are made. Otherwise, mat always returns as "tunnel"
|
||||
BlastFree(GetX()+x2,GetY()+y2,5,GetController(),MaxPickDensity);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Reroute callback to clonk context to ensure DigOutObject callback is done in Clonk
|
||||
public func DigOutObject(object obj)
|
||||
{
|
||||
// TODO: it would be nice if the method of finding the clonk does not rely on it to be the container of the pickaxe
|
||||
var clonk = Contained();
|
||||
if (clonk)
|
||||
clonk->~DigOutObject(obj);
|
||||
}
|
||||
|
||||
func FxIntPickaxeTimer(clonk, effect, time)
|
||||
{
|
||||
++swingtime;
|
||||
|
|
|
@ -179,6 +179,13 @@ func CheckSlavery()
|
|||
}
|
||||
}
|
||||
|
||||
// Forward config to case
|
||||
func SetNoPowerNeed(bool to_val)
|
||||
{
|
||||
if (case) return case->SetNoPowerNeed(to_val);
|
||||
return false;
|
||||
}
|
||||
|
||||
local ActMap = {
|
||||
Default = {
|
||||
Prototype = Action,
|
||||
|
|
|
@ -135,10 +135,39 @@ func Damage()
|
|||
{
|
||||
SetClrModulation(RGB(100, 100, 100));
|
||||
RemoveTimer("Growing");
|
||||
if (GetDamage() > 3 * MaxDamage())
|
||||
BurstIntoAshes();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
func BurstIntoAshes()
|
||||
{
|
||||
var particles =
|
||||
{
|
||||
Prototype = Particles_Dust(),
|
||||
R = 50, G = 50, B = 50,
|
||||
Size = PV_KeyFrames(0, 0, 0, 200, PV_Random(2, 10), 1000, 0),
|
||||
};
|
||||
|
||||
var r = GetR();
|
||||
var size = GetCon() * 110 / 100;
|
||||
|
||||
for(var cnt = 0; cnt < 10; ++cnt)
|
||||
{
|
||||
var distance = Random(size/2);
|
||||
var x = Sin(r, distance);
|
||||
var y = -Cos(r, distance);
|
||||
|
||||
for(var mirror = -1; mirror <= 1; mirror += 2)
|
||||
{
|
||||
CreateParticle("Dust", x * mirror, y * mirror, PV_Random(-3, 3), PV_Random(-3, -3), PV_Random(18, 1 * 36), particles, 2);
|
||||
CastPXS("Ashes", 5, 30, x * mirror, y * mirror);
|
||||
}
|
||||
}
|
||||
RemoveObject();
|
||||
}
|
||||
|
||||
// called from the plant library
|
||||
func Seed()
|
||||
{
|
||||
|
|
|
@ -195,13 +195,13 @@ protected func Doors()
|
|||
gate->CloseDoor();
|
||||
AddEffect("SparklingAttention",wheel,100,100);
|
||||
|
||||
var gate = CreateObject(StoneDoor, 1935, 550, NO_OWNER);
|
||||
var gate = CreateObject(StoneDoor, 1935, 558, NO_OWNER);
|
||||
var wheel = CreateObject(SpinWheel, 1900, 565, NO_OWNER);
|
||||
wheel->SetStoneDoor(gate);
|
||||
gate->CloseDoor();
|
||||
AddEffect("SparklingAttention",wheel,100,100);
|
||||
|
||||
var gate = CreateObject(StoneDoor, 2965, 310, NO_OWNER);
|
||||
var gate = CreateObject(StoneDoor, 2965, 316, NO_OWNER);
|
||||
var wheel = CreateObject(SpinWheel, 3260, 328, NO_OWNER);
|
||||
wheel->SetStoneDoor(gate);
|
||||
gate->CloseDoor();
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
GateHit.ogg by Sergenious (http://www.freesound.org/people/Sergenious/sounds/55820/), License: CC Attribution 3.0
|
||||
Chain.ogg by daveincamas (http://www.freesound.org/people/daveincamas/sounds/44076/), License: CC Attribution 3.0
|
|
@ -1,11 +0,0 @@
|
|||
[DefCore]
|
||||
id=StoneDoor
|
||||
Version=5,2,0,1
|
||||
Category=C4D_Structure
|
||||
Width=10
|
||||
Height=40
|
||||
Offset=-5,-20
|
||||
SolidMask=10,0,10,40,0,0
|
||||
Value=10
|
||||
Mass=1000
|
||||
Components=Rock=10;
|
Before Width: | Height: | Size: 15 KiB |
|
@ -1,67 +0,0 @@
|
|||
/*-- Stone Door --*/
|
||||
|
||||
protected func Initialize()
|
||||
{
|
||||
SetAction("Door");
|
||||
SetComDir(COMD_None);
|
||||
return;
|
||||
}
|
||||
|
||||
public func OpenDoor()
|
||||
{
|
||||
AddEffect("IntMoveGateUp", this, 100, 1, this);
|
||||
Sound("GateMove");
|
||||
return;
|
||||
}
|
||||
|
||||
public func CloseDoor()
|
||||
{
|
||||
AddEffect("IntMoveGateDown", this, 100, 1, this);
|
||||
Sound("GateMove");
|
||||
return;
|
||||
}
|
||||
|
||||
protected func FxIntMoveGateUpTimer(object target)
|
||||
{
|
||||
if (GBackSolid(0, -20))
|
||||
{
|
||||
Sound("GateHit");
|
||||
SetYDir(0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
SetYDir(-5);
|
||||
return 1;
|
||||
}
|
||||
|
||||
protected func FxIntMoveGateDownTimer(object target)
|
||||
{
|
||||
if (GBackSolid(0, 19))
|
||||
{
|
||||
Sound("GateHit");
|
||||
SetYDir(0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
SetYDir(5);
|
||||
return 1;
|
||||
}
|
||||
|
||||
func Definition(def)
|
||||
{
|
||||
SetProperty("ActMap", {
|
||||
Door = {
|
||||
Prototype = Action,
|
||||
Name = "Door",
|
||||
Procedure = DFA_FLOAT,
|
||||
Length = 1,
|
||||
Delay = 1,
|
||||
X = 0,
|
||||
Y = 0,
|
||||
Wdt = 10,
|
||||
Hgt = 40,
|
||||
NextAction = "Door",
|
||||
},
|
||||
}, def);
|
||||
SetProperty("Name", "$Name$", def);
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
Name=Steintür
|
|
@ -1 +0,0 @@
|
|||
Name=Stone Door
|
|
@ -196,7 +196,7 @@ IDS_DESC_GAMERUNNING=Spiel läuft
|
|||
IDS_DESC_GAMESOUND=Steuert Geräuscheffekte im Spiel.
|
||||
IDS_DESC_GOALFULFILLED=Spielziel %s erfüllt
|
||||
IDS_DESC_GOALNOTFULFILLED=Spielziel %s nicht erfüllt
|
||||
IDS_DESC_LASTGAME=\nLetzte Runde: %s\nDatum: %s\nDauer: %s\nPunkte: %i\n
|
||||
IDS_DESC_LASTGAME=|Letzte Runde: %s|Datum: %s|Dauer: %s|Punkte: %i|
|
||||
IDS_DESC_LEAGUECHECKPASSWORD=Aktivieren, um ein eigenes Passwort einzugeben. Wird kein eigenes Passwort eingegeben, wird stattdessen der persönliche WebCode verwendet, der bereits auf diesem System gespeichert ist.
|
||||
IDS_DESC_LEAGUESCOREANDPROJECTEDGA=Ligapunkte und möglicher Gewinn, wenn das Team dieses Spielers die Runde gewinnt.
|
||||
IDS_DESC_LISTOFPLAYERSWHOPARTICIPA=Liste der Spieler, die an der Runde teilgenommen haben.
|
||||
|
@ -205,12 +205,12 @@ IDS_DESC_MENUSOUND=Steuert Geräuscheffekte im Menüsystem.
|
|||
IDS_DESC_NEXTMISSION=Mit der nächsten Runde forfahren.
|
||||
IDS_DESC_NOPROMO=Wird nicht weiter befördert.
|
||||
IDS_DESC_NOTINITED=Nicht initialisiert
|
||||
IDS_DESC_OBJECT=Typ: %s\nErfahrung: %i\nRunden: %i\nGestorben: %i mal\n%s\nSpielzeit: %s\nGeburtstag: %s\n\n
|
||||
IDS_DESC_OBJECT=Typ: %s|Erfahrung: %i|Runden: %i|Gestorben: %i mal|%s|Spielzeit: %s|Geburtstag: %s||
|
||||
IDS_DESC_OLDANDNEWSCORE=Alter und neuer Punktestand.
|
||||
IDS_DESC_PLAYER=Punkte: %i\nRunden: %i (%i gew. %i verl.)\nSpielzeit: %s\nKommentar: %s\n
|
||||
IDS_DESC_PLAYER=Punkte: %i|Runden: %i (%i gew. %i verl.)|Spielzeit: %s|Kommentar: %s|
|
||||
IDS_DESC_PLAYERSCONTROLLEDBYCOMPUT=Computergesteuerte Spieler.
|
||||
IDS_DESC_PLRS=Spieler:
|
||||
IDS_DESC_PROMO=Beförderung zum %s\nbei: %i
|
||||
IDS_DESC_PROMO=Beförderung zum %s|bei: %i
|
||||
IDS_DESC_RESETCONFIG=Alle Konfigurationswerte auf ihren Ursprungswert zurücksetzen.
|
||||
IDS_DESC_RESOURCE=Die hier angezeigten Dateien werden in dieser Runde verwendet. Ressourcen, die dynamisch über das Netzwerk geladen wurden, können über das entsprechende Symbol dauerhaft auf diesem Computer gespeichert und später wieder verwendet werden.
|
||||
IDS_DESC_SELECTAPICTUREANDORLOBBYI=Spielerbild oder Lobby-Icon auswählen.
|
||||
|
@ -408,7 +408,7 @@ IDS_HOLD_SAVINGGAME=Spiel wird gespeichert...
|
|||
IDS_LEAGUE_LEAGUEREPORTINGUNEXPECTED=Liga: unerwarteter Verbindungsabbruch wird gemeldet... (Grund %d)
|
||||
IDS_LEAGUE_WAITINGFORLASTLEAGUESERVE=Warten auf letzte Meldung des Ligaservers...
|
||||
IDS_LGA_INVALIDRESPONSE3=Ungültige Antwort des Ligaservers (kein CSID).
|
||||
IDS_LGA_SERVERFAILURE=Ligaserver-Fehler: %s\n
|
||||
IDS_LGA_SERVERFAILURE=Ligaserver-Fehler: %s
|
||||
IDS_LGA_TOOMANYGAMESTARTS=Zu viele Versuche, ein Spiel zu starten
|
||||
IDS_LGA_INVALIDPRODUCTID=Ungültiges Produkt oder Version
|
||||
IDS_LGA_WRONGCHECKSUM=Falsche Prüfsumme
|
||||
|
|
|
@ -196,7 +196,7 @@ IDS_DESC_GAMERUNNING=Game is running
|
|||
IDS_DESC_GAMESOUND=Enable sound effects in the game.
|
||||
IDS_DESC_GOALFULFILLED=Goal %s fulfilled
|
||||
IDS_DESC_GOALNOTFULFILLED=Goal %s not fulfilled
|
||||
IDS_DESC_LASTGAME=\nLast round: %s\nDate: %s\nDuration: %s\nScore: %i\n
|
||||
IDS_DESC_LASTGAME=|Last round: %s|Date: %s|Duration: %s|Score: %i|
|
||||
IDS_DESC_LEAGUECHECKPASSWORD=Enable to enter your own password. If you do not enter a password of your own, the personal WebCode will be used which is already stored on this system.
|
||||
IDS_DESC_LEAGUESCOREANDPROJECTEDGA=League score and projected gain if this player's team wins the round.
|
||||
IDS_DESC_LISTOFPLAYERSWHOPARTICIPA=List of players who participated in the game.
|
||||
|
@ -205,12 +205,12 @@ IDS_DESC_MENUSOUND=Enable sound effects in the startup menu (such as buttons cli
|
|||
IDS_DESC_NEXTMISSION=Go on to the next mission.
|
||||
IDS_DESC_NOPROMO=No further promotions.
|
||||
IDS_DESC_NOTINITED=Not initialised
|
||||
IDS_DESC_OBJECT=Type: %s\nExperience: %i\nRounds: %i\nDied: %i x\n%s\nPlaying time: %s\nBirthday: %s\n\n
|
||||
IDS_DESC_OBJECT=Type: %s|Experience: %i|Rounds: %i|Died: %i x|%s|Playing time: %s|Birthday: %s||
|
||||
IDS_DESC_OLDANDNEWSCORE=Old and new score.
|
||||
IDS_DESC_PLAYER=Score: %i\nRounds: %i (%i won %i lost)\nPlaying time: %s\nComment: %s\n
|
||||
IDS_DESC_PLAYER=Score: %i|Rounds: %i (%i won %i lost)|Playing time: %s|Comment: %s|
|
||||
IDS_DESC_PLAYERSCONTROLLEDBYCOMPUT=Players controlled by computer.
|
||||
IDS_DESC_PLRS=Players:
|
||||
IDS_DESC_PROMO=Promotion to %s\nat: %i
|
||||
IDS_DESC_PROMO=Promotion to %s|at: %i
|
||||
IDS_DESC_RESETCONFIG=Reset all configuration values to factory default.
|
||||
IDS_DESC_RESOURCE=The files shown here are used during this round. Resources which were dynamically loaded via the network can be permanently stored on this computer for later use by clicking the save symbol.
|
||||
IDS_DESC_SELECTAPICTUREANDORLOBBYI=Select a picture and/or lobby icon for your player.
|
||||
|
@ -408,7 +408,7 @@ IDS_HOLD_SAVINGGAME=Saving game...
|
|||
IDS_LEAGUE_LEAGUEREPORTINGUNEXPECTED=League: Reporting unexpected disconnect (reason %d)...
|
||||
IDS_LEAGUE_WAITINGFORLASTLEAGUESERVE=Waiting for last league server reply...
|
||||
IDS_LGA_INVALIDRESPONSE3=Invalid reply from internet server (no CSID).
|
||||
IDS_LGA_SERVERFAILURE=internet server error: %s\n
|
||||
IDS_LGA_SERVERFAILURE=internet server error: %s
|
||||
IDS_LGA_TOOMANYGAMESTARTS=Too many attempts to start a game
|
||||
IDS_LGA_INVALIDPRODUCTID=Invalid product or version
|
||||
IDS_LGA_WRONGCHECKSUM=Wrong checksum
|
||||
|
|
|
@ -150,7 +150,7 @@ global func Control2Player(int plr, int ctrl, int x, int y, int strength, bool r
|
|||
if (hotkey > 0)
|
||||
{
|
||||
// valid crew number?
|
||||
var crew = GetCrew(plr,GetCrewCount()-hotkey);
|
||||
var crew = GetCrew(plr,hotkey-1);
|
||||
if (!crew) return false;
|
||||
// stop previously selected crew
|
||||
StopSelected();
|
||||
|
|
|
@ -44,8 +44,8 @@ CON_MenuSelect=Menu - Select
|
|||
CON_MenuSelect_Desc=Confirm a selection in a menu.
|
||||
CON_MenuCancel=Menu - Close
|
||||
CON_MenuCancel_Desc=Close a menu without having selected anything.
|
||||
CON_MenuOKAll=Menü: okay, alle
|
||||
CON_MenuOK=Menü: OK
|
||||
CON_MenuOKAll=Menu: okay, all
|
||||
CON_MenuOK=Menu: OK
|
||||
CON_MenuOK_Desc=Confirm in a menu.
|
||||
|
||||
CON_NextCrew=Next Clonk
|
||||
|
|
|
@ -42,7 +42,7 @@ protected func Initialize()
|
|||
var target = MakeTarget(380, 300, true)->GetActionTarget();
|
||||
AddEffect("HorizontalMoving", target, 1, 1, target);
|
||||
// A flying target which drops a flint.
|
||||
var target = MakeTarget(690, 421, true);
|
||||
var target = MakeTarget(690, 400, true);
|
||||
AddEffect("FlintDrop", target, 1, 0, target);
|
||||
// A moving and a static target.
|
||||
var target = MakeTarget(880, 520, true)->GetActionTarget();
|
||||
|
@ -172,18 +172,14 @@ protected func OnGuideMessageRemoved(int plr, int index)
|
|||
|
||||
private func MakeTarget(int x, int y, bool flying)
|
||||
{
|
||||
if (flying == nil)
|
||||
var balloon = false;
|
||||
|
||||
var target = CreateObject(PracticeTarget, x, y, NO_OWNER);
|
||||
if (flying == true)
|
||||
if (flying)
|
||||
{
|
||||
var balloon = CreateObject(TargetBalloon, x, y-30, NO_OWNER);
|
||||
target->SetAction("Attach", balloon);
|
||||
CreateParticle("Flash", x, y - 50, 0, 0, 8, Particles_Flash());
|
||||
}
|
||||
|
||||
if (flying == false)
|
||||
else
|
||||
{
|
||||
CreateParticle("Flash", x, y, 0, 0, 8, Particles_Flash());
|
||||
target->SetAction("Float");
|
||||
|
|
|
@ -407,7 +407,7 @@ C4ClientPlayerInfos::C4ClientPlayerInfos(const char *szJoinFilenames, bool fAdd,
|
|||
// loading failure; clear info class
|
||||
delete pNewInfo;
|
||||
//
|
||||
LogFatal(FormatString(LoadResStr("IDS_ERR_LOAD_PLAYER"), szPlrFile).getData());
|
||||
Log(FormatString(LoadResStr("IDS_ERR_LOAD_PLAYER"), szPlrFile).getData());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -836,7 +836,7 @@ bool C4Application::FullScreenMode()
|
|||
|
||||
C4ApplicationGameTimer::C4ApplicationGameTimer()
|
||||
: CStdMultimediaTimerProc(26),
|
||||
tLastGameTick(0), iGameTickDelay(0)
|
||||
tLastGameTick(C4TimeMilliseconds::NegativeInfinity), iGameTickDelay(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -496,7 +496,7 @@ C4StartupPlrSelDlg::C4StartupPlrSelDlg() : C4StartupDlg("W"), eMode(PSDM_Player)
|
|||
pPlrListBox->UpdateElementPositions();
|
||||
pPlrListBox->SetSelectionChangeCallbackFn(new C4GUI::CallbackHandler<C4StartupPlrSelDlg>(this, &C4StartupPlrSelDlg::OnSelChange));
|
||||
pPlrListBox->SetSelectionDblClickFn(new C4GUI::CallbackHandler<C4StartupPlrSelDlg>(this, &C4StartupPlrSelDlg::OnSelDblClick));
|
||||
AddElement(pSelectionInfo = new C4GUI::TextWindow(rcInfoWindow));
|
||||
AddElement(pSelectionInfo = new C4GUI::TextWindow(rcInfoWindow,0,0,0,100,4096," ",false,NULL,0,true));
|
||||
pSelectionInfo->SetDecoration(true, true, &C4Startup::Get()->Graphics.sfctBookScroll, true);
|
||||
pSelectionInfo->UpdateHeight();
|
||||
|
||||
|
|
|
@ -145,18 +145,6 @@ void C4UpdateDlg::UpdateText()
|
|||
// --------------------------------------------------
|
||||
// static update application function
|
||||
|
||||
static bool IsWindowsWithUAC()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
// Determine windows version
|
||||
OSVERSIONINFO ver;
|
||||
ver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
||||
if (GetVersionEx((LPOSVERSIONINFO) &ver))
|
||||
return (ver.dwMajorVersion >= 6);
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
void C4UpdateDlg::RedirectToDownloadPage()
|
||||
{
|
||||
OpenURL("http://www.openclonk.org/download");
|
||||
|
@ -198,11 +186,11 @@ bool C4UpdateDlg::ApplyUpdate(const char *strUpdateFile, bool fDeleteUpdate, C4G
|
|||
strUpdateProg += ".exe";
|
||||
#endif
|
||||
// Determine name of local extract of update program
|
||||
StdStrBuf strUpdateProgEx; strUpdateProgEx.Copy(Config.AtExePath(strUpdateProg.getData()));
|
||||
// Windows Vista/7: rename update program to setup.exe for UAC elevation and in temp path
|
||||
if (IsWindowsWithUAC()) strUpdateProgEx.Copy(Config.AtTempPath("setup.exe"));
|
||||
StdStrBuf strUpdateProgEx;
|
||||
strUpdateProgEx.Copy(Config.AtExePath(strUpdateProg.getData()));
|
||||
|
||||
// Extract update program (the update should be applied using the new version)
|
||||
C4Group UpdateGroup, SubGroup;
|
||||
C4Group UpdateGroup;
|
||||
if (!UpdateGroup.Open(strUpdateFile))
|
||||
{
|
||||
LogF("Error opening \"%s\": %s", strUpdateFile, UpdateGroup.GetError());
|
||||
|
@ -228,30 +216,21 @@ bool C4UpdateDlg::ApplyUpdate(const char *strUpdateFile, bool fDeleteUpdate, C4G
|
|||
}
|
||||
#endif
|
||||
UpdateGroup.Close();
|
||||
|
||||
// Execute update program
|
||||
Log(LoadResStr("IDS_PRC_LAUNCHINGUPDATE"));
|
||||
succeeded = true;
|
||||
|
||||
#ifdef _WIN32
|
||||
// Notice: even if the update program and update group are in the temp path, they must be executed in our working directory
|
||||
DWORD ProcessID = GetCurrentProcessId();
|
||||
StdStrBuf strUpdateArgs, strTitle;
|
||||
StdStrBuf strUpdateArgs;
|
||||
strUpdateArgs.Format("\"%s\" \"%s\" %s %lu", strUpdateProgEx.getData(), strUpdateFile, fDeleteUpdate ? "-yd" : "-y", (unsigned long)ProcessID);
|
||||
|
||||
STARTUPINFOW startupInfo;
|
||||
startupInfo.cb = sizeof(startupInfo);
|
||||
startupInfo.lpReserved = NULL;
|
||||
startupInfo.lpDesktop = NULL;
|
||||
startupInfo.lpTitle = L"Updating OpenClonk...";
|
||||
startupInfo.dwFlags = STARTF_USESHOWWINDOW;
|
||||
startupInfo.wShowWindow = SW_SHOW;
|
||||
startupInfo.cbReserved2 = 0;
|
||||
startupInfo.lpReserved2 = NULL;
|
||||
PROCESS_INFORMATION procInfo;
|
||||
BOOL success = CreateProcessW(strUpdateProgEx.GetWideChar(), strUpdateArgs.GetWideChar(), NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, Config.General.ExePath.GetWideChar(), &startupInfo, &procInfo);
|
||||
if(!success) return false;
|
||||
// the magic verb "runas" opens the update program in a shell requesting elevation
|
||||
int iError = (intptr_t)ShellExecute(NULL, L"runas", strUpdateProgEx.GetWideChar(), strUpdateArgs.GetWideChar(), Config.General.ExePath.GetWideChar(), SW_SHOW);
|
||||
if (iError <= 32) return false;
|
||||
|
||||
//int iError = (intptr_t)ShellExecute(NULL, "open", strUpdateProgEx.getData(), strUpdateArgs.getData(), Config.General.ExePath, SW_SHOW);
|
||||
//if (iError <= 32) return false;
|
||||
// must quit ourselves for update program to work
|
||||
if (succeeded) Application.Quit();
|
||||
#else
|
||||
|
|
|
@ -385,6 +385,15 @@ bool C4NetIOTCP::CloseBroadcast()
|
|||
return true;
|
||||
}
|
||||
|
||||
#ifdef __APPLE__
|
||||
static int fix_poll_timeout(int timeout) {
|
||||
if (timeout < 0 || timeout > 1000)
|
||||
return 1000;
|
||||
else
|
||||
return timeout;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool C4NetIOTCP::Execute(int iMaxTime, pollfd *fds) // (mt-safe)
|
||||
{
|
||||
// security
|
||||
|
@ -400,6 +409,10 @@ bool C4NetIOTCP::Execute(int iMaxTime, pollfd *fds) // (mt-safe)
|
|||
WSANETWORKEVENTS wsaEvents;
|
||||
#else
|
||||
|
||||
#ifdef __APPLE__
|
||||
iMaxTime = fix_poll_timeout(iMaxTime);
|
||||
#endif
|
||||
|
||||
std::vector<pollfd> fdvec;
|
||||
std::map<SOCKET, const pollfd*> fdmap;
|
||||
if (!fds)
|
||||
|
@ -1511,6 +1524,10 @@ bool C4NetIOSimpleUDP::Execute(int iMaxTime, pollfd *)
|
|||
if (!fInit) { SetError("not yet initialized"); return false; }
|
||||
ResetError();
|
||||
|
||||
#ifdef __APPLE__
|
||||
iMaxTime = fix_poll_timeout(iMaxTime);
|
||||
#endif
|
||||
|
||||
// wait for socket / timeout
|
||||
WaitResult eWR = WaitForSocket(iMaxTime);
|
||||
if (eWR == WR_Error) return false;
|
||||
|
|
|
@ -25,7 +25,7 @@ void C4AbstractApp::Run()
|
|||
ScheduleProcs();
|
||||
}
|
||||
|
||||
bool C4AbstractApp::ScheduleProcs(int iTimeout)
|
||||
bool C4AbstractApp::DoScheduleProcs(int iTimeout)
|
||||
{
|
||||
// Always fail after quit message
|
||||
if(fQuitMsgReceived)
|
||||
|
@ -34,7 +34,7 @@ bool C4AbstractApp::ScheduleProcs(int iTimeout)
|
|||
// Unfortunately, the SDL event loop needs to be polled
|
||||
FlushMessages();
|
||||
#endif
|
||||
return StdScheduler::ScheduleProcs(iTimeout);
|
||||
return StdScheduler::DoScheduleProcs(iTimeout);
|
||||
}
|
||||
|
||||
void C4Window::PerformUpdate()
|
||||
|
|
|
@ -97,7 +97,7 @@ public:
|
|||
// Gamma
|
||||
virtual bool ApplyGammaRamp(struct _GAMMARAMP &ramp, bool fForce);
|
||||
virtual bool SaveDefaultGammaRamp(struct _GAMMARAMP &ramp);
|
||||
virtual bool ScheduleProcs(int iTimeout = 1000/36);
|
||||
virtual bool DoScheduleProcs(int iTimeout);
|
||||
bool FlushMessages();
|
||||
C4Window * pWindow;
|
||||
bool fQuitMsgReceived; // if true, a quit message has been received and the application should terminate
|
||||
|
|
|
@ -149,6 +149,7 @@
|
|||
#ifdef USE_COCOA
|
||||
- (void) delayedRun:(id)sender
|
||||
{
|
||||
Application.StartOnCurrentThread();
|
||||
running = YES;
|
||||
//while (!Application.fQuitMsgReceived)
|
||||
// Application.ScheduleProcs();
|
||||
|
|
|
@ -63,7 +63,13 @@ bool C4AbstractApp::IsClipboardFull(bool fClipboard)
|
|||
|
||||
void C4AbstractApp::MessageDialog(const char * message)
|
||||
{
|
||||
NSAlert* alert = [NSAlert alertWithMessageText:@"Fatal Error" defaultButton:nil alternateButton:nil otherButton:nil informativeTextWithFormat:[NSString stringWithUTF8String:message]];
|
||||
NSAlert* alert = [NSAlert alertWithMessageText:@"Fatal Error"
|
||||
defaultButton:nil
|
||||
alternateButton:nil
|
||||
otherButton:nil
|
||||
informativeTextWithFormat:@"%@",
|
||||
[NSString stringWithUTF8String:message]
|
||||
];
|
||||
[alert runModal];
|
||||
}
|
||||
|
||||
|
|
|
@ -132,7 +132,6 @@ C4TimeMilliseconds StdSchedulerProc::GetNextTick(C4TimeMilliseconds tNow)
|
|||
|
||||
bool StdScheduler::ScheduleProcs(int iTimeout)
|
||||
{
|
||||
isInManualLoop = true;
|
||||
// Needs at least one process to work properly
|
||||
if (!procs.size()) return false;
|
||||
|
||||
|
@ -149,8 +148,10 @@ bool StdScheduler::ScheduleProcs(int iTimeout)
|
|||
}
|
||||
}
|
||||
|
||||
bool old = isInManualLoop;
|
||||
isInManualLoop = true;
|
||||
bool res = DoScheduleProcs(iTimeout);
|
||||
isInManualLoop = false;
|
||||
isInManualLoop = old;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -269,6 +270,7 @@ void *StdSchedulerThread::_ThreadFunc(void *pPar)
|
|||
|
||||
unsigned int StdSchedulerThread::ThreadFunc()
|
||||
{
|
||||
StartOnCurrentThread();
|
||||
// Keep calling Execute until someone gets fed up and calls StopThread()
|
||||
while (fRunThreadRun)
|
||||
ScheduleProcs(1000);
|
||||
|
|
|
@ -238,19 +238,21 @@ public:
|
|||
void Add(StdSchedulerProc *pProc);
|
||||
void Remove(StdSchedulerProc *pProc);
|
||||
|
||||
// extra events for above Add/Remove methods
|
||||
void Added(StdSchedulerProc *pProc);
|
||||
void Removing(StdSchedulerProc *pProc);
|
||||
// called by StdSchedulerProcs when something important about their configuration changed
|
||||
void Changed(StdSchedulerProc *pProc);
|
||||
// needs to be called on thread tasks for this scheduler are meant to be run on
|
||||
void StartOnCurrentThread();
|
||||
|
||||
virtual bool ScheduleProcs(int iTimeout = -1);
|
||||
bool ScheduleProcs(int iTimeout = 1000/36);
|
||||
void UnBlock();
|
||||
|
||||
protected:
|
||||
// overridable
|
||||
virtual void OnError(StdSchedulerProc *) { }
|
||||
|
||||
private:
|
||||
bool DoScheduleProcs(int iTimeout);
|
||||
virtual bool DoScheduleProcs(int iTimeout);
|
||||
};
|
||||
|
||||
// A simple process scheduler thread
|
||||
|
|
|
@ -22,7 +22,7 @@ using namespace std;
|
|||
|
||||
@interface SCHNotify : SCHAddition
|
||||
{
|
||||
list<CFRunLoopSourceRef> socketSources;
|
||||
list<pair<CFRunLoopSourceRef, CFSocketRef>> socketSources;
|
||||
}
|
||||
- (void) registerAt:(SCHAdditions*) _additions;
|
||||
- (void) unregisterFrom:(SCHAdditions*) _additions;
|
||||
|
@ -41,12 +41,14 @@ using namespace std;
|
|||
{
|
||||
NSMutableDictionary* procAdditions;
|
||||
}
|
||||
+ (SCHAdditions*) requestAdditionsForScheduler:(StdScheduler*) scheduler;
|
||||
- (id) initWithScheduler:(StdScheduler*) scheduler;
|
||||
- (SCHAddition*) additionForProc:(StdSchedulerProc*) proc;
|
||||
- (SCHAddition*) assignAdditionForProc:(StdSchedulerProc*) proc;
|
||||
+ (SCHAdditions*) requestAdditionForScheduler:(StdScheduler*) scheduler;
|
||||
- (void) changed:(SCHAddition*)addition;
|
||||
- (BOOL) removeAdditionForProc:(StdSchedulerProc*) proc;
|
||||
@property(readonly) NSRunLoop* runLoop;
|
||||
- (void) start;
|
||||
@property(readonly) __weak NSRunLoop* runLoop;
|
||||
@property(readonly) StdScheduler* scheduler;
|
||||
@end
|
||||
|
||||
|
@ -54,12 +56,13 @@ using namespace std;
|
|||
|
||||
static NSMutableDictionary* additionsDictionary;
|
||||
|
||||
- (int) numberOfAdditions { return [additionsDictionary count]; }
|
||||
|
||||
- (id) initWithScheduler:(StdScheduler*) scheduler
|
||||
{
|
||||
if (self = [super init])
|
||||
{
|
||||
_scheduler = scheduler;
|
||||
_runLoop = [NSRunLoop currentRunLoop];
|
||||
procAdditions = [NSMutableDictionary new];
|
||||
return self;
|
||||
} else
|
||||
|
@ -95,12 +98,40 @@ static NSMutableDictionary* additionsDictionary;
|
|||
if (addition)
|
||||
{
|
||||
[procAdditions setObject:addition forKey:[NSNumber valueWithPointer:proc]];
|
||||
if (_runLoop)
|
||||
[addition registerAt:self];
|
||||
return addition;
|
||||
} else
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
+ (SCHAdditions*) requestAdditionForScheduler:(StdScheduler *)scheduler
|
||||
- (void) start
|
||||
{
|
||||
auto current = [NSRunLoop currentRunLoop];
|
||||
if (current != [NSRunLoop mainRunLoop])
|
||||
return; // oh well
|
||||
_runLoop = current;
|
||||
[procAdditions enumerateKeysAndObjectsUsingBlock:
|
||||
^void (id key, SCHAddition* obj, BOOL* stop) { [obj registerAt:self]; }];
|
||||
}
|
||||
|
||||
- (void) changed:(SCHAddition*)addition
|
||||
{
|
||||
[addition unregisterFrom:self];
|
||||
if (_runLoop)
|
||||
[addition registerAt:self];
|
||||
}
|
||||
|
||||
+ (void) removeAdditions:(SCHAdditions*)additions
|
||||
{
|
||||
auto key = [NSNumber valueWithPointer:additions.scheduler];
|
||||
@synchronized (additionsDictionary)
|
||||
{
|
||||
[additionsDictionary removeObjectForKey:key];
|
||||
}
|
||||
}
|
||||
|
||||
+ (SCHAdditions*) requestAdditionsForScheduler:(StdScheduler *)scheduler
|
||||
{
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken,
|
||||
|
@ -132,6 +163,8 @@ static NSMutableDictionary* additionsDictionary;
|
|||
}
|
||||
- (bool) shouldExecuteProc
|
||||
{
|
||||
if (!proc)
|
||||
return false;
|
||||
auto s = schedulerAdditions;
|
||||
return s && !s.scheduler->IsInManualLoop();
|
||||
}
|
||||
|
@ -145,9 +178,7 @@ static NSMutableDictionary* additionsDictionary;
|
|||
}
|
||||
- (void) changed
|
||||
{
|
||||
auto s = schedulerAdditions;
|
||||
[self unregisterFrom:s];
|
||||
[self registerAt:s];
|
||||
[schedulerAdditions changed:self];
|
||||
}
|
||||
@end
|
||||
|
||||
|
@ -197,8 +228,12 @@ void callback (CFSocketRef s, CFSocketCallBackType type, CFDataRef address, cons
|
|||
[super registerAt:_additions];
|
||||
vector<struct pollfd> vecs;
|
||||
proc->GetFDs(vecs);
|
||||
CFSocketContext ctx = {};
|
||||
ctx.info = (__bridge void*)self;
|
||||
CFSocketContext ctx =
|
||||
{
|
||||
.info = (__bridge void*)self,
|
||||
.retain = CFRetain,
|
||||
.release = CFRelease
|
||||
};
|
||||
for (auto p : vecs)
|
||||
{
|
||||
auto socket = CFSocketCreateWithNative(NULL,
|
||||
|
@ -207,40 +242,45 @@ void callback (CFSocketRef s, CFSocketCallBackType type, CFDataRef address, cons
|
|||
);
|
||||
auto runLoopSource = CFSocketCreateRunLoopSource(NULL, socket, 0);
|
||||
CFRunLoopAddSource([_additions.runLoop getCFRunLoop], runLoopSource, kCFRunLoopDefaultMode);
|
||||
socketSources.push_back(runLoopSource);
|
||||
socketSources.push_back(make_pair(runLoopSource, socket));
|
||||
}
|
||||
}
|
||||
- (void) unregisterFrom:(SCHAdditions*) _additions
|
||||
{
|
||||
auto runLoop = [_additions.runLoop getCFRunLoop];
|
||||
for (auto r : socketSources)
|
||||
{
|
||||
CFRunLoopSourceInvalidate(r);
|
||||
CFRelease(r);
|
||||
CFRunLoopRemoveSource(runLoop, r.first, kCFRunLoopDefaultMode);
|
||||
CFSocketDisableCallBacks(r.second, kCFSocketReadCallBack|kCFSocketWriteCallBack);
|
||||
CFRunLoopSourceInvalidate(r.first);
|
||||
CFRelease(r.second);
|
||||
CFRelease(r.first);
|
||||
}
|
||||
socketSources.clear();
|
||||
[super unregisterFrom:_additions];
|
||||
}
|
||||
@end
|
||||
|
||||
void StdScheduler::StartOnCurrentThread()
|
||||
{
|
||||
[[SCHAdditions requestAdditionsForScheduler:this] start];
|
||||
}
|
||||
|
||||
void StdScheduler::Added(StdSchedulerProc *pProc)
|
||||
{
|
||||
auto x = [SCHAdditions requestAdditionForScheduler:this];
|
||||
auto addition = [x assignAdditionForProc:pProc];
|
||||
if (addition)
|
||||
[addition registerAt:x];
|
||||
[[SCHAdditions requestAdditionsForScheduler:this] assignAdditionForProc:pProc];
|
||||
}
|
||||
|
||||
void StdScheduler::Removing(StdSchedulerProc *pProc)
|
||||
{
|
||||
auto x = [SCHAdditions requestAdditionForScheduler:this];
|
||||
auto x = [SCHAdditions requestAdditionsForScheduler:this];
|
||||
[x removeAdditionForProc:pProc];
|
||||
if ([x numberOfAdditions] == 0)
|
||||
[SCHAdditions removeAdditions:x];
|
||||
}
|
||||
|
||||
void StdScheduler::Changed(StdSchedulerProc* pProc)
|
||||
{
|
||||
auto x = [SCHAdditions requestAdditionForScheduler:this];
|
||||
auto addition = [x additionForProc:pProc];
|
||||
if (addition)
|
||||
[addition changed];
|
||||
[[[SCHAdditions requestAdditionsForScheduler:this] additionForProc:pProc] changed];
|
||||
}
|
||||
#endif
|
|
@ -236,6 +236,7 @@ void CStdMultimediaTimerProc::GetFDs(std::vector<struct pollfd> & checkfds)
|
|||
void StdScheduler::Added(StdSchedulerProc *pProc) {}
|
||||
void StdScheduler::Removing(StdSchedulerProc *pProc) {}
|
||||
void StdScheduler::Changed(StdSchedulerProc* pProc) {}
|
||||
void StdScheduler::StartOnCurrentThread() {}
|
||||
#endif
|
||||
|
||||
void *StdThread::_ThreadFunc(void *pPar)
|
||||
|
|
|
@ -157,6 +157,10 @@ void StdScheduler::Changed(StdSchedulerProc* pProc)
|
|||
{
|
||||
}
|
||||
|
||||
void StdScheduler::StartOnCurrentThread()
|
||||
{
|
||||
}
|
||||
|
||||
bool CStdMultimediaTimerProc::CheckAndReset()
|
||||
{
|
||||
if (!Check()) return false;
|
||||
|
|
|
@ -97,6 +97,10 @@ Section
|
|||
; delete obsolete folders
|
||||
Delete "BackToTheRocks.ocf"
|
||||
Delete "BeyondTheRocks.ocf"
|
||||
; these got in in release 4.0, bug #1029
|
||||
Delete "Issues.ocf"
|
||||
Delete "Experimental.ocd"
|
||||
Delete "Experimental.ocf"
|
||||
|
||||
File "${SRCDIR}\planet\AUTHORS"
|
||||
File "${SRCDIR}\planet\COPYING"
|
||||
|
|
|
@ -5,7 +5,7 @@ $libs_to_bundle=".*?/lib(jpeg|GLEW|llvm|SDL|SDL_mixer|freetype|ogg|vorbis|vorbis
|
|||
$executable_path = ENV['EXECUTABLE_PATH']
|
||||
$frameworks_folder_path = ENV['FRAMEWORKS_FOLDER_PATH']
|
||||
|
||||
Dir.chdir ENV['TARGET_BUILD_DIR']
|
||||
Dir.chdir ENV['TARGET_BUILD_DIR'] if ENV['TARGET_BUILD_DIR']
|
||||
puts "Bundling libraries..."
|
||||
|
||||
def bundle_dependencies(executable_path)
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
C4GROUP=$1
|
||||
SRC_GROUP=$2
|
||||
|
||||
RESOURCES=$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH
|
||||
RESOURCES=${3:-$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH}
|
||||
TARGET_GROUP=$RESOURCES/`basename $SRC_GROUP`
|
||||
|
||||
should_update() {
|
||||
|
@ -13,15 +12,15 @@ should_update() {
|
|||
return 1
|
||||
}
|
||||
|
||||
if [ "$CONFIGURATION" == "Release" ]
|
||||
then if should_update
|
||||
if [ "$CONFIGURATION" == "Debug" ]
|
||||
then echo Linking $TARGET_GROUP...
|
||||
rm -f $TARGET_GROUP
|
||||
ln -sf $SRC_GROUP $TARGET_GROUP
|
||||
else if should_update
|
||||
then echo Packing $TARGET_GROUP...
|
||||
rm -f $TARGET_GROUP
|
||||
cd $RESOURCES
|
||||
$C4GROUP $SRC_GROUP -t $TARGET_GROUP
|
||||
else echo No changes found for $TARGET_GROUP, skipping
|
||||
fi
|
||||
else echo Linking $TARGET_GROUP...
|
||||
rm -f $TARGET_GROUP
|
||||
ln -sf $SRC_GROUP $TARGET_GROUP
|
||||
fi
|
||||
|
|