1 Commits

Author SHA1 Message Date
f03b8537c5 Release build squashed
Some checks failed
/ release (Debug, map[deps:macos-universal flag:arm64 name:macos scons-script:./.github/workflows/scripts/mac/scons-build.sh suffix:-silicon version:14]) (push) Has been cancelled
/ release (Debug, map[deps:macos-universal flag:x86_64 name:macos scons-script:./.github/workflows/scripts/mac/scons-build.sh suffix:-intel version:13]) (push) Has been cancelled
/ release (Debug, map[name:windows scons-script:./.github/workflows/scripts/win/scons-build.bat suffix: version:2019]) (push) Has been cancelled
/ release (Release, map[deps:macos-universal flag:arm64 name:macos scons-script:./.github/workflows/scripts/mac/scons-build.sh suffix:-silicon version:14]) (push) Has been cancelled
/ release (Release, map[deps:macos-universal flag:x86_64 name:macos scons-script:./.github/workflows/scripts/mac/scons-build.sh suffix:-intel version:13]) (push) Has been cancelled
/ release (Release, map[name:windows scons-script:./.github/workflows/scripts/win/scons-build.bat suffix: version:2019]) (push) Has been cancelled
2025-05-25 15:30:45 -05:00
204 changed files with 3126 additions and 8005 deletions

View File

@@ -7,8 +7,7 @@
},
pull_request: {
branches: [ master ]
},
workflow_dispatch: {}
}
},
jobs: {
@@ -126,7 +125,7 @@
]
},
win-scons: {
runs-on: windows-2022,
runs-on: windows-2019,
env: {
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
},
@@ -165,7 +164,7 @@
]
},
# win-mingw: {
# runs-on: windows-2022,
# runs-on: windows-2019,
# steps: [
# {
# name: checkout,

73
.github/workflows/mac-universal.yml vendored Normal file
View File

@@ -0,0 +1,73 @@
name: Mac universal build
on:
push:
branches:
- universal
release:
types: [published]
jobs:
build:
runs-on: macos-14
env:
CONFIGURATION: ${{ matrix.configuration }}
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }}
PROD_MACOS_CERTIFICATE: '${{ secrets.PROD_MACOS_CERTIFICATE }}'
PROD_MACOS_CERTIFICATE_PWD: '${{ secrets.PROD_MACOS_CERTIFICATE_PWD }}'
PROD_MACOS_CERTIFICATE_NAME: '${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}'
PROD_MACOS_CI_KEYCHAIN_PWD: '${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }}'
PROD_MACOS_NOTARIZATION_APPLE_ID: '${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}'
PROD_MACOS_NOTARIZATION_TEAM_ID: '${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}'
PROD_MACOS_NOTARIZATION_PWD: '${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}'
BUILD_OS: macos
strategy:
fail-fast: false
matrix:
configuration:
- Release
- Debug
steps:
- uses: actions/checkout@v4
# Download macos-intel
- uses: robinraju/release-downloader@v1
id: download
with:
latest: true
fileName: 'cboe-macos-intel-${{ matrix.configuration }}.tar'
extract: true
out-file-path: 'cboe-macos-intel-${{ matrix.configuration }}'
# Download macos-silicon
- uses: robinraju/release-downloader@v1
with:
latest: true
fileName: 'cboe-macos-silicon-${{ matrix.configuration }}.tar'
extract: true
out-file-path: 'cboe-macos-silicon-${{ matrix.configuration }}'
- run: .github/workflows/scripts/mac/make-universal.sh
# Skipping this for now because of issue nqnstudios#13
- name: Codesign and notarize
run: 'SIGN="no" NOTARIZE="no" .github/workflows/scripts/mac/sign-apps.sh'
- name: 'Tar files'
run: 'tar -cvf cboe-macos-universal-${{matrix.configuration}}.tar "build/Blades of Exile"'
# Upload everything as artifact
- uses: actions/upload-artifact@v4
with:
name: mac-universal-dependencies-${{matrix.configuration}}
path: cboe-macos-universal-${{matrix.configuration}}.tar
# upload a release
- name: Github release
uses: softprops/action-gh-release@v2
with:
files: cboe-macos-universal-${{ matrix.configuration }}.tar
tag_name: ${{ steps.download.outputs.tag_name }}
- name: 'Itch.io release'
run: './.github/workflows/scripts/butler_push.sh'
shell: bash
if: ${{ matrix.configuration == 'Release' }}

131
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,131 @@
on:
push:
branches:
- 'itch-edition'
tags:
- "v*.*.*"
pull_request:
branches:
- itch-edition
jobs:
release:
env:
ARCH: ${{ matrix.os.flag }}
MACOSX_DEPLOYMENT_TARGET: 10.15
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }}
PROD_MACOS_CERTIFICATE: '${{ secrets.PROD_MACOS_CERTIFICATE }}'
PROD_MACOS_CERTIFICATE_PWD: '${{ secrets.PROD_MACOS_CERTIFICATE_PWD }}'
PROD_MACOS_CERTIFICATE_NAME: '${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}'
PROD_MACOS_CI_KEYCHAIN_PWD: '${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }}'
PROD_MACOS_NOTARIZATION_APPLE_ID: '${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}'
PROD_MACOS_NOTARIZATION_TEAM_ID: '${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}'
PROD_MACOS_NOTARIZATION_PWD: '${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}'
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
DEBUG_FLAG: ${{ matrix.configuration == 'Debug' && 'true' || 'false' }}
BUILD_OS: ${{ matrix.os.name }}
strategy:
fail-fast: false
matrix:
os:
- name: macos
suffix: '-intel'
flag: x86_64
deps: macos-universal
version: 13
scons-script: './.github/workflows/scripts/mac/scons-build.sh'
- name: macos
flag: arm64
suffix: '-silicon'
deps: macos-universal
version: 14
scons-script: './.github/workflows/scripts/mac/scons-build.sh'
# - name: ubuntu
# suffix: ''
# version: 22.04
# scons-script: scons
- name: windows
suffix: ''
version: 2019
scons-script: './.github/workflows/scripts/win/scons-build.bat'
configuration:
- Release
- Debug
runs-on: '${{ matrix.os.name }}-${{ matrix.os.version }}'
steps:
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: "core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');"
- name: checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Download dependency build
uses: robinraju/release-downloader@v1
with:
repository: NQNStudios/cboe-dependencies
latest: true
fileName: 'dependencies-${{ matrix.os.deps || matrix.os.name }}-${{ matrix.configuration }}.tar'
extract: true
out-file-path: 'deps'
- name: Windows build dependencies
run: 'vcpkg install libxml2 && pip install scons'
if: ${{ matrix.os.name == 'windows' }}
- name: Mac build dependencies
run: brew install scons
if: ${{ matrix.os.name == 'macos' }}
- name: Linux build dependencies
run: sudo apt-get update && sudo apt-get install scons libxml2-utils libgl-dev libopenal-dev
if: ${{ matrix.os.name == 'ubuntu' }}
- name: Install TGUI
run: 'sudo ./.github/workflows/scripts/linux/install-tgui.sh'
if: ${{ matrix.os.name == 'ubuntu' }}
- name: Build
run: '${{ matrix.os.scons-script }} test=false debug=$DEBUG_FLAG'
shell: bash
- name: Download fix-rpaths.py script
run: git clone https://gist.github.com/NQNStudios/7145bcf6621891f5176c8caa165d6b93
if: ${{ matrix.os.name == 'macos' }}
- name: Fix rpaths game
run: 'python 7145bcf6621891f5176c8caa165d6b93/fix-rpaths.py "build/Blades of Exile/Blades of Exile.app"'
if: ${{ matrix.os.name == 'macos' }}
- name: Fix rpaths scenario editor
run: 'python 7145bcf6621891f5176c8caa165d6b93/fix-rpaths.py "build/Blades of Exile/BoE Scenario Editor.app"'
if: ${{ matrix.os.name == 'macos' }}
- name: Fix rpaths character editor
run: 'python 7145bcf6621891f5176c8caa165d6b93/fix-rpaths.py "build/Blades of Exile/BoE Character Editor.app"'
if: ${{ matrix.os.name == 'macos' }}
- run: cp .itch.toml "build/Blades of Exile/"
shell: bash
- name: 'Tar unsigned files'
run: 'tar -cvf cboe-${{ matrix.os.name }}${{ matrix.os.suffix }}-${{ matrix.configuration }}-unsigned.tar "Blades of Exile"'
working-directory: '${{ github.workspace }}/build'
- name: upload pre-signing artifact
uses: actions/upload-artifact@v4
with:
name: cboe-${{ matrix.os.name }}${{ matrix.os.suffix }}-${{ matrix.configuration }}-unsigned
path: '${{ github.workspace }}/build/cboe-${{ matrix.os.name }}${{ matrix.os.suffix }}-${{ matrix.configuration }}-unsigned.tar'
# Skipping this for now because of issue nqnstudios#13
- name: Codesign and notarize
run: 'SIGN="no" NOTARIZE="no" ./.github/workflows/scripts/mac/sign-apps.sh'
if: ${{ matrix.os.name == 'macos' }}
- name: 'Tar files'
run: 'tar -cvf cboe-${{ matrix.os.name }}${{ matrix.os.suffix }}-${{ matrix.configuration }}.tar "Blades of Exile"'
working-directory: '${{ github.workspace }}/build'
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: cboe-${{ matrix.os.name }}${{ matrix.os.suffix }}-${{ matrix.configuration }}
path: '${{ github.workspace }}/build/cboe-${{ matrix.os.name }}${{ matrix.os.suffix }}-${{ matrix.configuration }}.tar'
- name: Github release
uses: softprops/action-gh-release@v2
with:
files: '${{ github.workspace }}/build/cboe-${{ matrix.os.name }}${{ matrix.os.suffix }}-${{ matrix.configuration }}.tar'
if: ${{ startsWith(github.ref, 'refs/tags/') }}
- name: 'Itch.io release'
run: './.github/workflows/scripts/butler_push.sh'
shell: bash
if: ${{ startsWith(github.ref, 'refs/tags/') && matrix.configuration == 'Release' && matrix.os.name != 'macos' }}

28
.github/workflows/scripts/butler_push.sh vendored Executable file
View File

@@ -0,0 +1,28 @@
#! /bin/bash
butler_channel=""
butler_exe=""
release_dir=""
if [ "$BUILD_OS" = "ubuntu" ]; then
butler_channel=linux-amd64
butler_exe=butler
release_dir="linux"
elif [ "$BUILD_OS" = "windows" ]; then
butler_channel=windows-amd64
butler_exe=butler.exe
release_dir="windows"
elif [ "$BUILD_OS" = "macos" ]; then
butler_channel=darwin-amd64
butler_exe=butler
release_dir="macos"
fi
# -L follows redirects
# -O specifies output name
curl -L -o butler.zip https://broth.itch.ovh/butler/${butler_channel}/LATEST/archive/default
unzip butler.zip
# GNU unzip tends to not set the executable bit even though it's set in the .zip
chmod +x ${butler_exe}
# just a sanity check run (and also helpful in case you're sharing CI logs)
./${butler_exe} -V
./${butler_exe} push "build/Blades of Exile/" nqn/blades-of-exile:${release_dir}

View File

@@ -3,7 +3,7 @@
git clone --depth 1 -b 0.9 https://github.com/texus/TGUI.git
cd TGUI
export CLICOLOR_FORCE=1
cmake -D TGUI_CXX_STANDARD=14 .
SFML_DIR=../deps/lib/cmake/SFML cmake -D TGUI_CXX_STANDARD=14 -D SFML_DIR=../deps/lib/cmake/SFML .
make
cmake --install .
cd .. # Probably not needed but...

View File

@@ -0,0 +1,27 @@
#! /bin/bash
if [ -z "$CONFIGURATION" ]; then
CONFIGURATION=Release
fi
INTEL=cboe-macos-intel-$CONFIGURATION
SILICON=cboe-macos-silicon-$CONFIGURATION
combine() {
mkdir -p "build/Blades of Exile/$1.app/Contents/MacOS"
lipo -create "$SILICON/Blades of Exile/$1.app/Contents/MacOS/$1" "$INTEL/Blades of Exile/$1.app/Contents/MacOS/$1" -output "build/Blades of Exile/$1.app/Contents/MacOS/$1"
cp -r "$SILICON/Blades of Exile/$1.app/Contents/Frameworks" "build/Blades of Exile/$1.app/Contents/"
cp -r "$SILICON/Blades of Exile/$1.app/Contents/Resources" "build/Blades of Exile/$1.app/Contents/"
cp "$SILICON/Blades of Exile/$1.app/Contents/Info.plist" "build/Blades of Exile/$1.app/Contents/"
cp "$SILICON/Blades of Exile/$1.app/Contents/PkgInfo" "build/Blades of Exile/$1.app/Contents/"
}
combine "Blades of Exile"
combine "BoE Scenario Editor"
combine "BoE Character Editor"
cp -r "$SILICON/Blades of Exile/Blades of Exile Base" "build/Blades of Exile/"
cp -r "$SILICON/Blades of Exile/Blades of Exile Scenarios" "build/Blades of Exile/"
cp -r "$SILICON/Blades of Exile/data" "build/Blades of Exile/"
cp -r "$SILICON/Blades of Exile/docs" "build/Blades of Exile/"
cp "$SILICON/Blades of Exile/.itch.toml" "build/Blades of Exile/"

View File

@@ -4,4 +4,4 @@ export CC="$(brew --prefix llvm)/bin/clang"
export CXX="$(brew --prefix llvm)/bin/clang++"
export SDKROOT="$(xcrun --show-sdk-path)"
scons CXXFLAGS="-I/usr/local/opt/zlib/include" LINKFLAGS="-L/usr/local/opt/zlib/lib" $@
scons CXXFLAGS="-I/usr/local/opt/zlib/include -arch $ARCH" LINKFLAGS="-L/usr/local/opt/zlib/lib" $@

79
.github/workflows/scripts/mac/sign-apps.sh vendored Executable file
View File

