Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
849aa01
Release build squashed
NQNStudios Jun 29, 2024
7d2f491
add as many custom scenarios as possible
NQNStudios Aug 1, 2025
7687c77
loading scen headers, skip parts of legacy load that may error
NQNStudios Aug 1, 2025
4f1d89e
Scenario picker handle names with first character numeric
NQNStudios Aug 1, 2025
ca230a9
use windows 2022 for release build
NQNStudios Aug 1, 2025
725520b
ignore quote at start of scen name alphabetical
NQNStudios Aug 2, 2025
fcd2af5
Include Bandit Busywork in custom scenarios section
NQNStudios Aug 2, 2025
44cdf16
New dialog presents a yes/no choice with alternate non-exclusive actions
NQNStudios Aug 2, 2025
9bc963a
updates to scen archive
NQNStudios Aug 2, 2025
abeb895
for legacy scenarios, help open readme or load prefab
NQNStudios Aug 2, 2025
ffea37a
blank out scen_name on legacy record if not in_scen
NQNStudios Aug 2, 2025
eb212d4
resize vector2d to have room for legacy load
NQNStudios Aug 2, 2025
b086cd2
bounds check when importing legacy journal entry
NQNStudios Aug 2, 2025
9ed4dd0
WIP fix loc_off_act_area
NQNStudios Aug 2, 2025
a1312e3
Allow create new or load party after selecting scenario
NQNStudios Aug 2, 2025
1136816
update scen archive
NQNStudios Aug 2, 2025
ba9e54c
Fix replaying scenario list with recursive scenario folder structure
NQNStudios Aug 3, 2025
d148577
Fix replay which loads a prefab
NQNStudios Aug 3, 2025
2011e57
reuse RenderTexture
NQNStudios Aug 3, 2025
e899df0
Fix walkway trims. Fix #136
NQNStudios Aug 3, 2025
9fb72cb
delete obsolete branch which caused unintended roads to draw
NQNStudios Aug 3, 2025
ef40b21
apply substitutions when calculating line wrapping
NQNStudios Aug 3, 2025
7cc8d5b
go to absurd lengths handling locales
NQNStudios Aug 3, 2025
f659d2f
guessed encodings
NQNStudios Aug 3, 2025
ae03eac
run trimming and decoding on more scenario strings
NQNStudios Aug 4, 2025
2a845a7
fix word highlighting where substitutions are used
NQNStudios Aug 4, 2025
b856332
Don't draw trims on top of characters in combat
NQNStudios Aug 4, 2025
13ee6c9
fix empty monsters in activate_groups()
NQNStudios Aug 4, 2025
3c7f2f2
handle MacRoman specially
NQNStudios Aug 4, 2025
90b8718
fix monster field infliction logic. Fix #765
NQNStudios Aug 4, 2025
997895d
big monsters don't take extra field damage from multiple of same
NQNStudios Aug 4, 2025
5bbd019
big monsters check whole footprint for safety. Fix #757
NQNStudios Aug 4, 2025
bb34334
more encodings
NQNStudios Aug 4, 2025
7bba161
highlight targetable squares with enemy/ally attitude. fix #779
NQNStudios Aug 4, 2025
4b12053
don't highlight invisible monster for targeting
NQNStudios Aug 4, 2025
5aada2c
frame friendlies/monsters during combat
NQNStudios Aug 4, 2025
0cd06c7
don't show misleading frame in targeting mode
NQNStudios Aug 4, 2025
761edf0
shrink talk text when it doesn't fit
NQNStudios Aug 4, 2025
faae4d4
update scen archive
NQNStudios Aug 4, 2025
0f9538c
make boats and horses exist in legacy scenarios
NQNStudios Aug 5, 2025
65b5039
remove redundant boat/horse initialization
NQNStudios Aug 5, 2025
df63388
combat highlighting handle big monsters
NQNStudios Aug 5, 2025
f2a45bd
better handling for out-of-sight ranged/boom anim
NQNStudios Aug 5, 2025
c703c85
shortcut to get all gold in reach
NQNStudios Aug 5, 2025
fc82595
fix party disappearing in huge town
NQNStudios Aug 6, 2025
4fb08da
Refactor minimap rendering and fix tiny town crash
NQNStudios Aug 6, 2025
b64f5fc
messy map tooltip demo
NQNStudios Aug 6, 2025
a5cc323
draw and give tooltips for more map features
NQNStudios Aug 6, 2025
0d3b939
fix place/edit special node tool
NQNStudios Aug 6, 2025
218caf1
record 2-string dialogs in one element
NQNStudios Aug 6, 2025
d17715f
combine 2-string dialog records into 1 element
NQNStudios Aug 6, 2025
23106c6
very messy support for recording 6-string dialog
NQNStudios Aug 6, 2025
ba8b893
TRANSPARENT->EMPTY makes it compile on Windows
NQNStudios Aug 6, 2025
8341bd4
better way of only showing known extent of area rectangle
NQNStudios Aug 7, 2025
18f1c3b
Tooltip text when party icon highlighted
NQNStudios Aug 7, 2025
660fdb5
specify vehicle.hpp directory
NQNStudios Aug 7, 2025
db293d3
add btnpanel sources to xcode12
NQNStudios Aug 7, 2025
72aafe9
fix loc_off_act_area for outdoors
NQNStudios Aug 9, 2025
dde1488
fix crash when out-of-bounds 'tile' hovered in minimap
NQNStudios Aug 9, 2025
32b9ce6
fix outdoor positioning of circle markers
NQNStudios Aug 9, 2025
e4ae1a7
fix hovering map features outdoors
NQNStudios Aug 9, 2025
e5c81f2
move is_sign to boe.locutils
NQNStudios Aug 9, 2025
28dbf97
don't tooltip or annotate hidden towns/junk sign locs
NQNStudios Aug 9, 2025
4f5645f
Clip big monster combat frame at window edge
NQNStudios Aug 9, 2025
edf7c28
targeting grid fix big monster handling
NQNStudios Aug 9, 2025
7ff5336
fix monsters rendering backwards? fix #785
NQNStudios Aug 9, 2025
87e0b45
feature flag keep doors easier in old scenarios
NQNStudios Aug 9, 2025
c41d71c
Fix a case of minimap area rect spoilers
NQNStudios Aug 9, 2025
5ac0fea
fix outdoor monster facing
NQNStudios Aug 9, 2025
c9c629c
fix outdoor custom monster facing
NQNStudios Aug 9, 2025
725c5d9
Get all gold don't steal without consequences
NQNStudios Aug 9, 2025
fc463df
Draw roads with brown dots. Fix #782
NQNStudios Aug 9, 2025
36c56f4
ignore uninitialized Rectangle 1-8
NQNStudios Aug 10, 2025
12db2a5
ignore empty encoding element
NQNStudios Aug 10, 2025
29fec09
fix grammar in special node description
NQNStudios Aug 11, 2025
f5200b6
When shifting to town entrance, show outdoor loc str
NQNStudios Aug 11, 2025
3b5ca50
starting with stairways, show more info in edit special list
NQNStudios Aug 11, 2025
bbbb59d
queue_special() return whether special was queued
NQNStudios Aug 11, 2025
def607d
town entry autosave wait for specials to run. fix #781
NQNStudios Aug 11, 2025
b64f2f4
add donor to credits
NQNStudios Jul 31, 2025
a60a39f
add name to funding list
NQNStudios Aug 15, 2025
26377b3
print success chance when fail breaking door or barrier
NQNStudios Aug 16, 2025
3808a82
has_class require_charges allow item w/ 0 max charges
NQNStudios Aug 16, 2025
6dfb49e
Fix rendering UTF-8 text
NQNStudios Aug 18, 2025
76d601d
substitutions no longer needed
NQNStudios Aug 18, 2025
a1a89d5
try allowing implicit fallthrough in xcode
NQNStudios Aug 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions .github/workflows/mac-universal.yml
Original file line number Diff line number Diff line change
@@ -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 changes: 131 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -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: 2022
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 changes: 28 additions & 0 deletions .github/workflows/scripts/butler_push.sh
Original file line number Diff line number Diff line change
@@ -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}
2 changes: 1 addition & 1 deletion .github/workflows/scripts/linux/install-tgui.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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...
27 changes: 27 additions & 0 deletions .github/workflows/scripts/mac/make-universal.sh
Original file line number Diff line number Diff line change
@@ -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/"
2 changes: 1 addition & 1 deletion .github/workflows/scripts/mac/scons-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 changes: 79 additions & 0 deletions .github/workflows/scripts/mac/sign-apps.sh
Original file line number Diff line number Diff line change
@@ -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"
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@
[submodule "deps/fix-rpaths"]
path = deps/fix-rpaths
url = https://gist.github.com/NQNStudios/7145bcf6621891f5176c8caa165d6b93
[submodule "rsrc/scenarios/custom"]
path = rsrc/scenarios/custom
url = https://github.com/NQNStudios/cboe-scenarios
9 changes: 9 additions & 0 deletions .itch.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[[actions]]
name = "Play"
path = "Blades of Exile.exe"
platform = "windows"

[[actions]]
name = "Play"
path = "Blades of Exile.app"
platform = "osx"
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ correct place to search. For example, if you installed Boost via Homebrew, you m
add something like the following to the Project Build Settings, under Linking->Other
Linking Flags:

-lboost_filesystem -lboost_system -L/usr/local/Cellar/boost/1.57.0/lib
-lboost_filesystem -lboost_system -lboost_locale -L/usr/local/Cellar/boost/1.57.0/lib

Again with Homebrew, you may also need to add the following to Apple LLVM Custom
Compiler Flags -> Other C++ Flags:
Expand Down
Loading
Loading