@@ -0,0 +1,79 @@
#! /bin/bash
# CODE-SIGNING STEP
# Original Source: https://federicoterzi.com/blog/automatic-code-signing-and-notarization-for-macos-apps-using-github-actions/
# Modified by NQNStudios
# Turn our base64-encoded certificate back to a regular .p12 file
echo $PROD_MACOS_CERTIFICATE | base64 --decode > certificate.p12
# We need to create a new keychain, otherwise using the certificate will prompt
# with a UI dialog asking for the certificate password, which we can't
# use in a headless CI environment
security create-keychain -p "$PROD_MACOS_CI_KEYCHAIN_PWD" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "$PROD_MACOS_CI_KEYCHAIN_PWD" build.keychain
security import certificate.p12 -k build.keychain -P "$PROD_MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$PROD_MACOS_CI_KEYCHAIN_PWD" build.keychain
sign() {
if [ "$SIGN" = "no" ];
then
return
fi
APP_PATH="build/Blades of Exile/$1.app"
# We finally codesign our app bundle, specifying the Hardened runtime option
/usr/bin/codesign --force -s "$PROD_MACOS_CERTIFICATE_NAME" --options runtime "$APP_PATH"/Contents/Frameworks/*.dylib -v
(cd "$APP_PATH" && frameworks=Contents/Frameworks/*.framework/Versions/A/* && \
for framework in $frameworks; do
if [ -f "$framework" ]; then
/usr/bin/codesign --force -s "$PROD_MACOS_CERTIFICATE_NAME" --options runtime "$framework" -v
fi
done)
/usr/bin/codesign --force -s "$PROD_MACOS_CERTIFICATE_NAME" --options runtime "$APP_PATH"/Contents/Frameworks/*.framework/Versions/A/Resources/Info.plist -v
/usr/bin/codesign --force -s "$PROD_MACOS_CERTIFICATE_NAME" --options runtime "$APP_PATH/Contents/Info.plist" -v
/usr/bin/codesign --force -s "$PROD_MACOS_CERTIFICATE_NAME" --options runtime "$APP_PATH" -v
# NOTARIZATION STEP
if [ "$NOTARIZE" = "no" ];
then
return
fi
# (same source)
# Store the notarization credentials so that we can prevent a UI password dialog
# from blocking the CI
echo "Create keychain profile"
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$PROD_MACOS_NOTARIZATION_APPLE_ID" --team-id "$PROD_MACOS_NOTARIZATION_TEAM_ID" --password "$PROD_MACOS_NOTARIZATION_PWD"
# We can't notarize an app bundle directly, but we need to compress it as an archive.
# Therefore, we create a zip file containing our app bundle, so that we can send it to the
# notarization service
echo "Creating temp notarization archive"
ditto -c -k --keepParent "$APP_PATH" "notarization.zip"
# Here we send the notarization request to the Apple's Notarization service, waiting for the result.
# This typically takes a few seconds inside a CI environment, but it might take more depending on the App
# characteristics. Visit the Notarization docs for more information and strategies on how to optimize it if
# you're curious
echo "Notarize app"
xcrun notarytool submit "notarization.zip" --keychain-profile "notarytool-profile" --wait
# Finally, we need to "attach the staple" to our executable, which will allow our app to be
# validated by macOS even when an internet connection is not available.
echo "Attach staple"
xcrun stapler staple "$APP_PATH" || exit 1
}
sign "Blades of Exile"
sign "BoE Scenario Editor"
sign "BoE Character Editor"

View File

@@ -10,6 +10,6 @@ REM @echo "%%i"
REM call "%%i" x86_amd64
REM )
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
scons bits=64 %*

3
.gitmodules vendored
View File

@@ -11,6 +11,3 @@
[submodule "deps/fix-rpaths"]
path = deps/fix-rpaths
url = https://gist.github.com/NQNStudios/7145bcf6621891f5176c8caa165d6b93
[submodule "deps/fmtlib"]
path = deps/fmtlib
url = http://github.com/fmtlib/fmt

9
.itch.toml Normal file
View File

@@ -0,0 +1,9 @@
[[actions]]
name = "Play"
path = "Blades of Exile.exe"
platform = "windows"
[[actions]]
name = "Play"
path = "Blades of Exile.app"
platform = "osx"

View File

@@ -85,8 +85,6 @@ For Linux builds, the following additional dependencies are required:
- or, if cmake is available when you call `scons`, TGUI will be built from source automatically
- zenity command-line tools
For Windows builds, [7-zip](https://7-zip.org/download.html) is required.
If you are using the Visual Studio toolset, we recommend installing
[vcpkg](https://github.com/Microsoft/vcpkg) to manage these dependencies.

View File

@@ -84,7 +84,7 @@ print('C++ compiler:', cxx)
env.VariantDir('#build/obj', 'src')
env.VariantDir('#build/obj/test', 'test')
env.VariantDir('#build/obj/deps', 'deps')
env.VariantDir('#build/obj/test/deps', 'deps')
if not env['release']:
if platform in ['posix', 'darwin']:
@@ -232,13 +232,15 @@ elif platform == "win32":
vcpkg_other_libs = list(filter(path.exists, vcpkg_other_libs))
vcpkg_other_bins = [path.join(d.get_abspath(), 'bin') for d in vcpkg_other_packages]
vcpkg_other_bins = list(filter(path.exists, vcpkg_other_bins))
include_paths=[path.join(vcpkg_installed, 'include')] + vcpkg_other_includes
project_includes = []
for (root, dirs, files) in os.walk('src'):
project_includes.append(path.join(os.getcwd(), root))
include_paths=project_includes
env.Append(
LINKFLAGS=['/SUBSYSTEM:WINDOWS','/ENTRY:mainCRTStartup',f'/MACHINE:X{arch_short}'],
CXXFLAGS=['/EHsc','/MD','/FIglobal.hpp','/utf-8'],
LINKFLAGS=['/SUBSYSTEM:WINDOWS','/ENTRY:mainCRTStartup',f'/MACHINE:X{arch_short}', '/VERBOSE', '/NODEFAULTLIB:libboost_filesystem-vc142-mt-x64-1_85.lib'],
CXXFLAGS=['/EHsc','/MD','/FIglobal.hpp'],
CPPPATH=include_paths,
LIBPATH=[path.join(vcpkg_installed, 'lib')] + vcpkg_other_libs + vcpkg_other_bins,
LIBPATH=[],
LIBS=Split("""
kernel32
user32
@@ -259,7 +261,10 @@ elif platform == "win32":
def build_app_package(env, source, build_dir, info):
env.Install(build_dir, source)
elif platform == "posix":
env.Append(CXXFLAGS=["-std=c++14","-include","global.hpp"])
env.Append(
CXXFLAGS=["-std=c++14","-include","global.hpp"],
#LINKFLAGS=["-rpath-link", "deps/lib/", "-rpath", "./"]
)
def build_app_package(env, source, build_dir, info):
env.Install(build_dir, source)
@@ -379,7 +384,7 @@ if not env.GetOption('clean'):
Exit(1)
boost_versions = ['-1_84'] # This is a bit of a hack. :(
suffixes = ['-mt', f'-mt-x{env["bits"]}', f'-vc143-mt-x{env["bits"]}', f'-vc144-mt-x{env["bits"]}']
suffixes = ['-mt', f'-mt-x{env["bits"]}']
zlib = 'zlib' if (platform == "win32" and 'mingw' not in env["TOOLS"]) else 'z'
check_lib(zlib, 'zlib', ['d'], [])
@@ -411,16 +416,11 @@ if not env.GetOption('clean'):
env.Append(CPPPATH=[path.join(os.getcwd(), 'deps/cppcodec')])
# Make sure fmtlib is cloned
if not path.exists('deps/fmtlib/fmt/format.h'):
subprocess.call(["git", "submodule", "update", "--init", "deps/fmtlib"])
env.Append(CPPPATH=[path.join(os.getcwd(), 'deps/fmtlib/include')])
# On Linux, build TGUI from the subtree if necessary
if platform == 'posix':
def check_tgui(conf, second_attempt=False):
if conf.CheckLib('libtgui', language='C++'):
bundled_libs.append('tgui')
return conf
else:
if second_attempt:
@@ -502,7 +502,31 @@ Export("data_dir")
SConscript(["rsrc/SConscript", "doc/SConscript"])
# Bundle required frameworks and libraries
def handle_bundled_libs(extension, prefix=''):
target_dirs = ["#build/Blades of Exile", "#build/test"]
for lib in bundled_libs:
for lpath in env['LIBPATH']:
def check_path(src_file):
_dir = os.path.dirname(src_file)
print(f'checking {_dir} for {prefix}{lib}')
try:
print(os.listdir(_dir))
except:
pass
if path.exists(src_file) and src_file != "/usr/lib/x86_64-linux-gnu/libz.so":
for targ in target_dirs:
for so in os.listdir(_dir):
if os.path.basename(src_file) in so:
print(f'found {path.join(_dir, so)}')
env.Install(targ, path.join(_dir, so))
return True
return False
if check_path(path.join(lpath, prefix + lib + extension)):
break
elif check_path(path.join(lpath.replace('lib', 'bin'), prefix + lib + extension)):
break
elif check_path(path.join(lpath, 'x86_64-linux-gnu', prefix + lib + extension)):
break
if platform == "darwin":
app_targets = []
if 'game' in targets:
@@ -518,11 +542,8 @@ if platform == "darwin":
def fix_target_rpaths():
if not path.exists('deps/fix-rpaths/fix-rpaths.py'):
subprocess.call(["git", "submodule", "update", "--init", "deps/fix-rpaths"])
app = f'build/Blades of Exile/{targ}.app'
# The build for the target may have failed, in which case, don't call fix-rpaths
if path.exists(app):
print(app)
subprocess.call(["deps/fix-rpaths/fix-rpaths.py", f'build/Blades of Exile/{targ}.app'])
print(f'build/Blades of Exile/{targ}.app')
subprocess.call(["deps/fix-rpaths/fix-rpaths.py", f'build/Blades of Exile/{targ}.app'])
if not env.GetOption('clean'):
atexit.register(fix_target_rpaths)
elif platform == "win32":
@@ -544,20 +565,7 @@ elif platform == "win32":
brotlidec
brotlicommon
""")
target_dirs = ["#build/Blades of Exile", "#build/test"]
for lib in bundled_libs:
for lpath in env['LIBPATH']:
src_file = path.join(lpath, lib + ".dll")
if path.exists(src_file):
for targ in target_dirs:
env.Install(targ, src_file)
break
elif 'lib' in lpath:
src_file = path.join(lpath.replace('lib', 'bin'), lib + ".dll")
if path.exists(src_file):
for targ in target_dirs:
env.Install(targ, src_file)
break
handle_bundled_libs(".dll")
# Extra: Microsoft redistributable libraries installer
if 'msvc' in env["TOOLS"]:
if path.exists("deps/VCRedistInstall.exe"):
@@ -565,11 +573,41 @@ elif platform == "win32":
else:
print("WARNING: Cannot find installer for the MSVC redistributable libraries for your version of Visual Studio.")
print("Please download it from Microsoft's website and place it at:")
print(" deps/VCRedistInstall.exe")
print(" deps/VCRedistInstall.exe")
# Create it so its lack doesn't cause makensis to break
# (Because the installer is an optional component.)
os.makedirs("build/Blades of Exile", exist_ok=True)
open("build/Blades of Exile/VCRedistInstall.exe", 'w').close()
elif platform == "posix":
targets = [
"Blades of Exile",
"BoE Character Editor",
"BoE Scenario Editor",
]
def patchelf():
to_patch = targets + [so for so in os.listdir("build/Blades of Exile") if '.so' in so]
for targ in to_patch:
subprocess.call(['patchelf', '--set-rpath', '.', targ], cwd='build/Blades of Exile')
atexit.register(patchelf)
bundled_libs += Split("""
GL
X11
stdc++
Xrandr
Xcursor
udev
openal
vorbisenc
vorbisfile
vorbis
ogg
FLAC
freetype
GLdispatch
GLX
xcb
""")
handle_bundled_libs(".so", "lib")
if env["package"]:
if platform == "darwin":

1
deps/fmtlib vendored

Submodule deps/fmtlib deleted from 814f51eab6

View File

@@ -6,6 +6,7 @@
</head>
<body>
<h1><img src="../img/boe.gif"> <u><b>Blades Scenario Editor Instructions</b></u></h1>
<p><i>Copyright 1998, Spiderweb Software, Inc.</i></p>
<p>This document contains all the information you need to play use the Blades of Exile Scenario Editor and make new scenarios for Blades of Exile!</p>
<p>This menu can also take you to the different sections of this document. To find the thing you're looking for, try the table of contents...</p>
<h2>Table of Contents</h2>
@@ -97,5 +98,15 @@
<li><a href="http://spiderwebforums.ipbhost.com/index.php?/forum/12-blades-of-exile/">Blades of Exile Forum at Spiderweb Software</a></li>
<li><a href='irc://irc.freenode.net/openboe'>Blades of Exile IRC channel</a></li>
</ul>
<h3>Spiderweb Software</h3>
<ul>
<li>PO Box 85659</li>
<li>Seattle, WA 98145-1659</li>
<li>(206) 789-4438</li>
<li>E-mail: <a href="mailto:spidweb@spidweb.com">SpidWeb@spidweb.com</a></li>
<li>America Online: SpidWeb</li>
<li>CompuServe: 76463,1521</li>
<li>Internet: <a href="http://www.spiderwebsoftware.com">http://www.spiderwebsoftware.com</a></li>
</ul>
</body>
</html>

View File

@@ -10,7 +10,6 @@ Confirmed:
- Bret Rodabaugh
- Dylan Nugent
- Evan Mulrooney
- Glen Chudley
- Jake Harrelson
- Jared Forcinito
- Jeff Potter
@@ -26,7 +25,6 @@ Confirmed:
- K L
- Laura Nelson
- Mariann Krizsan
- Maryanne Wachter
- Mike Lapinsky
- Nathan Rickey
- Nick Chaimov

View File

@@ -1,6 +1,5 @@
set Zip="C:\Program Files\7-Zip\7z.exe"
%Zip% >NUL || @echo 7-zip must be installed first. && exit /B
@echo Packing scenario %2...
if exist %2 del /F %2

View File

@@ -247,7 +247,6 @@
<ClCompile Include="..\..\..\src\scenario\item.cpp" />
<ClCompile Include="..\..\..\src\scenario\monster.cpp" />
<ClCompile Include="..\..\..\src\scenario\outdoors.cpp" />
<ClCompile Include="..\..\..\src\scenario\quest.cpp" />
<ClCompile Include="..\..\..\src\scenario\scenario.cpp" />
<ClCompile Include="..\..\..\src\scenario\shop.cpp" />
<ClCompile Include="..\..\..\src\scenario\special.cpp" />
@@ -283,8 +282,6 @@
<ClCompile Include="..\..\..\src\universe\universe.cpp" />
<ClCompile Include="..\..\..\src\utility.cpp" />
<ClCompile Include="..\..\..\src\view_dialogs.cpp" />
<ClCompile Include="..\..\..\deps\fmtlib\src\format.cc" />
<ClCompile Include="..\..\..\deps\fmtlib\src\os.cc" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\alchemy.hpp" />
@@ -430,9 +427,9 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>MSBUILD_GITREV;WIN32;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions);_DEBUG</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<DisableLanguageExtensions>false</DisableLanguageExtensions>
<AdditionalOptions>/FS %(AdditionalOptions) /utf-8</AdditionalOptions>
<AdditionalOptions>/FS %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
@@ -459,10 +456,9 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>MSBUILD_GITREV;WIN32;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions);NDEBUG</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
<AdditionalOptions>/utf-8</AdditionalOptions>
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
</ClCompile>

View File

@@ -828,11 +828,6 @@
<ClCompile Include="..\..\..\src\tools\profile.cpp">
<Filter>Tools</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\quest.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\deps\fmtlib\src\format.cc" />
<ClCompile Include="..\..\..\deps\fmtlib\src\os.cc" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\view_dialogs.hpp" />

View File

@@ -56,8 +56,7 @@
<PreprocessorDefinitions>MSBUILD_GITREV;WIN32;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions);_DEBUG</PreprocessorDefinitions>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
</ClCompile>
@@ -78,9 +77,8 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalOptions>/utf-8</AdditionalOptions>
<PreprocessorDefinitions>MSBUILD_GITREV;WIN32;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions);NDEBUG</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
@@ -169,4 +167,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

View File

@@ -46,9 +46,8 @@
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalOptions>/utf-8</AdditionalOptions>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include;$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
</ClCompile>
@@ -64,8 +63,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include;$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
@@ -83,7 +81,7 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
</ClCompile>
@@ -99,8 +97,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
@@ -110,7 +107,6 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalDependencies>opengl32.lib;sfml-system.lib;sfml-window.lib;sfml-graphics.lib;sfml-audio.lib;libboost_filesystem-vc120-mt-*.lib;libboost_system-vc120-mt-*.lib;libboost_thread-vc120-mt-*.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>

View File

@@ -58,12 +58,11 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalOptions>/utf-8</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -83,12 +82,11 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalOptions>/utf-8</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -137,4 +135,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

View File

@@ -58,12 +58,11 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalOptions>/utf-8</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -83,12 +82,11 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;TIXML_USE_TICPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
<DisableSpecificWarnings>4800;4290;4244;4996;4018</DisableSpecificWarnings>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalOptions>/utf-8</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -114,7 +112,6 @@
<ClCompile Include="..\..\..\src\scenedit\scen.menus.win.cpp" />
<ClCompile Include="..\..\..\src\scenedit\scen.sdfpicker.cpp" />
<ClCompile Include="..\..\..\src\scenedit\scen.townout.cpp" />
<ClCompile Include="..\..\..\src\scenedit\scen.undo.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\scenedit\scen.actions.hpp" />
@@ -129,7 +126,6 @@
<ClInclude Include="..\..\..\src\scenedit\scen.sdfpicker.hpp" />
<ClInclude Include="..\..\..\src\scenedit\scen.townout.hpp" />
<ClInclude Include="..\..\..\rsrc\menus\scenresource.h" />
<ClInclude Include="..\..\..\src\scenedit\scen.undo.hpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Common\Common.vcxproj">
@@ -150,4 +146,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

View File

@@ -48,9 +48,6 @@
<ClCompile Include="..\..\..\src\scenedit\scen.actions.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenedit\scen.undo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\rsrc\menus\scenresource.h">
@@ -89,9 +86,6 @@
<ClInclude Include="..\..\..\src\scenedit\scen.actions.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\scenedit\scen.undo.hpp">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Image Include="..\..\..\rsrc\icons\win\BOE Editor.ico">

View File

@@ -81,9 +81,8 @@
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalOptions>/utf-8</AdditionalOptions>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
</ClCompile>
@@ -100,9 +99,8 @@
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalOptions>/utf-8</AdditionalOptions>
</ClCompile>
<Link>
<TargetMachine>MachineX86</TargetMachine>
@@ -117,9 +115,8 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalOptions>/utf-8</AdditionalOptions>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>MSBUILD_GITREV;WIN32;_WINDOWS;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;TIXML_USE_TICPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<OmitFramePointers>false</OmitFramePointers>
@@ -137,9 +134,8 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalOptions>/utf-8</AdditionalOptions>
<OmitFramePointers>false</OmitFramePointers>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>MSBUILD_GITREV;WIN32;_WINDOWS;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;TIXML_USE_TICPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -222,4 +218,4 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>
</Project>

View File

@@ -82,8 +82,7 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<ConformanceMode>true</ConformanceMode>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
</ClCompile>
<Link>
@@ -99,8 +98,7 @@
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
@@ -120,8 +118,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<ConformanceMode>true</ConformanceMode>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
</ClCompile>
<Link>
@@ -142,8 +139,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
@@ -188,4 +184,4 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>
</Project>

View File

@@ -89,10 +89,9 @@
<DisableSpecificWarnings>
</DisableSpecificWarnings>
<PreprocessorDefinitions>MSBUILD_GITREV;WIN32;_WINDOWS;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;TIXML_USE_TICPP;%(PreprocessorDefinitions);NOMINMAX</PreprocessorDefinitions>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalUsingDirectories>
</AdditionalUsingDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<TargetMachine>MachineX86</TargetMachine>
@@ -107,8 +106,7 @@
<ConformanceMode>true</ConformanceMode>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PreprocessorDefinitions>MSBUILD_GITREV;WIN32;_WINDOWS;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;TIXML_USE_TICPP;%(PreprocessorDefinitions);NOMINMAX</PreprocessorDefinitions>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
</ClCompile>
<Link>
@@ -129,10 +127,9 @@
<DisableSpecificWarnings>
</DisableSpecificWarnings>
<PreprocessorDefinitions>MSBUILD_GITREV;WIN32;_WINDOWS;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;TIXML_USE_TICPP;%(PreprocessorDefinitions);NOMINMAX</PreprocessorDefinitions>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalUsingDirectories>
</AdditionalUsingDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<TargetMachine>MachineX86</TargetMachine>
@@ -152,8 +149,7 @@
<ConformanceMode>true</ConformanceMode>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PreprocessorDefinitions>MSBUILD_GITREV;WIN32;_WINDOWS;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;TIXML_USE_TICPP;%(PreprocessorDefinitions);NOMINMAX</PreprocessorDefinitions>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\cppcodec;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
</ClCompile>
<Link>
@@ -407,7 +403,6 @@
<ClCompile Include="..\..\..\src\scenario\item.cpp" />
<ClCompile Include="..\..\..\src\scenario\monster.cpp" />
<ClCompile Include="..\..\..\src\scenario\outdoors.cpp" />
<ClCompile Include="..\..\..\src\scenario\quest.cpp" />
<ClCompile Include="..\..\..\src\scenario\scenario.cpp" />
<ClCompile Include="..\..\..\src\scenario\shop.cpp" />
<ClCompile Include="..\..\..\src\scenario\special.cpp" />
@@ -443,8 +438,6 @@
<ClCompile Include="..\..\..\src\universe\universe.cpp" />
<ClCompile Include="..\..\..\src\utility.cpp" />
<ClCompile Include="..\..\..\src\view_dialogs.cpp" />
<ClCompile Include="..\..\..\deps\fmtlib\src\format.cc" />
<ClCompile Include="..\..\..\deps\fmtlib\src\os.cc" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\scenario\town_import.tpp" />

View File

@@ -821,11 +821,6 @@
<ClCompile Include="..\..\..\src\tools\profile.cpp">
<Filter>Tools</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\quest.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\deps\fmtlib\src\format.cc" />
<ClCompile Include="..\..\..\deps\fmtlib\src\os.cc" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\scenario\town_import.tpp">

View File

@@ -80,9 +80,8 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<ConformanceMode>true</ConformanceMode>
<AdditionalOptions>/utf-8</AdditionalOptions>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
</ClCompile>
<Link>
@@ -98,9 +97,8 @@
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalOptions>/utf-8</AdditionalOptions>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
@@ -120,9 +118,8 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<ConformanceMode>true</ConformanceMode>
<AdditionalOptions>/utf-8</AdditionalOptions>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
</ClCompile>
<Link>
@@ -143,8 +140,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\include\external;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src;$(SolutionDir)..\..\rsrc\menus</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(SolutionDir)..\..\src\global.hpp</ForcedIncludeFiles>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
@@ -171,7 +167,6 @@
<ClCompile Include="..\..\..\src\scenedit\scen.sdfpicker.cpp" />
<ClCompile Include="..\..\..\src\scenedit\scen.townout.cpp" />
<ClCompile Include="..\..\..\src\fileio\fileio_party.cpp" />
<ClCompile Include="..\..\..\src\scenedit\scen.undo.cpp" />
<ClCompile Include="..\..\..\src\universe\universe.cpp" />
<ClCompile Include="..\..\..\src\universe\party.cpp" />
</ItemGroup>
@@ -188,7 +183,6 @@
<ClInclude Include="..\..\..\src\scenedit\scen.sdfpicker.hpp" />
<ClInclude Include="..\..\..\src\scenedit\scen.menus.hpp" />
<ClInclude Include="..\..\..\src\scenedit\scen.townout.hpp" />
<ClInclude Include="..\..\..\src\scenedit\scen.undo.hpp" />
</ItemGroup>
<ItemGroup>
<Image Include="..\..\..\rsrc\icons\win\BOE Editor.ico" />
@@ -205,4 +199,4 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>
</Project>

View File

@@ -97,8 +97,7 @@
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\single_include\catch2;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\single_include\catch2;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<UseFullPaths>true</UseFullPaths>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
@@ -118,8 +117,7 @@
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\single_include\catch2;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\single_include\catch2;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<UseFullPaths>true</UseFullPaths>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
@@ -141,8 +139,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\single_include\catch2;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\single_include\catch2;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<UseFullPaths>true</UseFullPaths>
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
@@ -167,8 +164,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalOptions>/utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\single_include\catch2;$(SolutionDir)..\..\deps\fmtlib\include;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\deps\Catch2\single_include\catch2;$(SolutionDir)..\..\src\fileio\gzstream;$(SolutionDir)..\..\src\fileio\xml-parser;$(SolutionDir)..\..\src\fileio\resmgr;$(SolutionDir)..\..\src\dialogxml\widgets;$(SolutionDir)..\..\src\dialogxml\dialogs;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\tools;$(SolutionDir)..\..\src\scenario;$(SolutionDir)..\..\src\universe;$(SolutionDir)..\..\src\fileio;$(SolutionDir)..\..\src\dialogxml;$(SolutionDir)..\..\src\gfx;$(SolutionDir)..\..\src</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
<PrecompiledHeaderFile />
@@ -231,4 +227,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

View File

@@ -1,5 +1,3 @@
# Folder local settings are ignored.
# Settings that should be checked in should go in the workspace file.
.vscode/settings.json
# This is needed to make the build system machine-independent.
vswhere.exe

View File

@@ -1,62 +0,0 @@
##############################################################################
##
## Invoke-CmdScript
##
## From PowerShell Cookbook (O'Reilly)
## by Lee Holmes (http://www.leeholmes.com/guide)
## <https://powershellcookbook.com/recipe/WqHr/program-retain-changes-to-environment-variables-set-by-a-batch-file>
##
##############################################################################
<#
.SYNOPSIS
Invoke the specified batch file (and parameters), but also propagate any
environment variable changes back to the PowerShell environment that
called it.
.EXAMPLE
PS > type foo-that-sets-the-FOO-env-variable.cmd
@set FOO=%*
echo FOO set to %FOO%.
PS > $env:FOO
PS > Invoke-CmdScript "foo-that-sets-the-FOO-env-variable.cmd" Test
C:\Temp>echo FOO set to Test.
FOO set to Test.
PS > $env:FOO
Test
#>
param(
## The path to the script to run
[Parameter(Mandatory = $true)]
[string] $Path,
## The arguments to the script
[string] $ArgumentList
)
Set-StrictMode -Version 3
$tempFile = [IO.Path]::GetTempFileName()
## Store the output of cmd.exe. We also ask cmd.exe to output
## the environment table after the batch file completes
cmd /c " `"$Path`" $argumentList && set > `"$tempFile`" "
## Go through the environment variables in the temp file.
## For each of them, set the variable in our local environment.
Get-Content $tempFile | Foreach-Object {
if($_ -match "^(.*?)=(.*)$")
{
Set-Content "env:\$($matches[1])" $matches[2]
}
}
Remove-Item $tempFile

View File

@@ -1,25 +0,0 @@
Set-Location proj\vscode
$vswhere_path = "vswhere.exe"
if(-not(Test-Path -path $vswhere_path)) {
(New-Object Net.WebClient).DownloadFile('https://github.com/microsoft/vswhere/releases/latest/download/vswhere.exe', $vswhere_path)
if(-not(Test-Path -path $vswhere_path)) {
Write-Output 'Failed to download vswhere.exe'
exit 1
}
}
# $msbuild_path = .\proj\vscode\vswhere -latest -products * -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe | select-object -first 1
$vars_path = .\vswhere -latest -products * -requires Microsoft.Component.MSBuild -find **\VC\Auxiliary\Build\vcvars64.bat
if($vars_path) {
.\Invoke-CmdScript $vars_path
# Write-Output $msbuild_path @args
# & "$msbuild_path\..\..\..\..\VC\Auxiliary\Build\vcvars64.bat"
# Write-Output $env:PATH
MSBuild @args
} else {
Write-Output 'Could not find MSBuild.exe'
exit 1
}

View File

@@ -10,62 +10,6 @@
"ms-vscode.cpptools",
]
},
"tasks": {
"version": "2.0.0",
"tasks": [
{
"label": "Build (Debug)",
"windows": {
"type": "process",
"command": "powershell",
"args": [
"${workspaceFolder}/proj/vscode/build.ps1",
"/property:GenerateFullPaths=true",
"/property:VcpkgConfiguration=Debug",
"/t:build",
"\"${workspaceRoot}\\proj\\vs2017\\Blades of Exile.sln\""
],
"problemMatcher": "$msCompile",
},
"group": "build"
},
{
"label": "Build (Release)",
"windows": {
"type": "process",
"command": "powershell",
"args": [
"${workspaceFolder}/proj/vscode/build.ps1",
"/property:GenerateFullPaths=true",
"/property:VcpkgConfiguration=Release",
"/t:build",
"${workspaceRoot}\\proj\\vs2013\\Blades of Exile.sln"
],
"problemMatcher": "$msCompile",
},
"group": "build"
},
{
"label": "Run tests",
"windows": {
"type": "process",
"command": "${workspaceRoot}\\proj\\vs2013\\Release\\OBoE Tests.exe",
"problemMatcher": {
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^\\.(.*)\\((\\d+)\\): FAILED$",
"file": 1,
"line": 2
}
},
},
"options": {
"cwd": "${workspaceRoot}/test"
},
"group": "test"
}
]
},
"settings": {
"xml.fileAssociations": [
{
@@ -104,89 +48,6 @@
"pattern": "rsrc/scenarios/*/dialogs/*.xml",
"systemId": "${workspaceFolder}/rsrc/schemas/dialog.xsd"
}
],
"files.associations": {
"__bit_reference": "cpp",
"__config": "cpp",
"__debug": "cpp",
"__errc": "cpp",
"__functional_base": "cpp",
"__hash_table": "cpp",
"__locale": "cpp",
"__mutex_base": "cpp",
"__node_handle": "cpp",
"__nullptr": "cpp",
"__split_buffer": "cpp",
"__string": "cpp",
"__threading_support": "cpp",
"__tree": "cpp",
"__tuple": "cpp",
"algorithm": "cpp",
"any": "cpp",
"array": "cpp",
"atomic": "cpp",
"bit": "cpp",
"bitset": "cpp",
"cctype": "cpp",
"cfenv": "cpp",
"charconv": "cpp",
"chrono": "cpp",
"cmath": "cpp",
"codecvt": "cpp",
"complex": "cpp",
"condition_variable": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"exception": "cpp",
"fstream": "cpp",
"functional": "cpp",
"future": "cpp",
"initializer_list": "cpp",
"iomanip": "cpp",
"ios": "cpp",
"iosfwd": "cpp",
"iostream": "cpp",
"istream": "cpp",
"iterator": "cpp",
"limits": "cpp",
"list": "cpp",
"locale": "cpp",
"map": "cpp",
"memory": "cpp",
"mutex": "cpp",
"new": "cpp",
"numeric": "cpp",
"optional": "cpp",
"ostream": "cpp",
"queue": "cpp",
"random": "cpp",
"ratio": "cpp",
"regex": "cpp",
"set": "cpp",
"sstream": "cpp",
"stack": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"string_view": "cpp",
"string": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"typeindex": "cpp",
"typeinfo": "cpp",
"unordered_map": "cpp",
"unordered_set": "cpp",
"utility": "cpp",
"variant": "cpp",
"vector": "cpp"
}
]
}
}

View File

@@ -56,7 +56,6 @@
2BF04B2E0BF51924006C0831 /* boe.town.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2BF04B090BF51924006C0831 /* boe.town.cpp */; };
410CEEE82D84618C00FFF8CD /* profile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 410CEEE62D84618C00FFF8CD /* profile.cpp */; };
410CEEE92D84618C00FFF8CD /* profile.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 410CEEE72D84618C00FFF8CD /* profile.hpp */; };
41342CEA2DFB872400E66BEB /* quest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41342CE92DFB872400E66BEB /* quest.cpp */; };
413AAF612D389F94002E9BF1 /* fileio_party.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91E30F2A1A74819B0057C54A /* fileio_party.cpp */; };
413AAF622D38A076002E9BF1 /* universe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91AC61C50FA2729900EEAE67 /* universe.cpp */; };
413AAF632D38A1B8002E9BF1 /* party.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 913D05B50FA1E9E300184C18 /* party.cpp */; };
@@ -66,7 +65,6 @@
413AAF672D38A4A5002E9BF1 /* living.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 914698FB1A7362D900F20F5E /* living.cpp */; };
413FE08F2CECFAFF000D97DC /* winutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 413FE08E2CECFAFF000D97DC /* winutil.cpp */; };
415EEEB02D5534A500B47408 /* prefs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 415EEEAF2D5534A500B47408 /* prefs.cpp */; };
41E550542DEB8C2A00A7DF52 /* scen.undo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41E550532DEB8C2A00A7DF52 /* scen.undo.cpp */; };
91034D211B225E4A008F01C1 /* scen.appleevents.mm in Sources */ = {isa = PBXBuildFile; fileRef = 91034D201B225E49008F01C1 /* scen.appleevents.mm */; };
911A14031B8FAFC600900FD9 /* town_read.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91C2A6EC1B8FA91400346948 /* town_read.cpp */; };
911A14041B8FB00300900FD9 /* talk_read.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91C2A6EE1B8FAA8E00346948 /* talk_read.cpp */; };
@@ -161,8 +159,6 @@
917823821B2F33F5007F3444 /* FLAC.framework in Copy Libraries and Frameworks */ = {isa = PBXBuildFile; fileRef = 9178237C1B2F33E9007F3444 /* FLAC.framework */; };
91870F84190C90980081C150 /* scenedit.xib in Resources */ = {isa = PBXBuildFile; fileRef = 914CA49F190C4E9200B6ADD1 /* scenedit.xib */; };
919145FC18E3AB1B005CF3A4 /* boe.appleevents.mm in Sources */ = {isa = PBXBuildFile; fileRef = 919145FB18E3A32F005CF3A4 /* boe.appleevents.mm */; };
9191E3B12D8AFD5800AF6D01 /* os.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9191E3AE2D8AFD5800AF6D01 /* os.cc */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
9191E3B32D8AFD5800AF6D01 /* format.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9191E3B02D8AFD5800AF6D01 /* format.cc */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
9192C12018F2745C0088A580 /* game.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9192C11E18F271920088A580 /* game.xib */; };
919B13A21BBCDF14009905A4 /* monst_legacy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919B13A11BBCDE18009905A4 /* monst_legacy.cpp */; };
919B13A41BBD8854009905A4 /* item_legacy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919B13A31BBD8849009905A4 /* item_legacy.cpp */; };
@@ -637,11 +633,8 @@
2BF04B0A0BF51924006C0831 /* boe.town.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = boe.town.hpp; sourceTree = "<group>"; };
410CEEE62D84618C00FFF8CD /* profile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = profile.cpp; sourceTree = "<group>"; };
410CEEE72D84618C00FFF8CD /* profile.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = profile.hpp; sourceTree = "<group>"; };
41342CE92DFB872400E66BEB /* quest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = quest.cpp; sourceTree = "<group>"; };
413FE08E2CECFAFF000D97DC /* winutil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = winutil.cpp; sourceTree = "<group>"; };
415EEEAF2D5534A500B47408 /* prefs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = prefs.cpp; sourceTree = "<group>"; };
41E550522DEB8C1400A7DF52 /* scen.undo.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = scen.undo.hpp; sourceTree = "<group>"; };
41E550532DEB8C2A00A7DF52 /* scen.undo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scen.undo.cpp; sourceTree = "<group>"; };
91034D201B225E49008F01C1 /* scen.appleevents.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = scen.appleevents.mm; sourceTree = "<group>"; };
9103DC652C6A406600849E60 /* cli.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = cli.hpp; sourceTree = "<group>"; };
910BBA170FB8BECA001E34EA /* dialog.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = dialog.hpp; sourceTree = "<group>"; };
@@ -793,8 +786,6 @@
919145FF18E63B70005CF3A4 /* winutil.mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = winutil.mac.mm; sourceTree = "<group>"; };
9191460018E63D8E005CF3A4 /* scrollbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scrollbar.cpp; sourceTree = "<group>"; };
9191460118E6591F005CF3A4 /* boe.menus.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = boe.menus.hpp; sourceTree = "<group>"; };
9191E3AE2D8AFD5800AF6D01 /* os.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = os.cc; sourceTree = "<group>"; };
9191E3B02D8AFD5800AF6D01 /* format.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = format.cc; sourceTree = "<group>"; };
9192C11E18F271920088A580 /* game.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = game.xib; path = ../rsrc/menus/game.xib; sourceTree = "<group>"; };
919B13A11BBCDE18009905A4 /* monst_legacy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = monst_legacy.cpp; sourceTree = "<group>"; };
919B13A31BBD8849009905A4 /* item_legacy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = item_legacy.cpp; sourceTree = "<group>"; };
@@ -1292,7 +1283,6 @@
9185BD941EA01BCC0027C346 /* scenario */ = {
isa = PBXGroup;
children = (
41342CE92DFB872400E66BEB /* quest.cpp */,
91279D3D0F9D1D6A007B0D52 /* item.cpp */,
91279CC10F9D19DA007B0D52 /* monster.cpp */,
91E5C79D0F9F60FA00C21460 /* outdoors.cpp */,
@@ -1404,7 +1394,6 @@
91F06E8F1A2EBEE70038E902 /* special_parse.hpp */,
919F2E72287E4E0500F47750 /* tagfile.hpp */,
91BFA3D91902ADD5001686E4 /* tarball.hpp */,
9191E3A82D8AFCF000AF6D01 /* fmtlib */,
91BFA3DC19033E00001686E4 /* gzstream */,
912DFE8718E24B0B00B00D75 /* resmgr */,
910BBA190FB8C43E001E34EA /* xml-parser */,
@@ -1449,16 +1438,6 @@
path = ../../src;
sourceTree = "<group>";
};
9191E3A82D8AFCF000AF6D01 /* fmtlib */ = {
isa = PBXGroup;
children = (
9191E3B02D8AFD5800AF6D01 /* format.cc */,
9191E3AE2D8AFD5800AF6D01 /* os.cc */,
);
name = fmtlib;
path = ../../deps/fmtlib/src;
sourceTree = "<group>";
};
91B3EECD0F969B7000BF5B67 /* ScenEd */ = {
isa = PBXGroup;
children = (
@@ -1489,7 +1468,6 @@
91B3EEE70F969BA700BF5B67 /* scen.btnmg.hpp */,
91B3EEE10F969BA700BF5B67 /* scen.core.hpp */,
91B3EEE40F969BA700BF5B67 /* scen.fileio.hpp */,
41E550522DEB8C1400A7DF52 /* scen.undo.hpp */,
91B3EEDE0F969BA700BF5B67 /* scen.global.hpp */,
91B3EEE50F969BA700BF5B67 /* scen.graphics.hpp */,
91B3EEE00F969BA700BF5B67 /* scen.keydlgs.hpp */,
@@ -1504,7 +1482,6 @@
91B3EEEA0F969BA700BF5B67 /* src */ = {
isa = PBXGroup;
children = (
41E550532DEB8C2A00A7DF52 /* scen.undo.cpp */,
91B3EEF10F969BA700BF5B67 /* scen.actions.cpp */,
91034D201B225E49008F01C1 /* scen.appleevents.mm */,
91B3EEF50F969BA700BF5B67 /* scen.btnmg.cpp */,
@@ -2212,7 +2189,6 @@
9143044A2970EDC1003A3967 /* keymods.cpp in Sources */,
919BE8B32D6776A8000C64C6 /* special-outdoor.cpp in Sources */,
91E128EF1BC2076B00C8BE1D /* pictchoice.cpp in Sources */,
41342CEA2DFB872400E66BEB /* quest.cpp in Sources */,
91E128F01BC2076B00C8BE1D /* strchoice.cpp in Sources */,
91E128F11BC2076B00C8BE1D /* strdlog.cpp in Sources */,
91CE248A1EA12866005BDCE4 /* utility.cpp in Sources */,
@@ -2226,8 +2202,6 @@
91EC1F0523DDFF9D00271891 /* res_font.cpp in Sources */,
91EC1F0623DDFF9D00271891 /* res_image.cpp in Sources */,
91EC1F0723DDFF9D00271891 /* res_sound.cpp in Sources */,
9191E3B32D8AFD5800AF6D01 /* format.cc in Sources */,
9191E3B12D8AFD5800AF6D01 /* os.cc in Sources */,
91EC1F0823DDFF9D00271891 /* res_strings.cpp in Sources */,
91F3205023E65EA3009650AF /* framerate_limiter.cpp in Sources */,
91FE0E3823F084B70084CA6B /* drawable_manager.cpp in Sources */,
@@ -2276,7 +2250,6 @@
914CA45819074E0100B6ADD1 /* scen.menus.mac.mm in Sources */,
91034D211B225E4A008F01C1 /* scen.appleevents.mm in Sources */,
91B0D5D21E344300002BE4DA /* view_dialogs.cpp in Sources */,
41E550542DEB8C2A00A7DF52 /* scen.undo.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2478,7 +2451,6 @@
"$(PROJECT_DIR)/../../src/fileio/xml-parser",
"$(PROJECT_DIR)/../../src/tools",
"$(PROJECT_DIR)/../../deps/Catch2/include/external",
"$(PROJECT_DIR)/../../deps/fmtlib/include",
);
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
LIBRARY_SEARCH_PATHS = (
@@ -2516,7 +2488,7 @@
"-Wno-quoted-include-in-framework-header",
"-Wno-shorten-64-to-32",
"-Wno-comma",
"-Wimplicit-fallthrough",
"-Werror=implicit-fallthrough",
);
};
name = Debug;
@@ -2595,7 +2567,6 @@
"$(PROJECT_DIR)/../../src/tools",
"$(PROJECT_DIR)/../../deps/Catch2/include/external",
"/usr/local/opt/boost@1.85/include",
"$(PROJECT_DIR)/../../deps/fmtlib/include",
);
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
LIBRARY_SEARCH_PATHS = (
@@ -2631,7 +2602,7 @@
"-Wno-quoted-include-in-framework-header",
"-Wno-shorten-64-to-32",
"-Wno-comma",
"-Wimplicit-fallthrough",
"-Werror=implicit-fallthrough",
);
};
name = Release;

View File

@@ -18,11 +18,11 @@
<!-- The height of this text needs to be 10 times the number of lines. -->
<text top='52' left='50' width='400' height='240'>
ORIGINAL GAME: <br/><br/><br/><br/><br/><br/>
OPEN SOURCE CREDITS: <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
OPEN SOURCE CREDITS: <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
SCENARIO FIXES AND UPDATES: <br/><br/>
</text>
<!-- This text is right-aligned and fills out the above text with sub-headings -->
<text top='52' left='40' width='190' height='860' align='right'>
<text top='52' left='40' width='190' height='840' align='right'>
<br/>
Concept, Design, Programming: <br/>
Graphics: <br/>
@@ -34,11 +34,11 @@
Graphics: <br/><br/><br/><br/><br/><br/><br/>
Consulting: <br/><br/><br/><br/>
Testing and Troubleshooting: <br/><br/>
Funding: <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
Funding: <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/>
Bandit Busywork: <br/>
</text>
<text top='52' left='250' width='230' height='860'>
<text top='52' left='250' width='230' height='840'>
<!-- ORIGINAL GAME --><br/>
<!-- Concept, Design, Programming -->Jeff Vogel <br/>
<!-- Graphics -->Andrew Hunter <br/>
@@ -84,7 +84,6 @@
Bret Rodabaugh <br/>
Dylan Nugent <br/>
Evan Mulrooney <br/>
Glen Chudley <br/>
Jake Harrelson <br/>
Jared Forcinito <br/>
Jeff Potter <br/>
@@ -100,7 +99,6 @@
K L <br/>
Laura Nelson <br/>
Mariann Krizsan <br/>
Maryanne Wachter <br/>
Mike Lapinsky <br/>
Nathan Rickey <br/>
Nick Chaimov <br/>

View File

@@ -1,12 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='keep' escbtn='cancel'>
<pict type='dlog' num='7' top='6' left='6'/>
<text name='keep-msg' top='6' left='49' width='256' height='32'>
Keep changes to {{item}} before editing another item?
</text>
<button name='cancel' type='regular' top='43' left='109'>Cancel</button>
<button name='revert' type='regular' top='43' left='175'>Discard</button>
<button name='keep' type='regular' top='43' left='240'>Keep</button>
</dialog>

View File

@@ -1,12 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='keep' escbtn='cancel'>
<pict type='dlog' num='7' top='6' left='6'/>
<text name='keep-msg' top='6' left='49' width='256' height='32'>
Keep changes to {{monst}} before editing another monster?
</text>
<button name='cancel' type='regular' top='43' left='109'>Cancel</button>
<button name='revert' type='regular' top='43' left='175'>Discard</button>
<button name='keep' type='regular' top='43' left='240'>Keep</button>
</dialog>

View File

@@ -1,12 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='keep' escbtn='cancel'>
<pict type='dlog' num='7' top='6' left='6'/>
<text name='keep-msg' top='6' left='49' width='256' height='32'>
Keep changes to {{enc-type}} {{num}} before editing another encounter?
</text>
<button name='cancel' type='regular' top='43' left='109'>Cancel</button>
<button name='revert' type='regular' top='43' left='175'>Discard</button>
<button name='keep' type='regular' top='43' left='240'>Keep</button>
</dialog>

View File

@@ -1,12 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='keep' escbtn='cancel'>
<pict type='dlog' num='7' top='6' left='6'/>
<text name='keep-msg' top='6' left='49' width='256' height='32'>
Keep changes to {{name}} before editing another personality?
</text>
<button name='cancel' type='regular' top='43' left='109'>Cancel</button>
<button name='revert' type='regular' top='43' left='175'>Discard</button>
<button name='keep' type='regular' top='43' left='240'>Keep</button>
</dialog>

View File

@@ -1,12 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='keep' escbtn='cancel'>
<pict type='dlog' num='7' top='6' left='6'/>
<text name='keep-msg' top='6' left='49' width='256' height='32'>
Keep changes to {{quest}} before editing another quest?
</text>
<button name='cancel' type='regular' top='43' left='109'>Cancel</button>
<button name='revert' type='regular' top='43' left='175'>Discard</button>
<button name='keep' type='regular' top='43' left='240'>Keep</button>
</dialog>

View File

@@ -1,12 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='keep' escbtn='cancel'>
<pict type='dlog' num='7' top='6' left='6'/>
<text name='keep-msg' top='6' left='49' width='256' height='32'>
Keep changes to {{shop}} before editing another shop?
</text>
<button name='cancel' type='regular' top='43' left='109'>Cancel</button>
<button name='revert' type='regular' top='43' left='175'>Discard</button>
<button name='keep' type='regular' top='43' left='240'>Keep</button>
</dialog>

View File

@@ -1,12 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='keep' escbtn='cancel'>
<pict type='dlog' num='7' top='6' left='6'/>
<text name='keep-msg' top='6' left='49' width='256' height='32'>
Keep changes to {{spec-item}} before editing another special item?
</text>
<button name='cancel' type='regular' top='43' left='109'>Cancel</button>
<button name='revert' type='regular' top='43' left='175'>Discard</button>
<button name='keep' type='regular' top='43' left='240'>Keep</button>
</dialog>

View File

@@ -1,12 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='keep' escbtn='cancel'>
<pict type='dlog' num='7' top='6' left='6'/>
<text name='keep-msg' top='6' left='49' width='256' height='32'>
Keep changes to {{PC}}'s spells before editing someone else?
</text>
<button name='cancel' type='regular' top='43' left='109'>Cancel</button>
<button name='revert' type='regular' top='43' left='175'>Discard</button>
<button name='keep' type='regular' top='43' left='240'>Keep</button>
</dialog>

View File

@@ -1,12 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='keep' escbtn='cancel'>
<pict type='dlog' num='7' top='6' left='6'/>
<text name='keep-msg' top='6' left='49' width='256' height='32'>
Keep changes to {{ter}} before editing another terrain?
</text>
<button name='cancel' type='regular' top='43' left='109'>Cancel</button>
<button name='revert' type='regular' top='43' left='175'>Discard</button>
<button name='keep' type='regular' top='43' left='240'>Keep</button>
</dialog>

View File

@@ -8,11 +8,12 @@
<text top='6' left='49' width='271' height='66'>
You are about to delete the last town in your scenario's town list
(so if you have 10 towns in your scenario, the tenth will disappear).
This change will immediately be saved, and can't be undone.
</text>
<text top='127' left='49' width='268' height='14'>Are you sure you want to do this?</text>
<text top='73' left='49' width='276' height='53'>
Make sure to remove all outdoor entrances to the deleted town,
as well as all references to it in special encounters.
Failure to do so will result in scenario run-time errors.
</text>
<text top='127' left='49' width='268' height='14'>Are you sure you want to do this?</text>
</dialog>

View File

@@ -13,12 +13,11 @@
<text rel-anchor='prev' relative='abs pos' size='large' top='8' left='8' width='142' height='13'>Item special ability:</text>
<text name='abilname' rel-anchor='prev' relative='pos pos-in' framed='true' top='0' left='11' width='250' height='13'/>
<!-- These fields are called str1 and str2 but I think they can only be for numbers? -->
<text name='str1-title' rel-anchor='prev' relative='abs pos' framed='true' top='8' left='8' width='185' height='16'/>
<field name='str1' type='int' rel-anchor='prev' relative='pos pos-in' top='0' left='7' width='77' height='16'/>
<field name='str1' rel-anchor='prev' relative='pos pos-in' top='0' left='7' width='77' height='16'/>
<button name='str1-choose' rel-anchor='prev' relative='pos pos-in' type='large' top='-4' left='13'>Create/Edit</button>
<text name='str2-title' rel-anchor='prev' relative='abs pos' framed='true' top='3' left='8' width='185' height='16'/>
<field name='str2' type='int' rel-anchor='prev' relative='pos pos-in' top='0' left='7' width='77' height='16'/>
<field name='str2' rel-anchor='prev' relative='pos pos-in' top='0' left='7' width='77' height='16'/>
<button name='str2-choose1' rel-anchor='prev' relative='pos pos-in' type='regular' top='-4' left='13'>Choose</button>
<button name='str2-choose2' rel-anchor='prev' relative='pos pos-in' type='regular' top='0' left='5'>Priest</button>

View File

@@ -29,7 +29,6 @@
<button name='left' type='left' top='334' left='10' def-key='left'/>
<text name='num' top='115' left='211' width=' 46' height='14'/>
<pict type='dlog' num='16' top='8' left='8'/>
<pict name='ter-pic' type='ter' num='0' top='70' left='458'/>
<text size='large' top='6' left='50' width='256' height='20'>Item Placement Shortcuts</text>
<text top='25' left='50' width='439' height='40'>
You can design shortcuts for automatic placement of items in towns.
@@ -39,7 +38,7 @@
<text top='66' left='50' width='439' height='41'>
Enter the terrain type to get the items,
the numbers of the items to place,
and the percentage chance (0-100) that the item is placed there.
and the percentage chance (0-100) that the item is places there.
For more details, see the documentation.
</text>
<text top='115' left='50' width='155' height='14'>Item shortcut number:</text>

View File

@@ -2,18 +2,21 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<field name='full' top='30' left='163' width='226' height='16'/>
<field name="short" top='54' left='163' width='125' height='16'/>
<field name='picnum' type='uint' top='82' left='140' width='52' height='16'/>
<field name='level' type='uint' top='219' left='161' width='52' height='16'/>
<field name='awkward' type='uint' top='243' left='161' width='52' height='16'/>
<field name='bonus' type='uint' top='267' left='161' width='52' height='16'/>
<field name='prot' type='int' top='291' left='161' width='52' height='16'/>
<field name='charges' type='uint' top='315' left='161' width='52' height='16'/>
<field name='flag' type='uint' top='219' left='366' width='52' height='16'/>
<field name='value' type='uint' top='243' left='366' width='52' height='16'/>
<field name='weight' type='uint' top='267' left='366' width='52' height='16'/>
<field name='class' type='uint' top='291' left='366' width='52' height='16'/>
<field name='picnum' top='82' left='140' width='52' height='16'/>
<field name='level' top='219' left='161' width='52' height='16'/>
<field name='awkward' top='243' left='161' width='52' height='16'/>
<field name='bonus' top='267' left='161' width='52' height='16'/>
<field name='prot' top='291' left='161' width='52' height='16'/>
<field name='charges' top='315' left='161' width='52' height='16'/>
<field name='flag' top='219' left='366' width='52' height='16'/>
<field name='value' top='243' left='366' width='52' height='16'/>
<field name='weight' top='267' left='366' width='52' height='16'/>
<field name='class' top='291' left='366' width='52' height='16'/>
<button name='okay' type='regular' top='357' left='509'>OK</button>
<button name='cancel' type='regular' top='357' left='434'>Cancel</button>
<button name='prev' type='left' top='357' left='13'/>
@@ -79,7 +82,7 @@
<pict name='missile-pic' type='missile' num='3' top='243' left='440'/>
<button name='choosemiss' type='regular' top='240' left='521'>Choose</button>
<text name='skill-title' top='270' left='440' width='140' height='16'>Weapon key skill:</text>
<field name='weap-type' type='uint' top='291' left='440' width='73' height='16'/>
<field name='weap-type' top='291' left='440' width='73' height='16'/>
<button name='choosetp' type='regular' top='288' left='521'>Choose</button>
<text top='313' left='221' width='363' height='40'>
Enter properties for this item type.

View File

@@ -18,23 +18,23 @@
<button name='pick-subtype' type='regular' top='161' left='330'>Choose</button>
<text top='192' left='10' width='100' height='16'>Missile:</text>
<field name='missile' type='uint' top='190' left='120' width='50' height='16'/>
<field name='missile' top='190' left='120' width='50' height='16'/>
<text name='missile-touch' framed='true' top='192' left='120' width='50' height='16'>None</text>
<button name='pick-missile' type='regular' top='187' left='180'>Choose</button>
<pict name='missile-pic' type='missile' num='0' top='192' left='253'/>
<text top='220' left='10' width='100' height='16'>Ability Range:</text>
<field name='range' type='uint' top='218' left='120' width='50' height='16'/>
<field name='range' top='218' left='120' width='50' height='16'/>
<text name='range-touch' framed='true' top='220' left='120' width='50' height='16'>Touch</text>
<text top='220' left='180' width='100' height='16'>Chance of Using:</text>
<field name='odds' type='uint' top='218' left='290' width='50' height='16'/>
<field name='odds' top='218' left='290' width='50' height='16'/>
<text top='248' left='10' width='100' height='16'>Ability Strength:</text>
<field name='strength' type='uint' top='246' left='120' width='70' height='16'/>
<field name='strength' top='246' left='120' width='70' height='16'/>
<button name='pick-strength' type='regular' top='245' left='200'>Choose</button>
<text name='extra-title' top='276' left='10' width='100' height='16'>Extra:</text>
<field name='extra' type='int' top='274' left='120' width='70' height='16'/>
<field name='extra' top='274' left='120' width='70' height='16'/>
<button name='pick-extra' type='regular' top='271' left='200'>Choose</button>
<button name='okay' type='regular' top='300' left='330'>OK</button>

View File

@@ -18,14 +18,14 @@
<button name='pick-subtype' type='regular' top='161' left='330'>Choose</button>
<text top='192' left='10' width='100' height='16'>Missile:</text>
<field name='missile' type='uint' top='190' left='120' width='50' height='16'/>
<field name='missile' top='190' left='120' width='50' height='16'/>
<button name='pick-missile' type='regular' top='187' left='180'>Choose</button>
<pict name='missile-pic' type='missile' num='0' top='192' left='253'/>
<text top='220' left='10' width='100' height='16'>Number of Dice:</text>
<field name='dice' type='uint' top='218' left='120' width='50' height='16'/>
<field name='dice' top='218' left='120' width='50' height='16'/>
<text top='220' left='180' width='100' height='16'>Sides per Die:</text>
<field name='sides' type='uint' top='218' left='290' width='50' height='16'/>
<field name='sides' top='218' left='290' width='50' height='16'/>
<text top='248' left='10' width='100' height='16'>Ability Range:</text>
<field name='range' top='246' left='120' width='50' height='16'/>
@@ -33,7 +33,7 @@
<field name='odds' top='246' left='290' width='50' height='16'/>
<text top='276' left='10' width='100' height='16'>Skill Level:</text>
<field name='skill' type='uint' top='274' left='120' width='70' height='16'/>
<field name='skill' top='274' left='120' width='70' height='16'/>
<button name='okay' type='regular' top='300' left='330'>OK</button>
<button name='cancel' type='regular' top='300' left='265'>Cancel</button>

View File

@@ -1,13 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<pict type='dlog' num='7' top='8' left='8'/>
<text name='warning' top='2' left='48' width='248' height='33'>
This ability will be overwritten: <br/>
<br/>
{{abil}}
</text>
<button name='cancel' type='regular' top='42' left='169'>Cancel</button>
<button name='okay' type='regular' top='42' left='238'>OK</button>
</dialog>

View File

@@ -12,14 +12,14 @@
<text name='type' framed='true' top='108' left='120' width='200' height='16'/>
<text top='136' left='10' width='100' height='16'>Field Type:</text>
<field name='field' type='uint' top='134' left='120' width='70' height='16'/>
<field name='field' top='134' left='120' width='70' height='16'/>
<button name='pick-field' type='regular' top='133' left='200'>Choose</button>
<text top='164' left='10' width='120' height='16'>Radiate Chance:</text>
<field name='odds' type='uint' top='162' left='120' width='50' height='16'/>
<field name='odds' top='162' left='120' width='50' height='16'/>
<text top='192' left='10' width='100' height='16'>Area Affected:</text>
<field name='pat' type='uint' top='190' left='120' width='50' height='16'/>
<field name='pat' top='190' left='120' width='50' height='16'/>
<button name='pick-pat' type='regular' top='187' left='180'>Choose</button>
<button name='okay' type='regular' top='216' left='330'>OK</button>

View File

@@ -14,14 +14,14 @@
<text name='ap' framed='true' top='136' left='120' width='200' height='16'/>
<text name='extra1-title' framed='true' top='164' left='10' width='200' height='16'>Extra 1</text>
<field name='extra1' type='uint' top='162' left='220' width='70' height='16'/>
<field name='extra1' top='162' left='220' width='70' height='16'/>
<button name='pick-extra1' type='large' top='161' left='300'>Create/Edit</button>
<text name='extra2-title' framed='true' top='192' left='10' width='200' height='16'>Extra 2</text>
<field name='extra2' type='uint' top='190' left='220' width='70' height='16'/>
<field name='extra2' top='190' left='220' width='70' height='16'/>
<text name='extra3-title' framed='true' top='220' left='10' width='200' height='16'>Extra 3</text>
<field name='extra3' type='uint' top='218' left='220' width='70' height='16'/>
<field name='extra3' top='218' left='220' width='70' height='16'/>
<button name='okay' type='regular' top='244' left='339'>OK</button>
<button name='cancel' type='regular' top='244' left='274'>Cancel</button>

View File

@@ -20,14 +20,14 @@
<button name='pick-summon' type='regular' top='161' left='330'>Choose</button>
<text top='192' left='10' width='100' height='16'>Minimum number:</text>
<field name='min' type='uint' top='190' left='120' width='50' height='16'/>
<field name='min' top='190' left='120' width='50' height='16'/>
<text top='192' left='180' width='100' height='16'>Maximum number:</text>
<field name='max' type='uint' top='190' left='290' width='50' height='16'/>
<field name='max' top='190' left='290' width='50' height='16'/>
<text top='220' left='10' width='100' height='16'>Summon duration:</text>
<field name='len' type='uint' top='218' left='120' width='50' height='16'/>
<field name='len' top='218' left='120' width='50' height='16'/>
<text top='220' left='180' width='100' height='16'>Chance of Using:</text>
<field name='odds' type='uint' top='218' left='290' width='50' height='16'/>
<field name='odds' top='218' left='290' width='50' height='16'/>
<button name='okay' type='regular' top='244' left='330'>OK</button>
<button name='cancel' type='regular' top='244' left='265'>Cancel</button>

View File

@@ -2,14 +2,30 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<pict name='icon' type='monst' num='0' top='8' left='8'/>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<field name='loot-item' top='178' left='194' width='64' height='16'/>
<field name='loot-chance' top='178' left='464' width='64' height='16'/>
<text top='216' left='120' width='40' height='16'>Magic:</text>
<field name='magic-res' top='215' left='167' width='80' height='16'/>
<text top='246' left='120' width='40' height='16'>Fire:</text>
<field name='fire-res' top='245' left='167' width='80' height='16'/>
<text top='216' left='273' width='40' height='16'>Cold:</text>
<field name='cold-res' top='215' left='320' width='80' height='16'/>
<text top='246' left='273' width='40' height='16'>Poison:</text>
<field name='poison-res' top='245' left='320' width='80' height='16'/>
<led name='mindless' top='215' left='415'>Mindless</led>
<led name='amorph' top='230' left='415'>Amorphous</led>
<led name='invuln' top='245' left='415'>Invulnerable</led>
<pict type='dlog' num='16' top='8' left='8'/>
<text size='large' top='6' left='50' width='158' height='16'>Edit Monster Abilities</text>
<text name='info' framed='true' top='6' left='222' width='170' height='14'>Monster {{num}}: {{name}}</text>
<text framed='true' top='6' left='222' width='111' height='14'>Monster number:</text>
<text name='num' framed='true' top='8' left='340' width='37' height='14'/>
<text top='2' left='408' width='184' height='54'>
Enter properties for this monster type. For a detailed
description of the fields, see the documentation.
</text>
<text size='large' top='54' left='7' width='110' height='14'>Special abilities:</text>
<stack name='abils'>
<text name='abil-name1' framed='true' top='54' left='124' width='183' height='14'/>
@@ -23,7 +39,13 @@
</stack>
<button name='abil-up' type='up' top='82' left='30'/>
<button name='abil-down' type='down' top='107' left='30'/>
<text size='large' top='160' left='7' width='158' height='16'>Special treasure:</text>
<text top='179' left='23' width='162' height='14'>Item to drop when killed:</text>
<text top='179' left='270' width='186' height='14'>Chance of dropping: (0-100)</text>
<text top='211' left='9' width='108' height='112'>Monster resistances:<br/><br/>
This is the % of full damage the monster takes when of this type.<br/>
e.g. 0 - no damage, 100 - normal, 200 - double
</text>
<text top='81' left='420' width='94' height='14'>Summon type:</text>
<group name='summon'>
<led name='s0' state='off' top='85' left='505'>Weak (no summon)</led>
@@ -32,47 +54,18 @@
<led name='s3' state='off' top='130' left='505'>Type 3</led>
<led name='s4' state='off' top='145' left='505'>Unique (no summon)</led>
</group>
<text size='large' top='160' left='7' width='158' height='16'>Special treasure:</text>
<text top='179' left='23' width='162' height='14'>Item to drop when killed:</text>
<field name='loot-item' top='178' left='164' width='64' height='16' type='uint'/>
<button name='pick-item' type='regular' top='175' left='238'>Choose</button>
<text top='179' left='320' width='186' height='14'>Chance of dropping: (0-100)</text>
<field name='loot-chance' top='178' left='484' width='64' height='16' type='uint'/>
<text top='211' left='9' width='108' height='112'>Monster resistances:<br/><br/>
This is the % of full damage the monster takes when of this type.<br/>
e.g. 0 - no damage, 100 - normal, 200 - double
</text>
<text top='216' left='120' width='40' height='16'>Magic:</text>
<field name='magic-res' top='215' left='167' width='80' height='16' type='uint' />
<text top='246' left='120' width='40' height='16'>Fire:</text>
<field name='fire-res' top='245' left='167' width='80' height='16' type='uint' />
<text top='216' left='273' width='40' height='16'>Cold:</text>
<field name='cold-res' top='215' left='320' width='80' height='16' type='uint' />
<text top='246' left='273' width='40' height='16'>Poison:</text>
<field name='poison-res' top='245' left='320' width='80' height='16' type='uint' />
<led name='mindless' top='215' left='415'>Mindless</led>
<led name='amorph' top='230' left='415'>Amorphous</led>
<led name='invuln' top='245' left='415'>Invulnerable</led>
<led name='invis' size='small' top='280' left='120'>
This monster is naturally and permanently invisible.
</led>
<led name='guard' size='small' top='296' left='120'>
This monster is a guard - when the town goes hostile, it will hunt the party down.
</led>
<text top='331' left='10' width='250' height='16'>Special node to call when monster first seen</text>
<field name='onsee' top='330' left='270' width='50' height='16' type='uint' />
<field name='onsee' top='330' left='270' width='50' height='16'/>
<button name='edit-see' type='large' top='327' left='330'>Create/Edit</button>
<text top='361' left='10' width='250' height='16'>Monster vocalization sound</text>
<field name='snd' top='360' left='270' width='50' height='16' type='uint' />
<field name='snd' top='360' left='270' width='50' height='16'/>
<button name='pick-snd' type='regular' top='357' left='330'>Choose</button>
<button name='okay' type='regular' top='385' left='572'>OK</button>
<button name='cancel' type='regular' top='385' left='506'>Cancel</button>
</dialog>

View File

@@ -2,6 +2,9 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<pict name='icon' type='monst' num='0' top='8' left='8'/>
<text size='large' top='6' left='44' width='158' height='16'>Edit Monster Statistics</text>
@@ -12,31 +15,31 @@
<field name='name' top='30' left='180' width='186' height='16'/>
<text top='58' left='8' width='120' height='14'>Monster picture:</text>
<field name='pic' type='uint' top='57' left='140' width='52' height='16'/>
<field name='pic' top='57' left='140' width='52' height='16'/>
<button name='pickicon' type='large' top='53' left='201'>Select Icon</button>
<text name='w' top='59' left='334' width='86' height='14'>Width = </text>
<text name='h' top='59' left='426' width='86' height='14'>Height = </text>
<text top='83' left='8' width='179' height='14'>Monster level: (0 - 40)</text>
<field name='level' type='uint' top='82' left='206' width='52' height='16'/>
<field name='level' top='82' left='206' width='52' height='16'/>
<text top='107' left='8' width='179' height='14'>Monster health: (0 - 2500)</text>
<field name='health' type='uint' top='106' left='206' width='52' height='16'/>
<field name='health' top='106' left='206' width='52' height='16'/>
<text top='131' left='8' width='179' height='14'>Monster armor: (0 - 50)</text>
<field name='armor' type='uint' top='130' left='206' width='52' height='16'/>
<field name='armor' top='130' left='206' width='52' height='16'/>
<text top='155' left='8' width='179' height='14'>Monster skill: (0 - 40)</text>
<field name='skill' type='uint' top='154' left='206' width='52' height='16'/>
<field name='skill' top='154' left='206' width='52' height='16'/>
<text top='179' left='8' width='179' height='14'>Monster speed: (1-12)</text>
<field name='speed' type='uint' top='178' left='206' width='52' height='16'/>
<field name='speed' top='178' left='206' width='52' height='16'/>
<text top='203' left='8' width='179' height='14'>Monster magic spells: (0 - 7)</text>
<field name='mage' type='uint' top='202' left='206' width='51' height='16'/>
<field name='mage' top='202' left='206' width='51' height='16'/>
<text top='227' left='8' width='179' height='14'>Monster priest spells: (0 - 7)</text>
<field name='priest' type='uint' top='226' left='206' width='51' height='16'/>
<field name='priest' top='226' left='206' width='51' height='16'/>
<text size='large' top='82' left='273' width='158' height='16'>Hand to hand combat:</text>
<text top='102' left='343' width='72' height='40'>Number of dice:<br/>(0 - 20)</text>
@@ -44,20 +47,20 @@
<text top='128' left='470' width='56' height='14'>Type</text>
<text top='150' left='283' width='50' height='14'>Attack 1:</text>
<field name='dice1' type='uint' top='149' left='350' width='52' height='16'/>
<field name='sides1' type='uint' top='149' left='410' width='52' height='16'/>
<field name='dice1' top='149' left='350' width='52' height='16'/>
<field name='sides1' top='149' left='410' width='52' height='16'/>
<text name='type1' top='150' left='470' width='120' height='14'/>
<button name='picktype1' type='regular' top='146' left='525'>Choose</button>
<text top='174' left='283' width='50' height='14'>Attack 2:</text>
<field name='dice2' type='uint' top='173' left='350' width='52' height='16'/>
<field name='sides2' type='uint' top='173' left='410' width='52' height='16'/>
<field name='dice2' top='173' left='350' width='52' height='16'/>
<field name='sides2' top='173' left='410' width='52' height='16'/>
<text name='type2' top='174' left='470' width='120' height='14'/>
<button name='picktype2' type='regular' top='170' left='525'>Choose</button>
<text top='198' left='283' width='50' height='14'>Attack 3:</text>
<field name='dice3' type='uint' top='197' left='350' width='52' height='16'/>
<field name='sides3' type='uint' top='197' left='410' width='52' height='16'/>
<field name='dice3' top='197' left='350' width='52' height='16'/>
<field name='sides3' top='197' left='410' width='52' height='16'/>
<text name='type3' top='198' left='470' width='120' height='14'/>
<button name='picktype3' type='regular' top='194' left='525'>Choose</button>
@@ -66,12 +69,12 @@
<button name='picktype' type='regular' top='250' left='264'>Choose</button>
<text top='278' left='8' width='120' height='14'>Default talking picture:</text>
<field name='talk' type='uint' top='276' left='138' width='77' height='16'/>
<field name='talk' top='276' left='138' width='77' height='16'/>
<pict name='talkpic' type='talk' num='0' top='276' left='226'/>
<button name='picktalk' type='regular' top='275' left='264'>Choose</button>
<text top='250' left='343' width='162' height='14'>Monster treasure: (0-4)</text>
<field name='treas' type='uint' top='248' left='513' width='55' height='16'/>
<field name='treas' top='248' left='513' width='55' height='16'/>
<text top='275' left='343' width='302' height='14'>Default attitude:<br/>
(attitude creature has when you place it)

View File

@@ -18,16 +18,16 @@
<led name='snd4' top='85' left='350'>Custom</led>
</group>
<text top='106' left='50' width='190' height='16'>Background: (-1 = scenario default)</text>
<field name='bg-out' type='int' top='104' left='250' width='80' height='16'/>
<field name='bg-out' top='104' left='250' width='80' height='16'/>
<button name='pick-out' type='regular' top='101' left='340'>Choose</button>
<text top='130' left='50' width='190' height='16'>Combat Background:</text>
<field name='bg-fight' type='int' top='128' left='250' width='80' height='16'/>
<field name='bg-fight' top='128' left='250' width='80' height='16'/>
<button name='pick-fight' type='regular' top='125' left='340'>Choose</button>
<text top='154' left='50' width='190' height='16'>Default Town Background:</text>
<field name='bg-town' type='int' top='152' left='250' width='80' height='16'/>
<field name='bg-town' top='152' left='250' width='80' height='16'/>
<button name='pick-town' type='regular' top='149' left='340'>Choose</button>
<text top='178' left='50' width='190' height='16'>Default Dungeon Background:</text>
<field name='bg-dungeon' type='int' top='176' left='250' width='80' height='16'/>
<field name='bg-dungeon' top='176' left='250' width='80' height='16'/>
<button name='pick-dungeon' type='regular' top='173' left='340'>Choose</button>
<text top='204' left='50' width='101' height='90'>Comment:<br/><br/>
You can put useful notes for yourself here. It's not used by the game for anything.

View File

@@ -2,11 +2,12 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<field name='onmeet' type='int' top='189' left='361' width='46' height='16'/>
<!-- OK button -->
<field name='onmeet' top='189' left='361' width='46' height='16'/>
<field name='onwin' top='231' left='361' width='46' height='16'/>
<field name='onflee' type='int' top='275' left='361' width='46' height='16'/>
<field name='endy' type='int' top='309' left='460' width='39' height='16'/>
<field name='endx' type='int' top='309' left='508' width='39' height='16'/>
<field name='onflee' top='275' left='361' width='46' height='16'/>
<field name='endy' top='309' left='460' width='39' height='16'/>
<field name='endx' top='309' left='508' width='39' height='16'/>
<text name='foe1' framed='true' top='135' left='129' width='145' height='14'/>
<text name='foe2' framed='true' top='159' left='129' width='145' height='14'/>
<text name='foe3' framed='true' top='183' left='129' width='145' height='14'/>
@@ -17,6 +18,10 @@
<text name='ally1' framed='true' top='303' left='129' width='145' height='14'/>
<text name='ally2' framed='true' top='327' left='129' width='145' height='14'/>
<text name='ally3' framed='true' top='351' left='129' width='145' height='14'/>
<button name='okay' type='regular' top='370' left='489'>OK</button>
<button name='cancel' type='regular' top='370' left='423'>Cancel</button>
<button name='left' type='left' def-key='left' top='370' left='11'/>
<button name='right' type='right' def-key='right' top='370' left='74'/>
<button name='choose-foe1' type='regular' top='130' left='280'>Choose</button>
<button name='choose-foe2' type='regular' top='154' left='280'>Choose</button>
<button name='choose-foe3' type='regular' top='178' left='280'>Choose</button>
@@ -64,23 +69,4 @@
<text top='213' left='352' width='194' height='14'>Special called when party wins</text>
<text top='256' left='352' width='194' height='14'>Special called if party flees</text>
<text top='299' left='352' width='103' height='33'>Stuff done flag to eliminate encounter</text>
<text name='loc-label' size='large' top='380' left='11' width='113' height='14'>Locations</text>
<text name='loc-label2' top='394' left='11' width='113' height='14'>(Any group can appear at any location.)</text>
<text name='loc1' framed='true' top='380' left='129' width='55' height='14'/>
<button name='choose-loc1' type='tiny' relative='pos abs' rel-anchor='prev' top='381' left='7'/>
<text name='loc2' framed='true' relative='pos abs' rel-anchor='prev' top='380' left='10' width='55' height='14'/>
<button name='choose-loc2' type='tiny' relative='pos abs' rel-anchor='prev' top='381' left='7'/>
<text name='loc3' framed='true' relative='pos abs' rel-anchor='prev' top='380' left='10' width='55' height='14'/>
<button name='choose-loc3' type='tiny' relative='pos abs' rel-anchor='prev' top='381' left='7'/>
<text name='loc4' framed='true' top='380' relative='pos abs' rel-anchor='prev' left='10' width='55' height='14'/>
<button name='choose-loc4' type='tiny' relative='pos abs' rel-anchor='prev' top='381' left='7'/>
<button name='left' type='left' def-key='left' top='412' left='11'/>
<button name='right' type='right' def-key='right' top='412' left='74'/>
<!-- OK button -->
<button name='okay' type='regular' top='412' left='489'>OK</button>
<button name='cancel' type='regular' top='412' left='423'>Cancel</button>
</dialog>

View File

@@ -2,11 +2,14 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<!-- OK button -->
<field name='title' top='42' left='174' width='189' height='16'/>
<field name='dunno' top='66' left='254' width='246' height='43'/>
<field name='look' top='123' left='73' width='427' height='68'/>
<field name='name' top='215' left='73' width='427' height='67'/>
<field name='job' top='308' left='73' width='427' height='67'/>
<button name='okay' type='regular' top='381' left='441'>OK</button>
<button name='cancel' type='regular' top='381' left='375'>Cancel</button>
<button name='left' type='left' top='381' left='47'/>
<button name='right' type='right' top='381' left='110'/>
<pict type='dlog' num='16' top='8' left='8'/>
@@ -18,8 +21,4 @@
<text top='103' left='50' width='160' height='14'>Response to 'look'</text>
<text top='196' left='50' width='165' height='14'>Response to 'name'</text>
<text top='288' left='52' width='170' height='14'>Response to 'job'</text>
<!-- OK button -->
<button name='okay' type='regular' top='381' left='441'>OK</button>
<button name='cancel' type='regular' top='381' left='375'>Cancel</button>
</dialog>

View File

@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<dialog defbtn='okay'>
<!-- OK button -->
<button name='okay' type='regular' top='195' left='316'>OK</button>
<pict name='pic' type='dlog' num='16' top='8' left='12'/>
@@ -11,9 +11,9 @@
Charges:<br/>
(-1 = default)
</text>
<field name='charges' type='int' top='73' left='135' width='52' height='16'/>
<field name='charges' top='73' left='135' width='52' height='16'/>
<text name='abil-lbl' top='101' left='50' width='80' height='16'>Ability:</text>
<field name='abil' type='int' top='101' left='135' width='52' height='16'/>
<field name='abil' top='101' left='135' width='52' height='16'/>
<button name='abil-choose' type='regular' top='98' left='200'>Choose</button>
<text top='120' left='50' width='80' height='14'>Special Flags:</text>
<led name='always' font='bold' top='138' left='84' height='14'>Always here</led>
@@ -26,6 +26,5 @@
<button name='del' type='regular' top='195' left='8'>Delete</button>
<button name='cancel' type='regular' top='195' left='248'>Cancel</button>
<text top='28' left='196' width='70' height='14'>Location:</text>
<text name='loc' top='28' left='257' width='90' height='14'/>
<button name='pick-loc' type='regular' relative='pos neg' rel-anchor='prev' top='4' left='5'>Move</button>
<text name='loc' top='28' left='272' width='116' height='14'/>
</dialog>

View File

@@ -11,21 +11,21 @@
<field name='name' top='57' left='205' width='252' height='16'/>
<field name='descr' top='84' left='205' width='252' height='104'/>
<text top='209' left='50' width='170' height='28'>Must be completed by day:<br/>(-1 for no deadline)</text>
<field name='chop' type='int' top='208' left='205' width='110' height='16'/>
<field name='chop' top='208' left='205' width='110' height='16'/>
<text top='247' left='50' width='170' height='28'>Event to waive deadline:<br/>(-1 for none)</text>
<field name='evt' type='int' top='246' left='205' width='60' height='16'/>
<field name='evt' top='246' left='205' width='60' height='16'/>
<button name='choose-evt' type='regular' anchor='evt' relative='pos pos-in' top='-4' left='8'>Choose</button>
<text size='large' top='280' left='50' width='220' height='17'>Reward for completing:</text>
<text top='307' left='50' width='150' height='16'>Experience Points:</text>
<field name='xp' type='uint' top='306' left='205' width='110' height='16'/>
<field name='xp' top='306' left='205' width='110' height='16'/>
<text top='333' left='50' width='150' height='16'>Gold:</text>
<field name='gold' type='uint' top='332' left='205' width='110' height='16'/>
<field name='gold' top='332' left='205' width='110' height='16'/>
<led name='rel' wrap='true' top='208' left='345'>Deadline is relative to start day</led>
<led name='start' wrap='true' top='246' left='345'>Player is given quest when scenario starts</led>
<led name='inbank' top='285' left='345'>Include in a job bank:</led>
<field name='bank1' type='int' top='306' left='359' width='110' height='16'/>
<field name='bank1' top='306' left='359' width='110' height='16'/>
<button name='choose-bank1' type='regular' anchor='bank1' relative='pos pos-in' top='-4' left='8'>Choose</button>
<field name='bank2' type='int' top='332' left='359' width='110' height='16'/>
<field name='bank2' top='332' left='359' width='110' height='16'/>
<button name='choose-bank2' type='regular' anchor='bank2' relative='pos pos-in' top='-4' left='8'>Choose</button>
<button name='left' type='left' def-key='left' top='358' left='50'/>
<button name='right' type='right' def-key='right' top='358' left='115'/>

View File

@@ -12,7 +12,7 @@
<led name='adjust' top='56' left='50' size='small'>Adjust difficulty if played by a party stronger than recommended</led>
<text top='79' left='50' width='120' height='14'>Special on Start:</text>
<field name='oninit' type='int' top='78' left='181' width='100' height='16'/>
<field name='oninit' top='78' left='181' width='100' height='16'/>
<button name='pickinit' type='large' top='74' left='290'>Create/Edit</button>
<text top='107' left='50' width='120' height='14'>Campaign ID:</text>

View File

@@ -3,26 +3,26 @@
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<stack name='list' pages='2'>
<field name='time1' type='uint' top='133' left='130' width='67' height='16'/>
<field name='time2' type='uint' top='161' left='130' width='67' height='16'/>
<field name='time3' type='uint' top='189' left='130' width='67' height='16'/>
<field name='time4' type='uint' top='217' left='130' width='67' height='16'/>
<field name='time5' type='uint' top='245' left='130' width='67' height='16'/>
<field name='time6' type='uint' top='273' left='130' width='67' height='16'/>
<field name='time7' type='uint' top='301' left='130' width='67' height='16'/>
<field name='time8' type='uint' top='329' left='130' width='67' height='16'/>
<field name='time9' type='uint' top='357' left='130' width='67' height='16'/>
<field name='time10' type='uint' top='385' left='130' width='67' height='16'/>
<field name='node1' type='int' top='133' left='270' width='39' height='16'/>
<field name='node2' type='int' top='161' left='270' width='39' height='16'/>
<field name='node3' type='int' top='189' left='270' width='39' height='16'/>
<field name='node4' type='int' top='217' left='270' width='39' height='16'/>
<field name='node5' type='int' top='245' left='270' width='39' height='16'/>
<field name='node6' type='int' top='273' left='270' width='39' height='16'/>
<field name='node7' type='int' top='301' left='270' width='39' height='16'/>
<field name='node8' type='int' top='329' left='270' width='39' height='16'/>
<field name='node9' type='int' top='357' left='270' width='39' height='16'/>
<field name='node10' type='int' top='385' left='270' width='39' height='16'/>
<field name='time1' top='133' left='130' width='67' height='16'/>
<field name='time2' top='161' left='130' width='67' height='16'/>
<field name='time3' top='189' left='130' width='67' height='16'/>
<field name='time4' top='217' left='130' width='67' height='16'/>
<field name='time5' top='245' left='130' width='67' height='16'/>
<field name='time6' top='273' left='130' width='67' height='16'/>
<field name='time7' top='301' left='130' width='67' height='16'/>
<field name='time8' top='329' left='130' width='67' height='16'/>
<field name='time9' top='357' left='130' width='67' height='16'/>
<field name='time10' top='385' left='130' width='67' height='16'/>
<field name='node1' top='133' left='270' width='39' height='16'/>
<field name='node2' top='161' left='270' width='39' height='16'/>
<field name='node3' top='189' left='270' width='39' height='16'/>
<field name='node4' top='217' left='270' width='39' height='16'/>
<field name='node5' top='245' left='270' width='39' height='16'/>
<field name='node6' top='273' left='270' width='39' height='16'/>
<field name='node7' top='301' left='270' width='39' height='16'/>
<field name='node8' top='329' left='270' width='39' height='16'/>
<field name='node9' top='357' left='270' width='39' height='16'/>
<field name='node10' top='385' left='270' width='39' height='16'/>
</stack>
<button name='edit1' type='large' top='131' left='324'>Create/Edit</button>
<button name='edit2' type='large' top='159' left='324'>Create/Edit</button>

View File

@@ -7,7 +7,7 @@
<text top='50' left='10' width='100' height='16'>Name:</text>
<field name='name' top='48' left='110' width='200' height='16'/>
<text top='75' left='10' width='100' height='16'>Special Node:</text>
<field name='node' type='int' top='74' left='110' width='80' height='16'/>
<field name='node' top='74' left='110' width='80' height='16'/>
<button name='edit' type='large' top='71' left='200'>Create/Edit</button>
<text top='100' left='10' width='100' height='16'>Quantity:</text>
<field name='amount' type='uint' top='98' left='110' width='80' height='16'/>

View File

@@ -2,16 +2,13 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<field name='num' type='uint' top='64' left='209' width='75' height='16'/>
<pict type='dlog' num='16' top='8' left='8'/>
<button name='okay' type='regular' top='87' left='311'>OK</button>
<text size='large' top='6' left='50' width='256' height='17'>Set Special Number:</text>
<text name='prompt' top='25' left='50' width='323' height='27'>
Which special node should be called when this space is entered/examined? (0-{{max-num}} for existing, {{next-num}} for new.)
<text top='25' left='50' width='323' height='27'>
Which special node should be called when this space is entered/examined?
</text>
<text top='64' left='120' width='84' height='16'>Special node:</text>
<field name='num' type='uint' top='64' left='209' width='75' height='16'/>
<!--TODO add a picker-->
<button name='cancel' type='regular' top='87' left='5'>Cancel</button>
<button name='edit' type='large' top='87' left='180'>Create/Edit</button>
<button name='okay' type='regular' top='87' left='286'>OK</button>
<button name='cancel' type='regular' top='87' left='246'>Cancel</button>
</dialog>

View File

@@ -2,6 +2,9 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<pict type='dlog' num='16' top='8' left='8'/>
<text name='title' size='large' top='6' left='50' width='158' height='16'>Edit Special Node</text>
<text top='8' left='222' width='90' height='14'>Node number:</text>
@@ -27,80 +30,80 @@
<text size='large' top='102' left='8' width='158' height='16'>Stuff Done Flags:</text>
<text name='sdf1-lbl' framed='true' top='121' left='22' width='220' height='15'/>
<field name='sdf1' type='int' top='120' left='254' width='51' height='16'/>
<field name='sdf1' top='120' left='254' width='51' height='16'/>
<button name='sdf1-edit' type='tiny' top='106' left='272'/>
<led name='sdf1-toggle' top='106' left='272'/>
<text name='sdf2-lbl' framed='true' top='121' left='317' width='176' height='16'/>
<field name='sdf2' type='int' top='120' left='510' width='51' height='16'/>
<field name='sdf2' top='120' left='510' width='51' height='16'/>
<button name='sdf2-edit' type='tiny' top='106' left='528'/>
<led name='sdf2-toggle' top='106' left='528'/>
<text size='large' top='141' left='8' width='176' height='16'>Message, Pict:</text>
<text name='msg1-lbl' framed='true' top='164' left='22' width='238' height='15'/>
<field name='msg1' type='int' top='163' left='270' width='51' height='16'/>
<field name='msg1' top='163' left='270' width='51' height='16'/>
<button name='msg1-edit' type='large' top='161' left='329'>Create/Edit</button>
<led name='msg1-toggle' top='167' left='329'/>
<text name='msg2-lbl' framed='true' top='188' left='22' width='238' height='15'/>
<field name='msg2' type='int' top='187' left='270' width='51' height='16'/>
<field name='msg2' top='187' left='270' width='51' height='16'/>
<button name='msg2-edit' type='large' top='185' left='329'>Create/Edit</button>
<led name='msg2-toggle' top='191' left='329'/>
<text name='msg3-lbl' framed='true' top='212' left='22' width='238' height='15'/>
<field name='msg3' type='int' top='211' left='270' width='51' height='16'/>
<field name='msg3' top='211' left='270' width='51' height='16'/>
<button name='msg3-edit' type='large' top='209' left='329'>Create/Edit</button>
<led name='msg3-toggle' top='215' left='329'/>
<text name='pict-lbl' framed='true' top='236' left='22' width='238' height='15'/>
<field name='pict' type='int' top='235' left='270' width='51' height='16'/>
<field name='pict' top='235' left='270' width='51' height='16'/>
<button name='pict-edit' type='large' top='233' left='329'>Choose</button>
<led name='pict-toggle' top='239' left='329'/>
<text name='pictype-lbl' framed='true' top='260' left='22' width='238' height='15'/>
<field name='pictype' type='int' top='259' left='270' width='51' height='16'/>
<field name='pictype' top='259' left='270' width='51' height='16'/>
<button name='pictype-edit' type='large' top='257' left='329'>Choose</button>
<led name='pictype-toggle' top='263' left='329'/>
<text size='large' top='281' left='8' width='158' height='16'>Extra 1:</text>
<text name='x1a-lbl' framed='true' top='302' left='22' width='238' height='15'/>
<field name='x1a' type='int' top='301' left='270' width='51' height='16'/>
<field name='x1a' top='301' left='270' width='51' height='16'/>
<button name='x1a-edit' type='large' top='298' left='330'>Choose</button>
<led name='x1a-toggle' top='304' left='330'/>
<text name='x1b-lbl' framed='true' top='326' left='22' width='238' height='15'/>
<field name='x1b' type='int' top='325' left='270' width='51' height='16'/>
<field name='x1b' top='325' left='270' width='51' height='16'/>
<button name='x1b-edit' type='large' top='322' left='330'>Create/Edit</button>
<led name='x1b-toggle' top='328' left='330'/>
<text name='x1c-lbl' framed='true' top='350' left='22' width='238' height='15'/>
<field name='x1c' type='int' top='349' left='270' width='51' height='16'/>
<field name='x1c' top='349' left='270' width='51' height='16'/>
<button name='x1c-edit' type='large' top='346' left='330'>Create/Edit</button>
<led name='x1c-toggle' top='352' left='330'/>
<text size='large' top='372' left='8' width='158' height='16'>Extra 2:</text>
<text name='x2a-lbl' framed='true' top='394' left='22' width='238' height='15'/>
<field name='x2a' type='int' top='394' left='270' width='51' height='16'/>
<field name='x2a' top='394' left='270' width='51' height='16'/>
<button name='x2a-edit' type='large' top='391' left='330'>Choose</button>
<led name='x2a-toggle' top='397' left='330'/>
<text name='x2b-lbl' framed='true' top='419' left='22' width='238' height='15'/>
<field name='x2b' type='int' top='418' left='270' width='51' height='16'/>
<field name='x2b' top='418' left='270' width='51' height='16'/>
<button name='x2b-edit' type='large' top='416' left='330'>Create/Edit</button>
<led name='x2b-toggle' top='422' left='330'/>
<text name='x2c-lbl' framed='true' top='443' left='22' width='238' height='15'/>
<field name='x2c' type='int' top='442' left='270' width='51' height='16'/>
<field name='x2c' top='442' left='270' width='51' height='16'/>
<button name='x2c-edit' type='large' top='440' left='330'>Create/Edit</button>
<led name='x2c-toggle' top='446' left='330'/>
<text size='large' top='471' left='8' width='87' height='16'>Jump To:</text>
<text name='jump-lbl' framed='true' top='472' left='99' width='182' height='14'/>
<field name='jump' type='int' top='471' left='291' width='52' height='15'/>
<field name='jump' top='471' left='291' width='52' height='15'/>
<button name='jump-edit' type='large' top='468' left='349'>Create/Edit</button>
<led name='jump-toggle' top='474' left='349'/>

View File

@@ -2,18 +2,20 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<field name='who' type='int' top='26' left='186' width='64' height='16'/>
<!-- OK button -->
<field name='who' top='26' left='186' width='64' height='16'/>
<field name='key1' top='54' left='165' width='52' height='16' max-chars='4'/>
<field name='key2' top='54' left='285' width='52' height='16' max-chars='4'/>
<text top='6' left='350' width='160' height='48'>The in-game "Buy" button checks for these response keys, in order: purc, sale, heal, iden, trai, ench</text>
<text relative='pos-in pos' rel-anchor='prev' top='0' left='0' width='160' height='50'>The "Sell" button checks for sell.</text>
<field name='extra1' type='int' top='114' left='344' width='64' height='16'/>
<field name='extra2' type='int' top='137' left='344' width='64' height='16'/>
<field name='extra3' type='int' top='160' left='344' width='64' height='16'/>
<field name='extra4' type='int' top='183' left='344' width='64' height='16'/>
<field name='extra1' top='114' left='344' width='64' height='16'/>
<field name='extra2' top='137' left='344' width='64' height='16'/>
<field name='extra3' top='160' left='344' width='64' height='16'/>
<field name='extra4' top='183' left='344' width='64' height='16'/>
<field name='str1' top='223' left='72' width='430' height='80'/>
<field name='str2' top='328' left='72' width='434' height='80'/>
<button name='okay' type='regular' top='415' left='445'>OK</button>
<button name='cancel' type='regular' top='415' left='380'>Cancel</button>
<button name='back' type='large' top='415' left='49'>Go Back</button>
<button name='new' type='large' top='415' left='155'>Create New</button>
<text name='type' framed='true' top='79' left='135' width='160' height='14'/>
@@ -42,8 +44,4 @@
<button name='chooseC' type='regular' top='158' left='414'>Choose</button>
<button name='chooseB' type='regular' top='135' left='414'>Choose</button>
<button name='chooseA' type='regular' top='112' left='414'>Choose</button>
<!-- OK button -->
<button name='okay' type='regular' top='415' left='445'>OK</button>
<button name='cancel' type='regular' top='415' left='380'>Cancel</button>
</dialog>

View File

@@ -2,6 +2,9 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='done' escbtn='cancel'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<pict name='graphic' type='ter' num='0' top='8' left='8'/>
<text size='large' top='6' left='50' height='17' width='138'>Edit Terrain Type</text>
@@ -17,12 +20,12 @@
<field name='name' top='30' left='186' height='16' width='186'/>
<text top='63' left='9' height='14' width='120'>Terrain picture:</text>
<field name='pict' type='uint' top='62' left='141' height='16' width='52' />
<field name='pict' top='62' left='141' height='16' width='52' />
<button name='pickpict' type='large' top='59' left='205'>Pick Picture</button>
<button name='pickanim' type='large' top='59' left='319'>Animated</button>
<text top='63' left='430' width='60' height='14'>Map icon:</text>
<field name='map' type='uint' top='62' left='495' width='80' height='16'/>
<field name='map' top='62' left='495' width='80' height='16'/>
<pict name='seemap' top='86' left='465' type='map' num='0'/>
<button name='pickmap' type='regular' top='86' left='495'>Choose</button>
<text top='115' left='431' height='32' width='157'>(Enter -1 to scale down the large picture)</text>
@@ -52,19 +55,19 @@
</group>
<text top='194' left='8' height='14' width='91'>Shortcut key:</text>
<field name='key' top='193' left='109' height='16' width='52' max-chars='1' />
<field name='key' top='193' left='109' height='16' width='52' />
<text top='194' left='171' height='14' width='91'>Light radius:</text>
<field name='light' type='uint' top='193' left='271' height='16' width='52' />
<field name='light' top='193' left='271' height='16' width='52' />
<text top='193' left='333' height='14' width='128'>Transform to what?</text>
<field name='trans' type='uint' top='193' left='467' height='16' width='52' />
<field name='trans' top='193' left='467' height='16' width='52' />
<button name='picktrans' top='190' left='530' type='regular'>Choose</button>
<text top='217' left='8' height='14' width='91'>Ground type:</text>
<field name='ground' type='uint' top='216' left='109' height='16' width='52' />
<field name='ground' top='216' left='109' height='16' width='52' />
<text top='217' left='171' height='14' width='91'>Trim terrain:</text>
<field name='trimter' type='int' top='216' left='271' height='16' width='52' />
<field name='trimter' top='216' left='271' height='16' width='52' />
<text top='217' left='333' height='14' width='128'>Trim type:</text>
<field name='trim' type='uint' top='216' left='467' height='16' width='52' />
<field name='trim' top='216' left='467' height='16' width='52' />
<button name='picktrim' top='213' left='530' type='regular'>Choose</button>
<text size='large' top='238' left='8' height='14' width='175'>Special properties:</text>
@@ -96,21 +99,21 @@
</group>
<text top='254' left='467' height='14' width='100'>Combat Arena:</text>
<field name='arena' type='uint' top='275' left='467' height='16' width='64'/>
<field name='arena' top='275' left='467' height='16' width='64'/>
<button name='pickarena' type='regular' top='299' left='467'>Choose</button>
<button name='picktown' type='regular' top='299' left='532'>Custom</button>
<button name='object' top='344' left='467' type='large'>Object Detail</button>
<text top='385' left='9' height='14' width='91'>Extra values:</text>
<text name='flag1text' framed='true' top='385' left='109' height='14' width='209'>*flag1</text>
<field name='flag1' type='int' top='384' left='329' height='16' width='64' />
<field name='flag1' top='384' left='329' height='16' width='64' />
<button name='pickflag1' top='381' left='404' type='regular'>Choose</button>
<button name='editspec' top='381' left='404' type='large'>Create/Edit</button>
<text name='flag2text' framed='true' top='410' left='109' height='14' width='209'>*flag2</text>
<field name='flag2' type='int' top='409' left='329' height='16' width='64' />
<field name='flag2' top='409' left='329' height='16' width='64' />
<button name='pickflag2' top='406' left='404' type='regular'>Choose</button>
<text name='flag3text' framed='true' top='435' left='109' height='14' width='209'>*flag3</text>
<field name='flag3' type='int' top='434' left='329' height='16' width='64' />
<field name='flag3' top='434' left='329' height='16' width='64' />
<button name='pickflag3' top='431' left='404' type='regular'>Choose</button>
<button name='done' type='regular' top='455' left='517'>OK</button>

View File

@@ -12,23 +12,23 @@
<text name='exit-specials' relative='pos-in pos' rel-anchor='prev' top='0' left='-2' width='302' height='64' framed='true'/>
<text relative='pos-in' anchor='exit-specials' top='3' left='3' width='197' height='15'>Exit town specials:</text>
<button name='edit-onexit1' relative='pos-in pos' rel-anchor='prev' type='tiny' top='6' left='0' height='15' text-size='10'>Top</button>
<field name='onexit1' type='int' relative='pos-in' rel-anchor='prev' top='-4' left='75' width='67' height='16'/>
<field name='onexit1' relative='pos-in' rel-anchor='prev' top='-4' left='75' width='67' height='16'/>
<button relative='pos-in pos' anchor='edit-onexit1' name='edit-onexit2' type='tiny' top='8' left='0' height='15' text-size='10'>Left</button>
<field name='onexit2' type='int' relative='pos-in' rel-anchor='prev' top='-4' left='75' width='67' height='16'/>
<field name='onexit2' relative='pos-in' rel-anchor='prev' top='-4' left='75' width='67' height='16'/>
<button name='edit-onexit3' relative='pos pos-in' anchor='onexit1' type='tiny' top='4' left='8' height='15' text-size='10'>Bottom</button>
<field name='onexit3' type='int' relative='pos-in' rel-anchor='prev' top='-4' left='75' width='67' height='16'/>
<field name='onexit3' relative='pos-in' rel-anchor='prev' top='-4' left='75' width='67' height='16'/>
<button name='edit-onexit4' relative='pos-in pos' anchor='edit-onexit3' type='tiny' top='8' left='0' height='15' text-size='10'>Right</button>
<field name='onexit4' type='int' relative='pos-in' rel-anchor='prev' top='-4' left='75' width='67' height='16'/>
<field name='onexit4' relative='pos-in' rel-anchor='prev' top='-4' left='75' width='67' height='16'/>
<button name='exit-special-help' type='help' relative='neg-in pos-in' anchor='exit-specials' top='2' left='18'/>
<text name='specials' relative='pos-in pos' anchor='exit-specials' top='10' left='0' width='302' height='90' framed='true'/>
<text relative='pos-in' anchor='specials' top='3' left='3' width='202' height='15'>Town entry special node:</text>
<button name='edit-onenter' relative='pos-in pos' rel-anchor='prev' type='tiny' top='8' left='0' height='15' text-size='10'>Still alive</button>
<field name='onenter' type='int' relative='pos-in' rel-anchor='prev' top='-4' left='146' width='67' height='16'/>
<field name='onenter' relative='pos-in' rel-anchor='prev' top='-4' left='146' width='67' height='16'/>
<button name='edit-onenterdead' relative='pos-in pos' anchor='edit-onenter' type='tiny' top='8' left='0' height='15' text-size='10'>Been abandoned</button>
<field name='onenterdead' type='int' relative='pos-in' rel-anchor='prev' top='-4' left='146' width='67' height='16'/>
<field name='onenterdead' relative='pos-in' rel-anchor='prev' top='-4' left='146' width='67' height='16'/>
<button name='edit-onhostile' relative='pos-in pos' anchor='edit-onenterdead' type='tiny' top='8' left='0' height='15' text-size='10'>When Goes Hostile</button>
<field name='onhostile' type='int' relative='pos-in' rel-anchor='prev' top='-4' left='146' width='67' height='16'/>
<field name='onhostile' relative='pos-in' rel-anchor='prev' top='-4' left='146' width='67' height='16'/>
<button name='special-help' type='help' relative='neg-in pos-in' anchor='specials' top='2' left='18'/>
<text name='exits' relative='pos pos-in' anchor='exit-specials' top='0' left='10' width='185' height='164' framed='true'/>
@@ -36,25 +36,25 @@
<text name='exit-x' relative='pos-in pos' rel-anchor='prev' top='4' left='100' width='35' height='15'>X</text>
<text name='exit-y' relative='pos pos-in' rel-anchor='prev' top='0' left='12' width='35' height='15'>Y</text>
<button name='exit1' relative='pos-in pos' anchor='exit-x' type='tiny' top='4' left='-100' width='96' height='15' text-size='10'>Top</button>
<field name='exit1-x' type='int' relative='pos-in pos' anchor='exit-x' top='4' left='-8' width='39' height='16'/>
<field name='exit1-y' type='int' relative='pos-in pos' anchor='exit-y' top='4' left='-8' width='39' height='16'/>
<field name='exit1-x' relative='pos-in pos' anchor='exit-x' top='4' left='-8' width='39' height='16'/>
<field name='exit1-y' relative='pos-in pos' anchor='exit-y' top='4' left='-8' width='39' height='16'/>
<button name='exit2' relative='pos-in pos' anchor='exit1' type='tiny' top='9' left='0' width='96' height='15' text-size='10'>Left</button>
<field name='exit2-x' type='int' relative='pos-in pos' anchor='exit1-x' top='8' left='0' width='39' height='16'/>
<field name='exit2-y' type='int' relative='pos-in pos' anchor='exit1-y' top='8' left='0' width='39' height='16'/>
<field name='exit2-x' relative='pos-in pos' anchor='exit1-x' top='8' left='0' width='39' height='16'/>
<field name='exit2-y' relative='pos-in pos' anchor='exit1-y' top='8' left='0' width='39' height='16'/>
<button name='exit3' relative='pos-in pos' anchor='exit2' type='tiny' top='9' left='0' width='96' height='15' text-size='10'>Bottom</button>
<field name='exit3-x' type='int' relative='pos-in pos' anchor='exit2-x' top='8' left='0' width='39' height='16'/>
<field name='exit3-y' type='int' relative='pos-in pos' anchor='exit2-y' top='8' left='0' width='39' height='16'/>
<field name='exit3-x' relative='pos-in pos' anchor='exit2-x' top='8' left='0' width='39' height='16'/>
<field name='exit3-y' relative='pos-in pos' anchor='exit2-y' top='8' left='0' width='39' height='16'/>
<button name='exit4' relative='pos-in pos' anchor='exit3' type='tiny' top='9' left='0' width='96' height='15' text-size='10'>Right</button>
<field name='exit4-x' type='int' relative='pos-in pos' anchor='exit3-x' top='8' left='0' width='39' height='16'/>
<field name='exit4-y' type='int' relative='pos-in pos' anchor='exit3-y' top='8' left='0' width='39' height='16'/>
<field name='exit4-x' relative='pos-in pos' anchor='exit3-x' top='8' left='0' width='39' height='16'/>
<field name='exit4-y' relative='pos-in pos' anchor='exit3-y' top='8' left='0' width='39' height='16'/>
<button name='exit-help' type='help' relative='neg-in pos-in' anchor='exits' top='2' left='18'/>
<text name='bg' relative='pos pos-in' anchor='props' top='0' left='10' width='166' height='100' framed='true'/>
<text relative='pos-in' anchor='bg' top='3' left='3' width='100' height='15'>Backgrounds:</text>
<button name='pick-town' relative='pos-in pos' rel-anchor='prev' type='tiny' top='8' left='0' text-size='10'>Town:</button>
<field name='bg-town' type='int' relative='pos-in' rel-anchor='prev' top='-4' left='80' width='80' height='16'/>
<field name='bg-town' relative='pos-in' rel-anchor='prev' top='-4' left='80' width='80' height='16'/>
<button name='pick-fight' relative='pos-in pos' anchor='pick-town' type='tiny' top='15' left='0' text-size='10'>Combat:</button>
<field name='bg-fight' type='int' relative='pos-in' rel-anchor='prev' top='-4' left='80' width='80' height='16'/>
<field name='bg-fight' relative='pos-in' rel-anchor='prev' top='-4' left='80' width='80' height='16'/>
<button name='bg-help' type='help' relative='neg-in pos-in' anchor='bg' top='2' left='18'/>
<text name='props' relative='pos-in pos' anchor='specials' top='10' left='0' width='126' height='100' framed='true'/>

View File

@@ -11,17 +11,17 @@
<text top='58' left='50' width='130' height='14'>Town timing:</text>
<text top='78' left='59' width='242' height='14'>Day when town dies: (if -1, it doesn't)</text>
<field name='chop' type='int' top='77' left='327' width='43' height='16'/>
<field name='chop' top='77' left='327' width='43' height='16'/>
<text top='98' left='59' width='261' height='41'>Number of event which prevents town death (if -1 or 0, none) - see chapter in documentation on time for more details.</text>
<field name='key' type='int' top='101' left='327' width='43' height='16'/>
<field name='key' top='101' left='327' width='43' height='16'/>
<button name='choose-key' type='regular' relative='pos neg' rel-anchor='prev' top='4' left='4'>Choose</button>
<text top='216' left='50' width='234' height='42'>
Maximum number of monsters:
(When this many monsters are killed, the dungeon will be abandoned)
</text>
<field name='population' type='uint' top='219' left='294' width='54' height='16'/>
<field name='population' top='219' left='294' width='54' height='16'/>
<text name='population-hint' relative='pos neg' rel-anchor='prev' top='4' left='4' width='90'>
This town has {{num}} hostile creatures.
</text>
@@ -30,7 +30,7 @@
Town difficulty (0-10):
(Determines how fast wandering monsters appear, how nasty traps are, and how hard it is to unlock doors.)
</text>
<field name='difficulty' type='uint' top='265' left='294' width='54' height='16'/>
<field name='difficulty' top='265' left='294' width='54' height='16'/>
<text top='143' left='50' width='63' height='14'>Lighting:</text>
<group name='lighting'>

View File

@@ -2,23 +2,22 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<field name='time1' type='uint' top='122' left='146' width='67' height='16'/>
<field name='time2' type='uint' top='150' left='146' width='67' height='16'/>
<field name='time3' type='uint' top='178' left='146' width='67' height='16'/>
<field name='time4' type='uint' top='206' left='146' width='67' height='16'/>
<field name='time5' type='uint' top='234' left='146' width='67' height='16'/>
<field name='time6' type='uint' top='262' left='146' width='67' height='16'/>
<field name='time7' type='uint' top='290' left='146' width='67' height='16'/>
<field name='time8' type='uint' top='318' left='146' width='67' height='16'/>
<!-- Unsigned because you don't use -1 for none, you just set the interval to 0: -->
<field name='spec1' type='uint' top='122' left='270' width='39' height='16'/>
<field name='spec2' type='uint' top='150' left='270' width='39' height='16'/>
<field name='spec3' type='uint' top='178' left='270' width='39' height='16'/>
<field name='spec4' type='uint' top='206' left='270' width='39' height='16'/>
<field name='spec5' type='uint' top='234' left='270' width='39' height='16'/>
<field name='spec6' type='uint' top='262' left='270' width='39' height='16'/>
<field name='spec7' type='uint' top='290' left='270' width='39' height='16'/>
<field name='spec8' type='uint' top='318' left='270' width='39' height='16'/>
<field name='time1' top='122' left='146' width='67' height='16'/>
<field name='time2' top='150' left='146' width='67' height='16'/>
<field name='time3' top='178' left='146' width='67' height='16'/>
<field name='time4' top='206' left='146' width='67' height='16'/>
<field name='time5' top='234' left='146' width='67' height='16'/>
<field name='time6' top='262' left='146' width='67' height='16'/>
<field name='time7' top='290' left='146' width='67' height='16'/>
<field name='time8' top='318' left='146' width='67' height='16'/>
<field name='spec1' top='122' left='270' width='39' height='16'/>
<field name='spec2' top='150' left='270' width='39' height='16'/>
<field name='spec3' top='178' left='270' width='39' height='16'/>
<field name='spec4' top='206' left='270' width='39' height='16'/>
<field name='spec5' top='234' left='270' width='39' height='16'/>
<field name='spec6' top='262' left='270' width='39' height='16'/>
<field name='spec7' top='290' left='270' width='39' height='16'/>
<field name='spec8' top='318' left='270' width='39' height='16'/>
<button name='okay' type='regular' top='343' left='411'>OK</button>
<button name='cancel' type='regular' relative='neg pos-in' rel-anchor='prev' top='0' left='71'>Cancel</button>
<pict type='dlog' num='16' top='8' left='8'/>

View File

@@ -2,30 +2,29 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<field name='group1-monst1' type='uint' top='137' left='174' width='39' height='16'/><button name='pick1-monst1' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group1-monst2' type='uint' top='165' left='174' width='39' height='16'/><button name='pick1-monst2' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group1-monst3' type='uint' top='193' left='174' width='39' height='16'/><button name='pick1-monst3' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group1-monst4' type='uint' top='221' left='174' width='39' height='16'/><button name='pick1-monst4' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group2-monst1' type='uint' top='137' left='239' width='39' height='16'/><button name='pick2-monst1' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group2-monst2' type='uint' top='165' left='239' width='39' height='16'/><button name='pick2-monst2' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group2-monst3' type='uint' top='193' left='239' width='39' height='16'/><button name='pick2-monst3' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group2-monst4' type='uint' top='221' left='239' width='39' height='16'/><button name='pick2-monst4' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group3-monst1' type='uint' top='137' left='304' width='39' height='16'/><button name='pick3-monst1' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group3-monst2' type='uint' top='165' left='304' width='39' height='16'/><button name='pick3-monst2' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group3-monst3' type='uint' top='193' left='304' width='39' height='16'/><button name='pick3-monst3' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group3-monst4' type='uint' top='221' left='304' width='39' height='16'/><button name='pick3-monst4' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group4-monst1' type='uint' top='137' left='369' width='39' height='16'/><button name='pick4-monst1' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group4-monst2' type='uint' top='165' left='369' width='39' height='16'/><button name='pick4-monst2' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group4-monst3' type='uint' top='193' left='369' width='39' height='16'/><button name='pick4-monst3' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<field name='group4-monst4' type='uint' top='221' left='369' width='39' height='16'/><button name='pick4-monst4' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<button name='okay' type='regular' top='283' left='436'>OK</button>
<field name='group1-monst1' top='137' left='174' width='39' height='16'/>
<field name='group1-monst2' top='165' left='174' width='39' height='16'/>
<field name='group1-monst3' top='193' left='174' width='39' height='16'/>
<field name='group1-monst4' top='221' left='174' width='39' height='16'/>
<field name='group2-monst1' top='137' left='239' width='39' height='16'/>
<field name='group2-monst2' top='165' left='239' width='39' height='16'/>
<field name='group2-monst3' top='193' left='239' width='39' height='16'/>
<field name='group2-monst4' top='221' left='239' width='39' height='16'/>
<field name='group3-monst1' top='137' left='304' width='39' height='16'/>
<field name='group3-monst2' top='165' left='304' width='39' height='16'/>
<field name='group3-monst3' top='193' left='304' width='39' height='16'/>
<field name='group3-monst4' top='221' left='304' width='39' height='16'/>
<field name='group4-monst1' top='137' left='369' width='39' height='16'/>
<field name='group4-monst2' top='165' left='369' width='39' height='16'/>
<field name='group4-monst3' top='193' left='369' width='39' height='16'/>
<field name='group4-monst4' top='221' left='369' width='39' height='16'/>
<button name='okay' type='regular' top='273' left='436'>OK</button>
<button name='cancel' type='regular' relative='neg pos-in' rel-anchor='prev' top='0' left='71'>Cancel</button>
<text top='6' left='50' width='256' height='17'>Town wandering monsters</text>
<text top='25' left='50' width='439' height='40'>
Wandering monsters in towns appear in groups of up to 5.
Enter the numbers of the wandering monsters in each group type,
or press the small button next to each field to choose the appearing
monsters from a list.
or press the Choose button to select the appearing monsters from a list.
</text>
<text top='68' left='50' width='437' height='40'>
A group of wandering monsters contains one each of the first three monsters, and 1 or 2 of the fourth.
@@ -36,14 +35,12 @@
<text top='115' left='231' width='58' height='14'>Group 2</text>
<text top='115' left='294' width='58' height='14'>Group 3</text>
<text top='115' left='357' width='58' height='14'>Group 4</text>
<button name='choose1' type='regular' top='243' left='162'>Choose</button>
<button name='choose2' type='regular' top='243' left='227'>Choose</button>
<button name='choose3' type='regular' top='243' left='292'>Choose</button>
<button name='choose4' type='regular' top='243' left='357'>Choose</button>
<text top='138' left='8' width='150' height='14'>Monster 1 (1 appears)</text>
<text top='166' left='8' width='150' height='14'>Monster 2 (1 appears)</text>
<text top='194' left='8' width='150' height='14'>Monster 3 (1 appears)</text>
<text top='222' left='8' width='150' height='14'>Monster 4 (1-2 appears)</text>
<text top='250' left='8' width='150' height='30'>Locations<br/>(Any group can appear at any location)</text>
<text name='loc1' top='258' left='174' width='39' height='16'/><button name='pick-loc1' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<text name='loc2' top='258' left='239' width='39' height='16'/><button name='pick-loc2' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<text name='loc3' top='258' left='304' width='39' height='16'/><button name='pick-loc3' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
<text name='loc4' top='258' left='369' width='39' height='16'/><button name='pick-loc4' type='tiny' relative='neg pos-in' rel-anchor='prev' top='2' left='20'></button>
</dialog>

View File

@@ -2,11 +2,14 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<field name='extra1' type='int' top='126' left='221' width='67' height='16'/>
<field name='extra2' type='int' top='153' left='221' width='67' height='16'/>
<field name='death' type='int' top='298' left='285' width='67' height='16'/>
<field name='sdfy' type='int' top='362' left='262' width='39' height='16'/>
<field name='sdfx' type='int' top='362' left='310' width='39' height='16'/>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<field name='extra1' top='126' left='221' width='67' height='16'/>
<field name='extra2' top='153' left='221' width='67' height='16'/>
<field name='death' top='298' left='285' width='67' height='16'/>
<field name='sdfy' top='362' left='262' width='39' height='16'/>
<field name='sdfx' top='362' left='310' width='39' height='16'/>
<text size='large' top='6' left='50' width='256' height='17'>Townsperson/monster advanced</text>
<text top='28' left='62' width='97' height='15'>Creature type:</text>
<text name='type' top='28' left='162' width='195' height='15'/>
@@ -22,7 +25,7 @@
Number of town special node to call before talking to creature:
(-1 for none)
</text>
<field name='hail' type='int' top='326' left='285' width='67' height='16'/>
<field name='hail' top='326' left='285' width='67' height='16'/>
<button name='edithail' type='large' top='322' left='360'>Create/Edit</button>
<text top='350' left='25' width='230' height='40'>
Stuff done flag creature's life is linked to:

View File

@@ -1,8 +1,8 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<field name='talk' type='int' top='189' left='149' width='67' height='16'/>
<dialog defbtn='okay'>
<field name='talk' top='189' left='149' width='67' height='16'/>
<button name='talk-edit' type='regular' top='186' left='228'>Choose</button>
<text name='picnum' top='189' left='375' width='40' height='16'/>
<text size='large' top='71' left='51' width='115' height='15'>Creature type:</text>
@@ -25,9 +25,13 @@
<led name='mob1' top='133' left='224'>No</led>
<led name='mob2' top='133' left='282'>Yes</led>
</group>
<button name='okay' type='regular' top='224' left='471'>OK</button>
<button name='cancel' type='regular' top='224' left='405'>Cancel</button>
<pict type='dlog' num='16' top='8' left='8'/>
<text top='7' left='313' width='126' height='15'>Creature number:</text>
<text name='num' top='7' left='450' width='50' height='15'/>
<button name='more' type='large' top='224' left='51'>Advanced</button>
<button name='del' type='regular' top='224' left='155'>Delete</button>
<text top='24' left='50' width='476' height='40'>
Enter the information for this monster/townsperson.
You only need to worry about the talking section if this is not a hostile monster.
@@ -35,13 +39,4 @@
</text>
<text size='large' top='160' left='51' width='256' height='17'>Talking to this creature:</text>
<text top='205' left='295' width='101' height='26'>Leave at -1 for no pic.</text>
<text top='224' left='51' width='70' height='14'>Location:</text>
<text name='loc' top='224' left='122' width='90' height='14'/>
<button name='pick-loc' type='regular' relative='pos neg' rel-anchor='prev' top='4' left='5'>Move</button>
<button name='more' type='large' top='249' left='51'>Advanced</button>
<button name='del' type='regular' top='249' left='155'>Delete</button>
<button name='cancel' type='regular' top='249' left='405'>Cancel</button>
<button name='okay' type='regular' top='249' left='471'>OK</button>
</dialog>

View File

@@ -5,14 +5,13 @@
<text name='title' size='large' rel-anchor='prev' relative='pos pos-in' top='-2' left='6' width='256' height='17'>Edit Vehicle</text>
<text name='num-lbl' rel-anchor='prev' relative='pos-in pos' top='2' left='0' width='97' height='14'>Number</text>
<text name='num' rel-anchor='prev' relative='pos pos-in' top='0' left='5' width='46' height='16' framed='true'/>
<field name='num' rel-anchor='prev' relative='pos pos-in' top='0' left='5' width='46' height='14'/>
<text name='area-lbl' anchor='num-lbl' relative='pos-in pos' top='11' left='0' width='97' height='14'>Starting Area</text>
<text name='area' rel-anchor='prev' relative='pos pos-in' top='0' left='5' width='100' height='16' framed='true'/>
<text name='loc-lbl' anchor='area-lbl' relative='pos-in pos' top='11' left='0' width='97' height='14'>Location</text>
<text name='loc' rel-anchor='prev' relative='pos pos-in' top='0' left='5' width='40' height='16'/>
<button name='pick-loc' rel-anchor='prev' relative='pos neg' type='regular' top='4' left='5'>Move</button>
<text name='name-lbl' anchor='loc-lbl' relative='pos-in pos' top='11' left='0' width='97' height='14'>Name</text>
<field name='name' rel-anchor='prev' relative='pos pos-in' top='0' left='5' width='100' height='14'/>

View File

@@ -4,8 +4,6 @@
<dialog defbtn='done' escbtn='done'>
<button name='done' type='done' top='408' left='337'/>
<pict type='dlog' num='2' top='10' left='10'/>
<button name='gold' type='small' def-key='shift 4' relative='pos-in pos' rel-anchor='prev' top='4' left='0'><key/></button>
<text name='gold-label' relative='pos pos-in' rel-anchor='prev' top='0' left='2' width='38'>Get all gold</text>
<button name='pc1' type='small' def-key='1' top='354' left='89'><key/></button>
<button name='pc2' type='small' def-key='2' top='354' left='174'><key/></button>
<button name='pc3' type='small' def-key='3' top='354' left='259'><key/></button>

View File

@@ -1,8 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='okay'>
<button name='okay' type='regular' top='37' left='256'>OK</button>
<pict type='dlog' num='16' top='6' left='6'/>
<text top='6' left='49' width='272' height='28'>No random items were added. Double-check your Item Placement Shortcuts in the Scenario menu.</text>
</dialog>

View File

@@ -1,8 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='okay'>
<button name='okay' type='regular' top='37' left='256'>OK</button>
<pict type='dlog' num='16' top='6' left='6'/>
<text top='6' left='49' width='272' height='28'>Nothing changed. No items in this town were marked as property.</text>
</dialog>

View File

@@ -1,8 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='okay'>
<button name='okay' type='regular' top='37' left='256'>OK</button>
<pict type='dlog' num='16' top='6' left='6'/>
<text top='6' left='49' width='272' height='28'>There are no items in this town.</text>
</dialog>

View File

@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='done' escbtn='cancel'>
<dialog defbtn='done' escbtn='done'>
<!--
TODO: Add width attributes to the LEDs
-->
@@ -68,10 +68,9 @@
<led name='spell60' state='off' top='248' left='268'/>
<led name='spell61' state='off' top='260' left='268'/>
<led name='spell62' state='off' top='272' left='268'/>
<button name='cancel' type='regular' top='310' left='358'>Cancel</button>
<button name='done' type='done' top='310' left='422'/>
<button name='left' type='left' def-key='left' top='310' left='12'/>
<button name='right' type='right' def-key='right' top='310' left='79'/>
<text name='title' size='large' top='15' left='53' width='83' height='16'>{{type}} Spells For:</text>
<text name='who' framed='true' top='15' left='166' width='186' height='16'/>
<button name='right' type='right' def-key='right' top='309' left='79'/>
<text name='who' size='large' top='15' left='53' width='83' height='16'>Spells For:</text>
<text framed='true' top='15' left='146' width='186' height='16'/>
</dialog>

View File

@@ -1,10 +1,10 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='done' escbtn='cancel'>
<!--TODO Need a cancel button. In other contexts (like preferences), Escape would discard changes in a submenu.-->
<dialog defbtn='done'>
<text size='large' top='9' left='55' width='181' height='16'>Special Characteristics:</text>
<pict type='dlog' num='7' top='6' left='6'/>
<button name='cancel' type='regular' top='349' left='350'>Cancel</button>
<button name='done' type='done' top='349' left='423'/>
<text size='large' top='30' left='55' width='65' height='18'>Species:</text>
<text name='xp' framed='true' top='352' left='254' width='50' height='16'/>

View File

@@ -46,38 +46,7 @@
<text outline='double' name='start3' top='205' left='59' width='342' height='84'/>
</page>
</stack>
<button name='core' def-key='0' type='tiny' top='294' left='5'>Core</button>
<text name='custom' relative='pos neg' size='large' rel-anchor='prev' left='5' top='2'>Custom:</text>
<button name='a' def-key='a' type='tiny' relative='pos pos-in' rel-anchor='prev' top='2' left='3'>A</button>
<button name='b' def-key='b' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>B</button>
<button name='c' def-key='c' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>C</button>
<button name='d' def-key='d' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>D</button>
<button name='e' def-key='e' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>E</button>
<button name='f' def-key='f' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>F</button>
<button name='g' def-key='g' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>G</button>
<button name='h' def-key='h' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>H</button>
<button name='i' def-key='i' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>I</button>
<button name='j' def-key='j' type='tiny' relative='pos-in pos' anchor='a' top='2' left='0'>J</button>
<button name='k' def-key='k' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>K</button>
<button name='l' def-key='l' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>L</button>
<button name='m' def-key='m' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>M</button>
<button name='n' def-key='n' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>N</button>
<button name='o' def-key='o' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>O</button>
<button name='p' def-key='p' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>P</button>
<button name='q' def-key='q' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>Q</button>
<button name='r' def-key='r' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>R</button>
<button name='s' def-key='s' type='tiny' relative='pos-in pos' anchor='j' top='2' left='0'>S</button>
<button name='t' def-key='t' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>T</button>
<button name='u' def-key='u' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>U</button>
<button name='v' def-key='v' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>V</button>
<button name='w' def-key='w' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>W</button>
<button name='x' def-key='x' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>X</button>
<button name='y' def-key='y' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>Y</button>
<button name='z' def-key='z' type='tiny' relative='pos pos-in' rel-anchor='prev' top='0' left='4'>Z</button>
<button name='#' def-key='shift 3' type='tiny' relative='neg pos-in' anchor='j' top='0' left='32'>#</button>
<button name='cancel' type='regular' top='330' left='5'>Cancel</button>
<button name='cancel' type='regular' top='294' left='5'>Cancel</button>
<button name='prev' type='left' def-key='left' relative='pos pos-in' rel-anchor='prev' top='0' left='14'/>
<button name='next' type='right' def-key='right' relative='pos pos-in' rel-anchor='prev' top='0' left='0'/>
<button name='folder' type='large' relative='pos pos-in' rel-anchor='prev' top='0' left='14'>Show Folder</button>

View File

@@ -5,7 +5,7 @@
<text size='large' relative='pos pos-in' rel-anchor='prev' top='0' left='4' width='218' height='16'>
BoE Scenario Editor Preferences
</text>
<led name='nosound' relative='pos-in pos' rel-anchor='prev' top='10' left='0'>No UI Sounds</led>
<led name='nosound' relative='pos-in pos' rel-anchor='prev' top='10' left='0'>No Sounds</led>
<text name='scale-head' size='large' relative='neg pos' rel-anchor='prev' top='17' left='10' width='260' height='17'>Scale UI:</text>
<group name='scaleui'>
<led name='1' relative='pos-in pos' anchor='scale-head' top='4' left='15'>1</led>

View File

@@ -7,13 +7,15 @@
<button name='okay' type='regular' top='181' left='278'>OK</button>
<pict type='dlog' num='16' top='8' left='8'/>
<text size='large' top='6' left='50' width='175' height='17'>Importing a town</text>
<text name='prompt' top='143' left='50' width='162' height='27'>What town do you wish to import? (0 - {{max-num}})</text>
<text name='prompt' top='143' left='50' width='162' height='27'>What town do you wish to import?</text>
<text top='27' left='50' width='301' height='54'>
The town with this number in the selected scenario be imported.
Enter a town number and hit OK, and you will be asked to select a scenario file.
The town with that number in the selected scenario will then be loaded in over the current town.
</text>
<button name='cancel' type='regular' top='181' left='212'>Cancel</button>
<text top='83' left='50' width='301' height='54'>
Warning: This will overwrite over the town currently in memory.
Warning: This will write over the town currently in memory.
Also, the town you select must be the same size (large/medium/small) as the town currently in memory.
</text>
<button name='choose' type='regular' top='146' left='281'>Choose</button>
</dialog>

View File

@@ -6,7 +6,7 @@
<button name='okay' type='regular' top='136' left='229'>OK</button>
<button name='cancel' type='regular' top='136' left='164'>Cancel</button>
<pict type='dlog' num='16' top='8' left='8'/>
<text name='prompt' size='large' top='6' left='50' width='188' height='16'>{{Action}} Which Outdoor Section?</text>
<text size='large' top='6' left='50' width='188' height='16'>Edit Which Outdoor Section?</text>
<text top='25' left='68' width='111' height='14'>World width:</text>
<text name='width' top='25' left='186' width='37'/>
<text name='x' framed='true' top='63' left='142' width='75' height='16'/>

View File

@@ -9,7 +9,7 @@
<pict type='dlog' num='16' top='8' left='8'/>
<text size='large' top='6' left='50' width='167' height='17'>Pick Town to Edit:</text>
<text name='prompt' top='25' left='50' width='185' height='28'>
Enter the number of the town you want to edit next: (0 - {{max-num}})
Enter the number of the town you want to edit next:
</text>
<button name='choose' type='regular' top='56' left='169'>Choose</button>
</dialog>

View File

@@ -2,16 +2,14 @@
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' escbtn='cancel'>
<!-- OK button -->
<field type='uint' name='town' top='71' left='119' width='62' height='16'/>
<button name='okay' type='regular' top='95' left='206'>OK</button>
<button name='cancel' type='regular' top='95' left='140'>Cancel</button>
<pict type='dlog' num='16' top='8' left='8'/>
<text size='large' top='6' left='50' width='207' height='17'>Entrance to what town?</text>
<text name='prompt' top='25' left='50' width='213' height='42'>
What town do you want the party to end up in when they walk into this space? (0 - {{max-num}} for existing, {{next-num}} for new.)
What town do you want the party to end up in when they walk into this space?
</text>
<field type='uint' name='town' top='71' left='119' width='62' height='16'/>
<button name='choose' type='regular' top='69' left='186'>Choose</button>
<button name='cancel' type='regular' top='95' left='5'>Cancel</button>
<button name='edit' type='large' top='95' left='100'>Create/Edit</button>
<button name='okay' type='regular' top='95' left='206'>OK</button>
</dialog>

View File

@@ -9,11 +9,11 @@
You can very easily mess up your game by doing this, so be sure you know what you're doing first.
</text>
<text top='105' left='8' width='100' height='16'>SDF Part A:</text>
<field name='x' type='uint' top='103' left='110' width='80' height='16'/>
<field name='x' top='103' left='110' width='80' height='16'/>
<text top='125' left='8' width='100' height='16'>SDF Part B:</text>
<field name='y' type='uint' top='123' left='110' width='80' height='16'/>
<field name='y' top='123' left='110' width='80' height='16'/>
<text top='145' left='8' width='100' height='16'>Value:</text>
<field name='val' type='int' top='143' left='110' width='80' height='16'/>
<field name='val' top='143' left='110' width='80' height='16'/>
<text name='feedback' top='165' left='8' width='230' height='16'/>
<button name='exit' type='regular' top='185' left='122'>Exit</button>
<button name='set' type='regular' top='185' left='187'>Set</button>

View File

@@ -5,7 +5,8 @@
<button name='no' type='regular' def-key='n' top='39' left='178'>No</button>
<button name='yes' type='regular' def-key='y' top='39' left='244'>Yes</button>
<pict type='dlog' num='11' top='9' left='9'/>
<text name='prompt' top='4' left='51' width='251' height='32'>
Shift to this town's entrance in outdoor section {sec} at {loc} ({loc_str})?
<text top='4' left='51' width='251' height='32'>
Shift to this town's entrance in this outdoor section?
</text>
<text name='out-sec' relative='pos-in pos' rel-anchor='prev' top='4' left='0'></text>
</dialog>

View File

@@ -9,10 +9,17 @@
Spiderweb Software, created in 1997 and later released as
Free Open-Source Software.
</text>
<text name='spidweb' relative='pos-in pos' rel-anchor='prev' top='3' left='16' colour='link' underline='true'>
http://www.spidweb.com/blades/opensource.html
<text relative='pos-in pos' rel-anchor='prev' top='2' left='0' width='413'>
You're playing an Itch Edition release of OpenBoE. The Itch Edition
was funded by many generous supporters through IndieGoGo, and is
currently funded by donations on Patreon. Click below to follow the project
and see the rewards for becoming a supporter!
</text>
<text relative='neg pos' rel-anchor='prev' top='3' left='16' width='413'>
<text name='patreon' relative='pos-in pos' rel-anchor='prev' top='0' left='16' width='230' colour='link' underline='true'>
http://patreon.com/blades_itch_edition
</text>
<pict type='item' num='17' relative='pos neg' rel-anchor='prev' top='15' left='2'/>
<text relative='neg pos' anchor='patreon' top='3' left='16' width='413'>
Three exciting original scenarios await you, filled
with many hours of puzzles, fighting and adventure!
In addition to these, hundreds more written by

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -353,7 +353,7 @@ Number of town to place party in
Skip dialog and always change level?
Trigger Limitations
Special to Call in New Town
A dialog comes up with text you supply (saying, perhaps, they've found a stairway). The dialog buttons are Climb and Leave. If the Leave button is pressed, the Jump To special is used, and the party is not allowed to enter the space. If the Climb button is pushed, the party is moved to another town.
A dialog comes up text you supply (saying, perhaps, they've found a stairway). The dialog buttons are Climb and Leave. If the Leave button is pressed, the Jump To special is used, and the party is not allowed to enter the space. If the Climb button is pushed, the party is moved to another town.
--------------------
Relocate Outdoors
Unused

View File

@@ -43,11 +43,8 @@ const short cDialog::BG_DARK = 5, cDialog::BG_LIGHT = 16;
short cDialog::defaultBackground = cDialog::BG_DARK;
cDialog* cDialog::topWindow = nullptr;
void (*cDialog::redraw_everything)() = nullptr;
std::function<void(const cDialog&)> cDialog::onOpen;
std::function<void(const cDialog&)> cDialog::onClose;
std::function<void(sf::RenderWindow& win)> cDialog::onLostFocus;
std::function<void(sf::RenderWindow& win)> cDialog::onGainedFocus;
std::function<void(sf::RenderWindow& win)> cDialog::onHandleEvents;
extern std::map<std::string,sf::Color> colour_map;
@@ -504,7 +501,7 @@ bool cDialog::sendInput(cKey key) {
void cDialog::run(std::function<void(cDialog&)> onopen){
cPict::resetAnim();
cDialog* formerTop = topWindow;
// TODO: The introduction of the static topWindow means I may be able to use this instead of parent->win; do I still need parent?
sf::RenderWindow* parentWin = &(parent ? parent->win : mainPtr());
auto parentPos = parentWin->getPosition();
auto parentSz = parentWin->getSize();
@@ -544,16 +541,10 @@ void cDialog::run(std::function<void(cDialog&)> onopen){
// but it does prevent editing other dialogs, and it also keeps this window on top
// even when it loses focus.
ModalSession dlog(win, *parentWin);
if(onopen) onopen(*this);
animTimer.restart();
has_focus = true;
topWindow = this;
// Run the static onOpen event first
if(cDialog::onOpen) cDialog::onOpen(*this);
// Run this dialog's onOpen event
if(onopen) onopen(*this);
handle_events();
win.setVisible(false);
@@ -562,7 +553,6 @@ void cDialog::run(std::function<void(cDialog&)> onopen){
set_cursor(former_curs);
topWindow = formerTop;
stackWindowsCorrectly();
if(cDialog::onClose) cDialog::onClose(*this);
}
void cDialog::runWithHelp(short help1, short help2, bool help_forced) {
@@ -616,7 +606,6 @@ void cDialog::handle_events() {
std::string line = std::to_string(next_action_line());
throw std::string { "Replaying a dialog, have the wrong replay action: " + type + " on line " + line};
}else{
if(has_focus && onHandleEvents) onHandleEvents(win);
while(pollEvent(win, currentEvent)){
handle_one_event(currentEvent, fps_limiter);
}
@@ -657,99 +646,89 @@ void cDialog::stackWindowsCorrectly() {
}
}
cKey translate_sfml_key(sf::Event::KeyEvent key_event) {
// This method handles one event received by the dialog.
void cDialog::handle_one_event(const sf::Event& currentEvent, cFramerateLimiter& fps_limiter) {
using Key = sf::Keyboard::Key;
cKey key;
switch(key_event.code){
case Key::Up:
key.spec = true;
key.k = key_up;
break;
case Key::Right:
key.spec = true;
key.k = key_right;
break;
case Key::Left:
key.spec = true;
key.k = key_left;
break;
case Key::Down:
key.spec = true;
key.k = key_down;
break;
case Key::Escape:
key.spec = true;
key.k = key_esc;
break;
case Key::Return: // TODO: Also enter (keypad)
key.spec = true;
key.k = key_enter;
break;
case Key::BackSpace:
key.spec = true;
key.k = key_bsp;
break;
case Key::Delete:
key.spec = true;
key.k = key_del;
break;
case Key::Tab:
key.spec = true;
key.k = key_tab;
break;
case Key::Insert:
key.spec = true;
key.k = key_insert;
break;
case Key::F1:
key.spec = true;
key.k = key_help;
break;
case Key::Home:
key.spec = true;
key.k = key_home;
break;
case Key::End:
key.spec = true;
key.k = key_end;
break;
case Key::PageUp:
key.spec = true;
key.k = key_pgup;
break;
case Key::PageDown:
key.spec = true;
key.k = key_pgdn;
break;
default:
key.spec = false;
key.c = keyToChar(key_event.code, false);
break;
}
key.mod = mod_none;
if(key_event.*systemKey)
key.mod += mod_ctrl;
if(key_event.shift) key.mod += mod_shift;
if(key_event.alt) key.mod += mod_alt;
return key;
}
// This method handles one event received by the dialog.
void cDialog::handle_one_event(const sf::Event& currentEvent, cFramerateLimiter& fps_limiter) {
// HACK: This needs to be stored between consecutive invocations of this function
static cKey pendingKey = {true};
std::string itemHit = "";
location where;
cKey key;
switch(currentEvent.type) {
case sf::Event::KeyPressed:
key = translate_sfml_key(currentEvent.key);
// Handles button hotkeys. Note that the event still falls through to text fields.
// It probably shouldn't, because right now we have to be careful not to put a button
// on the same dialog as a field if its hotkey is a typable character.
switch(currentEvent.key.code){
case Key::Up:
key.spec = true;
key.k = key_up;
break;
case Key::Right:
key.spec = true;
key.k = key_right;
break;
case Key::Left:
key.spec = true;
key.k = key_left;
break;
case Key::Down:
key.spec = true;
key.k = key_down;
break;
case Key::Escape:
key.spec = true;
key.k = key_esc;
break;
case Key::Return: // TODO: Also enter (keypad)
key.spec = true;
key.k = key_enter;
break;
case Key::BackSpace:
key.spec = true;
key.k = key_bsp;
break;
case Key::Delete:
key.spec = true;
key.k = key_del;
break;
case Key::Tab:
key.spec = true;
key.k = key_tab;
break;
case Key::Insert:
key.spec = true;
key.k = key_insert;
break;
case Key::F1:
key.spec = true;
key.k = key_help;
break;
case Key::Home:
key.spec = true;
key.k = key_home;
break;
case Key::End:
key.spec = true;
key.k = key_end;
break;
case Key::PageUp:
key.spec = true;
key.k = key_pgup;
break;
case Key::PageDown:
key.spec = true;
key.k = key_pgdn;
break;
default:
key.spec = false;
key.c = keyToChar(currentEvent.key.code, false);
break;
}
key.mod = mod_none;
if(currentEvent.key.*systemKey)
key.mod += mod_ctrl;
if(currentEvent.key.shift) key.mod += mod_shift;
if(currentEvent.key.alt) key.mod += mod_alt;
process_keystroke(key);
// Now check for focused fields.
if(currentFocus.empty()) break;

View File

@@ -13,7 +13,6 @@
/// Dialog-related classes and types.
#include <SFML/Graphics.hpp>
#include <SFML/Window/Event.hpp>
#include <string>
#include <map>
@@ -56,8 +55,6 @@ protected:
void increment();
};
cKey translate_sfml_key(sf::Event::KeyEvent);
/// Defines a fancy dialog box with various controls.
class cDialog : public iComponent, public iNameGiver {
friend class cDialogIterator;
@@ -82,15 +79,9 @@ class cDialog : public iComponent, public iNameGiver {
bool doAnimations;
bool has_focus = false;
public:
static bool anyOpen() { return topWindow != nullptr; }
static void (*redraw_everything)();
// Global onOpen and onClose events are for tracking things, not for modifying the dialogs.
static std::function<void(const cDialog&)> onOpen;
static std::function<void(const cDialog&)> onClose;
static std::function<void(sf::RenderWindow& win)> onLostFocus;
static std::function<void(sf::RenderWindow& win)> onGainedFocus;
// Attach a handler here for any update/input logic that uses target-specific code
static std::function<void(sf::RenderWindow& win)> onHandleEvents;
void stackWindowsCorrectly();
/// Performs essential startup initialization. Generally should not be called directly.
static void init();

View File

@@ -15,11 +15,9 @@
#include <boost/algorithm/string/case_conv.hpp>
#include "dialogxml/widgets/field.hpp"
#include "dialogxml/dialogs/strdlog.hpp"
#include "fileio/resmgr/res_dialog.hpp"
#include "sounds.hpp"
#include "gfx/render_shapes.hpp"
#include "tools/cursors.hpp"
const sf::Color HILITE_COLOUR = Colours::LIGHT_GREEN;
@@ -143,8 +141,6 @@ bool cStringChoice::onLeft(){
if(page == 0) page = lastPage();
else page--;
fillPage();
clearHighlights();
highlightSearch();
return true;
}
@@ -156,8 +152,6 @@ bool cStringChoice::onRight(){
if(page == lastPage()) page = 0;
else page++;
fillPage();
clearHighlights();
highlightSearch();
return true;
}
@@ -316,71 +310,3 @@ void cStringChoice::savePage() {
strings[string_idx] = dlg[text_id].getText();
}
}
static bool get_num_response_event_filter(cDialog& me, std::string, eKeyMod) {
if(me.toast(true)){
me.setResult<int>(me["number"].getTextAsNum());
}
return true;
}
short get_num_response(short min, short max, std::string prompt, std::vector<std::string> choice_names, boost::optional<short> cancel_value, short initial_value, std::string extra_led, bool* led_output) {
std::ostringstream sout;
sout << prompt;
set_cursor(sword_curs);
cDialog numPanel(*ResMgr::dialogs.get("get-num"));
numPanel.attachClickHandlers(get_num_response_event_filter, {"okay"});
if(extra_led.empty()){
numPanel["extra-led"].hide();
}else{
numPanel["extra-led"].setText(extra_led);
numPanel["extra-led"].recalcRect();
if(led_output != nullptr)
dynamic_cast<cLed&>(numPanel["extra-led"]).setState(*led_output ? led_red : led_off);
}
sout << " (" << min << '-' << max << ')';
numPanel["prompt"].setText(sout.str());
numPanel["number"].setTextToNum(initial_value);
if(!choice_names.empty()){
numPanel["choose"].attachClickHandler([&choice_names, &prompt](cDialog& me,std::string,eKeyMod) -> bool {
cStringChoice choose_dlg(choice_names, prompt, &me);
me["number"].setTextToNum(choose_dlg.show(me["number"].getTextAsNum()));
return true;
});
}else{
numPanel["choose"].hide();
}
if(min < max)
numPanel["number"].attachFocusHandler([min,max](cDialog& me,std::string,bool losing) -> bool {
if(!losing) return true;
int val = me["number"].getTextAsNum();
if(val < min || val > max) {
showError("Number out of range!");
return false;
}
return true;
});
bool cancel_clicked = false;
if(cancel_value){
numPanel["cancel"].attachClickHandler([cancel_value, &cancel_clicked](cDialog& me,std::string,eKeyMod) -> bool {
cancel_clicked = true;
me.setResult<int>(*cancel_value);
me.toast(false);
return true;
});
}else{
numPanel["cancel"].hide();
}
numPanel.run();
if(!cancel_clicked && led_output != nullptr){
*led_output = dynamic_cast<cLed&>(numPanel["extra-led"]).getState() == led_red;
}
return numPanel.getResult<int>();
}

View File

@@ -12,7 +12,6 @@
#include <string>
#include <vector>
#include <functional>
#include <boost/optional.hpp>
#include "dialog.hpp"
#include "dialogxml/widgets/ledgroup.hpp"
@@ -79,9 +78,4 @@ public:
std::vector<std::string> getStrings() const { return strings; }
};
// Prompt the player/designer for a number, which might be an index in a given list of strings.
// Specify cancel_value to show a cancel button, which will return the given value (for example, -1)
// Specify extra_led and led_output to show a labeled LED which will assign led_output with its status unless the dialog is canceled
short get_num_response(short min, short max, std::string prompt, std::vector<std::string> choice_names = {}, boost::optional<short> cancel_value = boost::none, short initial_value = 0, std::string extra_led = "", bool* led_output = nullptr);
#endif

View File

@@ -355,7 +355,6 @@ std::string cControl::getAttachedKeyDescription() const {
case key_word_del: keyName = "delete"; mod += mod_ctrl; break;
#endif
case key_find: keyName = "f"; mod += mod_ctrl; break;
case key_none: keyName = "unknown"; break;
}
if(mod_contains(mod, mod_ctrl)) s += '^';
if(mod_contains(mod, mod_alt)) s += '#';
@@ -716,8 +715,3 @@ void cControl::restore(storage_t to) {
if(to.find("visible") != to.end())
boost::any_cast<bool>(to["visible"]) ? show() : hide();
}
// Translate raw x/y position using the view of the current rendering target
location cControl::translated_location(const sf::Vector2i point) const {
return location { const_cast<cControl*>(this)->getWindow().mapPixelToCoords(point) };
}

View File

@@ -493,7 +493,6 @@ protected:
/// Plays the proper sound for this control being clicked on
void playClickSound();
static std::string generateRandomString();
location translated_location(const sf::Vector2i) const;
private:
friend class cDialog; // This is so it can access parseColour and anchor
friend class cContainer; // This is so it can access anchor

View File

@@ -139,66 +139,6 @@ void cTextField::replay_selection(ticpp::Element& next_action) {
redraw();
}
// Parentless text field handle input
bool cTextField::handle_event(const sf::Event& event) {
// Not visible -> not interested
if(!this->isVisible())
return false;
static cKey pendingKey;
switch(event.type) {
case sf::Event::MouseButtonPressed:
return this->handle_mouse_pressed(event);
case sf::Event::KeyPressed:
return this->handle_key_pressed(event, pendingKey);
case sf::Event::TextEntered:
if(!pendingKey.spec && haveFocus) {
pendingKey.c = event.text.unicode;
if(pendingKey.c != '\t')
handleInput(pendingKey, true);
}
break;
default: break;
}
return false;
}
bool cTextField::handle_key_pressed(const sf::Event& event, cKey& pendingKey) {
if(haveFocus){
cKey key = translate_sfml_key(event.key);
// TODO if multiple parentless fields ever exist, tab order will need to be handled
// If it's a character key, and the system key (control/command) is not pressed,
// we have an upcoming TextEntered event which contains more information.
// Otherwise, handle it right away. But never handle enter or escape.
if((key.spec && key.k != key_enter && key.k != key_esc) || mod_contains(key.mod, mod_ctrl))
handleInput(key, true);
pendingKey = key;
return true;
}
return false;
}
// Parentless text field toggle focus on click
bool cTextField::handle_mouse_pressed(const sf::Event& event) {
location event_location = this->translated_location({
event.mouseButton.x,
event.mouseButton.y
});
bool in_bounds = event_location.in(this->getBounds());
// TODO if multiple parentless fields ever exist, focus must be taken from the other one here
haveFocus = in_bounds;
insertionPoint = 0;
if(haveFocus){
static cFramerateLimiter fps_limiter;
handleClick(event_location, fps_limiter);
}
return in_bounds;
}
bool cTextField::handleClick(location clickLoc, cFramerateLimiter& fps_limiter) {
if(!haveFocus && getDialog() && !getDialog()->setFocus(this)) return true;
haveFocus = true;
@@ -522,8 +462,7 @@ void cTextField::handleInput(cKey key, bool record) {
selectionPoint = ++insertionPoint;
}
} else switch(key.k) {
case key_none: case key_enter:
break; // Shouldn't be receiving this anyway
case key_enter: break; // Shouldn't be receiving this anyway
case key_left: case key_word_left:
if(current_action) history.add(current_action), current_action.reset();
if(haveSelection && !select) {

Some files were not shown because too many files have changed in this diff Show More