Merge branch 'develop-rando' into potsanity
2
.github/workflows/apt-deps.txt
vendored
@ -1 +1 @@
|
|||||||
libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev ninja-build
|
libusb-dev libusb-1.0-0-dev libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev ninja-build
|
||||||
|
263
.github/workflows/generate-builds.yml
vendored
@ -7,90 +7,116 @@ concurrency:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
jobs:
|
jobs:
|
||||||
generate-soh-otr:
|
generate-soh-otr:
|
||||||
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: ccache
|
- name: ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2.11
|
||||||
with:
|
with:
|
||||||
key: ${{ runner.os }}-soh-otr-ccache
|
key: ${{ runner.os }}-otr-ccache-${{ github.ref }}-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-otr-ccache-${{ github.ref }}
|
||||||
|
${{ runner.os }}-otr-ccache-
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
if: ${{ !vars.LINUX_RUNNER }}
|
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt)
|
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt)
|
||||||
|
- name: Cache build folders
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
key: ${{ runner.os }}-otr-build-${{ github.ref }}-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-otr-build-${{ github.ref }}
|
||||||
|
${{ runner.os }}-otr-build-
|
||||||
|
path: |
|
||||||
|
build-cmake
|
||||||
|
SDL2-2.28.5
|
||||||
- name: Install latest SDL
|
- name: Install latest SDL
|
||||||
if: ${{ !vars.LINUX_RUNNER }}
|
|
||||||
run: |
|
run: |
|
||||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
wget https://www.libsdl.org/release/SDL2-2.26.1.tar.gz
|
if [ ! -d "SDL2-2.28.5" ]; then
|
||||||
tar -xzf SDL2-2.26.1.tar.gz
|
wget https://www.libsdl.org/release/SDL2-2.28.5.tar.gz
|
||||||
cd SDL2-2.26.1
|
tar -xzf SDL2-2.28.5.tar.gz
|
||||||
./configure
|
fi
|
||||||
|
cd SDL2-2.28.5
|
||||||
|
./configure --enable-hidapi-libusb
|
||||||
make -j 10
|
make -j 10
|
||||||
sudo make install
|
sudo make install
|
||||||
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||||
|
- name: Install latest tinyxml2
|
||||||
|
run: |
|
||||||
|
sudo apt-get remove libtinyxml2-dev
|
||||||
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
|
if [ ! -d "tinyxml2-10.0.0" ]; then
|
||||||
|
wget https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz
|
||||||
|
tar -xzf 10.0.0.tar.gz
|
||||||
|
fi
|
||||||
|
cd tinyxml2-10.0.0
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
- name: Generate soh.otr
|
- name: Generate soh.otr
|
||||||
run: |
|
run: |
|
||||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release
|
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release
|
||||||
cmake --build build-cmake --config Release --target GenerateSohOtr
|
cmake --build build-cmake --config Release --target GenerateSohOtr
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: soh.otr
|
name: soh.otr
|
||||||
path: soh.otr
|
path: soh.otr
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
build-macos:
|
build-macos:
|
||||||
needs: generate-soh-otr
|
needs: generate-soh-otr
|
||||||
runs-on: ${{ (vars.MAC_RUNNER && fromJSON(vars.MAC_RUNNER)) || 'macos-12' }}
|
runs-on: macos-14
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: ccache
|
- name: ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2.13
|
||||||
with:
|
with:
|
||||||
key: ${{ runner.os }}-ccache
|
create-symlink: true
|
||||||
|
key: ${{ runner.os }}-14-ccache-${{ github.ref }}-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-14-ccache-${{ github.ref }}
|
||||||
|
${{ runner.os }}-14-ccache-
|
||||||
- name: Install gtar wrapper
|
- name: Install gtar wrapper
|
||||||
if: ${{ !vars.MAC_RUNNER }}
|
|
||||||
run: |
|
run: |
|
||||||
sudo mv /usr/local/bin/gtar /usr/local/bin/gtar.orig
|
sudo mv /opt/homebrew/bin/gtar /opt/homebrew/bin/gtar.orig
|
||||||
sudo cp .github/workflows//gtar /usr/local/bin/gtar
|
sudo cp .github/workflows//gtar /opt/homebrew/bin/gtar
|
||||||
sudo chmod +x /usr/local/bin/gtar
|
sudo chmod +x /opt/homebrew/bin/gtar
|
||||||
- name: Cache MacPorts
|
- name: Cache MacPorts
|
||||||
id: cache-macports
|
id: cache-macports
|
||||||
if: ${{ !vars.MAC_RUNNER }}
|
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
path: /opt/local/
|
path: /opt/local/
|
||||||
key: ${{ runner.os }}-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }}
|
key: ${{ runner.os }}-14-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-macports-
|
${{ runner.os }}-14-macports-
|
||||||
- name: Install MacPorts (if necessary)
|
- name: Install MacPorts (if necessary)
|
||||||
if: ${{ !vars.MAC_RUNNER }}
|
|
||||||
run: |
|
run: |
|
||||||
if [ -d /opt/local/ ]; then
|
if [ -d /opt/local/ ]; then
|
||||||
echo "MacPorts already installed"
|
echo "MacPorts already installed"
|
||||||
else
|
else
|
||||||
wget https://github.com/macports/macports-base/releases/download/v2.7.2/MacPorts-2.7.2-12-Monterey.pkg
|
wget https://github.com/macports/macports-base/releases/download/v2.9.3/MacPorts-2.9.3-14-Sonoma.pkg
|
||||||
sudo installer -pkg ./MacPorts-2.7.2-12-Monterey.pkg -target /
|
sudo installer -pkg ./MacPorts-2.9.3-14-Sonoma.pkg -target /
|
||||||
fi
|
fi
|
||||||
echo "/opt/local/bin:/opt/local/sbin" >> $GITHUB_PATH
|
echo "/opt/local/bin:/opt/local/sbin" >> $GITHUB_PATH
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
if: ${{ !vars.MAC_RUNNER }}
|
|
||||||
run: |
|
run: |
|
||||||
brew uninstall --ignore-dependencies libpng
|
brew uninstall --ignore-dependencies libpng
|
||||||
sudo port install $(cat .github/workflows/macports-deps.txt)
|
sudo port install $(cat .github/workflows/macports-deps.txt)
|
||||||
brew install ninja
|
brew install ninja
|
||||||
- name: Download soh.otr
|
- name: Download soh.otr
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: soh.otr
|
name: soh.otr
|
||||||
- name: Build SoH
|
- name: Build SoH
|
||||||
run: |
|
run: |
|
||||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
|
||||||
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DBUILD_REMOTE_CONTROL=1
|
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DBUILD_REMOTE_CONTROL=1
|
||||||
cmake --build build-cmake --config Release --parallel 10
|
cmake --build build-cmake --config Release --parallel 10
|
||||||
mv soh.otr build-cmake/soh
|
mv soh.otr build-cmake/soh
|
||||||
@ -99,7 +125,7 @@ jobs:
|
|||||||
mv _packages/*.dmg SoH.dmg
|
mv _packages/*.dmg SoH.dmg
|
||||||
mv README.md readme.txt
|
mv README.md readme.txt
|
||||||
- name: Upload build
|
- name: Upload build
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: soh-mac
|
name: soh-mac
|
||||||
path: |
|
path: |
|
||||||
@ -107,54 +133,72 @@ jobs:
|
|||||||
readme.txt
|
readme.txt
|
||||||
build-linux:
|
build-linux:
|
||||||
needs: generate-soh-otr
|
needs: generate-soh-otr
|
||||||
strategy:
|
runs-on: ubuntu-22.04
|
||||||
fail-fast: true
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: ubuntu-20.04
|
|
||||||
gcc: 10
|
|
||||||
archive-suffix: compatibility
|
|
||||||
- os: ubuntu-22.04
|
|
||||||
gcc: 12
|
|
||||||
archive-suffix: performance
|
|
||||||
runs-on: ${{ (matrix.os == 'ubuntu-20.04' && ((vars.LINUX_COMPATIBILITY_RUNNER && fromJSON(vars.LINUX_COMPATIBILITY_RUNNER)) || matrix.os)) || (matrix.os == 'ubuntu-22.04' && ((vars.LINUX_PERFORMANCE_RUNNER && fromJSON(vars.LINUX_PERFORMANCE_RUNNER)) || matrix.os)) }}
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
|
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt)
|
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt)
|
||||||
- name: ccache
|
- name: ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2.11
|
||||||
with:
|
with:
|
||||||
key: ${{ matrix.os }}-ccache
|
key: linux-ccache-${{ github.ref }}-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
linux-ccache-${{ github.ref }}
|
||||||
|
linux-ccache-
|
||||||
|
- name: Cache build folders
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
key: linux-build-${{ github.ref }}-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
linux-build-${{ github.ref }}
|
||||||
|
linux-build-
|
||||||
|
path: |
|
||||||
|
SDL2-2.28.5
|
||||||
|
SDL2_net-2.2.0
|
||||||
- name: Install latest SDL
|
- name: Install latest SDL
|
||||||
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
|
|
||||||
run: |
|
run: |
|
||||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
wget https://www.libsdl.org/release/SDL2-2.26.1.tar.gz
|
if [ ! -d "SDL2-2.28.5" ]; then
|
||||||
tar -xzf SDL2-2.26.1.tar.gz
|
wget https://www.libsdl.org/release/SDL2-2.28.5.tar.gz
|
||||||
cd SDL2-2.26.1
|
tar -xzf SDL2-2.28.5.tar.gz
|
||||||
./configure
|
fi
|
||||||
|
cd SDL2-2.28.5
|
||||||
|
./configure --enable-hidapi-libusb
|
||||||
make -j 10
|
make -j 10
|
||||||
sudo make install
|
sudo make install
|
||||||
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||||
|
- name: Install latest tinyxml2
|
||||||
|
run: |
|
||||||
|
sudo apt-get remove libtinyxml2-dev
|
||||||
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
|
if [ ! -d "tinyxml2-10.0.0" ]; then
|
||||||
|
wget https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz
|
||||||
|
tar -xzf 10.0.0.tar.gz
|
||||||
|
fi
|
||||||
|
cd tinyxml2-10.0.0
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
- name: Install latest SDL_net
|
- name: Install latest SDL_net
|
||||||
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
|
|
||||||
run: |
|
run: |
|
||||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
wget https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.2.0.tar.gz
|
if [ ! -d "SDL2_net-2.2.0" ]; then
|
||||||
tar -xzf SDL2_net-2.2.0.tar.gz
|
wget https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.2.0.tar.gz
|
||||||
|
tar -xzf SDL2_net-2.2.0.tar.gz
|
||||||
|
fi
|
||||||
cd SDL2_net-2.2.0
|
cd SDL2_net-2.2.0
|
||||||
./configure
|
./configure
|
||||||
make -j 10
|
make -j 10
|
||||||
sudo make install
|
sudo make install
|
||||||
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||||
- name: Download soh.otr
|
- name: Download soh.otr
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: soh.otr
|
name: soh.otr
|
||||||
- name: Build SoH
|
- name: Build SoH
|
||||||
@ -167,96 +211,15 @@ jobs:
|
|||||||
mv README.md readme.txt
|
mv README.md readme.txt
|
||||||
mv build-cmake/*.appimage soh.appimage
|
mv build-cmake/*.appimage soh.appimage
|
||||||
env:
|
env:
|
||||||
CC: gcc-${{ matrix.gcc }}
|
CC: gcc-12
|
||||||
CXX: g++-${{ matrix.gcc }}
|
CXX: g++-12
|
||||||
- name: Upload build
|
- name: Upload build
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: soh-linux-${{ matrix.archive-suffix }}
|
name: soh-linux
|
||||||
path: |
|
path: |
|
||||||
soh.appimage
|
soh.appimage
|
||||||
readme.txt
|
readme.txt
|
||||||
build-switch:
|
|
||||||
needs: generate-soh-otr
|
|
||||||
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
|
|
||||||
container:
|
|
||||||
image: devkitpro/devkita64:latest
|
|
||||||
steps:
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y ninja-build
|
|
||||||
- name: Fix dubious ownership error
|
|
||||||
if: ${{ vars.LINUX_RUNNER }}
|
|
||||||
run: git config --global --add safe.directory '*'
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
- name: ccache
|
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
|
||||||
with:
|
|
||||||
key: ${{ runner.os }}-switch-ccache
|
|
||||||
- name: Build SoH
|
|
||||||
run: |
|
|
||||||
cmake -H. -Bbuild-switch -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/Switch.cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache
|
|
||||||
cmake --build build-switch --target soh_nro -j3
|
|
||||||
|
|
||||||
mv build-switch/soh/*.nro soh.nro
|
|
||||||
mv README.md readme.txt
|
|
||||||
- name: Download soh.otr
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: soh.otr
|
|
||||||
- name: Upload build
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: soh-switch
|
|
||||||
path: |
|
|
||||||
soh.nro
|
|
||||||
soh.otr
|
|
||||||
readme.txt
|
|
||||||
build-wiiu:
|
|
||||||
needs: generate-soh-otr
|
|
||||||
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
|
|
||||||
container:
|
|
||||||
image: devkitpro/devkitppc:20230110
|
|
||||||
steps:
|
|
||||||
- name: Install dependencies
|
|
||||||
if: ${{ !vars.LINUX_RUNNER }}
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y ninja-build
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
- name: ccache
|
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
|
||||||
with:
|
|
||||||
key: ${{ runner.os }}-wiiu-ccache
|
|
||||||
- name: Build SoH
|
|
||||||
run: |
|
|
||||||
cmake -H. -Bbuild-wiiu -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/WiiU.cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache
|
|
||||||
cmake --build build-wiiu --target soh_wuhb --config Release -j3
|
|
||||||
|
|
||||||
mv build-wiiu/soh/*.rpx soh.rpx
|
|
||||||
mv build-wiiu/soh/*.wuhb soh.wuhb
|
|
||||||
mv README.md readme.txt
|
|
||||||
env:
|
|
||||||
DEVKITPRO: /opt/devkitpro
|
|
||||||
DEVKITPPC: /opt/devkitpro/devkitPPC
|
|
||||||
- name: Download soh.otr
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: soh.otr
|
|
||||||
- name: Upload build
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: soh-wiiu
|
|
||||||
path: |
|
|
||||||
soh.rpx
|
|
||||||
soh.wuhb
|
|
||||||
soh.otr
|
|
||||||
readme.txt
|
|
||||||
build-windows:
|
build-windows:
|
||||||
needs: generate-soh-otr
|
needs: generate-soh-otr
|
||||||
runs-on: ${{ (vars.WINDOWS_RUNNER && fromJSON(vars.WINDOWS_RUNNER)) || 'windows-latest' }}
|
runs-on: ${{ (vars.WINDOWS_RUNNER && fromJSON(vars.WINDOWS_RUNNER)) || 'windows-latest' }}
|
||||||
@ -270,15 +233,25 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: ccache
|
- name: ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2.11
|
||||||
with:
|
with:
|
||||||
key: ${{ runner.os }}-ccache
|
variant: sccache
|
||||||
- name: vcpkg
|
max-size: "1G"
|
||||||
uses: johnwason/vcpkg-action@v5
|
key: ${{ runner.os }}-ccache-${{ github.ref }}-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-ccache-${{ github.ref }}
|
||||||
|
${{ runner.os }}-ccache-
|
||||||
|
- name: Cache build folder
|
||||||
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
pkgs: zlib bzip2 libpng sdl2 sdl2-net glew glfw3
|
save-always: true
|
||||||
token: ${{ github.token }}
|
key: ${{ runner.os }}-build-${{ github.ref }}-${{ github.sha }}
|
||||||
triplet: 'x64-windows-static'
|
restore-keys: |
|
||||||
|
${{ runner.os }}-build-${{ github.ref }}
|
||||||
|
${{ runner.os }}-build-
|
||||||
|
path: |
|
||||||
|
build-windows
|
||||||
|
vcpkg
|
||||||
- name: Configure Developer Command Prompt
|
- name: Configure Developer Command Prompt
|
||||||
uses: ilammy/msvc-dev-cmd@v1
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
- name: Build SoH
|
- name: Build SoH
|
||||||
@ -286,7 +259,7 @@ jobs:
|
|||||||
VCPKG_ROOT: ${{github.workspace}}/vcpkg
|
VCPKG_ROOT: ${{github.workspace}}/vcpkg
|
||||||
run: |
|
run: |
|
||||||
set $env:PATH="$env:USERPROFILE/.cargo/bin;$env:PATH"
|
set $env:PATH="$env:USERPROFILE/.cargo/bin;$env:PATH"
|
||||||
cmake -S . -B build-windows -G Ninja -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DBUILD_REMOTE_CONTROL=1
|
cmake -S . -B build-windows -G Ninja -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DBUILD_REMOTE_CONTROL=1
|
||||||
cmake --build build-windows --config Release --parallel 10
|
cmake --build build-windows --config Release --parallel 10
|
||||||
|
|
||||||
mkdir soh-windows
|
mkdir soh-windows
|
||||||
@ -299,12 +272,12 @@ jobs:
|
|||||||
mv ./build-windows/gamecontrollerdb.txt ./soh-windows/gamecontrollerdb.txt
|
mv ./build-windows/gamecontrollerdb.txt ./soh-windows/gamecontrollerdb.txt
|
||||||
mv ./x64/Release/assets ./soh-windows
|
mv ./x64/Release/assets ./soh-windows
|
||||||
- name: Download soh.otr
|
- name: Download soh.otr
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: soh.otr
|
name: soh.otr
|
||||||
path: soh-windows
|
path: soh-windows
|
||||||
- name: Upload build
|
- name: Upload build
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: soh-windows
|
name: soh-windows
|
||||||
path: soh-windows
|
path: soh-windows
|
||||||
|
2
.github/workflows/gtar
vendored
@ -1,2 +1,2 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
exec sudo /usr/local/bin/gtar.orig "$@"
|
exec sudo /opt/homebrew/bin/gtar.orig "$@"
|
||||||
|
2
.github/workflows/macports-deps.txt
vendored
@ -1 +1 @@
|
|||||||
libsdl2 +universal libsdl2_net +universal libpng +universal glew +universal
|
libsdl2 +universal libsdl2_net +universal libpng +universal glew +universal libzip +universal nlohmann-json +universal tinyxml2 +universal
|
72
.github/workflows/test-builds-on-distros.yml
vendored
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
name: test-builds-on-distros
|
||||||
|
on:
|
||||||
|
workflow_dispatch: # by request
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
image: ["archlinux:base", "opensuse/tumbleweed:latest", "ubuntu:mantic", "debian:bookworm", "fedora:39"]
|
||||||
|
cc: ["gcc", "clang"]
|
||||||
|
include:
|
||||||
|
- cxx: g++
|
||||||
|
cc: gcc
|
||||||
|
- cxx: clang++
|
||||||
|
cc: clang
|
||||||
|
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
|
||||||
|
container:
|
||||||
|
image: ${{ matrix.image }}
|
||||||
|
steps:
|
||||||
|
- name: Install dependencies (pacman)
|
||||||
|
if: ${{ matrix.image == 'archlinux:base' }}
|
||||||
|
run: |
|
||||||
|
echo arch
|
||||||
|
echo pacman -S ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
|
||||||
|
pacman -Syu --noconfirm
|
||||||
|
pacman -S --noconfirm ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
|
||||||
|
- name: Install dependencies (dnf)
|
||||||
|
if: ${{ matrix.image == 'fedora:39' }}
|
||||||
|
run: |
|
||||||
|
echo fedora
|
||||||
|
echo dnf install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel boost-devel
|
||||||
|
dnf -y upgrade
|
||||||
|
dnf -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel boost-devel
|
||||||
|
- name: Install dependencies (apt)
|
||||||
|
if: ${{ matrix.image == 'ubuntu:mantic' || matrix.image == 'debian:bookworm' }}
|
||||||
|
run: |
|
||||||
|
echo debian based
|
||||||
|
echo apt-get install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
|
||||||
|
apt-get update
|
||||||
|
apt-get -y full-upgrade
|
||||||
|
apt-get -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
|
||||||
|
- name: Install dependencies (zypper)
|
||||||
|
if: ${{ matrix.image == 'opensuse/tumbleweed:latest' }}
|
||||||
|
run: |
|
||||||
|
echo openSUSE
|
||||||
|
echo zypper in ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} ${{ matrix.cc == 'clang' && 'libstdc++-devel' || '' }} git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
|
||||||
|
zypper --non-interactive dup
|
||||||
|
zypper --non-interactive in ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} ${{ matrix.cc == 'clang' && 'libstdc++-devel' || '' }} git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
|
||||||
|
- name: Install latest nlohmann
|
||||||
|
if: ${{ matrix.image == 'fedora:39' }}
|
||||||
|
run: |
|
||||||
|
wget https://github.com/nlohmann/json/archive/refs/tags/v3.11.3.tar.gz
|
||||||
|
tar -xzvf v3.11.3.tar.gz
|
||||||
|
cd json-3.11.3
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
- name: Build SoH
|
||||||
|
run: |
|
||||||
|
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||||
|
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_REMOTE_CONTROL=1
|
||||||
|
cmake --build build-cmake --config Release -j3
|
||||||
|
env:
|
||||||
|
CC: ${{ matrix.cc }}
|
||||||
|
CXX: ${{ matrix.cxx }}
|
2
.gitignore
vendored
@ -448,5 +448,5 @@ _packages
|
|||||||
*/extract_assets_cmake*
|
*/extract_assets_cmake*
|
||||||
/build*
|
/build*
|
||||||
|
|
||||||
soh/build.c
|
soh/src/boot/build.c
|
||||||
soh/properties.h
|
soh/properties.h
|
||||||
|
@ -8,5 +8,9 @@ if(MSVC)
|
|||||||
|
|
||||||
set_target_properties("${PROPS_TARGET}" PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
set_target_properties("${PROPS_TARGET}" PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
||||||
set_config_specific_property("DEFAULT_CXX_EXCEPTION_HANDLING" "/EHsc")
|
set_config_specific_property("DEFAULT_CXX_EXCEPTION_HANDLING" "/EHsc")
|
||||||
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Zi")
|
if (CMAKE_C_COMPILER_LAUNCHER MATCHES "ccache|sccache")
|
||||||
|
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Z7")
|
||||||
|
else()
|
||||||
|
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Zi")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
23
CMake/lus-cvars.cmake
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
set(CVAR_VSYNC_ENABLED "${CVAR_PREFIX_SETTING}.VsyncEnabled" CACHE STRING "")
|
||||||
|
set(CVAR_Z_FIGHTING_MODE "${CVAR_PREFIX_SETTING}.ZFightingMode" CACHE STRING "")
|
||||||
|
set(CVAR_NEW_FILE_DROPPED "${CVAR_PREFIX_GENERAL}.NewFileDropped" CACHE STRING "")
|
||||||
|
set(CVAR_DROPPED_FILE "${CVAR_PREFIX_GENERAL}.DroppedFile" CACHE STRING "")
|
||||||
|
set(CVAR_INTERNAL_RESOLUTION "${CVAR_PREFIX_SETTING}.InternalResolution" CACHE STRING "")
|
||||||
|
set(CVAR_MSAA_VALUE "${CVAR_PREFIX_SETTING}.MSAAValue" CACHE STRING "")
|
||||||
|
set(CVAR_SDL_WINDOWED_FULLSCREEN "${CVAR_PREFIX_SETTING}.SdlWindowedFullscreen" CACHE STRING "")
|
||||||
|
set(CVAR_TEXTURE_FILTER "${CVAR_PREFIX_SETTING}.TextureFilter" CACHE STRING "")
|
||||||
|
set(CVAR_IMGUI_CONTROLLER_NAV "${CVAR_PREFIX_SETTING}.ControlNav" CACHE STRING "")
|
||||||
|
set(CVAR_CONSOLE_WINDOW_OPEN "${CVAR_PREFIX_WINDOW}.Console" CACHE STRING "")
|
||||||
|
set(CVAR_CONTROLLER_CONFIGURATION_WINDOW_OPEN "${CVAR_PREFIX_WINDOW}.ControllerConfiguration" CACHE STRING "")
|
||||||
|
set(CVAR_CONTROLLER_DISCONNECTED_WINDOW_OPEN "${CVAR_PREFIX_WINDOW}.ControllerDisconnected" CACHE STRING "")
|
||||||
|
set(CVAR_CONTROLLER_REORDERING_WINDOW_OPEN "${CVAR_PREFIX_WINDOW}.ControllerReordering" CACHE STRING "")
|
||||||
|
set(CVAR_GFX_DEBUGGER_WINDOW_OPEN "${CVAR_PREFIX_WINDOW}.GfxDebugger" CACHE STRING "")
|
||||||
|
set(CVAR_STATS_WINDOW_OPEN "${CVAR_PREFIX_WINDOW}.Stats" CACHE STRING "")
|
||||||
|
set(CVAR_ENABLE_MULTI_VIEWPORTS "${CVAR_PREFIX_SETTING}.EnableMultiViewports" CACHE STRING "")
|
||||||
|
set(CVAR_LOW_RES_MODE "${CVAR_PREFIX_SETTING}.LowResMode" CACHE STRING "")
|
||||||
|
set(CVAR_SIMULATED_INPUT_LAG "${CVAR_PREFIX_SETTING}.SimulatedInputLag" CACHE STRING "")
|
||||||
|
set(CVAR_GAME_OVERLAY_FONT "${CVAR_PREFIX_SETTING}.OverlayFont" CACHE STRING "")
|
||||||
|
set(CVAR_MENU_BAR_OPEN "${CVAR_PREFIX_SETTING}.OpenMenuBar" CACHE STRING "")
|
||||||
|
set(CVAR_PREFIX_CONTROLLERS "${CVAR_PREFIX_SETTING}.Controllers" CACHE STRING "")
|
||||||
|
set(CVAR_PREFIX_ADVANCED_RESOLUTION "${CVAR_PREFIX_SETTING}.AdvancedResolution" CACHE STRING "")
|
||||||
|
include("libultraship/cmake/cvars.cmake")
|
26
CMake/soh-cvars.cmake
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
set(CVAR_PREFIX_RANDOMIZER_ENHANCEMENT "gRandoEnhancements")
|
||||||
|
set(CVAR_PREFIX_RANDOMIZER_SETTING "gRandoSettings")
|
||||||
|
set(CVAR_PREFIX_COSMETIC "gCosmetics")
|
||||||
|
set(CVAR_PREFIX_AUDIO "gAudioEditor")
|
||||||
|
set(CVAR_PREFIX_CHEAT "gCheats")
|
||||||
|
set(CVAR_PREFIX_ENHANCEMENT "gEnhancements")
|
||||||
|
set(CVAR_PREFIX_SETTING "gSettings")
|
||||||
|
set(CVAR_PREFIX_WINDOW "gOpenWindows")
|
||||||
|
set(CVAR_PREFIX_TRACKER "gTrackers")
|
||||||
|
set(CVAR_PREFIX_DEVELOPER_TOOLS "gDeveloperTools")
|
||||||
|
set(CVAR_PREFIX_GENERAL "gGeneral")
|
||||||
|
set(CVAR_PREFIX_REMOTE "gRemote")
|
||||||
|
add_compile_definitions(
|
||||||
|
CVAR_PREFIX_RANDOMIZER_ENHANCEMENT="${CVAR_PREFIX_RANDOMIZER_ENHANCEMENT}"
|
||||||
|
CVAR_PREFIX_RANDOMIZER_SETTING="${CVAR_PREFIX_RANDOMIZER_SETTING}"
|
||||||
|
CVAR_PREFIX_COSMETIC="${CVAR_PREFIX_COSMETIC}"
|
||||||
|
CVAR_PREFIX_AUDIO="${CVAR_PREFIX_AUDIO}"
|
||||||
|
CVAR_PREFIX_CHEAT="${CVAR_PREFIX_CHEAT}"
|
||||||
|
CVAR_PREFIX_ENHANCEMENT="${CVAR_PREFIX_ENHANCEMENT}"
|
||||||
|
CVAR_PREFIX_SETTING="${CVAR_PREFIX_SETTING}"
|
||||||
|
CVAR_PREFIX_WINDOW="${CVAR_PREFIX_WINDOW}"
|
||||||
|
CVAR_PREFIX_TRACKER="${CVAR_PREFIX_TRACKER}"
|
||||||
|
CVAR_PREFIX_DEVELOPER_TOOLS="${CVAR_PREFIX_DEVELOPER_TOOLS}"
|
||||||
|
CVAR_PREFIX_GENERAL="${CVAR_PREFIX_GENERAL}"
|
||||||
|
CVAR_PREFIX_REMOTE="${CVAR_PREFIX_REMOTE}"
|
||||||
|
)
|
@ -5,22 +5,28 @@ set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use")
|
|||||||
|
|
||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
|
||||||
|
|
||||||
project(Ship VERSION 8.0.4 LANGUAGES C CXX)
|
project(Ship VERSION 8.0.6 LANGUAGES C CXX)
|
||||||
set(PROJECT_BUILD_NAME "MacReady Echo" CACHE STRING "")
|
include(CMake/soh-cvars.cmake)
|
||||||
set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "")
|
include(CMake/lus-cvars.cmake)
|
||||||
|
set(PROJECT_BUILD_NAME "MacReady Golf" CACHE STRING "" FORCE)
|
||||||
|
set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT soh)
|
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT soh)
|
||||||
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)
|
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)
|
||||||
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/utf-8>)
|
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/utf-8>)
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||||
include(CMake/automate-vcpkg.cmake)
|
include(CMake/automate-vcpkg.cmake)
|
||||||
|
|
||||||
set(VCPKG_TRIPLET x64-windows-static)
|
set(VCPKG_TRIPLET x64-windows-static)
|
||||||
set(VCPKG_TARGET_TRIPLET x64-windows-static)
|
set(VCPKG_TARGET_TRIPLET x64-windows-static)
|
||||||
|
|
||||||
vcpkg_bootstrap()
|
vcpkg_bootstrap()
|
||||||
vcpkg_install_packages(zlib bzip2 libpng sdl2 sdl2-net glew glfw3)
|
vcpkg_install_packages(zlib bzip2 libzip libpng sdl2 sdl2-net glew glfw3 nlohmann-json tinyxml2 spdlog)
|
||||||
|
|
||||||
|
if (CMAKE_C_COMPILER_LAUNCHER MATCHES "ccache|sccache")
|
||||||
|
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT Embedded)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -78,6 +84,12 @@ include(CMake/GlobalSettingsInclude.cmake OPTIONAL)
|
|||||||
################################################################################
|
################################################################################
|
||||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Set GBI version
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
set(GBI_UCODE F3DEX_GBI_2)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Sub-projects
|
# Sub-projects
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 04b85b95fab07a394b62dcd28a502a3040f08e0c
|
Subproject commit 2cfdb3960900ba059f570b2ded2fed3494a96a9b
|
@ -91,10 +91,7 @@ If you want to playtest a continuous integration build, you can find them at the
|
|||||||
|
|
||||||
* [Windows](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-windows.zip)
|
* [Windows](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-windows.zip)
|
||||||
* [macOS](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-mac.zip)
|
* [macOS](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-mac.zip)
|
||||||
* [Linux (performance)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-performance.zip) _(requires `glibc 2.35` or newer, but will be more performant than the compatibility build.)_
|
* [Linux](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux.zip)
|
||||||
* [Linux (compatibility)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-compatiblity.zip) _(compatible with most Linux distributions, but may not be as performant as the performance build.)_
|
|
||||||
* [Switch](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-switch.zip)
|
|
||||||
* [Wii U](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-wiiu.zip)
|
|
||||||
|
|
||||||
<a href="https://github.com/Kenix3/libultraship/">
|
<a href="https://github.com/Kenix3/libultraship/">
|
||||||
<picture>
|
<picture>
|
||||||
|
2
ZAPDTR
@ -1 +1 @@
|
|||||||
Subproject commit eff29036118349e142ee8efca80fd975a2a2b6ff
|
Subproject commit 04d42249d2c15c3b442a0282a90bc8b7bda25b03
|
@ -84,41 +84,66 @@ cd "build/x64"
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Linux
|
## Linux
|
||||||
Requires `gcc >= 10, x11, curl, python3, sdl2 >= 2.0.22, libpng, glew >= 2.2, ninja, cmake, lld, pulseaudio-libs`
|
### Install dependencies
|
||||||
|
#### Debian/Ubuntu
|
||||||
|
```sh
|
||||||
|
# using gcc
|
||||||
|
apt-get install gcc g++ git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
|
||||||
|
|
||||||
**Important: For maximum performance make sure you have ninja build tools installed!**
|
# or using clang
|
||||||
|
apt-get install clang git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
|
||||||
|
```
|
||||||
|
#### Arch
|
||||||
|
```sh
|
||||||
|
# using gcc
|
||||||
|
pacman -S gcc git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
|
||||||
|
|
||||||
_Note: If you're using Visual Studio Code, the [cpack plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
|
# or using clang
|
||||||
|
pacman -S clang git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
|
||||||
|
```
|
||||||
|
#### Fedora
|
||||||
|
```sh
|
||||||
|
# using gcc
|
||||||
|
dnf install gcc gcc-c++ git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel boost-devel
|
||||||
|
|
||||||
|
# or using clang
|
||||||
|
dnf install clang git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel boost-devel
|
||||||
|
```
|
||||||
|
#### openSUSE
|
||||||
|
```sh
|
||||||
|
# using gcc
|
||||||
|
zypper in gcc gcc-c++ git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
|
||||||
|
|
||||||
|
# or using clang
|
||||||
|
zypper in clang libstdc++-devel git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
|
||||||
|
```
|
||||||
|
|
||||||
|
### Build
|
||||||
|
|
||||||
|
_Note: If you're using Visual Studio Code, the [CMake Tools plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Clone the repo
|
# Clone the repo and enter the directory
|
||||||
git clone https://github.com/HarbourMasters/Shipwright.git
|
git clone https://github.com/HarbourMasters/Shipwright.git
|
||||||
cd Shipwright
|
cd Shipwright
|
||||||
# Clone the submodule libultraship
|
|
||||||
|
# Clone the submodules
|
||||||
git submodule update --init
|
git submodule update --init
|
||||||
# Copy the baserom to the OTRExporter folder
|
|
||||||
cp <path to your ROM> OTRExporter
|
|
||||||
# Generate Ninja project
|
# Generate Ninja project
|
||||||
cmake -H. -Bbuild-cmake -GNinja # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging) -DPython3_EXECUTABLE=$(which python3) (if you are using non-standard Python installations such as PyEnv)
|
cmake -H. -Bbuild-cmake -GNinja # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging) -DPython3_EXECUTABLE=$(which python3) (if you are using non-standard Python installations such as PyEnv)
|
||||||
# Extract assets & generate OTR (run this anytime you need to regenerate OTR)
|
|
||||||
cmake --build build-cmake --target ExtractAssets
|
# Generate soh.otr
|
||||||
|
cmake --build build-cmake --target GenerateSohOtr
|
||||||
|
|
||||||
# Compile the project
|
# Compile the project
|
||||||
cmake --build build-cmake # --config Release (if you're packaging)
|
cmake --build build-cmake # --config Release (if you're packaging)
|
||||||
|
|
||||||
# Now you can run the executable in ./build-cmake/soh/soh.elf
|
# Now you can run the executable in ./build-cmake/soh/soh.elf
|
||||||
# To develop the project open the repository in VSCode (or your preferred editor)
|
# To develop the project open the repository in VSCode (or your preferred editor)
|
||||||
|
|
||||||
# If you need to clean the project you can run
|
|
||||||
cmake --build build-cmake --target clean
|
|
||||||
|
|
||||||
# If you need to regenerate the asset headers to check them into source
|
|
||||||
cmake --build build-cmake --target ExtractAssetHeaders
|
|
||||||
|
|
||||||
# If you need a newer soh.otr only
|
|
||||||
cmake --build build-cmake --target GenerateSohOtr
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Generating a distributable
|
### Generate a distributable
|
||||||
After compiling the project you can generate a distributable by running of the following:
|
After compiling the project you can generate a distributable by running of the following:
|
||||||
```bash
|
```bash
|
||||||
# Go to build folder
|
# Go to build folder
|
||||||
@ -129,6 +154,20 @@ cpack -G ZIP
|
|||||||
cpack -G External (creates appimage)
|
cpack -G External (creates appimage)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Additional CMake Targets
|
||||||
|
#### Clean
|
||||||
|
```bash
|
||||||
|
# If you need to clean the project you can run
|
||||||
|
cmake --build build-cmake --target clean
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Regenerate Asset Headers
|
||||||
|
```bash
|
||||||
|
# If you need to regenerate the asset headers to check them into source
|
||||||
|
cp <path to your ROM> OTRExporter
|
||||||
|
cmake --build build-cmake --target ExtractAssetHeaders
|
||||||
|
```
|
||||||
|
|
||||||
## macOS
|
## macOS
|
||||||
Requires Xcode (or xcode-tools) && `sdl2, libpng, glew, ninja, cmake` (can be installed via homebrew, macports, etc)
|
Requires Xcode (or xcode-tools) && `sdl2, libpng, glew, ninja, cmake` (can be installed via homebrew, macports, etc)
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 15d57d806e39d7f19783e26acc1a062d402169c7
|
Subproject commit 31e9b009f94e7074a847c7954926cba354cd7c72
|
@ -8,5 +8,9 @@ if(MSVC)
|
|||||||
|
|
||||||
set_target_properties("${PROPS_TARGET}" PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
set_target_properties("${PROPS_TARGET}" PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
||||||
set_config_specific_property("DEFAULT_CXX_EXCEPTION_HANDLING" "/EHsc")
|
set_config_specific_property("DEFAULT_CXX_EXCEPTION_HANDLING" "/EHsc")
|
||||||
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Zi")
|
if (CMAKE_C_COMPILER_LAUNCHER MATCHES "ccache|sccache")
|
||||||
|
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Z7")
|
||||||
|
else()
|
||||||
|
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Zi")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
@ -92,10 +92,6 @@ if (NOT TARGET libultraship)
|
|||||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libultraship ${CMAKE_BINARY_DIR}/libultraship)
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libultraship ${CMAKE_BINARY_DIR}/libultraship)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT TARGET ZAPDUtils)
|
|
||||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPDUtils ${CMAKE_BINARY_DIR}/ZAPDUtils)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT TARGET ZAPDLib)
|
if (NOT TARGET ZAPDLib)
|
||||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPD ${CMAKE_BINARY_DIR}/ZAPD)
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPD ${CMAKE_BINARY_DIR}/ZAPD)
|
||||||
endif()
|
endif()
|
||||||
@ -105,8 +101,8 @@ set(PROJECT_NAME soh)
|
|||||||
################################################################################
|
################################################################################
|
||||||
# Sources
|
# Sources
|
||||||
################################################################################
|
################################################################################
|
||||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/boot/build.c.in ${CMAKE_BINARY_DIR}/build.c @ONLY)
|
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/boot/build.c.in ${CMAKE_CURRENT_SOURCE_DIR}/src/boot/build.c @ONLY)
|
||||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/boot/properties.h.in ${CMAKE_CURRENT_SOURCE_DIR}/properties.h @ONLY)
|
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/properties.h.in ${CMAKE_CURRENT_SOURCE_DIR}/properties.h @ONLY)
|
||||||
|
|
||||||
set(Header_Files "resource.h")
|
set(Header_Files "resource.h")
|
||||||
source_group("headers" FILES ${Header_Files})
|
source_group("headers" FILES ${Header_Files})
|
||||||
@ -217,8 +213,6 @@ source_group("soh\\resource\\importer\\scenecommand" REGULAR_EXPRESSION "soh/res
|
|||||||
# src (decomp) {{{
|
# src (decomp) {{{
|
||||||
file(GLOB_RECURSE src__ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/*.c" "src/*.h")
|
file(GLOB_RECURSE src__ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/*.c" "src/*.h")
|
||||||
|
|
||||||
list(APPEND src__ ${CMAKE_BINARY_DIR}/build.c)
|
|
||||||
list(APPEND src__ ${CMAKE_CURRENT_SOURCE_DIR}/properties.h)
|
|
||||||
list(APPEND src__ ${CMAKE_CURRENT_SOURCE_DIR}/Resource.rc)
|
list(APPEND src__ ${CMAKE_CURRENT_SOURCE_DIR}/Resource.rc)
|
||||||
list(FILTER src__ EXCLUDE REGEX "src/dmadata/*")
|
list(FILTER src__ EXCLUDE REGEX "src/dmadata/*")
|
||||||
list(FILTER src__ EXCLUDE REGEX "src/elf_message/*")
|
list(FILTER src__ EXCLUDE REGEX "src/elf_message/*")
|
||||||
@ -238,7 +232,6 @@ list(REMOVE_ITEM src__ "src/libultra/gu/sqrtf.c")
|
|||||||
list(REMOVE_ITEM src__ "src/libultra/gu/us2dex.c")
|
list(REMOVE_ITEM src__ "src/libultra/gu/us2dex.c")
|
||||||
|
|
||||||
source_group("src" REGULAR_EXPRESSION "src/*")
|
source_group("src" REGULAR_EXPRESSION "src/*")
|
||||||
source_group("src\\build" FILES ${CMAKE_BINARY_DIR}/build.c ${CMAKE_CURRENT_SOURCE_DIR}/properties.h ${CMAKE_CURRENT_SOURCE_DIR}/Resource.rc)
|
|
||||||
source_group("src\\boot" REGULAR_EXPRESSION "src/boot/*")
|
source_group("src\\boot" REGULAR_EXPRESSION "src/boot/*")
|
||||||
source_group("src\\buffers" REGULAR_EXPRESSION "src/buffers/*")
|
source_group("src\\buffers" REGULAR_EXPRESSION "src/buffers/*")
|
||||||
source_group("src\\code" REGULAR_EXPRESSION "src/code/*")
|
source_group("src\\code" REGULAR_EXPRESSION "src/code/*")
|
||||||
@ -328,7 +321,7 @@ endif()
|
|||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
Boost
|
Boost
|
||||||
URL https://sourceforge.net/projects/boost/files/boost/1.81.0/boost_1_81_0.tar.gz
|
URL https://archives.boost.io/release/1.81.0/source/boost_1_81_0.tar.gz
|
||||||
URL_HASH SHA256=205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6
|
URL_HASH SHA256=205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6
|
||||||
SOURCE_SUBDIR "null" # Set to a nonexistent directory so boost is not built (we don't need to build it)
|
SOURCE_SUBDIR "null" # Set to a nonexistent directory so boost is not built (we don't need to build it)
|
||||||
DOWNLOAD_EXTRACT_TIMESTAMP false # supress timestamp warning, not needed since the url wont change
|
DOWNLOAD_EXTRACT_TIMESTAMP false # supress timestamp warning, not needed since the url wont change
|
||||||
@ -356,7 +349,13 @@ set(SDL2-INCLUDE ${SDL2_INCLUDE_DIRS})
|
|||||||
|
|
||||||
if (BUILD_REMOTE_CONTROL)
|
if (BUILD_REMOTE_CONTROL)
|
||||||
find_package(SDL2_net)
|
find_package(SDL2_net)
|
||||||
set(SDL2-NET-INCLUDE ${SDL_NET_INCLUDE_DIRS})
|
|
||||||
|
if(NOT SDL2_net_FOUND)
|
||||||
|
message(STATUS "SDL2_net not found (it's possible the version installed is too old). Disabling BUILD_REMOTE_CONTROL.")
|
||||||
|
set(BUILD_REMOTE_CONTROL 0)
|
||||||
|
else()
|
||||||
|
set(SDL2-NET-INCLUDE ${SDL_NET_INCLUDE_DIRS})
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_include_directories(${PROJECT_NAME} PRIVATE assets
|
target_include_directories(${PROJECT_NAME} PRIVATE assets
|
||||||
@ -385,10 +384,8 @@ target_include_directories(${PROJECT_NAME} PRIVATE assets
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/extern/tinyxml2
|
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/extern/tinyxml2
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/libultraship/Lib/
|
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/libultraship/Lib/
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/libultraship/Lib/libjpeg/include/
|
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/libultraship/Lib/libjpeg/include/
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/libultraship/Lib/spdlog/include/
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/graphic/Fast3D/U64/PR
|
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/graphic/Fast3D/U64/PR
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/graphic
|
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/graphic
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPDUtils
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPD/resource/type
|
${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPD/resource/type
|
||||||
${SDL2-INCLUDE}
|
${SDL2-INCLUDE}
|
||||||
${SDL2-NET-INCLUDE}
|
${SDL2-NET-INCLUDE}
|
||||||
@ -410,10 +407,12 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|||||||
">"
|
">"
|
||||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>"
|
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>"
|
||||||
"INCLUDE_GAME_PRINTF;"
|
"INCLUDE_GAME_PRINTF;"
|
||||||
|
"F3DEX_GBI_2"
|
||||||
"UNICODE;"
|
"UNICODE;"
|
||||||
"_UNICODE"
|
"_UNICODE"
|
||||||
STORMLIB_NO_AUTO_LINK
|
STORMLIB_NO_AUTO_LINK
|
||||||
"_CRT_SECURE_NO_WARNINGS;"
|
"_CRT_SECURE_NO_WARNINGS;"
|
||||||
|
NOMINMAX
|
||||||
)
|
)
|
||||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||||
@ -427,10 +426,12 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|||||||
"NDEBUG;"
|
"NDEBUG;"
|
||||||
">"
|
">"
|
||||||
"INCLUDE_GAME_PRINTF;"
|
"INCLUDE_GAME_PRINTF;"
|
||||||
|
"F3DEX_GBI_2"
|
||||||
"WIN32;"
|
"WIN32;"
|
||||||
"UNICODE;"
|
"UNICODE;"
|
||||||
"_UNICODE"
|
"_UNICODE"
|
||||||
STORMLIB_NO_AUTO_LINK
|
STORMLIB_NO_AUTO_LINK
|
||||||
|
NOMINMAX
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "CafeOS")
|
elseif (CMAKE_SYSTEM_NAME STREQUAL "CafeOS")
|
||||||
@ -441,6 +442,7 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "CafeOS")
|
|||||||
"$<$<CONFIG:Release>:"
|
"$<$<CONFIG:Release>:"
|
||||||
"NDEBUG"
|
"NDEBUG"
|
||||||
">"
|
">"
|
||||||
|
"F3DEX_GBI_2"
|
||||||
"SPDLOG_ACTIVE_LEVEL=3;"
|
"SPDLOG_ACTIVE_LEVEL=3;"
|
||||||
"SPDLOG_NO_THREAD_ID;"
|
"SPDLOG_NO_THREAD_ID;"
|
||||||
"SPDLOG_NO_TLS;"
|
"SPDLOG_NO_TLS;"
|
||||||
@ -454,6 +456,7 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang")
|
|||||||
"$<$<CONFIG:Release>:"
|
"$<$<CONFIG:Release>:"
|
||||||
"NDEBUG"
|
"NDEBUG"
|
||||||
">"
|
">"
|
||||||
|
"F3DEX_GBI_2"
|
||||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>"
|
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>"
|
||||||
"SPDLOG_ACTIVE_LEVEL=0;"
|
"SPDLOG_ACTIVE_LEVEL=0;"
|
||||||
"_CONSOLE;"
|
"_CONSOLE;"
|
||||||
@ -548,6 +551,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
|||||||
-Wno-parentheses
|
-Wno-parentheses
|
||||||
-Wno-narrowing
|
-Wno-narrowing
|
||||||
-Wno-missing-braces
|
-Wno-missing-braces
|
||||||
|
-Wno-int-conversion
|
||||||
$<$<COMPILE_LANGUAGE:C>:
|
$<$<COMPILE_LANGUAGE:C>:
|
||||||
-Werror-implicit-function-declaration
|
-Werror-implicit-function-declaration
|
||||||
-Wno-incompatible-pointer-types
|
-Wno-incompatible-pointer-types
|
||||||
@ -623,6 +627,8 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
|||||||
-Wno-parentheses
|
-Wno-parentheses
|
||||||
-Wno-narrowing
|
-Wno-narrowing
|
||||||
-Wno-missing-braces
|
-Wno-missing-braces
|
||||||
|
-Wno-int-conversion
|
||||||
|
-Wno-implicit-int
|
||||||
$<$<COMPILE_LANGUAGE:C>:
|
$<$<COMPILE_LANGUAGE:C>:
|
||||||
-Werror-implicit-function-declaration
|
-Werror-implicit-function-declaration
|
||||||
-Wno-incompatible-pointer-types
|
-Wno-incompatible-pointer-types
|
||||||
@ -642,15 +648,6 @@ endif()
|
|||||||
################################################################################
|
################################################################################
|
||||||
# Pre build events
|
# Pre build events
|
||||||
################################################################################
|
################################################################################
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
||||||
add_custom_command_if(
|
|
||||||
TARGET ${PROJECT_NAME}
|
|
||||||
PRE_BUILD
|
|
||||||
COMMANDS
|
|
||||||
COMMAND $<CONFIG:Debug> copy /b $<SHELL_PATH:${CMAKE_BINARY_DIR}/>build.c +,,
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
|
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
TARGET ${PROJECT_NAME}
|
TARGET ${PROJECT_NAME}
|
||||||
@ -669,7 +666,6 @@ endif()
|
|||||||
# Dependencies
|
# Dependencies
|
||||||
################################################################################
|
################################################################################
|
||||||
add_dependencies(${PROJECT_NAME}
|
add_dependencies(${PROJECT_NAME}
|
||||||
ZAPDUtils
|
|
||||||
libultraship
|
libultraship
|
||||||
)
|
)
|
||||||
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
|
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
|
||||||
@ -683,7 +679,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|||||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||||
"libultraship;"
|
"libultraship;"
|
||||||
"ZAPDUtils;"
|
|
||||||
"ZAPDLib;"
|
"ZAPDLib;"
|
||||||
"glu32;"
|
"glu32;"
|
||||||
"SDL2::SDL2;"
|
"SDL2::SDL2;"
|
||||||
@ -698,7 +693,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|||||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||||
"libultraship;"
|
"libultraship;"
|
||||||
"ZAPDUtils;"
|
|
||||||
"ZAPDLib;"
|
"ZAPDLib;"
|
||||||
"glu32;"
|
"glu32;"
|
||||||
"SDL2::SDL2;"
|
"SDL2::SDL2;"
|
||||||
@ -716,7 +710,6 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
|
|||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||||
"libultraship;"
|
"libultraship;"
|
||||||
"ZAPDUtils;"
|
|
||||||
SDL2::SDL2
|
SDL2::SDL2
|
||||||
-lglad
|
-lglad
|
||||||
Threads::Threads
|
Threads::Threads
|
||||||
@ -738,7 +731,6 @@ else()
|
|||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||||
"libultraship;"
|
"libultraship;"
|
||||||
"ZAPDUtils;"
|
|
||||||
"ZAPDLib;"
|
"ZAPDLib;"
|
||||||
SDL2::SDL2
|
SDL2::SDL2
|
||||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:SDL2_net::SDL2_net>"
|
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:SDL2_net::SDL2_net>"
|
||||||
|
@ -28,4 +28,10 @@
|
|||||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
|
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
|
||||||
</application>
|
</application>
|
||||||
</compatibility>
|
</compatibility>
|
||||||
|
<asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<asmv3:windowsSettings>
|
||||||
|
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware> <!-- legacy -->
|
||||||
|
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">permonitorv2,permonitor</dpiAwareness> <!-- falls back to pm if pmv2 is not available -->
|
||||||
|
</asmv3:windowsSettings>
|
||||||
|
</asmv3:application>
|
||||||
</assembly>
|
</assembly>
|
||||||
|
16
soh/assets/custom/objects/object_mystery_item/gMysteryItemDL
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<ClearGeometryMode G_LIGHTING="1" />
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
|
||||||
|
<CullDisplayList Start="0" End="7"/>
|
||||||
|
<CallDisplayList Path="objects/object_mystery_item/mat_gMysteryItemDL_f3dlite_mysteryItem_material"/>
|
||||||
|
<CallDisplayList Path="objects/object_mystery_item/gMysteryItemDL_tri_0"/>
|
||||||
|
<CallDisplayList Path="objects/object_mystery_item/mat_gMysteryItemDL_f3dlite_mysteryItem_light_material"/>
|
||||||
|
<CallDisplayList Path="objects/object_mystery_item/gMysteryItemDL_tri_1"/>
|
||||||
|
<PipeSync/>
|
||||||
|
<SetGeometryMode G_LIGHTING="1" />
|
||||||
|
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||||
|
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||||
|
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,56 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="2" V01="4" V02="3" Flag0="0" V10="0" V11="3" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="6" V02="5" Flag0="0" V10="3" V11="7" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="8" V02="7" Flag0="0" V10="3" V11="9" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="10" V02="6" Flag0="0" V10="7" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="12" V02="11" Flag0="0" V10="13" V11="14" V12="0" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="13" V02="0" Flag0="0" V10="16" V11="15" V12="0" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="16" V02="0" Flag0="0" V10="0" V11="18" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="0" V01="19" V02="18" Flag0="0" V10="0" V11="5" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="20" V02="16" Flag0="0" V10="20" V11="21" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="22" V02="16" Flag0="0" V10="21" V11="23" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="24" V02="22" Flag0="0" V10="23" V11="25" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="26" V02="25" Flag0="0" V10="23" V11="27" V12="26" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="28" V02="25" Flag0="0" V10="15" V11="29" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="30" V01="31" V02="15" Flag0="0" V10="16" V11="30" V12="15" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="4" V12="0" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="3" V02="0" Flag0="0" V10="6" V11="7" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="6" V02="8" Flag0="0" V10="9" V11="8" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="11" V02="6" Flag0="0" V10="12" V11="13" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="12" V02="14" Flag0="0" V10="16" V11="15" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="16" V02="14" Flag0="0" V10="18" V11="17" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="18" V02="14" Flag0="0" V10="14" V11="20" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="21" V02="20" Flag0="0" V10="14" V11="22" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="23" V02="22" Flag0="0" V10="22" V11="24" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="25" V02="26" Flag0="0" V10="21" V11="26" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="27" V02="20" Flag0="0" V10="20" V11="28" V12="29" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="29" V02="30" Flag0="0" V10="20" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_0" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="3" V11="5" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="6" V02="4" Flag0="0" V10="5" V11="7" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="8" V02="4" Flag0="0" V10="9" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="9" V02="11" Flag0="0" V10="13" V11="12" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="13" V02="11" Flag0="0" V10="13" V11="15" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="16" V02="15" Flag0="0" V10="15" V11="17" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="18" V02="9" Flag0="0" V10="4" V11="19" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="20" V02="1" Flag0="0" V10="20" V11="21" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="2" V02="23" Flag0="0" V10="22" V11="23" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="25" V11="27" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="29" V02="28" Flag0="0" V10="28" V11="30" V12="25" Flag1="0"/>
|
||||||
|
<Triangle1 V00="28" V01="31" V02="30"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_0" VertexBufferIndex="0" VertexOffset="96" Count="21"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="3" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="8" V02="7" Flag0="0" V10="9" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="11" V02="12" Flag0="0" V10="11" V11="13" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="14" V02="9" Flag0="0" V10="12" V11="15" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="16" V02="15" Flag0="0" V10="15" V11="17" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="18" V02="19" Flag0="0" V10="14" V11="19" V12="9" Flag1="0"/>
|
||||||
|
<Triangle1 V00="19" V01="20" V02="9"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,120 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="30"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="4" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="7" V02="8" Flag0="0" V10="6" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="11" V02="12" Flag0="0" V10="10" V11="12" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="15" V02="16" Flag0="0" V10="14" V11="16" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="19" V02="20" Flag0="0" V10="18" V11="20" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="22" V11="24" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="26" V11="28" V12="29" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="30" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="62" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="94" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="126" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="158" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="190" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="222" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="254" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="286" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="318" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="350" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_mystery_item/gMysteryItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="382" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="28" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,119 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="12" Y="36" Z="5" S="151" T="-443" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="2" Y="38" Z="5" S="4" T="-461" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-4" Y="37" Z="5" S="-71" T="-456" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-13" Y="34" Z="5" S="-197" T="-417" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-9" Y="36" Z="5" S="-139" T="-441" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-3" Y="31" Z="5" S="-59" T="-373" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-11" Y="27" Z="5" S="-157" T="-323" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-23" Y="24" Z="5" S="-318" T="-281" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-19" Y="30" Z="5" S="-275" T="-355" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-17" Y="32" Z="5" S="-242" T="-388" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-15" Y="22" Z="5" S="-220" T="-239" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-26" Y="23" Z="5" S="-358" T="-270" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-25" Y="24" Z="5" S="-357" T="-278" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="22" Y="31" Z="5" S="277" T="-377" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="18" Y="34" Z="5" S="223" T="-416" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="26" Y="23" Z="5" S="331" T="-269" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="22" Y="11" Z="5" S="286" T="-99" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="15" Y="24" Z="5" S="186" T="-275" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="11" Y="29" Z="5" S="132" T="-343" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="5" Y="31" Z="5" S="46" T="-375" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="15" Y="18" Z="5" S="188" T="-193" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="12" Y="13" Z="5" S="151" T="-130" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="11" Y="5" Z="5" S="128" T="-29" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="8" Y="10" Z="5" S="96" T="-85" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="5" Y="2" Z="5" S="55" T="12" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-4" Y="0" Z="5" S="-76" T="43" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-2" Y="4" Z="5" S="-44" T="-5" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="2" Y="7" Z="5" S="10" T="-45" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-4" Y="2" Z="5" S="-64" T="19" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="24" Y="28" Z="5" S="312" T="-329" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="25" Y="15" Z="5" S="324" T="-165" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="26" Y="19" Z="5" S="333" T="-209" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="22" Y="11" Z="5" S="286" T="-99" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="24" Y="13" Z="5" S="308" T="-128" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="25" Y="15" Z="5" S="324" T="-165" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="18" Y="8" Z="5" S="221" T="-58" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="20" Y="9" Z="5" S="258" T="-76" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="11" Y="5" Z="5" S="128" T="-29" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-4" Z="5" S="-82" T="94" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="2" Y="-4" Z="5" S="14" T="94" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="2" Y="-2" Z="5" S="14" T="76" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-4" Y="0" Z="5" S="-76" T="43" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="5" Y="2" Z="5" S="55" T="12" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-2" Z="5" S="-82" T="66" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-4" Y="37" Z="-5" S="-71" T="-456" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="2" Y="38" Z="-5" S="4" T="-461" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="12" Y="36" Z="-5" S="151" T="-443" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-9" Y="36" Z="-5" S="-139" T="-441" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-3" Y="31" Z="-5" S="-59" T="-373" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="5" Y="31" Z="-5" S="46" T="-375" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="11" Y="29" Z="-5" S="132" T="-343" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="15" Y="24" Z="-5" S="186" T="-275" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="22" Y="11" Z="-5" S="286" T="-99" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="26" Y="23" Z="-5" S="331" T="-269" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="22" Y="31" Z="-5" S="277" T="-377" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="18" Y="34" Z="-5" S="223" T="-416" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="24" Y="28" Z="-5" S="312" T="-329" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="26" Y="19" Z="-5" S="333" T="-209" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="25" Y="15" Z="-5" S="324" T="-165" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="24" Y="13" Z="-5" S="308" T="-128" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="20" Y="9" Z="-5" S="258" T="-76" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="18" Y="8" Z="-5" S="221" T="-58" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="11" Y="5" Z="-5" S="128" T="-29" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="12" Y="13" Z="-5" S="151" T="-130" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="11" Y="5" Z="-5" S="128" T="-29" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="8" Y="10" Z="-5" S="96" T="-85" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="12" Y="13" Z="-5" S="151" T="-130" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="5" Y="2" Z="-5" S="55" T="12" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-4" Y="0" Z="-5" S="-76" T="43" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="2" Y="-2" Z="-5" S="14" T="76" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-4" Z="-5" S="-82" T="94" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="2" Y="-4" Z="-5" S="14" T="94" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-2" Z="-5" S="-82" T="66" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-17" Y="32" Z="-5" S="-242" T="-388" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-13" Y="34" Z="-5" S="-197" T="-417" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-9" Y="36" Z="-5" S="-139" T="-441" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-23" Y="24" Z="-5" S="-318" T="-281" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-11" Y="27" Z="-5" S="-157" T="-323" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-3" Y="31" Z="-5" S="-59" T="-373" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-26" Y="23" Z="-5" S="-358" T="-270" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-15" Y="22" Z="-5" S="-217" T="-248" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-25" Y="24" Z="-5" S="-357" T="-278" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-19" Y="30" Z="-5" S="-275" T="-355" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-4" Y="2" Z="-5" S="-64" T="19" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-2" Y="4" Z="-5" S="-44" T="-5" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="2" Y="7" Z="-5" S="10" T="-45" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="22" Y="11" Z="-5" S="286" T="-99" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="15" Y="18" Z="-5" S="188" T="-193" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="15" Y="24" Z="-5" S="186" T="-275" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-19" Z="-5" S="-376" T="51" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-2" Y="-18" Z="-5" S="-341" T="36" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="1" Y="-18" Z="-5" S="-301" T="42" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="4" Y="-22" Z="-5" S="-256" T="101" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="3" Y="-20" Z="-5" S="-271" T="65" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-3" Y="-28" Z="-5" S="-360" T="179" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="2" Y="-27" Z="-5" S="-284" T="170" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="4" Y="-22" Z="-5" S="-256" T="101" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="4" Y="-25" Z="-5" S="-262" T="141" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="2" Y="-27" Z="-5" S="-284" T="170" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="0" Y="-29" Z="-5" S="-320" T="185" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-3" Y="-28" Z="-5" S="-360" T="179" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-27" Z="-5" S="-390" T="157" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-7" Y="-24" Z="-5" S="-405" T="122" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-19" Z="-5" S="-376" T="51" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-21" Z="-5" S="-399" T="82" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="1" Y="-18" Z="5" S="-301" T="42" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-2" Y="-18" Z="5" S="-341" T="36" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-19" Z="5" S="-376" T="51" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-7" Y="-24" Z="5" S="-405" T="122" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-21" Z="5" S="-399" T="82" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="2" Y="-27" Z="5" S="-284" T="170" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-3" Y="-28" Z="5" S="-360" T="179" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-27" Z="5" S="-390" T="157" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="0" Y="-29" Z="5" S="-320" T="185" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="4" Y="-25" Z="5" S="-262" T="141" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="4" Y="-22" Z="5" S="-256" T="101" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="3" Y="-20" Z="5" S="-271" T="65" R="0" G="0" B="127" A="255"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,416 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="-11" Y="16" Z="0" S="-168" T="-172" R="87" G="234" B="90" A="255"/>
|
||||||
|
<Vtx X="-11" Y="19" Z="0" S="-158" T="-209" R="87" G="234" B="90" A="255"/>
|
||||||
|
<Vtx X="-15" Y="22" Z="5" S="-217" T="-248" R="87" G="234" B="90" A="255"/>
|
||||||
|
<Vtx X="-15" Y="22" Z="-5" S="-220" T="-239" R="87" G="234" B="166" A="255"/>
|
||||||
|
<Vtx X="-11" Y="19" Z="0" S="-158" T="-209" R="87" G="234" B="166" A="255"/>
|
||||||
|
<Vtx X="-11" Y="16" Z="0" S="-168" T="-172" R="87" G="234" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="43" Z="0" S="6" T="-529" R="250" G="90" B="90" A="255"/>
|
||||||
|
<Vtx X="-5" Y="42" Z="0" S="-81" T="-522" R="250" G="90" B="90" A="255"/>
|
||||||
|
<Vtx X="-4" Y="37" Z="5" S="-71" T="-456" R="250" G="90" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="38" Z="5" S="4" T="-461" R="250" G="90" B="90" A="255"/>
|
||||||
|
<Vtx X="14" Y="41" Z="0" S="167" T="-509" R="10" G="89" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="43" Z="0" S="6" T="-529" R="10" G="89" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="38" Z="5" S="4" T="-461" R="10" G="89" B="90" A="255"/>
|
||||||
|
<Vtx X="12" Y="36" Z="5" S="151" T="-443" R="10" G="89" B="90" A="255"/>
|
||||||
|
<Vtx X="-5" Y="42" Z="0" S="-81" T="-522" R="237" G="88" B="90" A="255"/>
|
||||||
|
<Vtx X="-11" Y="41" Z="0" S="-159" T="-505" R="237" G="88" B="90" A="255"/>
|
||||||
|
<Vtx X="-9" Y="36" Z="5" S="-139" T="-441" R="237" G="88" B="90" A="255"/>
|
||||||
|
<Vtx X="-4" Y="37" Z="5" S="-71" T="-456" R="237" G="88" B="90" A="255"/>
|
||||||
|
<Vtx X="20" Y="39" Z="0" S="255" T="-475" R="32" G="84" B="90" A="255"/>
|
||||||
|
<Vtx X="14" Y="41" Z="0" S="167" T="-509" R="32" G="84" B="90" A="255"/>
|
||||||
|
<Vtx X="12" Y="36" Z="5" S="151" T="-443" R="32" G="84" B="90" A="255"/>
|
||||||
|
<Vtx X="18" Y="34" Z="5" S="223" T="-416" R="32" G="84" B="90" A="255"/>
|
||||||
|
<Vtx X="-11" Y="41" Z="0" S="-159" T="-505" R="223" G="83" B="90" A="255"/>
|
||||||
|
<Vtx X="-16" Y="39" Z="0" S="-228" T="-477" R="223" G="83" B="90" A="255"/>
|
||||||
|
<Vtx X="-13" Y="34" Z="5" S="-197" T="-417" R="223" G="83" B="90" A="255"/>
|
||||||
|
<Vtx X="-9" Y="36" Z="5" S="-139" T="-441" R="223" G="83" B="90" A="255"/>
|
||||||
|
<Vtx X="-16" Y="39" Z="0" S="-228" T="-477" R="208" G="76" B="90" A="255"/>
|
||||||
|
<Vtx X="-20" Y="36" Z="0" S="-285" T="-441" R="208" G="76" B="90" A="255"/>
|
||||||
|
<Vtx X="-17" Y="32" Z="5" S="-242" T="-388" R="208" G="76" B="90" A="255"/>
|
||||||
|
<Vtx X="-13" Y="34" Z="5" S="-197" T="-417" R="208" G="76" B="90" A="255"/>
|
||||||
|
<Vtx X="25" Y="35" Z="0" S="324" T="-425" R="52" G="73" B="90" A="255"/>
|
||||||
|
<Vtx X="20" Y="39" Z="0" S="255" T="-475" R="52" G="73" B="90" A="255"/>
|
||||||
|
<Vtx X="18" Y="34" Z="5" S="223" T="-416" R="52" G="73" B="90" A="255"/>
|
||||||
|
<Vtx X="22" Y="31" Z="5" S="277" T="-377" R="52" G="73" B="90" A="255"/>
|
||||||
|
<Vtx X="-20" Y="36" Z="0" S="-285" T="-441" R="192" G="63" B="90" A="255"/>
|
||||||
|
<Vtx X="-23" Y="33" Z="0" S="-329" T="-396" R="192" G="63" B="90" A="255"/>
|
||||||
|
<Vtx X="-19" Y="30" Z="5" S="-275" T="-355" R="192" G="63" B="90" A="255"/>
|
||||||
|
<Vtx X="-17" Y="32" Z="5" S="-242" T="-388" R="192" G="63" B="90" A="255"/>
|
||||||
|
<Vtx X="29" Y="30" Z="0" S="373" T="-360" R="72" G="53" B="90" A="255"/>
|
||||||
|
<Vtx X="25" Y="35" Z="0" S="324" T="-425" R="72" G="53" B="90" A="255"/>
|
||||||
|
<Vtx X="22" Y="31" Z="5" S="277" T="-377" R="72" G="53" B="90" A="255"/>
|
||||||
|
<Vtx X="24" Y="28" Z="5" S="312" T="-329" R="72" G="53" B="90" A="255"/>
|
||||||
|
<Vtx X="-23" Y="33" Z="0" S="-329" T="-396" R="178" G="45" B="90" A="255"/>
|
||||||
|
<Vtx X="-26" Y="29" Z="0" S="-358" T="-346" R="178" G="45" B="90" A="255"/>
|
||||||
|
<Vtx X="-23" Y="24" Z="5" S="-318" T="-281" R="178" G="45" B="90" A="255"/>
|
||||||
|
<Vtx X="-19" Y="30" Z="5" S="-275" T="-355" R="178" G="45" B="90" A="255"/>
|
||||||
|
<Vtx X="-26" Y="29" Z="0" S="-358" T="-346" R="250" G="90" B="90" A="255"/>
|
||||||
|
<Vtx X="-30" Y="29" Z="0" S="-416" T="-342" R="250" G="90" B="90" A="255"/>
|
||||||
|
<Vtx X="-25" Y="24" Z="5" S="-357" T="-278" R="250" G="90" B="90" A="255"/>
|
||||||
|
<Vtx X="-23" Y="24" Z="5" S="-318" T="-281" R="250" G="90" B="90" A="255"/>
|
||||||
|
<Vtx X="-30" Y="29" Z="0" S="-416" T="-342" R="167" G="11" B="90" A="255"/>
|
||||||
|
<Vtx X="-31" Y="19" Z="0" S="-433" T="-214" R="167" G="11" B="90" A="255"/>
|
||||||
|
<Vtx X="-26" Y="23" Z="5" S="-358" T="-270" R="167" G="11" B="90" A="255"/>
|
||||||
|
<Vtx X="-25" Y="24" Z="5" S="-357" T="-278" R="167" G="11" B="90" A="255"/>
|
||||||
|
<Vtx X="31" Y="24" Z="0" S="398" T="-280" R="86" G="27" B="90" A="255"/>
|
||||||
|
<Vtx X="29" Y="30" Z="0" S="373" T="-360" R="86" G="27" B="90" A="255"/>
|
||||||
|
<Vtx X="24" Y="28" Z="5" S="312" T="-329" R="86" G="27" B="90" A="255"/>
|
||||||
|
<Vtx X="26" Y="23" Z="5" S="331" T="-269" R="86" G="27" B="90" A="255"/>
|
||||||
|
<Vtx X="-2" Y="26" Z="0" S="-43" T="-306" R="2" G="166" B="90" A="255"/>
|
||||||
|
<Vtx X="4" Y="26" Z="0" S="35" T="-308" R="2" G="166" B="90" A="255"/>
|
||||||
|
<Vtx X="5" Y="31" Z="5" S="46" T="-375" R="2" G="166" B="90" A="255"/>
|
||||||
|
<Vtx X="-3" Y="31" Z="5" S="-59" T="-373" R="2" G="166" B="90" A="255"/>
|
||||||
|
<Vtx X="4" Y="26" Z="0" S="35" T="-308" R="225" G="172" B="90" A="255"/>
|
||||||
|
<Vtx X="8" Y="25" Z="0" S="91" T="-287" R="225" G="172" B="90" A="255"/>
|
||||||
|
<Vtx X="11" Y="29" Z="5" S="132" T="-343" R="225" G="172" B="90" A="255"/>
|
||||||
|
<Vtx X="5" Y="31" Z="5" S="46" T="-375" R="225" G="172" B="90" A="255"/>
|
||||||
|
<Vtx X="-7" Y="23" Z="0" S="-112" T="-271" R="40" G="176" B="90" A="255"/>
|
||||||
|
<Vtx X="-2" Y="26" Z="0" S="-43" T="-306" R="40" G="176" B="90" A="255"/>
|
||||||
|
<Vtx X="-3" Y="31" Z="5" S="-59" T="-373" R="40" G="176" B="90" A="255"/>
|
||||||
|
<Vtx X="-11" Y="27" Z="5" S="-157" T="-323" R="40" G="176" B="90" A="255"/>
|
||||||
|
<Vtx X="8" Y="25" Z="0" S="91" T="-287" R="186" G="200" B="90" A="255"/>
|
||||||
|
<Vtx X="10" Y="22" Z="0" S="120" T="-251" R="186" G="200" B="90" A="255"/>
|
||||||
|
<Vtx X="15" Y="24" Z="5" S="186" T="-275" R="186" G="200" B="90" A="255"/>
|
||||||
|
<Vtx X="11" Y="29" Z="5" S="132" T="-343" R="186" G="200" B="90" A="255"/>
|
||||||
|
<Vtx X="26" Y="23" Z="5" S="331" T="-269" R="90" G="2" B="90" A="255"/>
|
||||||
|
<Vtx X="26" Y="19" Z="5" S="333" T="-209" R="90" G="2" B="90" A="255"/>
|
||||||
|
<Vtx X="31" Y="18" Z="0" S="400" T="-203" R="90" G="2" B="90" A="255"/>
|
||||||
|
<Vtx X="31" Y="24" Z="0" S="398" T="-280" R="90" G="2" B="90" A="255"/>
|
||||||
|
<Vtx X="-11" Y="19" Z="0" S="-158" T="-209" R="70" G="202" B="91" A="255"/>
|
||||||
|
<Vtx X="-7" Y="23" Z="0" S="-112" T="-271" R="70" G="202" B="91" A="255"/>
|
||||||
|
<Vtx X="-11" Y="27" Z="5" S="-157" T="-323" R="70" G="202" B="91" A="255"/>
|
||||||
|
<Vtx X="-15" Y="22" Z="5" S="-220" T="-239" R="70" G="202" B="91" A="255"/>
|
||||||
|
<Vtx X="10" Y="22" Z="0" S="120" T="-251" R="166" G="255" B="90" A="255"/>
|
||||||
|
<Vtx X="10" Y="19" Z="0" S="120" T="-211" R="166" G="255" B="90" A="255"/>
|
||||||
|
<Vtx X="15" Y="18" Z="5" S="188" T="-193" R="166" G="255" B="90" A="255"/>
|
||||||
|
<Vtx X="15" Y="24" Z="5" S="186" T="-275" R="166" G="255" B="90" A="255"/>
|
||||||
|
<Vtx X="-31" Y="19" Z="0" S="-433" T="-214" R="242" G="167" B="90" A="255"/>
|
||||||
|
<Vtx X="-11" Y="16" Z="0" S="-168" T="-172" R="242" G="167" B="90" A="255"/>
|
||||||
|
<Vtx X="-15" Y="22" Z="5" S="-217" T="-248" R="242" G="167" B="90" A="255"/>
|
||||||
|
<Vtx X="-26" Y="23" Z="5" S="-358" T="-270" R="242" G="167" B="90" A="255"/>
|
||||||
|
<Vtx X="10" Y="19" Z="0" S="120" T="-211" R="179" G="46" B="90" A="255"/>
|
||||||
|
<Vtx X="9" Y="16" Z="0" S="99" T="-174" R="179" G="46" B="90" A="255"/>
|
||||||
|
<Vtx X="12" Y="13" Z="5" S="151" T="-130" R="179" G="46" B="90" A="255"/>
|
||||||
|
<Vtx X="15" Y="18" Z="5" S="188" T="-193" R="179" G="46" B="90" A="255"/>
|
||||||
|
<Vtx X="30" Y="14" Z="0" S="389" T="-145" R="88" G="239" B="90" A="255"/>
|
||||||
|
<Vtx X="31" Y="18" Z="0" S="400" T="-203" R="88" G="239" B="90" A="255"/>
|
||||||
|
<Vtx X="26" Y="19" Z="5" S="333" T="-209" R="88" G="239" B="90" A="255"/>
|
||||||
|
<Vtx X="25" Y="15" Z="5" S="324" T="-165" R="88" G="239" B="90" A="255"/>
|
||||||
|
<Vtx X="9" Y="16" Z="0" S="99" T="-174" R="199" G="70" B="90" A="255"/>
|
||||||
|
<Vtx X="6" Y="14" Z="0" S="60" T="-143" R="199" G="70" B="90" A="255"/>
|
||||||
|
<Vtx X="8" Y="10" Z="5" S="96" T="-85" R="199" G="70" B="90" A="255"/>
|
||||||
|
<Vtx X="12" Y="13" Z="5" S="151" T="-130" R="199" G="70" B="90" A="255"/>
|
||||||
|
<Vtx X="28" Y="10" Z="0" S="366" T="-94" R="82" G="220" B="90" A="255"/>
|
||||||
|
<Vtx X="30" Y="14" Z="0" S="389" T="-145" R="82" G="220" B="90" A="255"/>
|
||||||
|
<Vtx X="25" Y="15" Z="5" S="324" T="-165" R="82" G="220" B="90" A="255"/>
|
||||||
|
<Vtx X="24" Y="13" Z="5" S="308" T="-128" R="82" G="220" B="90" A="255"/>
|
||||||
|
<Vtx X="6" Y="14" Z="0" S="60" T="-143" R="218" G="81" B="90" A="255"/>
|
||||||
|
<Vtx X="-1" Y="11" Z="0" S="-24" T="-103" R="218" G="81" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="7" Z="5" S="10" T="-45" R="218" G="81" B="90" A="255"/>
|
||||||
|
<Vtx X="8" Y="10" Z="5" S="96" T="-85" R="218" G="81" B="90" A="255"/>
|
||||||
|
<Vtx X="26" Y="7" Z="0" S="335" T="-52" R="72" G="202" B="90" A="255"/>
|
||||||
|
<Vtx X="28" Y="10" Z="0" S="366" T="-94" R="72" G="202" B="90" A="255"/>
|
||||||
|
<Vtx X="24" Y="13" Z="5" S="308" T="-128" R="72" G="202" B="90" A="255"/>
|
||||||
|
<Vtx X="22" Y="11" Z="5" S="286" T="-99" R="72" G="202" B="90" A="255"/>
|
||||||
|
<Vtx X="-1" Y="11" Z="0" S="-24" T="-103" R="203" G="73" B="90" A="255"/>
|
||||||
|
<Vtx X="-6" Y="7" Z="0" S="-90" T="-54" R="203" G="73" B="90" A="255"/>
|
||||||
|
<Vtx X="-2" Y="4" Z="5" S="-44" T="-5" R="203" G="73" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="7" Z="5" S="10" T="-45" R="203" G="73" B="90" A="255"/>
|
||||||
|
<Vtx X="-6" Y="7" Z="0" S="-90" T="-54" R="187" G="58" B="90" A="255"/>
|
||||||
|
<Vtx X="-8" Y="5" Z="0" S="-120" T="-18" R="187" G="58" B="90" A="255"/>
|
||||||
|
<Vtx X="-4" Y="2" Z="5" S="-64" T="19" R="187" G="58" B="90" A="255"/>
|
||||||
|
<Vtx X="-2" Y="4" Z="5" S="-44" T="-5" R="187" G="58" B="90" A="255"/>
|
||||||
|
<Vtx X="23" Y="5" Z="0" S="294" T="-19" R="57" G="186" B="90" A="255"/>
|
||||||
|
<Vtx X="26" Y="7" Z="0" S="335" T="-52" R="57" G="186" B="90" A="255"/>
|
||||||
|
<Vtx X="22" Y="11" Z="5" S="286" T="-99" R="57" G="186" B="90" A="255"/>
|
||||||
|
<Vtx X="20" Y="9" Z="5" S="258" T="-76" R="57" G="186" B="90" A="255"/>
|
||||||
|
<Vtx X="19" Y="3" Z="0" S="246" T="4" R="39" G="175" B="90" A="255"/>
|
||||||
|
<Vtx X="23" Y="5" Z="0" S="294" T="-19" R="39" G="175" B="90" A="255"/>
|
||||||
|
<Vtx X="20" Y="9" Z="5" S="258" T="-76" R="39" G="175" B="90" A="255"/>
|
||||||
|
<Vtx X="18" Y="8" Z="5" S="221" T="-58" R="39" G="175" B="90" A="255"/>
|
||||||
|
<Vtx X="-8" Y="5" Z="0" S="-120" T="-18" R="176" G="41" B="90" A="255"/>
|
||||||
|
<Vtx X="-9" Y="2" Z="0" S="-139" T="19" R="176" G="41" B="90" A="255"/>
|
||||||
|
<Vtx X="-4" Y="0" Z="5" S="-76" T="43" R="176" G="41" B="90" A="255"/>
|
||||||
|
<Vtx X="-4" Y="2" Z="5" S="-64" T="19" R="176" G="41" B="90" A="255"/>
|
||||||
|
<Vtx X="13" Y="1" Z="0" S="155" T="33" R="27" G="170" B="90" A="255"/>
|
||||||
|
<Vtx X="19" Y="3" Z="0" S="246" T="4" R="27" G="170" B="90" A="255"/>
|
||||||
|
<Vtx X="18" Y="8" Z="5" S="221" T="-58" R="27" G="170" B="90" A="255"/>
|
||||||
|
<Vtx X="11" Y="5" Z="5" S="128" T="-29" R="27" G="170" B="90" A="255"/>
|
||||||
|
<Vtx X="-9" Y="2" Z="0" S="-139" T="19" R="168" G="21" B="90" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-1" Z="0" S="-149" T="58" R="168" G="21" B="90" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-2" Z="5" S="-82" T="66" R="168" G="21" B="90" A="255"/>
|
||||||
|
<Vtx X="-4" Y="0" Z="5" S="-76" T="43" R="168" G="21" B="90" A="255"/>
|
||||||
|
<Vtx X="9" Y="-1" Z="0" S="103" T="62" R="44" G="177" B="90" A="255"/>
|
||||||
|
<Vtx X="13" Y="1" Z="0" S="155" T="33" R="44" G="177" B="90" A="255"/>
|
||||||
|
<Vtx X="11" Y="5" Z="5" S="128" T="-29" R="44" G="177" B="90" A="255"/>
|
||||||
|
<Vtx X="5" Y="2" Z="5" S="55" T="12" R="44" G="177" B="90" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-1" Z="0" S="-149" T="58" R="166" G="0" B="90" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-9" Z="0" S="-150" T="161" R="166" G="0" B="90" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-4" Z="5" S="-82" T="94" R="166" G="0" B="90" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-2" Z="5" S="-82" T="66" R="166" G="0" B="90" A="255"/>
|
||||||
|
<Vtx X="7" Y="-4" Z="0" S="81" T="96" R="76" G="208" B="90" A="255"/>
|
||||||
|
<Vtx X="9" Y="-1" Z="0" S="103" T="62" R="76" G="208" B="90" A="255"/>
|
||||||
|
<Vtx X="5" Y="2" Z="5" S="55" T="12" R="76" G="208" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="-2" Z="5" S="14" T="76" R="76" G="208" B="90" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-9" Z="0" S="-150" T="161" R="0" G="166" B="90" A="255"/>
|
||||||
|
<Vtx X="7" Y="-9" Z="0" S="81" T="161" R="0" G="166" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="-4" Z="5" S="14" T="94" R="0" G="166" B="90" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-4" Z="5" S="-82" T="94" R="0" G="166" B="90" A="255"/>
|
||||||
|
<Vtx X="7" Y="-9" Z="0" S="81" T="161" R="90" G="0" B="90" A="255"/>
|
||||||
|
<Vtx X="7" Y="-4" Z="0" S="81" T="96" R="90" G="0" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="-2" Z="5" S="14" T="76" R="90" G="0" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="-4" Z="5" S="14" T="94" R="90" G="0" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="38" Z="-5" S="4" T="-461" R="250" G="90" B="166" A="255"/>
|
||||||
|
<Vtx X="-4" Y="37" Z="-5" S="-71" T="-456" R="250" G="90" B="166" A="255"/>
|
||||||
|
<Vtx X="-5" Y="42" Z="0" S="-81" T="-522" R="250" G="90" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="43" Z="0" S="6" T="-529" R="250" G="90" B="166" A="255"/>
|
||||||
|
<Vtx X="12" Y="36" Z="-5" S="151" T="-443" R="10" G="89" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="38" Z="-5" S="4" T="-461" R="10" G="89" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="43" Z="0" S="6" T="-529" R="10" G="89" B="166" A="255"/>
|
||||||
|
<Vtx X="14" Y="41" Z="0" S="167" T="-509" R="10" G="89" B="166" A="255"/>
|
||||||
|
<Vtx X="-4" Y="37" Z="-5" S="-71" T="-456" R="237" G="88" B="166" A="255"/>
|
||||||
|
<Vtx X="-9" Y="36" Z="-5" S="-139" T="-441" R="237" G="88" B="166" A="255"/>
|
||||||
|
<Vtx X="-11" Y="41" Z="0" S="-159" T="-505" R="237" G="88" B="166" A="255"/>
|
||||||
|
<Vtx X="-5" Y="42" Z="0" S="-81" T="-522" R="237" G="88" B="166" A="255"/>
|
||||||
|
<Vtx X="18" Y="34" Z="-5" S="223" T="-416" R="32" G="84" B="166" A="255"/>
|
||||||
|
<Vtx X="12" Y="36" Z="-5" S="151" T="-443" R="32" G="84" B="166" A="255"/>
|
||||||
|
<Vtx X="14" Y="41" Z="0" S="167" T="-509" R="32" G="84" B="166" A="255"/>
|
||||||
|
<Vtx X="20" Y="39" Z="0" S="255" T="-475" R="32" G="84" B="166" A="255"/>
|
||||||
|
<Vtx X="-9" Y="36" Z="-5" S="-139" T="-441" R="223" G="83" B="166" A="255"/>
|
||||||
|
<Vtx X="-13" Y="34" Z="-5" S="-197" T="-417" R="223" G="83" B="166" A="255"/>
|
||||||
|
<Vtx X="-16" Y="39" Z="0" S="-228" T="-477" R="223" G="83" B="166" A="255"/>
|
||||||
|
<Vtx X="-11" Y="41" Z="0" S="-159" T="-505" R="223" G="83" B="166" A="255"/>
|
||||||
|
<Vtx X="-13" Y="34" Z="-5" S="-197" T="-417" R="208" G="76" B="166" A="255"/>
|
||||||
|
<Vtx X="-17" Y="32" Z="-5" S="-242" T="-388" R="208" G="76" B="166" A="255"/>
|
||||||
|
<Vtx X="-20" Y="36" Z="0" S="-285" T="-441" R="208" G="76" B="166" A="255"/>
|
||||||
|
<Vtx X="-16" Y="39" Z="0" S="-228" T="-477" R="208" G="76" B="166" A="255"/>
|
||||||
|
<Vtx X="22" Y="31" Z="-5" S="277" T="-377" R="52" G="73" B="166" A="255"/>
|
||||||
|
<Vtx X="18" Y="34" Z="-5" S="223" T="-416" R="52" G="73" B="166" A="255"/>
|
||||||
|
<Vtx X="20" Y="39" Z="0" S="255" T="-475" R="52" G="73" B="166" A="255"/>
|
||||||
|
<Vtx X="25" Y="35" Z="0" S="324" T="-425" R="52" G="73" B="166" A="255"/>
|
||||||
|
<Vtx X="-17" Y="32" Z="-5" S="-242" T="-388" R="192" G="63" B="166" A="255"/>
|
||||||
|
<Vtx X="-19" Y="30" Z="-5" S="-275" T="-355" R="192" G="63" B="166" A="255"/>
|
||||||
|
<Vtx X="-23" Y="33" Z="0" S="-329" T="-396" R="192" G="63" B="166" A="255"/>
|
||||||
|
<Vtx X="-20" Y="36" Z="0" S="-285" T="-441" R="192" G="63" B="166" A="255"/>
|
||||||
|
<Vtx X="24" Y="28" Z="-5" S="312" T="-329" R="72" G="53" B="166" A="255"/>
|
||||||
|
<Vtx X="22" Y="31" Z="-5" S="277" T="-377" R="72" G="53" B="166" A="255"/>
|
||||||
|
<Vtx X="25" Y="35" Z="0" S="324" T="-425" R="72" G="53" B="166" A="255"/>
|
||||||
|
<Vtx X="29" Y="30" Z="0" S="373" T="-360" R="72" G="53" B="166" A="255"/>
|
||||||
|
<Vtx X="-19" Y="30" Z="-5" S="-275" T="-355" R="178" G="45" B="166" A="255"/>
|
||||||
|
<Vtx X="-23" Y="24" Z="-5" S="-318" T="-281" R="178" G="45" B="166" A="255"/>
|
||||||
|
<Vtx X="-26" Y="29" Z="0" S="-358" T="-346" R="178" G="45" B="166" A="255"/>
|
||||||
|
<Vtx X="-23" Y="33" Z="0" S="-329" T="-396" R="178" G="45" B="166" A="255"/>
|
||||||
|
<Vtx X="-23" Y="24" Z="-5" S="-318" T="-281" R="250" G="90" B="166" A="255"/>
|
||||||
|
<Vtx X="-25" Y="24" Z="-5" S="-357" T="-278" R="250" G="90" B="166" A="255"/>
|
||||||
|
<Vtx X="-30" Y="29" Z="0" S="-416" T="-342" R="250" G="90" B="166" A="255"/>
|
||||||
|
<Vtx X="-26" Y="29" Z="0" S="-358" T="-346" R="250" G="90" B="166" A="255"/>
|
||||||
|
<Vtx X="-25" Y="24" Z="-5" S="-357" T="-278" R="167" G="11" B="166" A="255"/>
|
||||||
|
<Vtx X="-26" Y="23" Z="-5" S="-358" T="-270" R="167" G="11" B="166" A="255"/>
|
||||||
|
<Vtx X="-31" Y="19" Z="0" S="-433" T="-214" R="167" G="11" B="166" A="255"/>
|
||||||
|
<Vtx X="-30" Y="29" Z="0" S="-416" T="-342" R="167" G="11" B="166" A="255"/>
|
||||||
|
<Vtx X="26" Y="23" Z="-5" S="331" T="-269" R="86" G="27" B="166" A="255"/>
|
||||||
|
<Vtx X="24" Y="28" Z="-5" S="312" T="-329" R="86" G="27" B="166" A="255"/>
|
||||||
|
<Vtx X="29" Y="30" Z="0" S="373" T="-360" R="86" G="27" B="166" A="255"/>
|
||||||
|
<Vtx X="31" Y="24" Z="0" S="398" T="-280" R="86" G="27" B="166" A="255"/>
|
||||||
|
<Vtx X="-3" Y="31" Z="-5" S="-59" T="-373" R="2" G="166" B="166" A="255"/>
|
||||||
|
<Vtx X="5" Y="31" Z="-5" S="46" T="-375" R="2" G="166" B="166" A="255"/>
|
||||||
|
<Vtx X="4" Y="26" Z="0" S="35" T="-308" R="2" G="166" B="166" A="255"/>
|
||||||
|
<Vtx X="-2" Y="26" Z="0" S="-43" T="-306" R="2" G="166" B="166" A="255"/>
|
||||||
|
<Vtx X="5" Y="31" Z="-5" S="46" T="-375" R="225" G="172" B="166" A="255"/>
|
||||||
|
<Vtx X="11" Y="29" Z="-5" S="132" T="-343" R="225" G="172" B="166" A="255"/>
|
||||||
|
<Vtx X="8" Y="25" Z="0" S="91" T="-287" R="225" G="172" B="166" A="255"/>
|
||||||
|
<Vtx X="4" Y="26" Z="0" S="35" T="-308" R="225" G="172" B="166" A="255"/>
|
||||||
|
<Vtx X="-11" Y="27" Z="-5" S="-157" T="-323" R="40" G="176" B="166" A="255"/>
|
||||||
|
<Vtx X="-3" Y="31" Z="-5" S="-59" T="-373" R="40" G="176" B="166" A="255"/>
|
||||||
|
<Vtx X="-2" Y="26" Z="0" S="-43" T="-306" R="40" G="176" B="166" A="255"/>
|
||||||
|
<Vtx X="-7" Y="23" Z="0" S="-112" T="-271" R="40" G="176" B="166" A="255"/>
|
||||||
|
<Vtx X="11" Y="29" Z="-5" S="132" T="-343" R="186" G="200" B="166" A="255"/>
|
||||||
|
<Vtx X="15" Y="24" Z="-5" S="186" T="-275" R="186" G="200" B="166" A="255"/>
|
||||||
|
<Vtx X="10" Y="22" Z="0" S="120" T="-251" R="186" G="200" B="166" A="255"/>
|
||||||
|
<Vtx X="8" Y="25" Z="0" S="91" T="-287" R="186" G="200" B="166" A="255"/>
|
||||||
|
<Vtx X="31" Y="24" Z="0" S="398" T="-280" R="90" G="2" B="166" A="255"/>
|
||||||
|
<Vtx X="31" Y="18" Z="0" S="400" T="-203" R="90" G="2" B="166" A="255"/>
|
||||||
|
<Vtx X="26" Y="19" Z="-5" S="333" T="-209" R="90" G="2" B="166" A="255"/>
|
||||||
|
<Vtx X="26" Y="23" Z="-5" S="331" T="-269" R="90" G="2" B="166" A="255"/>
|
||||||
|
<Vtx X="-15" Y="22" Z="-5" S="-220" T="-239" R="70" G="202" B="165" A="255"/>
|
||||||
|
<Vtx X="-11" Y="27" Z="-5" S="-157" T="-323" R="70" G="202" B="165" A="255"/>
|
||||||
|
<Vtx X="-7" Y="23" Z="0" S="-112" T="-271" R="70" G="202" B="165" A="255"/>
|
||||||
|
<Vtx X="-11" Y="19" Z="0" S="-158" T="-209" R="70" G="202" B="165" A="255"/>
|
||||||
|
<Vtx X="15" Y="24" Z="-5" S="186" T="-275" R="166" G="255" B="166" A="255"/>
|
||||||
|
<Vtx X="15" Y="18" Z="-5" S="188" T="-193" R="166" G="255" B="166" A="255"/>
|
||||||
|
<Vtx X="10" Y="19" Z="0" S="120" T="-211" R="166" G="255" B="166" A="255"/>
|
||||||
|
<Vtx X="10" Y="22" Z="0" S="120" T="-251" R="166" G="255" B="166" A="255"/>
|
||||||
|
<Vtx X="-26" Y="23" Z="-5" S="-358" T="-270" R="242" G="167" B="166" A="255"/>
|
||||||
|
<Vtx X="-15" Y="22" Z="-5" S="-217" T="-248" R="242" G="167" B="166" A="255"/>
|
||||||
|
<Vtx X="-11" Y="16" Z="0" S="-168" T="-172" R="242" G="167" B="166" A="255"/>
|
||||||
|
<Vtx X="-31" Y="19" Z="0" S="-433" T="-214" R="242" G="167" B="166" A="255"/>
|
||||||
|
<Vtx X="15" Y="18" Z="-5" S="188" T="-193" R="179" G="46" B="166" A="255"/>
|
||||||
|
<Vtx X="12" Y="13" Z="-5" S="151" T="-130" R="179" G="46" B="166" A="255"/>
|
||||||
|
<Vtx X="9" Y="16" Z="0" S="99" T="-174" R="179" G="46" B="166" A="255"/>
|
||||||
|
<Vtx X="10" Y="19" Z="0" S="120" T="-211" R="179" G="46" B="166" A="255"/>
|
||||||
|
<Vtx X="25" Y="15" Z="-5" S="324" T="-165" R="88" G="239" B="166" A="255"/>
|
||||||
|
<Vtx X="26" Y="19" Z="-5" S="333" T="-209" R="88" G="239" B="166" A="255"/>
|
||||||
|
<Vtx X="31" Y="18" Z="0" S="400" T="-203" R="88" G="239" B="166" A="255"/>
|
||||||
|
<Vtx X="30" Y="14" Z="0" S="389" T="-145" R="88" G="239" B="166" A="255"/>
|
||||||
|
<Vtx X="12" Y="13" Z="-5" S="151" T="-130" R="199" G="70" B="166" A="255"/>
|
||||||
|
<Vtx X="8" Y="10" Z="-5" S="96" T="-85" R="199" G="70" B="166" A="255"/>
|
||||||
|
<Vtx X="6" Y="14" Z="0" S="60" T="-143" R="199" G="70" B="166" A="255"/>
|
||||||
|
<Vtx X="9" Y="16" Z="0" S="99" T="-174" R="199" G="70" B="166" A="255"/>
|
||||||
|
<Vtx X="24" Y="13" Z="-5" S="308" T="-128" R="82" G="220" B="166" A="255"/>
|
||||||
|
<Vtx X="25" Y="15" Z="-5" S="324" T="-165" R="82" G="220" B="166" A="255"/>
|
||||||
|
<Vtx X="30" Y="14" Z="0" S="389" T="-145" R="82" G="220" B="166" A="255"/>
|
||||||
|
<Vtx X="28" Y="10" Z="0" S="366" T="-94" R="82" G="220" B="166" A="255"/>
|
||||||
|
<Vtx X="8" Y="10" Z="-5" S="96" T="-85" R="218" G="81" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="7" Z="-5" S="10" T="-45" R="218" G="81" B="166" A="255"/>
|
||||||
|
<Vtx X="-1" Y="11" Z="0" S="-24" T="-103" R="218" G="81" B="166" A="255"/>
|
||||||
|
<Vtx X="6" Y="14" Z="0" S="60" T="-143" R="218" G="81" B="166" A="255"/>
|
||||||
|
<Vtx X="22" Y="11" Z="-5" S="286" T="-99" R="72" G="202" B="166" A="255"/>
|
||||||
|
<Vtx X="24" Y="13" Z="-5" S="308" T="-128" R="72" G="202" B="166" A="255"/>
|
||||||
|
<Vtx X="28" Y="10" Z="0" S="366" T="-94" R="72" G="202" B="166" A="255"/>
|
||||||
|
<Vtx X="26" Y="7" Z="0" S="335" T="-52" R="72" G="202" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="7" Z="-5" S="10" T="-45" R="203" G="73" B="166" A="255"/>
|
||||||
|
<Vtx X="-2" Y="4" Z="-5" S="-44" T="-5" R="203" G="73" B="166" A="255"/>
|
||||||
|
<Vtx X="-6" Y="7" Z="0" S="-90" T="-54" R="203" G="73" B="166" A="255"/>
|
||||||
|
<Vtx X="-1" Y="11" Z="0" S="-24" T="-103" R="203" G="73" B="166" A="255"/>
|
||||||
|
<Vtx X="-2" Y="4" Z="-5" S="-44" T="-5" R="187" G="58" B="166" A="255"/>
|
||||||
|
<Vtx X="-4" Y="2" Z="-5" S="-64" T="19" R="187" G="58" B="166" A="255"/>
|
||||||
|
<Vtx X="-8" Y="5" Z="0" S="-120" T="-18" R="187" G="58" B="166" A="255"/>
|
||||||
|
<Vtx X="-6" Y="7" Z="0" S="-90" T="-54" R="187" G="58" B="166" A="255"/>
|
||||||
|
<Vtx X="20" Y="9" Z="-5" S="258" T="-76" R="57" G="186" B="166" A="255"/>
|
||||||
|
<Vtx X="22" Y="11" Z="-5" S="286" T="-99" R="57" G="186" B="166" A="255"/>
|
||||||
|
<Vtx X="26" Y="7" Z="0" S="335" T="-52" R="57" G="186" B="166" A="255"/>
|
||||||
|
<Vtx X="23" Y="5" Z="0" S="294" T="-19" R="57" G="186" B="166" A="255"/>
|
||||||
|
<Vtx X="18" Y="8" Z="-5" S="221" T="-58" R="39" G="175" B="166" A="255"/>
|
||||||
|
<Vtx X="20" Y="9" Z="-5" S="258" T="-76" R="39" G="175" B="166" A="255"/>
|
||||||
|
<Vtx X="23" Y="5" Z="0" S="294" T="-19" R="39" G="175" B="166" A="255"/>
|
||||||
|
<Vtx X="19" Y="3" Z="0" S="246" T="4" R="39" G="175" B="166" A="255"/>
|
||||||
|
<Vtx X="-4" Y="2" Z="-5" S="-64" T="19" R="176" G="41" B="166" A="255"/>
|
||||||
|
<Vtx X="-4" Y="0" Z="-5" S="-76" T="43" R="176" G="41" B="166" A="255"/>
|
||||||
|
<Vtx X="-9" Y="2" Z="0" S="-139" T="19" R="176" G="41" B="166" A="255"/>
|
||||||
|
<Vtx X="-8" Y="5" Z="0" S="-120" T="-18" R="176" G="41" B="166" A="255"/>
|
||||||
|
<Vtx X="11" Y="5" Z="-5" S="128" T="-29" R="27" G="170" B="166" A="255"/>
|
||||||
|
<Vtx X="18" Y="8" Z="-5" S="221" T="-58" R="27" G="170" B="166" A="255"/>
|
||||||
|
<Vtx X="19" Y="3" Z="0" S="246" T="4" R="27" G="170" B="166" A="255"/>
|
||||||
|
<Vtx X="13" Y="1" Z="0" S="155" T="33" R="27" G="170" B="166" A="255"/>
|
||||||
|
<Vtx X="-4" Y="0" Z="-5" S="-76" T="43" R="168" G="21" B="166" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-2" Z="-5" S="-82" T="66" R="168" G="21" B="166" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-1" Z="0" S="-149" T="58" R="168" G="21" B="166" A="255"/>
|
||||||
|
<Vtx X="-9" Y="2" Z="0" S="-139" T="19" R="168" G="21" B="166" A="255"/>
|
||||||
|
<Vtx X="5" Y="2" Z="-5" S="55" T="12" R="44" G="177" B="166" A="255"/>
|
||||||
|
<Vtx X="11" Y="5" Z="-5" S="128" T="-29" R="44" G="177" B="166" A="255"/>
|
||||||
|
<Vtx X="13" Y="1" Z="0" S="155" T="33" R="44" G="177" B="166" A="255"/>
|
||||||
|
<Vtx X="9" Y="-1" Z="0" S="103" T="62" R="44" G="177" B="166" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-2" Z="-5" S="-82" T="66" R="166" G="0" B="166" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-4" Z="-5" S="-82" T="94" R="166" G="0" B="166" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-9" Z="0" S="-150" T="161" R="166" G="0" B="166" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-1" Z="0" S="-149" T="58" R="166" G="0" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="-2" Z="-5" S="14" T="76" R="76" G="208" B="166" A="255"/>
|
||||||
|
<Vtx X="5" Y="2" Z="-5" S="55" T="12" R="76" G="208" B="166" A="255"/>
|
||||||
|
<Vtx X="9" Y="-1" Z="0" S="103" T="62" R="76" G="208" B="166" A="255"/>
|
||||||
|
<Vtx X="7" Y="-4" Z="0" S="81" T="96" R="76" G="208" B="166" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-4" Z="-5" S="-82" T="94" R="0" G="166" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="-4" Z="-5" S="14" T="94" R="0" G="166" B="166" A="255"/>
|
||||||
|
<Vtx X="7" Y="-9" Z="0" S="81" T="161" R="0" G="166" B="166" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-9" Z="0" S="-150" T="161" R="0" G="166" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="-4" Z="-5" S="14" T="94" R="90" G="0" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="-2" Z="-5" S="14" T="76" R="90" G="0" B="166" A="255"/>
|
||||||
|
<Vtx X="7" Y="-4" Z="0" S="81" T="96" R="90" G="0" B="166" A="255"/>
|
||||||
|
<Vtx X="7" Y="-9" Z="0" S="81" T="161" R="90" G="0" B="166" A="255"/>
|
||||||
|
<Vtx X="3" Y="-13" Z="0" S="-274" T="-22" R="11" G="89" B="90" A="255"/>
|
||||||
|
<Vtx X="-3" Y="-12" Z="0" S="-350" T="-32" R="11" G="89" B="90" A="255"/>
|
||||||
|
<Vtx X="-2" Y="-18" Z="5" S="-341" T="36" R="11" G="89" B="90" A="255"/>
|
||||||
|
<Vtx X="1" Y="-18" Z="5" S="-301" T="42" R="11" G="89" B="90" A="255"/>
|
||||||
|
<Vtx X="-3" Y="-12" Z="0" S="-350" T="-32" R="221" G="83" B="90" A="255"/>
|
||||||
|
<Vtx X="-8" Y="-15" Z="0" S="-418" T="-4" R="221" G="83" B="90" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-19" Z="5" S="-376" T="51" R="221" G="83" B="90" A="255"/>
|
||||||
|
<Vtx X="-2" Y="-18" Z="5" S="-341" T="36" R="221" G="83" B="90" A="255"/>
|
||||||
|
<Vtx X="7" Y="-17" Z="0" S="-216" T="23" R="55" G="71" B="90" A="255"/>
|
||||||
|
<Vtx X="3" Y="-13" Z="0" S="-274" T="-22" R="55" G="71" B="90" A="255"/>
|
||||||
|
<Vtx X="1" Y="-18" Z="5" S="-301" T="42" R="55" G="71" B="90" A="255"/>
|
||||||
|
<Vtx X="3" Y="-20" Z="5" S="-271" T="65" R="55" G="71" B="90" A="255"/>
|
||||||
|
<Vtx X="-8" Y="-15" Z="0" S="-418" T="-4" R="185" G="55" B="90" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-19" Z="0" S="-463" T="55" R="185" G="55" B="90" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-21" Z="5" S="-399" T="82" R="185" G="55" B="90" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-19" Z="5" S="-376" T="51" R="185" G="55" B="90" A="255"/>
|
||||||
|
<Vtx X="9" Y="-22" Z="0" S="-188" T="92" R="83" G="34" B="90" A="255"/>
|
||||||
|
<Vtx X="7" Y="-17" Z="0" S="-216" T="23" R="83" G="34" B="90" A="255"/>
|
||||||
|
<Vtx X="3" Y="-20" Z="5" S="-271" T="65" R="83" G="34" B="90" A="255"/>
|
||||||
|
<Vtx X="4" Y="-22" Z="5" S="-256" T="101" R="83" G="34" B="90" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-19" Z="0" S="-463" T="55" R="167" G="11" B="90" A="255"/>
|
||||||
|
<Vtx X="-12" Y="-25" Z="0" S="-473" T="131" R="167" G="11" B="90" A="255"/>
|
||||||
|
<Vtx X="-7" Y="-24" Z="5" S="-405" T="122" R="167" G="11" B="90" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-21" Z="5" S="-399" T="82" R="167" G="11" B="90" A="255"/>
|
||||||
|
<Vtx X="9" Y="-27" Z="0" S="-198" T="168" R="89" G="245" B="90" A="255"/>
|
||||||
|
<Vtx X="9" Y="-22" Z="0" S="-188" T="92" R="89" G="245" B="90" A="255"/>
|
||||||
|
<Vtx X="4" Y="-22" Z="5" S="-256" T="101" R="89" G="245" B="90" A="255"/>
|
||||||
|
<Vtx X="4" Y="-25" Z="5" S="-262" T="141" R="89" G="245" B="90" A="255"/>
|
||||||
|
<Vtx X="-12" Y="-25" Z="0" S="-473" T="131" R="173" G="221" B="90" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-30" Z="0" S="-444" T="200" R="173" G="221" B="90" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-27" Z="5" S="-390" T="157" R="173" G="221" B="90" A="255"/>
|
||||||
|
<Vtx X="-7" Y="-24" Z="5" S="-405" T="122" R="173" G="221" B="90" A="255"/>
|
||||||
|
<Vtx X="5" Y="-32" Z="0" S="-242" T="225" R="71" G="201" B="90" A="255"/>
|
||||||
|
<Vtx X="9" Y="-27" Z="0" S="-198" T="168" R="71" G="201" B="90" A="255"/>
|
||||||
|
<Vtx X="4" Y="-25" Z="5" S="-262" T="141" R="71" G="201" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="-27" Z="5" S="-284" T="170" R="71" G="201" B="90" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-30" Z="0" S="-444" T="200" R="202" G="184" B="90" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-33" Z="0" S="-386" T="244" R="202" G="184" B="90" A="255"/>
|
||||||
|
<Vtx X="-3" Y="-28" Z="5" S="-360" T="179" R="202" G="184" B="90" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-27" Z="5" S="-390" T="157" R="202" G="184" B="90" A="255"/>
|
||||||
|
<Vtx X="0" Y="-34" Z="0" S="-311" T="253" R="34" G="173" B="90" A="255"/>
|
||||||
|
<Vtx X="5" Y="-32" Z="0" S="-242" T="225" R="34" G="173" B="90" A="255"/>
|
||||||
|
<Vtx X="2" Y="-27" Z="5" S="-284" T="170" R="34" G="173" B="90" A="255"/>
|
||||||
|
<Vtx X="0" Y="-29" Z="5" S="-320" T="185" R="34" G="173" B="90" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-33" Z="0" S="-386" T="244" R="245" G="167" B="90" A="255"/>
|
||||||
|
<Vtx X="0" Y="-34" Z="0" S="-311" T="253" R="245" G="167" B="90" A="255"/>
|
||||||
|
<Vtx X="0" Y="-29" Z="5" S="-320" T="185" R="245" G="167" B="90" A="255"/>
|
||||||
|
<Vtx X="-3" Y="-28" Z="5" S="-360" T="179" R="245" G="167" B="90" A="255"/>
|
||||||
|
<Vtx X="1" Y="-18" Z="-5" S="-301" T="42" R="11" G="89" B="166" A="255"/>
|
||||||
|
<Vtx X="-2" Y="-18" Z="-5" S="-341" T="36" R="11" G="89" B="166" A="255"/>
|
||||||
|
<Vtx X="-3" Y="-12" Z="0" S="-350" T="-32" R="11" G="89" B="166" A="255"/>
|
||||||
|
<Vtx X="3" Y="-13" Z="0" S="-274" T="-22" R="11" G="89" B="166" A="255"/>
|
||||||
|
<Vtx X="-2" Y="-18" Z="-5" S="-341" T="36" R="221" G="83" B="166" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-19" Z="-5" S="-376" T="51" R="221" G="83" B="166" A="255"/>
|
||||||
|
<Vtx X="-8" Y="-15" Z="0" S="-418" T="-4" R="221" G="83" B="166" A="255"/>
|
||||||
|
<Vtx X="-3" Y="-12" Z="0" S="-350" T="-32" R="221" G="83" B="166" A="255"/>
|
||||||
|
<Vtx X="3" Y="-20" Z="-5" S="-271" T="65" R="55" G="71" B="166" A="255"/>
|
||||||
|
<Vtx X="1" Y="-18" Z="-5" S="-301" T="42" R="55" G="71" B="166" A="255"/>
|
||||||
|
<Vtx X="3" Y="-13" Z="0" S="-274" T="-22" R="55" G="71" B="166" A="255"/>
|
||||||
|
<Vtx X="7" Y="-17" Z="0" S="-216" T="23" R="55" G="71" B="166" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-19" Z="-5" S="-376" T="51" R="185" G="55" B="166" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-21" Z="-5" S="-399" T="82" R="185" G="55" B="166" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-19" Z="0" S="-463" T="55" R="185" G="55" B="166" A="255"/>
|
||||||
|
<Vtx X="-8" Y="-15" Z="0" S="-418" T="-4" R="185" G="55" B="166" A="255"/>
|
||||||
|
<Vtx X="4" Y="-22" Z="-5" S="-256" T="101" R="83" G="34" B="166" A="255"/>
|
||||||
|
<Vtx X="3" Y="-20" Z="-5" S="-271" T="65" R="83" G="34" B="166" A="255"/>
|
||||||
|
<Vtx X="7" Y="-17" Z="0" S="-216" T="23" R="83" G="34" B="166" A="255"/>
|
||||||
|
<Vtx X="9" Y="-22" Z="0" S="-188" T="92" R="83" G="34" B="166" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-21" Z="-5" S="-399" T="82" R="167" G="11" B="166" A="255"/>
|
||||||
|
<Vtx X="-7" Y="-24" Z="-5" S="-405" T="122" R="167" G="11" B="166" A="255"/>
|
||||||
|
<Vtx X="-12" Y="-25" Z="0" S="-473" T="131" R="167" G="11" B="166" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-19" Z="0" S="-463" T="55" R="167" G="11" B="166" A="255"/>
|
||||||
|
<Vtx X="4" Y="-25" Z="-5" S="-262" T="141" R="89" G="245" B="166" A="255"/>
|
||||||
|
<Vtx X="4" Y="-22" Z="-5" S="-256" T="101" R="89" G="245" B="166" A="255"/>
|
||||||
|
<Vtx X="9" Y="-22" Z="0" S="-188" T="92" R="89" G="245" B="166" A="255"/>
|
||||||
|
<Vtx X="9" Y="-27" Z="0" S="-198" T="168" R="89" G="245" B="166" A="255"/>
|
||||||
|
<Vtx X="-7" Y="-24" Z="-5" S="-405" T="122" R="173" G="221" B="166" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-27" Z="-5" S="-390" T="157" R="173" G="221" B="166" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-30" Z="0" S="-444" T="200" R="173" G="221" B="166" A="255"/>
|
||||||
|
<Vtx X="-12" Y="-25" Z="0" S="-473" T="131" R="173" G="221" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="-27" Z="-5" S="-284" T="170" R="71" G="201" B="166" A="255"/>
|
||||||
|
<Vtx X="4" Y="-25" Z="-5" S="-262" T="141" R="71" G="201" B="166" A="255"/>
|
||||||
|
<Vtx X="9" Y="-27" Z="0" S="-198" T="168" R="71" G="201" B="166" A="255"/>
|
||||||
|
<Vtx X="5" Y="-32" Z="0" S="-242" T="225" R="71" G="201" B="166" A="255"/>
|
||||||
|
<Vtx X="-6" Y="-27" Z="-5" S="-390" T="157" R="202" G="184" B="166" A="255"/>
|
||||||
|
<Vtx X="-3" Y="-28" Z="-5" S="-360" T="179" R="202" G="184" B="166" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-33" Z="0" S="-386" T="244" R="202" G="184" B="166" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-30" Z="0" S="-444" T="200" R="202" G="184" B="166" A="255"/>
|
||||||
|
<Vtx X="0" Y="-29" Z="-5" S="-320" T="185" R="34" G="173" B="166" A="255"/>
|
||||||
|
<Vtx X="2" Y="-27" Z="-5" S="-284" T="170" R="34" G="173" B="166" A="255"/>
|
||||||
|
<Vtx X="5" Y="-32" Z="0" S="-242" T="225" R="34" G="173" B="166" A="255"/>
|
||||||
|
<Vtx X="0" Y="-34" Z="0" S="-311" T="253" R="34" G="173" B="166" A="255"/>
|
||||||
|
<Vtx X="-3" Y="-28" Z="-5" S="-360" T="179" R="245" G="167" B="166" A="255"/>
|
||||||
|
<Vtx X="0" Y="-29" Z="-5" S="-320" T="185" R="245" G="167" B="166" A="255"/>
|
||||||
|
<Vtx X="0" Y="-34" Z="0" S="-311" T="253" R="245" G="167" B="166" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-33" Z="0" S="-386" T="244" R="245" G="167" B="166" A="255"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,10 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="-31" Y="-34" Z="-5" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="-31" Y="-34" Z="5" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="-31" Y="43" Z="5" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="-31" Y="43" Z="-5" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="31" Y="-34" Z="-5" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="31" Y="-34" Z="5" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="31" Y="43" Z="5" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="31" Y="43" Z="-5" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,21 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<PipeSync/>
|
||||||
|
<SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
|
||||||
|
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_TEXTURE_GEN="1" G_SHADING_SMOOTH="1" />
|
||||||
|
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
|
||||||
|
<Texture S="1984" T="1984" Level="0" Tile="0" On="1"/>
|
||||||
|
<SetTextureLUT Mode="G_TT_NONE"/>
|
||||||
|
<TileSync/>
|
||||||
|
<SetTextureImage Path="objects/object_mystery_item/noise_tex" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
|
||||||
|
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||||
|
<LoadSync/>
|
||||||
|
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
|
||||||
|
<PipeSync/>
|
||||||
|
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||||
|
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="124"/>
|
||||||
|
<SetPrimColor M="0" L="0" R="220" G="220" B="220" A="255"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,21 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<PipeSync/>
|
||||||
|
<SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
|
||||||
|
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_TEXTURE_GEN="1" G_SHADING_SMOOTH="1" />
|
||||||
|
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
|
||||||
|
<Texture S="1984" T="1984" Level="0" Tile="0" On="1"/>
|
||||||
|
<SetTextureLUT Mode="G_TT_NONE"/>
|
||||||
|
<TileSync/>
|
||||||
|
<SetTextureImage Path="objects/object_mystery_item/noise_tex" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
|
||||||
|
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||||
|
<LoadSync/>
|
||||||
|
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
|
||||||
|
<PipeSync/>
|
||||||
|
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||||
|
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="124"/>
|
||||||
|
<SetPrimColor M="0" L="0" R="114" G="114" B="114" A="255"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
BIN
soh/assets/custom/objects/object_mystery_item/noise_tex
Normal file
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
soh/assets/custom/textures/buttons/ABtnOutline.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
soh/assets/custom/textures/buttons/AnalogStick.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
soh/assets/custom/textures/buttons/AnalogStickOutline.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
soh/assets/custom/textures/buttons/BBtnOutline.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
soh/assets/custom/textures/buttons/CDownOutline.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
soh/assets/custom/textures/buttons/CLeftOutline.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
soh/assets/custom/textures/buttons/CRightOutline.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
soh/assets/custom/textures/buttons/CUpOutline.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
soh/assets/custom/textures/buttons/DPadDown.png
Normal file
After Width: | Height: | Size: 946 B |
BIN
soh/assets/custom/textures/buttons/DPadDownOutline.png
Normal file
After Width: | Height: | Size: 984 B |
BIN
soh/assets/custom/textures/buttons/DPadLeft.png
Normal file
After Width: | Height: | Size: 929 B |
BIN
soh/assets/custom/textures/buttons/DPadLeftOutline.png
Normal file
After Width: | Height: | Size: 953 B |
BIN
soh/assets/custom/textures/buttons/DPadRight.png
Normal file
After Width: | Height: | Size: 922 B |
BIN
soh/assets/custom/textures/buttons/DPadRightOutline.png
Normal file
After Width: | Height: | Size: 954 B |
BIN
soh/assets/custom/textures/buttons/DPadUp.png
Normal file
After Width: | Height: | Size: 968 B |
BIN
soh/assets/custom/textures/buttons/DPadUpOutline.png
Normal file
After Width: | Height: | Size: 993 B |
BIN
soh/assets/custom/textures/buttons/InputViewerBackground.png
Normal file
After Width: | Height: | Size: 941 B |
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 1.0 KiB |
BIN
soh/assets/custom/textures/buttons/LBtnOutline.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
soh/assets/custom/textures/buttons/Mod1.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
soh/assets/custom/textures/buttons/Mod1Outline.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
soh/assets/custom/textures/buttons/Mod2.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
soh/assets/custom/textures/buttons/Mod2Outline.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 379 B After Width: | Height: | Size: 992 B |
BIN
soh/assets/custom/textures/buttons/RBtnOutline.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
soh/assets/custom/textures/buttons/RightStick.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
soh/assets/custom/textures/buttons/RightStickOutline.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 973 B |
BIN
soh/assets/custom/textures/buttons/StartBtnOutline.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1005 B |
BIN
soh/assets/custom/textures/buttons/ZBtnOutline.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
@ -80,6 +80,9 @@ static const ALIGN_ASSET(2) char gRandoPotDL[] = dgRandoPotDL;
|
|||||||
#define dgFishingPoleGiDL "__OTR__objects/object_gi_fishing_pole/gFishingPoleGiDL"
|
#define dgFishingPoleGiDL "__OTR__objects/object_gi_fishing_pole/gFishingPoleGiDL"
|
||||||
static const ALIGN_ASSET(2) char gFishingPoleGiDL[] = dgFishingPoleGiDL;
|
static const ALIGN_ASSET(2) char gFishingPoleGiDL[] = dgFishingPoleGiDL;
|
||||||
|
|
||||||
|
#define dgMysteryItemDL "__OTR__objects/object_mystery_item/gMysteryItemDL"
|
||||||
|
static const ALIGN_ASSET(2) char gMysteryItemDL[] = dgMysteryItemDL;
|
||||||
|
|
||||||
// overlays
|
// overlays
|
||||||
#define dgOptionsDividerChangeLangVtx "__OTR__overlays/ovl_file_choose/gOptionsDividerChangeLangVtx"
|
#define dgOptionsDividerChangeLangVtx "__OTR__overlays/ovl_file_choose/gOptionsDividerChangeLangVtx"
|
||||||
static const ALIGN_ASSET(2) char gOptionsDividerChangeLangVtx[] = dgOptionsDividerChangeLangVtx;
|
static const ALIGN_ASSET(2) char gOptionsDividerChangeLangVtx[] = dgOptionsDividerChangeLangVtx;
|
||||||
|
15
soh/assets/sources/triforce-hunt/paths.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Complete triforce:
|
||||||
|
DL name: gTriforcePieceCompletedDL
|
||||||
|
Export Path: objects/object_triforce_completed
|
||||||
|
|
||||||
|
Shard 0:
|
||||||
|
DL name: gTriforcePiece0DL
|
||||||
|
Export Path: objects/object_triforce_piece_0
|
||||||
|
|
||||||
|
Shard 1:
|
||||||
|
DL name: gTriforcePiece1DL
|
||||||
|
Export Path: objects/object_triforce_piece_1
|
||||||
|
|
||||||
|
Shard 2:
|
||||||
|
DL name: gTriforcePiece2DL
|
||||||
|
Export Path: objects/object_triforce_piece_2
|
BIN
soh/assets/sources/triforce-hunt/textures/noise_tex.png
Normal file
After Width: | Height: | Size: 660 B |
BIN
soh/assets/sources/triforce-hunt/triforce_complete.blend
Normal file
BIN
soh/assets/sources/triforce-hunt/triforce_shard_0.blend
Normal file
BIN
soh/assets/sources/triforce-hunt/triforce_shard_1.blend
Normal file
BIN
soh/assets/sources/triforce-hunt/triforce_shard_2.blend
Normal file
5
soh/assets/xml/GC_MQ_D/code/sys_matrix.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<Root>
|
||||||
|
<File Name="code" OutName="sys_matrix" RangeStart="0x110CC0" RangeEnd="0x110D00">
|
||||||
|
<Mtx Name="gMtxClear" Offset="0x110CC0"/>
|
||||||
|
</File>
|
||||||
|
</Root>
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_scene" Segment="2">
|
<File Name="bdan_scene" Segment="2">
|
||||||
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13E00" TlutOffset="0x13BF8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13E00" TlutOffset="0x13BF8" AddedByScript="true"/>
|
||||||
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x14600" TlutOffset="0x13BF8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x14600" TlutOffset="0x13BF8" AddedByScript="true"/>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_boss_scene" Segment="2">
|
<File Name="bdan_boss_scene" Segment="2">
|
||||||
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
||||||
</File>
|
</File>
|
||||||
|
5
soh/assets/xml/GC_MQ_PAL_F/code/sys_matrix.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<Root>
|
||||||
|
<File Name="code" OutName="sys_matrix" RangeStart="0xEAD00" RangeEnd="0xEAD40">
|
||||||
|
<Mtx Name="gMtxClear" Offset="0xEAD00"/>
|
||||||
|
</File>
|
||||||
|
</Root>
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_scene" Segment="2">
|
<File Name="bdan_scene" Segment="2">
|
||||||
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13E00" TlutOffset="0x13BF8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13E00" TlutOffset="0x13BF8" AddedByScript="true"/>
|
||||||
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x14600" TlutOffset="0x13BF8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x14600" TlutOffset="0x13BF8" AddedByScript="true"/>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_boss_scene" Segment="2">
|
<File Name="bdan_boss_scene" Segment="2">
|
||||||
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
||||||
</File>
|
</File>
|
||||||
|
5
soh/assets/xml/GC_NMQ_D/code/sys_matrix.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<Root>
|
||||||
|
<File Name="code" OutName="sys_matrix" RangeStart="0x110CE0" RangeEnd="0x110D20">
|
||||||
|
<Mtx Name="gMtxClear" Offset="0x110CE0"/>
|
||||||
|
</File>
|
||||||
|
</Root>
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_scene" Segment="2">
|
<File Name="bdan_scene" Segment="2">
|
||||||
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13DE0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13DE0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
||||||
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x145E0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x145E0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_boss_scene" Segment="2">
|
<File Name="bdan_boss_scene" Segment="2">
|
||||||
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
||||||
</File>
|
</File>
|
||||||
|
5
soh/assets/xml/GC_NMQ_PAL_F/code/sys_matrix.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<Root>
|
||||||
|
<File Name="code" OutName="sys_matrix" RangeStart="0xEAD20" RangeEnd="0xEAD60">
|
||||||
|
<Mtx Name="gMtxClear" Offset="0xEAD20"/>
|
||||||
|
</File>
|
||||||
|
</Root>
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_scene" Segment="2">
|
<File Name="bdan_scene" Segment="2">
|
||||||
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13DE0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13DE0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
||||||
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x145E0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x145E0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_boss_scene" Segment="2">
|
<File Name="bdan_boss_scene" Segment="2">
|
||||||
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
||||||
</File>
|
</File>
|
||||||
|
5
soh/assets/xml/N64_PAL_10/code/sys_matrix.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<Root>
|
||||||
|
<File Name="code" OutName="sys_matrix" RangeStart="0xEB620" RangeEnd="0xEB660">
|
||||||
|
<Mtx Name="gMtxClear" Offset="0xEB620"/>
|
||||||
|
</File>
|
||||||
|
</Root>
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_scene" Segment="2">
|
<File Name="bdan_scene" Segment="2">
|
||||||
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13DE0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13DE0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
||||||
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x145E0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x145E0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_boss_scene" Segment="2">
|
<File Name="bdan_boss_scene" Segment="2">
|
||||||
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
||||||
</File>
|
</File>
|
||||||
|
5
soh/assets/xml/N64_PAL_11/code/sys_matrix.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<Root>
|
||||||
|
<File Name="code" OutName="sys_matrix" RangeStart="0xEB660" RangeEnd="0xEB6A0">
|
||||||
|
<Mtx Name="gMtxClear" Offset="0xEB660"/>
|
||||||
|
</File>
|
||||||
|
</Root>
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_scene" Segment="2">
|
<File Name="bdan_scene" Segment="2">
|
||||||
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13DE0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_013E00" OutName="bdan_sceneTex_013E00" Format="ci8" Width="32" Height="64" Offset="0x13DE0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
||||||
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x145E0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
<Texture Name="bdan_sceneTex_014600" OutName="bdan_sceneTex_014600" Format="ci8" Width="32" Height="32" Offset="0x145E0" TlutOffset="0x13BD8" AddedByScript="true"/>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<Root>
|
<Root>
|
||||||
|
<ExternalFile XmlPath="code/sys_matrix.xml" OutPath="code/sys_matrix/"/>
|
||||||
<File Name="bdan_boss_scene" Segment="2">
|
<File Name="bdan_boss_scene" Segment="2">
|
||||||
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
<Scene Name="bdan_boss_scene" Offset="0x0"/>
|
||||||
</File>
|
</File>
|
||||||
|
@ -46,10 +46,18 @@ template<> struct is_char_type<std::byte>: public boost::true_type {};
|
|||||||
|
|
||||||
#endif // #if !BOOST_VERSION_HAS_HASH_RANGE
|
#endif // #if !BOOST_VERSION_HAS_HASH_RANGE
|
||||||
|
|
||||||
|
#if BOOST_USE_STD_TYPES
|
||||||
|
#define BOOST_ENABLE_IF std::enable_if
|
||||||
|
#define BOOST_IS_SAME std::is_same
|
||||||
|
#else
|
||||||
|
#define BOOST_ENABLE_IF boost::enable_if_
|
||||||
|
#define BOOST_IS_SAME is_same
|
||||||
|
#endif
|
||||||
|
|
||||||
template<class It>
|
template<class It>
|
||||||
inline typename boost::enable_if_<
|
inline typename BOOST_ENABLE_IF<
|
||||||
is_char_type<typename std::iterator_traits<It>::value_type>::value &&
|
is_char_type<typename std::iterator_traits<It>::value_type>::value &&
|
||||||
is_same<typename std::iterator_traits<It>::iterator_category, std::random_access_iterator_tag>::value,
|
BOOST_IS_SAME<typename std::iterator_traits<It>::iterator_category, std::random_access_iterator_tag>::value,
|
||||||
std::size_t>::type
|
std::size_t>::type
|
||||||
hash_range_32( uint32_t seed, It first, It last )
|
hash_range_32( uint32_t seed, It first, It last )
|
||||||
{
|
{
|
||||||
@ -114,4 +122,7 @@ std::size_t>::type
|
|||||||
} // namespace hash_detail
|
} // namespace hash_detail
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
|
#undef BOOST_ENABLE_IF
|
||||||
|
#undef BOOST_IS_SAME
|
||||||
|
|
||||||
#endif // #ifndef BOOST_HASH_DETAIL_HASH_RANGE_32_HPP
|
#endif // #ifndef BOOST_HASH_DETAIL_HASH_RANGE_32_HPP
|
||||||
|
@ -23,6 +23,18 @@
|
|||||||
|
|
||||||
#endif // #if !BOOST_VERSION_HAS_HASH_RANGE
|
#endif // #if !BOOST_VERSION_HAS_HASH_RANGE
|
||||||
|
|
||||||
|
#if BOOST_USE_STD_TYPES
|
||||||
|
#define BOOST_ENABLE_IF std::enable_if
|
||||||
|
#define BOOST_IS_INTEGRAL hash_detail::is_integral
|
||||||
|
#define BOOST_IS_UNSIGNED is_unsigned
|
||||||
|
#define BOOST_MAKE_UNSIGNED make_unsigned
|
||||||
|
#else
|
||||||
|
#define BOOST_ENABLE_IF boost::enable_if_
|
||||||
|
#define BOOST_IS_INTEGRAL boost::is_integral
|
||||||
|
#define BOOST_IS_UNSIGNED boost::is_unsigned
|
||||||
|
#define BOOST_MAKE_UNSIGNED boost::make_unsigned
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace boost
|
namespace boost
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -36,7 +48,7 @@ namespace boost
|
|||||||
{
|
{
|
||||||
template<class T,
|
template<class T,
|
||||||
bool bigger_than_size_t = (sizeof(T) > sizeof(uint32_t)),
|
bool bigger_than_size_t = (sizeof(T) > sizeof(uint32_t)),
|
||||||
bool is_unsigned = boost::is_unsigned<T>::value,
|
bool is_unsigned = BOOST_IS_UNSIGNED<T>::value,
|
||||||
std::size_t size_t_bits = sizeof(uint32_t) * CHAR_BIT,
|
std::size_t size_t_bits = sizeof(uint32_t) * CHAR_BIT,
|
||||||
std::size_t type_bits = sizeof(T) * CHAR_BIT>
|
std::size_t type_bits = sizeof(T) * CHAR_BIT>
|
||||||
struct hash_integral_impl_32;
|
struct hash_integral_impl_32;
|
||||||
@ -53,7 +65,7 @@ namespace boost
|
|||||||
{
|
{
|
||||||
static uint32_t fn( T v )
|
static uint32_t fn( T v )
|
||||||
{
|
{
|
||||||
typedef typename boost::make_unsigned<T>::type U;
|
typedef typename BOOST_MAKE_UNSIGNED<T>::type U;
|
||||||
|
|
||||||
if( v >= 0 )
|
if( v >= 0 )
|
||||||
{
|
{
|
||||||
@ -97,7 +109,7 @@ namespace boost
|
|||||||
} // namespace hash_detail
|
} // namespace hash_detail
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
typename boost::enable_if_<boost::is_integral<T>::value, uint32_t>::type
|
typename BOOST_ENABLE_IF<BOOST_IS_INTEGRAL<T>::value, uint32_t>::type
|
||||||
hash_value_32( T v )
|
hash_value_32( T v )
|
||||||
{
|
{
|
||||||
return hash_detail::hash_integral_impl_32<T>::fn( v );
|
return hash_detail::hash_integral_impl_32<T>::fn( v );
|
||||||
@ -106,7 +118,7 @@ namespace boost
|
|||||||
// contiguous ranges (string, vector, array)
|
// contiguous ranges (string, vector, array)
|
||||||
#if BOOST_VERSION_HAS_HASH_RANGE
|
#if BOOST_VERSION_HAS_HASH_RANGE
|
||||||
template <typename T>
|
template <typename T>
|
||||||
typename boost::enable_if_<container_hash::is_contiguous_range<T>::value, uint32_t>::type
|
typename BOOST_ENABLE_IF<container_hash::is_contiguous_range<T>::value, uint32_t>::type
|
||||||
hash_value_32( T const& v )
|
hash_value_32( T const& v )
|
||||||
{
|
{
|
||||||
return boost::hash_range_32( v.data(), v.data() + v.size() );
|
return boost::hash_range_32( v.data(), v.data() + v.size() );
|
||||||
@ -168,5 +180,9 @@ namespace boost
|
|||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
#undef BOOST_HASH_CHAR_TRAITS
|
#undef BOOST_HASH_CHAR_TRAITS
|
||||||
|
#undef BOOST_ENABLE_IF
|
||||||
|
#undef BOOST_IS_INTEGRAL
|
||||||
|
#undef BOOST_IS_UNSIGNED
|
||||||
|
#undef BOOST_MAKE_UNSIGNED
|
||||||
|
|
||||||
#endif // #ifndef BOOST_FUNCTIONAL_HASH_HASH_32_HPP
|
#endif // #ifndef BOOST_FUNCTIONAL_HASH_HASH_32_HPP
|
||||||
|
@ -6,4 +6,6 @@
|
|||||||
|
|
||||||
#define BOOST_VERSION_HAS_HASH_RANGE ((BOOST_VERSION / 100 % 1000) >= 81)
|
#define BOOST_VERSION_HAS_HASH_RANGE ((BOOST_VERSION / 100 % 1000) >= 81)
|
||||||
|
|
||||||
|
#define BOOST_USE_STD_TYPES ((BOOST_VERSION / 100 % 1000) >= 84)
|
||||||
|
|
||||||
#endif // #ifndef BOOST_CONTAINER_HASH_VERSION_HPP
|
#endif // #ifndef BOOST_CONTAINER_HASH_VERSION_HPP
|
||||||
|
@ -22,12 +22,10 @@ extern "C"
|
|||||||
|
|
||||||
void gSPSegment(void* value, int segNum, uintptr_t target);
|
void gSPSegment(void* value, int segNum, uintptr_t target);
|
||||||
void gSPSegmentLoadRes(void* value, int segNum, uintptr_t target);
|
void gSPSegmentLoadRes(void* value, int segNum, uintptr_t target);
|
||||||
void gDPSetTextureImage(Gfx* pkt, u32 f, u32 s, u32 w, uintptr_t i);
|
|
||||||
void gSPDisplayList(Gfx* pkt, Gfx* dl);
|
void gSPDisplayList(Gfx* pkt, Gfx* dl);
|
||||||
void gSPDisplayListOffset(Gfx* pkt, Gfx* dl, int offset);
|
void gSPDisplayListOffset(Gfx* pkt, Gfx* dl, int offset);
|
||||||
void gSPVertex(Gfx* pkt, uintptr_t v, int n, int v0);
|
void gSPVertex(Gfx* pkt, uintptr_t v, int n, int v0);
|
||||||
void gSPInvalidateTexCache(Gfx* pkt, uintptr_t texAddr);
|
void gSPInvalidateTexCache(Gfx* pkt, uintptr_t texAddr);
|
||||||
void gDPSetTextureImageFB(Gfx* pkt, u32 format, u32 size, u32 width, int fb);
|
|
||||||
|
|
||||||
|
|
||||||
void cleararena(void);
|
void cleararena(void);
|
||||||
@ -183,6 +181,8 @@ void __osSetWatchLo(u32);
|
|||||||
EnItem00* Item_DropCollectible(PlayState* play, Vec3f* spawnPos, s16 params);
|
EnItem00* Item_DropCollectible(PlayState* play, Vec3f* spawnPos, s16 params);
|
||||||
EnItem00* Item_DropCollectible2(PlayState* play, Vec3f* spawnPos, s16 params);
|
EnItem00* Item_DropCollectible2(PlayState* play, Vec3f* spawnPos, s16 params);
|
||||||
void EnItem00_CustomItemsParticles(Actor* Parent, PlayState* play, GetItemEntry giEntry);
|
void EnItem00_CustomItemsParticles(Actor* Parent, PlayState* play, GetItemEntry giEntry);
|
||||||
|
void EnItem00_SetupAction(EnItem00* this, EnItem00ActionFunc actionFunc);
|
||||||
|
void func_8001E5C8(EnItem00* this, PlayState* play);
|
||||||
void Item_DropCollectibleRandom(PlayState* play, Actor* fromActor, Vec3f* spawnPos, s16 params);
|
void Item_DropCollectibleRandom(PlayState* play, Actor* fromActor, Vec3f* spawnPos, s16 params);
|
||||||
void EffectBlure_ChangeType(EffectBlure* this, int type);
|
void EffectBlure_ChangeType(EffectBlure* this, int type);
|
||||||
void EffectBlure_AddVertex(EffectBlure* this, Vec3f* p1, Vec3f* p2);
|
void EffectBlure_AddVertex(EffectBlure* this, Vec3f* p1, Vec3f* p2);
|
||||||
@ -415,6 +415,7 @@ f32 Actor_WorldDistXZToPoint(Actor* actor, Vec3f* refPoint);
|
|||||||
void func_8002DBD0(Actor* actor, Vec3f* result, Vec3f* arg2);
|
void func_8002DBD0(Actor* actor, Vec3f* result, Vec3f* arg2);
|
||||||
f32 Actor_HeightDiff(Actor* actorA, Actor* actorB);
|
f32 Actor_HeightDiff(Actor* actorA, Actor* actorB);
|
||||||
f32 Player_GetHeight(Player* player);
|
f32 Player_GetHeight(Player* player);
|
||||||
|
s32 Player_ActionChange_2(Player* player, PlayState* play);
|
||||||
f32 func_8002DCE4(Player* player);
|
f32 func_8002DCE4(Player* player);
|
||||||
s32 func_8002DD6C(Player* player);
|
s32 func_8002DD6C(Player* player);
|
||||||
s32 func_8002DD78(Player* player);
|
s32 func_8002DD78(Player* player);
|
||||||
@ -426,7 +427,7 @@ void Actor_MountHorse(PlayState* play, Player* player, Actor* horse);
|
|||||||
s32 func_8002DEEC(Player* player);
|
s32 func_8002DEEC(Player* player);
|
||||||
void func_8002DF18(PlayState* play, Player* player);
|
void func_8002DF18(PlayState* play, Player* player);
|
||||||
s32 func_8002DF38(PlayState* play, Actor* actor, u8 csMode);
|
s32 func_8002DF38(PlayState* play, Actor* actor, u8 csMode);
|
||||||
s32 func_8002DF54(PlayState* play, Actor* actor, u8 arg2);
|
s32 Player_SetCsActionWithHaltedActors(PlayState* play, Actor* actor, u8 arg2);
|
||||||
void func_8002DF90(DynaPolyActor* dynaActor);
|
void func_8002DF90(DynaPolyActor* dynaActor);
|
||||||
void func_8002DFA4(DynaPolyActor* dynaActor, f32 arg1, s16 arg2);
|
void func_8002DFA4(DynaPolyActor* dynaActor, f32 arg1, s16 arg2);
|
||||||
s32 Player_IsFacingActor(Actor* actor, s16 angle, PlayState* play);
|
s32 Player_IsFacingActor(Actor* actor, s16 angle, PlayState* play);
|
||||||
@ -454,11 +455,11 @@ u32 Actor_TextboxIsClosing(Actor* actor, PlayState* play);
|
|||||||
s8 func_8002F368(PlayState* play);
|
s8 func_8002F368(PlayState* play);
|
||||||
void Actor_GetScreenPos(PlayState* play, Actor* actor, s16* x, s16* y);
|
void Actor_GetScreenPos(PlayState* play, Actor* actor, s16* x, s16* y);
|
||||||
u32 Actor_HasParent(Actor* actor, PlayState* play);
|
u32 Actor_HasParent(Actor* actor, PlayState* play);
|
||||||
// TODO: Rename the follwing 3 functions using whatever scheme we use when we rename func_8002F434 and func_8002F554.
|
// TODO: Rename the follwing 3 functions using whatever scheme we use when we rename Actor_OfferGetItem and func_8002F554.
|
||||||
s32 GiveItemEntryWithoutActor(PlayState* play, GetItemEntry getItemEntry);
|
s32 GiveItemEntryWithoutActor(PlayState* play, GetItemEntry getItemEntry);
|
||||||
s32 GiveItemEntryFromActor(Actor* actor, PlayState* play, GetItemEntry getItemEntry, f32 xzRange, f32 yRange);
|
s32 GiveItemEntryFromActor(Actor* actor, PlayState* play, GetItemEntry getItemEntry, f32 xzRange, f32 yRange);
|
||||||
s32 GiveItemEntryFromActorWithFixedRange(Actor* actor, PlayState* play, GetItemEntry getItemEntry);
|
s32 GiveItemEntryFromActorWithFixedRange(Actor* actor, PlayState* play, GetItemEntry getItemEntry);
|
||||||
s32 func_8002F434(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 yRange);
|
s32 Actor_OfferGetItem(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 yRange);
|
||||||
void func_8002F554(Actor* actor, PlayState* play, s32 getItemId);
|
void func_8002F554(Actor* actor, PlayState* play, s32 getItemId);
|
||||||
void func_8002F580(Actor* actor, PlayState* play);
|
void func_8002F580(Actor* actor, PlayState* play);
|
||||||
u32 Actor_HasNoParent(Actor* actor, PlayState* play);
|
u32 Actor_HasNoParent(Actor* actor, PlayState* play);
|
||||||
@ -572,8 +573,6 @@ void Flags_UnsetRandomizerInf(RandomizerInf flag);
|
|||||||
u16 func_80037C30(PlayState* play, s16 arg1);
|
u16 func_80037C30(PlayState* play, s16 arg1);
|
||||||
s32 func_80037D98(PlayState* play, Actor* actor, s16 arg2, s32* arg3);
|
s32 func_80037D98(PlayState* play, Actor* actor, s16 arg2, s32* arg3);
|
||||||
s32 func_80038290(PlayState* play, Actor* actor, Vec3s* arg2, Vec3s* arg3, Vec3f arg4);
|
s32 func_80038290(PlayState* play, Actor* actor, Vec3s* arg2, Vec3s* arg3, Vec3f arg4);
|
||||||
GetItemEntry GetChestGameRandoGetItem(s8 room, s16 ogDrawId, PlayState* play);
|
|
||||||
s16 GetChestGameRandoGiDrawId(s8 room, s16 ogDrawId, PlayState* play);
|
|
||||||
|
|
||||||
// ? func_80038600(?);
|
// ? func_80038600(?);
|
||||||
u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList*);
|
u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList*);
|
||||||
@ -1106,6 +1105,7 @@ s32 FrameAdvance_Update(FrameAdvanceContext* frameAdvCtx, Input* input);
|
|||||||
u8 PlayerGrounded(Player* player);
|
u8 PlayerGrounded(Player* player);
|
||||||
void Player_SetBootData(PlayState* play, Player* player);
|
void Player_SetBootData(PlayState* play, Player* player);
|
||||||
s32 Player_InBlockingCsMode(PlayState* play, Player* player);
|
s32 Player_InBlockingCsMode(PlayState* play, Player* player);
|
||||||
|
s32 Player_TryCsAction(PlayState* play, Actor* actor, s32 csAction);
|
||||||
s32 Player_InCsMode(PlayState* play);
|
s32 Player_InCsMode(PlayState* play);
|
||||||
s32 func_8008E9C4(Player* player);
|
s32 func_8008E9C4(Player* player);
|
||||||
s32 Player_IsChildWithHylianShield(Player* player);
|
s32 Player_IsChildWithHylianShield(Player* player);
|
||||||
@ -1230,8 +1230,8 @@ Gfx* Gfx_EnvColor(GraphicsContext* gfxCtx, s32 r, s32 g, s32 b, s32 a);
|
|||||||
void Gfx_SetupFrame(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b);
|
void Gfx_SetupFrame(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b);
|
||||||
void func_80095974(GraphicsContext* gfxCtx);
|
void func_80095974(GraphicsContext* gfxCtx);
|
||||||
void func_80095AA0(PlayState* play, Room* room, Input* arg2, UNK_TYPE arg3);
|
void func_80095AA0(PlayState* play, Room* room, Input* arg2, UNK_TYPE arg3);
|
||||||
void func_8009638C(Gfx** displayList, void* source, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 mode0,
|
void Room_DrawBackground2D(Gfx** gfxP, void* tex, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 tlutMode,
|
||||||
u16 tlutCount, f32 frameX, f32 frameY);
|
u16 tlutCount, f32 offsetX, f32 offsetY);
|
||||||
void func_80096FD4(PlayState* play, Room* room);
|
void func_80096FD4(PlayState* play, Room* room);
|
||||||
u32 func_80096FE8(PlayState* play, RoomContext* roomCtx);
|
u32 func_80096FE8(PlayState* play, RoomContext* roomCtx);
|
||||||
s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum);
|
s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum);
|
||||||
@ -1259,6 +1259,8 @@ void SkelAnime_DrawFlexLod(PlayState* play, void** skeleton, Vec3s* jointTable,
|
|||||||
s32 dListIndex);
|
s32 dListIndex);
|
||||||
void SkelAnime_DrawSkeletonOpa(PlayState* play, SkelAnime* skelAnime, OverrideLimbDrawOpa overrideLimbDraw,
|
void SkelAnime_DrawSkeletonOpa(PlayState* play, SkelAnime* skelAnime, OverrideLimbDrawOpa overrideLimbDraw,
|
||||||
PostLimbDrawOpa postLimbDraw, void* arg);
|
PostLimbDrawOpa postLimbDraw, void* arg);
|
||||||
|
Gfx* SkelAnime_DrawSkeleton2(PlayState* play, SkelAnime* skelAnime, OverrideLimbDrawOpa overrideLimbDraw,
|
||||||
|
PostLimbDrawOpa postLimbDraw, void* arg, Gfx* gfx);
|
||||||
void SkelAnime_DrawOpa(PlayState* play, void** skeleton, Vec3s* jointTable,
|
void SkelAnime_DrawOpa(PlayState* play, void** skeleton, Vec3s* jointTable,
|
||||||
OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, void* arg);
|
OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, void* arg);
|
||||||
void SkelAnime_DrawFlexOpa(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dListCount,
|
void SkelAnime_DrawFlexOpa(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dListCount,
|
||||||
@ -1828,8 +1830,8 @@ MtxF* Matrix_CheckFloats(MtxF* mf, char* file, s32 line);
|
|||||||
void Matrix_SetTranslateScaleMtx2(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32 translateX, f32 translateY,
|
void Matrix_SetTranslateScaleMtx2(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32 translateX, f32 translateY,
|
||||||
f32 translateZ);
|
f32 translateZ);
|
||||||
uintptr_t SysUcode_GetUCodeBoot(void);
|
uintptr_t SysUcode_GetUCodeBoot(void);
|
||||||
uintptr_t SysUcode_GetUCodeBootSize(void);
|
size_t SysUcode_GetUCodeBootSize(void);
|
||||||
uintptr_t SysUcode_GetUCode(void);
|
uint32_t SysUcode_GetUCode(void);
|
||||||
uintptr_t SysUcode_GetUCodeData(void);
|
uintptr_t SysUcode_GetUCodeData(void);
|
||||||
void func_800D2E30(UnkRumbleStruct* arg0);
|
void func_800D2E30(UnkRumbleStruct* arg0);
|
||||||
void func_800D3140(UnkRumbleStruct* arg0);
|
void func_800D3140(UnkRumbleStruct* arg0);
|
||||||
@ -2210,6 +2212,14 @@ s8 PadUtils_GetRelYImpl(Input* input);
|
|||||||
s8 PadUtils_GetRelX(Input* input);
|
s8 PadUtils_GetRelX(Input* input);
|
||||||
s8 PadUtils_GetRelY(Input* input);
|
s8 PadUtils_GetRelY(Input* input);
|
||||||
void PadUtils_UpdateRelXY(Input* input);
|
void PadUtils_UpdateRelXY(Input* input);
|
||||||
|
s8 PadUtils_GetCurRX(Input* input);
|
||||||
|
s8 PadUtils_GetCurRY(Input* input);
|
||||||
|
void PadUtils_SetRelRXY(Input* input, s32 x, s32 y);
|
||||||
|
s8 PadUtils_GetRelRXImpl(Input* input);
|
||||||
|
s8 PadUtils_GetRelRYImpl(Input* input);
|
||||||
|
s8 PadUtils_GetRelRX(Input* input);
|
||||||
|
s8 PadUtils_GetRelRY(Input* input);
|
||||||
|
void PadUtils_UpdateRelRXY(Input* input);
|
||||||
s32 PadSetup_Init(OSMesgQueue* mq, u8* outMask, OSContStatus* status);
|
s32 PadSetup_Init(OSMesgQueue* mq, u8* outMask, OSContStatus* status);
|
||||||
f32 Math_FTanF(f32 x);
|
f32 Math_FTanF(f32 x);
|
||||||
f32 Math_FFloorF(f32 x);
|
f32 Math_FFloorF(f32 x);
|
||||||
@ -2346,7 +2356,6 @@ s32 __osCheckPackId(OSPfs* pfs, __OSPackId* check);
|
|||||||
s32 __osGetId(OSPfs* pfs);
|
s32 __osGetId(OSPfs* pfs);
|
||||||
s32 __osCheckId(OSPfs* pfs);
|
s32 __osCheckId(OSPfs* pfs);
|
||||||
s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank);
|
s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank);
|
||||||
void guMtxL2F(MtxF* m1, Mtx* m2);
|
|
||||||
s32 osPfsFindFile(OSPfs* pfs, u16 companyCode, u32 gameCode, u8* gameName, u8* extName, s32* fileNo);
|
s32 osPfsFindFile(OSPfs* pfs, u16 companyCode, u32 gameCode, u8* gameName, u8* extName, s32* fileNo);
|
||||||
s32 osAfterPreNMI(void);
|
s32 osAfterPreNMI(void);
|
||||||
s32 osContStartQuery(OSMesgQueue* mq);
|
s32 osContStartQuery(OSMesgQueue* mq);
|
||||||
@ -2400,7 +2409,6 @@ u32 __osSpGetStatus(void);
|
|||||||
void __osSpSetStatus(u32 status);
|
void __osSpSetStatus(u32 status);
|
||||||
void osWritebackDCacheAll(void);
|
void osWritebackDCacheAll(void);
|
||||||
OSThread* __osGetCurrFaultedThread(void);
|
OSThread* __osGetCurrFaultedThread(void);
|
||||||
void guMtxF2L(MtxF* m1, Mtx* m2);
|
|
||||||
// ? __d_to_ll(?);
|
// ? __d_to_ll(?);
|
||||||
// ? __f_to_ll(?);
|
// ? __f_to_ll(?);
|
||||||
// ? __d_to_ull(?);
|
// ? __d_to_ull(?);
|
||||||
@ -2458,6 +2466,12 @@ void Message_DrawText(PlayState* play, Gfx** gfxP);
|
|||||||
|
|
||||||
void Interface_CreateQuadVertexGroup(Vtx* vtxList, s32 xStart, s32 yStart, s32 width, s32 height, u8 flippedH);
|
void Interface_CreateQuadVertexGroup(Vtx* vtxList, s32 xStart, s32 yStart, s32 width, s32 height, u8 flippedH);
|
||||||
void Interface_RandoRestoreSwordless(void);
|
void Interface_RandoRestoreSwordless(void);
|
||||||
|
s32 Ship_CalcShouldDrawAndUpdate(PlayState* play, Actor* actor, Vec3f* projectedPos, f32 projectedW, bool* shouldDraw,
|
||||||
|
bool* shouldUpdate);
|
||||||
|
|
||||||
|
//Pause Warp
|
||||||
|
void PauseWarp_HandleSelection();
|
||||||
|
void PauseWarp_Execute();
|
||||||
|
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
||||||
|
@ -94,6 +94,7 @@ extern "C"
|
|||||||
extern u16 gEquipMasks[4];
|
extern u16 gEquipMasks[4];
|
||||||
extern u16 gEquipNegMasks[4];
|
extern u16 gEquipNegMasks[4];
|
||||||
extern u32 gUpgradeMasks[8];
|
extern u32 gUpgradeMasks[8];
|
||||||
|
extern u32 gUpgradeNegMasks[8];
|
||||||
extern u8 gEquipShifts[4];
|
extern u8 gEquipShifts[4];
|
||||||
extern u8 gUpgradeShifts[8];
|
extern u8 gUpgradeShifts[8];
|
||||||
extern u16 gUpgradeCapacities[8][4];
|
extern u16 gUpgradeCapacities[8][4];
|
||||||
@ -172,6 +173,7 @@ extern "C"
|
|||||||
extern u8 gWalkSpeedToggle2;
|
extern u8 gWalkSpeedToggle2;
|
||||||
extern f32 iceTrapScale;
|
extern f32 iceTrapScale;
|
||||||
extern f32 triforcePieceScale;
|
extern f32 triforcePieceScale;
|
||||||
|
extern f32 mysteryItemScale;
|
||||||
|
|
||||||
extern const s16 D_8014A6C0[];
|
extern const s16 D_8014A6C0[];
|
||||||
#define gTatumsPerBeat (D_8014A6C0[1])
|
#define gTatumsPerBeat (D_8014A6C0[1])
|
||||||
|
@ -744,7 +744,6 @@ typedef struct {
|
|||||||
/* 0x0134 */ char** doActionSegment;
|
/* 0x0134 */ char** doActionSegment;
|
||||||
/* 0x0138 */ u8* iconItemSegment;
|
/* 0x0138 */ u8* iconItemSegment;
|
||||||
/* 0x013C */ char** mapSegment;
|
/* 0x013C */ char** mapSegment;
|
||||||
char** mapSegmentName;
|
|
||||||
/* 0x0140 */ u8 mapPalette[32];
|
/* 0x0140 */ u8 mapPalette[32];
|
||||||
/* 0x0160 */ DmaRequest dmaRequest_160;
|
/* 0x0160 */ DmaRequest dmaRequest_160;
|
||||||
/* 0x0180 */ DmaRequest dmaRequest_180;
|
/* 0x0180 */ DmaRequest dmaRequest_180;
|
||||||
@ -815,6 +814,10 @@ typedef struct {
|
|||||||
/* 0x026C */ u8 dinsNayrus; // "m_magic"; din's fire and nayru's love
|
/* 0x026C */ u8 dinsNayrus; // "m_magic"; din's fire and nayru's love
|
||||||
/* 0x026D */ u8 all; // "another"; enables all item restrictions
|
/* 0x026D */ u8 all; // "another"; enables all item restrictions
|
||||||
} restrictions;
|
} restrictions;
|
||||||
|
// #region SOH [General]
|
||||||
|
/* */ char* mapSegmentName[2]; // Tracks the map segment texture by OTR sig name
|
||||||
|
/* */ u8 mapPalettesPulse[40][32]; // Used to have unique pointers per map pulse color for the shader backend. 40 for map pulse timer x2
|
||||||
|
// #endregion
|
||||||
} InterfaceContext; // size = 0x270
|
} InterfaceContext; // size = 0x270
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -838,6 +841,9 @@ typedef enum {
|
|||||||
#define PAUSE_CURSOR_PAGE_LEFT 10
|
#define PAUSE_CURSOR_PAGE_LEFT 10
|
||||||
#define PAUSE_CURSOR_PAGE_RIGHT 11
|
#define PAUSE_CURSOR_PAGE_RIGHT 11
|
||||||
|
|
||||||
|
#define PAUSE_EQUIP_PLAYER_WIDTH 64
|
||||||
|
#define PAUSE_EQUIP_PLAYER_HEIGHT 112
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* 0x00 */ PAUSE_ITEM,
|
/* 0x00 */ PAUSE_ITEM,
|
||||||
/* 0x01 */ PAUSE_MAP,
|
/* 0x01 */ PAUSE_MAP,
|
||||||
@ -1478,6 +1484,8 @@ typedef struct PlayState {
|
|||||||
/* 0x1242B */ u8 unk_1242B;
|
/* 0x1242B */ u8 unk_1242B;
|
||||||
/* 0x1242C */ SceneTableEntry* loadedScene;
|
/* 0x1242C */ SceneTableEntry* loadedScene;
|
||||||
/* 0x12430 */ char unk_12430[0xE8];
|
/* 0x12430 */ char unk_12430[0xE8];
|
||||||
|
// SOH [Custom Models] MTX tracker for flex based skeletons
|
||||||
|
Mtx** flexLimbOverrideMTX;
|
||||||
} PlayState; // size = 0x12518
|
} PlayState; // size = 0x12518
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -267,7 +267,12 @@ typedef enum {
|
|||||||
/* 0x17 */ ITEM00_TUNIC_ZORA,
|
/* 0x17 */ ITEM00_TUNIC_ZORA,
|
||||||
/* 0x18 */ ITEM00_TUNIC_GORON,
|
/* 0x18 */ ITEM00_TUNIC_GORON,
|
||||||
/* 0x19 */ ITEM00_BOMBS_SPECIAL,
|
/* 0x19 */ ITEM00_BOMBS_SPECIAL,
|
||||||
/* 0x20 */ ITEM00_BOMBCHU,
|
/* 0x1A */ ITEM00_BOMBCHU,
|
||||||
|
/* 0x1B */ ITEM00_SOH_DUMMY,
|
||||||
|
/* 0x1C */ ITEM00_SOH_GIVE_ITEM_ENTRY,
|
||||||
|
/* 0x1D */ ITEM00_SOH_GIVE_ITEM_ENTRY_GI,
|
||||||
|
/* 0x1E */ ITEM00_MAX,
|
||||||
|
/* 0xFF */ ITEM00_NONE = 0xFF
|
||||||
} Item00Type;
|
} Item00Type;
|
||||||
|
|
||||||
struct EnItem00;
|
struct EnItem00;
|
||||||
@ -285,10 +290,13 @@ typedef struct EnItem00 {
|
|||||||
/* 0x15A */ s16 unk_15A;
|
/* 0x15A */ s16 unk_15A;
|
||||||
/* 0x15C */ f32 scale;
|
/* 0x15C */ f32 scale;
|
||||||
/* 0x160 */ ColliderCylinder collider;
|
/* 0x160 */ ColliderCylinder collider;
|
||||||
s16 ogParams;
|
// #region SOH [Randomizer]
|
||||||
GetItemEntry randoGiEntry;
|
GetItemEntry randoGiEntry;
|
||||||
RandomizerCheck randoCheck;
|
RandomizerCheck randoCheck;
|
||||||
RandomizerInf randoInf;
|
RandomizerInf randoInf;
|
||||||
|
/* */ s16 ogParams;
|
||||||
|
/* */ GetItemEntry itemEntry;
|
||||||
|
// #endregion
|
||||||
} EnItem00; // size = 0x1AC
|
} EnItem00; // size = 0x1AC
|
||||||
|
|
||||||
// Only A_OBJ_SIGNPOST_OBLONG and A_OBJ_SIGNPOST_ARROW are used in room files.
|
// Only A_OBJ_SIGNPOST_OBLONG and A_OBJ_SIGNPOST_ARROW are used in room files.
|
||||||
|
@ -311,6 +311,21 @@ typedef enum {
|
|||||||
/* 0xFF */ ITEM_NONE = 0xFF
|
/* 0xFF */ ITEM_NONE = 0xFF
|
||||||
} ItemID;
|
} ItemID;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
EQUIP_FLAG_SWORD_KOKIRI = 1 << 0,
|
||||||
|
EQUIP_FLAG_SWORD_MASTER = 1 << 1,
|
||||||
|
EQUIP_FLAG_SWORD_BGS = 1 << 2,
|
||||||
|
EQUIP_FLAG_SHIELD_DEKU = 1 << 4,
|
||||||
|
EQUIP_FLAG_SHIELD_HYLIAN = 1 << 5,
|
||||||
|
EQUIP_FLAG_SHIELD_MIRROR = 1 << 6,
|
||||||
|
EQUIP_FLAG_TUNIC_KOKIRI = 1 << 8,
|
||||||
|
EQUIP_FLAG_TUNIC_GORON = 1 << 9,
|
||||||
|
EQUIP_FLAG_TUNIC_ZORA = 1 << 10,
|
||||||
|
EQUIP_FLAG_BOOTS_KOKIRI = 1 << 12,
|
||||||
|
EQUIP_FLAG_BOOTS_IRON = 1 << 13,
|
||||||
|
EQUIP_FLAG_BOOTS_HOVER = 1 << 14,
|
||||||
|
} EquipmentFlag;
|
||||||
|
|
||||||
#define ITEM_TRADE_CHILD ITEM_WEIRD_EGG
|
#define ITEM_TRADE_CHILD ITEM_WEIRD_EGG
|
||||||
#define ITEM_TRADE_ADULT ITEM_POCKET_EGG
|
#define ITEM_TRADE_ADULT ITEM_POCKET_EGG
|
||||||
|
|
||||||
|
@ -345,7 +345,7 @@ typedef enum {
|
|||||||
#define PLAYER_LIMB_BUF_COUNT LIMB_BUF_COUNT(PLAYER_LIMB_MAX)
|
#define PLAYER_LIMB_BUF_COUNT LIMB_BUF_COUNT(PLAYER_LIMB_MAX)
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ f32 unk_00;
|
/* 0x00 */ f32 ceilingCheckHeight;
|
||||||
/* 0x04 */ f32 unk_04;
|
/* 0x04 */ f32 unk_04;
|
||||||
/* 0x08 */ f32 unk_08;
|
/* 0x08 */ f32 unk_08;
|
||||||
/* 0x0C */ f32 unk_0C;
|
/* 0x0C */ f32 unk_0C;
|
||||||
@ -359,7 +359,7 @@ typedef struct {
|
|||||||
/* 0x2C */ f32 unk_2C;
|
/* 0x2C */ f32 unk_2C;
|
||||||
/* 0x30 */ f32 unk_30;
|
/* 0x30 */ f32 unk_30;
|
||||||
/* 0x34 */ f32 unk_34;
|
/* 0x34 */ f32 unk_34;
|
||||||
/* 0x38 */ f32 unk_38;
|
/* 0x38 */ f32 wallCheckRadius;
|
||||||
/* 0x3C */ f32 unk_3C;
|
/* 0x3C */ f32 unk_3C;
|
||||||
/* 0x40 */ f32 unk_40;
|
/* 0x40 */ f32 unk_40;
|
||||||
/* 0x44 */ Vec3s unk_44;
|
/* 0x44 */ Vec3s unk_44;
|
||||||
@ -489,180 +489,187 @@ typedef s32 (*UpperActionFunc)(struct Player*, struct PlayState*);
|
|||||||
typedef void (*PlayerFuncA74)(struct PlayState*, struct Player*);
|
typedef void (*PlayerFuncA74)(struct PlayState*, struct Player*);
|
||||||
|
|
||||||
typedef struct Player {
|
typedef struct Player {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ s8 currentTunic; // current tunic from `PlayerTunic`
|
/* 0x014C */ s8 currentTunic; // current tunic from `PlayerTunic`
|
||||||
/* 0x014D */ s8 currentSwordItemId;
|
/* 0x014D */ s8 currentSwordItemId;
|
||||||
/* 0x014E */ s8 currentShield; // current shield from `PlayerShield`
|
/* 0x014E */ s8 currentShield; // current shield from `PlayerShield`
|
||||||
/* 0x014F */ s8 currentBoots; // current boots from `PlayerBoots`
|
/* 0x014F */ s8 currentBoots; // current boots from `PlayerBoots`
|
||||||
/* 0x0150 */ s8 heldItemButton; // Button index for the item currently used
|
/* 0x0150 */ s8 heldItemButton; // Button index for the item currently used
|
||||||
/* 0x0151 */ s8 heldItemAction; // Item action for the item currently used
|
/* 0x0151 */ s8 heldItemAction; // Item action for the item currently used
|
||||||
/* 0x0152 */ u8 heldItemId; // Item id for the item currently used
|
/* 0x0152 */ u8 heldItemId; // Item id for the item currently used
|
||||||
/* 0x0153 */ s8 prevBoots; // previous boots from `PlayerBoots`
|
/* 0x0153 */ s8 prevBoots; // previous boots from `PlayerBoots`
|
||||||
/* 0x0154 */ s8 itemAction; // the difference between this and heldItemAction is unclear
|
/* 0x0154 */ s8 itemAction; // the difference between this and heldItemAction is unclear
|
||||||
/* 0x0155 */ char unk_155[0x003];
|
/* 0x0155 */ char unk_155[0x003];
|
||||||
/* 0x0158 */ u8 modelGroup;
|
/* 0x0158 */ u8 modelGroup;
|
||||||
/* 0x0159 */ u8 nextModelGroup;
|
/* 0x0159 */ u8 nextModelGroup;
|
||||||
/* 0x015A */ s8 itemChangeType;
|
/* 0x015A */ s8 itemChangeType;
|
||||||
/* 0x015B */ u8 modelAnimType;
|
/* 0x015B */ u8 modelAnimType;
|
||||||
/* 0x015C */ u8 leftHandType;
|
/* 0x015C */ u8 leftHandType;
|
||||||
/* 0x015D */ u8 rightHandType;
|
/* 0x015D */ u8 rightHandType;
|
||||||
/* 0x015E */ u8 sheathType;
|
/* 0x015E */ u8 sheathType;
|
||||||
/* 0x015F */ u8 currentMask; // current mask equipped from `PlayerMask`
|
/* 0x015F */ u8 currentMask; // current mask equipped from `PlayerMask`
|
||||||
/* 0x0160 */ Gfx** rightHandDLists;
|
/* 0x0160 */ Gfx** rightHandDLists;
|
||||||
/* 0x0164 */ Gfx** leftHandDLists;
|
/* 0x0164 */ Gfx** leftHandDLists;
|
||||||
/* 0x0168 */ Gfx** sheathDLists;
|
/* 0x0168 */ Gfx** sheathDLists;
|
||||||
/* 0x016C */ Gfx** waistDLists;
|
/* 0x016C */ Gfx** waistDLists;
|
||||||
/* 0x0170 */ u8 giObjectLoading;
|
/* 0x0170 */ u8 giObjectLoading;
|
||||||
/* 0x0174 */ DmaRequest giObjectDmaRequest;
|
/* 0x0174 */ DmaRequest giObjectDmaRequest;
|
||||||
/* 0x0194 */ OSMesgQueue giObjectLoadQueue;
|
/* 0x0194 */ OSMesgQueue giObjectLoadQueue;
|
||||||
/* 0x01AC */ OSMesg giObjectLoadMsg;
|
/* 0x01AC */ OSMesg giObjectLoadMsg;
|
||||||
/* 0x01B0 */ void* giObjectSegment; // also used for title card textures
|
/* 0x01B0 */ void* giObjectSegment; // also used for title card textures
|
||||||
/* 0x01B4 */ SkelAnime skelAnime;
|
/* 0x01B4 */ SkelAnime skelAnime;
|
||||||
/* 0x01F8 */ Vec3s jointTable[PLAYER_LIMB_BUF_COUNT];
|
/* 0x01F8 */ Vec3s jointTable[PLAYER_LIMB_BUF_COUNT];
|
||||||
/* 0x0288 */ Vec3s morphTable[PLAYER_LIMB_BUF_COUNT];
|
/* 0x0288 */ Vec3s morphTable[PLAYER_LIMB_BUF_COUNT];
|
||||||
/* 0x0318 */ Vec3s blendTable[PLAYER_LIMB_BUF_COUNT];
|
/* 0x0318 */ Vec3s blendTable[PLAYER_LIMB_BUF_COUNT];
|
||||||
/* 0x03A8 */ s16 unk_3A8[2];
|
/* 0x03A8 */ s16 unk_3A8[2];
|
||||||
/* 0x03AC */ Actor* heldActor;
|
/* 0x03AC */ Actor* heldActor;
|
||||||
/* 0x03B0 */ Vec3f leftHandPos;
|
/* 0x03B0 */ Vec3f leftHandPos;
|
||||||
/* 0x03BC */ Vec3s unk_3BC;
|
/* 0x03BC */ Vec3s unk_3BC;
|
||||||
/* 0x03C4 */ Actor* unk_3C4;
|
/* 0x03C4 */ Actor* unk_3C4;
|
||||||
/* 0x03C8 */ Vec3f unk_3C8;
|
/* 0x03C8 */ Vec3f unk_3C8;
|
||||||
/* 0x03D4 */ char unk_3D4[0x058];
|
/* 0x03D4 */ char unk_3D4[0x058];
|
||||||
/* 0x042C */ s8 doorType;
|
/* 0x042C */ s8 doorType;
|
||||||
/* 0x042D */ s8 doorDirection;
|
/* 0x042D */ s8 doorDirection;
|
||||||
/* 0x042E */ s16 doorTimer;
|
/* 0x042E */ s16 doorTimer;
|
||||||
/* 0x0430 */ Actor* doorActor;
|
/* 0x0430 */ Actor* doorActor;
|
||||||
/* 0x0434 */ s16 getItemId; // Upstream TODO: Document why this is s16 while it's s8 upstream
|
/* 0x0434 */ s16 getItemId; // Upstream TODO: Document why this is s16 while it's s8 upstream
|
||||||
/* 0x0436 */ u16 getItemDirection;
|
/* 0x0436 */ u16 getItemDirection;
|
||||||
/* 0x0438 */ Actor* interactRangeActor;
|
/* 0x0438 */ Actor* interactRangeActor;
|
||||||
/* 0x043C */ s8 mountSide;
|
/* 0x043C */ s8 mountSide;
|
||||||
/* 0x043D */ char unk_43D[0x003];
|
/* 0x043D */ char unk_43D[0x003];
|
||||||
/* 0x0440 */ Actor* rideActor;
|
/* 0x0440 */ Actor* rideActor;
|
||||||
/* 0x0444 */ u8 csAction;
|
/* 0x0444 */ u8 csAction;
|
||||||
/* 0x0445 */ u8 prevCsAction;
|
/* 0x0445 */ u8 prevCsAction;
|
||||||
/* 0x0446 */ u8 cueId;
|
/* 0x0446 */ u8 cueId;
|
||||||
/* 0x0447 */ u8 unk_447;
|
/* 0x0447 */ u8 unk_447;
|
||||||
/* 0x0448 */ Actor* csActor;
|
/* 0x0448 */ Actor* csActor; // Actor involved in a `csAction`. Typically the actor that invoked the cutscene.
|
||||||
/* 0x044C */ char unk_44C[0x004];
|
/* 0x044C */ char unk_44C[0x004];
|
||||||
/* 0x0450 */ Vec3f unk_450;
|
/* 0x0450 */ Vec3f unk_450;
|
||||||
/* 0x045C */ Vec3f unk_45C;
|
/* 0x045C */ Vec3f unk_45C;
|
||||||
/* 0x0468 */ char unk_468[0x002];
|
/* 0x0468 */ char unk_468[0x002];
|
||||||
/* 0x046A */ s16 doorBgCamIndex;
|
/* 0x046A */ s16 doorBgCamIndex;
|
||||||
/* 0x046C */ s16 subCamId;
|
/* 0x046C */ s16 subCamId;
|
||||||
/* 0x046E */ char unk_46E[0x02A];
|
/* 0x046E */ char unk_46E[0x02A];
|
||||||
/* 0x0498 */ ColliderCylinder cylinder;
|
/* 0x0498 */ ColliderCylinder cylinder;
|
||||||
/* 0x04E4 */ ColliderQuad meleeWeaponQuads[2];
|
/* 0x04E4 */ ColliderQuad meleeWeaponQuads[2];
|
||||||
/* 0x05E4 */ ColliderQuad shieldQuad;
|
/* 0x05E4 */ ColliderQuad shieldQuad;
|
||||||
/* 0x0664 */ Actor* unk_664;
|
/* 0x0664 */ Actor* unk_664;
|
||||||
/* 0x0668 */ char unk_668[0x004];
|
/* 0x0668 */ char unk_668[0x004];
|
||||||
/* 0x066C */ s32 unk_66C;
|
/* 0x066C */ s32 unk_66C;
|
||||||
/* 0x0670 */ s32 meleeWeaponEffectIndex;
|
/* 0x0670 */ s32 meleeWeaponEffectIndex;
|
||||||
/* 0x0674 */ PlayerActionFunc actionFunc;
|
/* 0x0674 */ PlayerActionFunc actionFunc;
|
||||||
/* 0x0678 */ PlayerAgeProperties* ageProperties;
|
/* 0x0678 */ PlayerAgeProperties* ageProperties;
|
||||||
/* 0x067C */ u32 stateFlags1;
|
/* 0x067C */ u32 stateFlags1;
|
||||||
/* 0x0680 */ u32 stateFlags2;
|
/* 0x0680 */ u32 stateFlags2;
|
||||||
/* 0x0684 */ Actor* unk_684;
|
/* 0x0684 */ Actor* unk_684;
|
||||||
/* 0x0688 */ Actor* boomerangActor;
|
/* 0x0688 */ Actor* boomerangActor;
|
||||||
/* 0x068C */ Actor* naviActor;
|
/* 0x068C */ Actor* naviActor;
|
||||||
/* 0x0690 */ s16 naviTextId;
|
/* 0x0690 */ s16 naviTextId;
|
||||||
/* 0x0692 */ u8 stateFlags3;
|
/* 0x0692 */ u8 stateFlags3;
|
||||||
/* 0x0693 */ s8 exchangeItemId;
|
/* 0x0693 */ s8 exchangeItemId;
|
||||||
/* 0x0694 */ Actor* targetActor;
|
/* 0x0694 */ Actor* targetActor;
|
||||||
/* 0x0698 */ f32 targetActorDistance;
|
/* 0x0698 */ f32 targetActorDistance;
|
||||||
/* 0x069C */ char unk_69C[0x004];
|
/* 0x069C */ char unk_69C[0x004];
|
||||||
/* 0x06A0 */ f32 unk_6A0;
|
/* 0x06A0 */ f32 unk_6A0;
|
||||||
/* 0x06A4 */ f32 closestSecretDistSq;
|
/* 0x06A4 */ f32 closestSecretDistSq;
|
||||||
/* 0x06A8 */ Actor* unk_6A8;
|
/* 0x06A8 */ Actor* unk_6A8;
|
||||||
/* 0x06AC */ s8 unk_6AC;
|
/* 0x06AC */ s8 unk_6AC;
|
||||||
/* 0x06AD */ u8 unk_6AD;
|
/* 0x06AD */ u8 unk_6AD;
|
||||||
/* 0x06AE */ u16 unk_6AE;
|
/* 0x06AE */ u16 unk_6AE;
|
||||||
/* 0x06B0 */ s16 unk_6B0;
|
/* 0x06B0 */ s16 unk_6B0;
|
||||||
/* 0x06B2 */ char unk_6B4[0x004];
|
/* 0x06B2 */ char unk_6B4[0x004];
|
||||||
/* 0x06B6 */ s16 unk_6B6;
|
/* 0x06B6 */ s16 unk_6B6;
|
||||||
/* 0x06B8 */ s16 unk_6B8;
|
/* 0x06B8 */ s16 unk_6B8;
|
||||||
/* 0x06BA */ s16 unk_6BA;
|
/* 0x06BA */ s16 unk_6BA;
|
||||||
/* 0x06BC */ s16 unk_6BC;
|
/* 0x06BC */ s16 unk_6BC;
|
||||||
/* 0x06BE */ s16 unk_6BE;
|
/* 0x06BE */ s16 unk_6BE;
|
||||||
/* 0x06C0 */ s16 unk_6C0;
|
/* 0x06C0 */ s16 unk_6C0;
|
||||||
/* 0x06C2 */ s16 unk_6C2;
|
/* 0x06C2 */ s16 unk_6C2;
|
||||||
/* 0x06C4 */ f32 unk_6C4;
|
/* 0x06C4 */ f32 unk_6C4;
|
||||||
/* 0x06C8 */ SkelAnime upperSkelAnime;
|
/* 0x06C8 */ SkelAnime upperSkelAnime;
|
||||||
/* 0x070C */ Vec3s upperJointTable[PLAYER_LIMB_BUF_COUNT];
|
/* 0x070C */ Vec3s upperJointTable[PLAYER_LIMB_BUF_COUNT];
|
||||||
/* 0x079C */ Vec3s upperMorphTable[PLAYER_LIMB_BUF_COUNT];
|
/* 0x079C */ Vec3s upperMorphTable[PLAYER_LIMB_BUF_COUNT];
|
||||||
/* 0x082C */ UpperActionFunc upperActionFunc;
|
/* 0x082C */ UpperActionFunc upperActionFunc;
|
||||||
/* 0x0830 */ f32 upperAnimBlendWeight;
|
/* 0x0830 */ f32 upperAnimBlendWeight;
|
||||||
/* 0x0834 */ s16 unk_834;
|
/* 0x0834 */ s16 unk_834;
|
||||||
/* 0x0836 */ s8 unk_836;
|
/* 0x0836 */ s8 unk_836;
|
||||||
/* 0x0837 */ u8 unk_837;
|
/* 0x0837 */ u8 unk_837;
|
||||||
/* 0x0838 */ f32 linearVelocity;
|
/* 0x0838 */ f32 linearVelocity;
|
||||||
/* 0x083C */ s16 currentYaw;
|
/* 0x083C */ s16 yaw; // General yaw value, used both for world and shape rotation. Current or target value depending on context.
|
||||||
/* 0x083E */ s16 targetYaw;
|
/* 0x083E */ s16 zTargetYaw; // yaw relating to Z targeting/"parallel" mode
|
||||||
/* 0x0840 */ u16 underwaterTimer;
|
/* 0x0840 */ u16 underwaterTimer;
|
||||||
/* 0x0842 */ s8 meleeWeaponAnimation;
|
/* 0x0842 */ s8 meleeWeaponAnimation;
|
||||||
/* 0x0843 */ s8 meleeWeaponState;
|
/* 0x0843 */ s8 meleeWeaponState;
|
||||||
/* 0x0844 */ s8 unk_844;
|
/* 0x0844 */ s8 unk_844;
|
||||||
/* 0x0845 */ u8 unk_845;
|
/* 0x0845 */ u8 unk_845;
|
||||||
/* 0x0846 */ u8 unk_846;
|
/* 0x0846 */ u8 unk_846;
|
||||||
/* 0x0847 */ s8 unk_847[4];
|
/* 0x0847 */ s8 unk_847[4];
|
||||||
/* 0x084B */ s8 unk_84B[4];
|
/* 0x084B */ s8 unk_84B[4];
|
||||||
/* 0x084F */ s8 unk_84F;
|
|
||||||
/* 0x0850 */ s16 unk_850; // multipurpose timer
|
/* 0x084F */ union {
|
||||||
/* 0x0854 */ f32 unk_854;
|
s8 actionVar1;
|
||||||
/* 0x0858 */ f32 unk_858;
|
} av1; // "Action Variable 1": context dependent variable that has different meanings depending on what action is currently running
|
||||||
/* 0x085C */ f32 unk_85C; // stick length among other things
|
|
||||||
/* 0x0860 */ s16 unk_860; // stick flame timer among other things
|
/* 0x0850 */ union {
|
||||||
/* 0x0862 */ s16 unk_862; // get item draw ID + 1
|
s16 actionVar2;
|
||||||
/* 0x0864 */ f32 unk_864;
|
} av2; // "Action Variable 2": context dependent variable that has different meanings depending on what action is currently running
|
||||||
/* 0x0868 */ f32 unk_868;
|
|
||||||
/* 0x086C */ f32 unk_86C;
|
/* 0x0854 */ f32 unk_854;
|
||||||
/* 0x0870 */ f32 unk_870;
|
/* 0x0858 */ f32 unk_858;
|
||||||
/* 0x0874 */ f32 unk_874;
|
/* 0x085C */ f32 unk_85C; // stick length among other things
|
||||||
/* 0x0878 */ f32 unk_878;
|
/* 0x0860 */ s16 unk_860; // stick flame timer among other things
|
||||||
/* 0x087C */ s16 unk_87C;
|
/* 0x0862 */ s16 unk_862; // get item draw ID + 1
|
||||||
/* 0x087E */ s16 unk_87E;
|
/* 0x0864 */ f32 unk_864;
|
||||||
/* 0x0880 */ f32 unk_880;
|
/* 0x0868 */ f32 unk_868;
|
||||||
/* 0x0884 */ f32 yDistToLedge; // y distance to ground above an interact wall. LEDGE_DIST_MAX if no ground is found
|
/* 0x086C */ f32 unk_86C;
|
||||||
/* 0x0888 */ f32 distToInteractWall; // distance to the colliding wall plane
|
/* 0x0870 */ f32 unk_870;
|
||||||
/* 0x088C */ u8 unk_88C;
|
/* 0x0874 */ f32 unk_874;
|
||||||
/* 0x088D */ u8 unk_88D;
|
/* 0x0878 */ f32 unk_878;
|
||||||
/* 0x088E */ u8 unk_88E;
|
/* 0x087C */ s16 unk_87C;
|
||||||
/* 0x088F */ u8 unk_88F;
|
/* 0x087E */ s16 unk_87E;
|
||||||
/* 0x0890 */ u8 unk_890;
|
/* 0x0880 */ f32 unk_880;
|
||||||
/* 0x0891 */ u8 shockTimer;
|
/* 0x0884 */ f32 yDistToLedge; // y distance to ground above an interact wall. LEDGE_DIST_MAX if no ground is found
|
||||||
/* 0x0892 */ u8 unk_892;
|
/* 0x0888 */ f32 distToInteractWall; // xyz distance to the interact wall
|
||||||
/* 0x0893 */ u8 hoverBootsTimer;
|
/* 0x088C */ u8 ledgeClimbType;
|
||||||
/* 0x0894 */ s16 fallStartHeight; // last truncated Y position before falling
|
/* 0x088D */ u8 ledgeClimbDelayTimer;
|
||||||
/* 0x0896 */ s16 fallDistance; // truncated Y distance the player has fallen so far (positive is down)
|
/* 0x088E */ u8 unk_88E;
|
||||||
/* 0x0898 */ s16 floorPitch; // angle of the floor slope in the direction of current world yaw (positive for ascending slope)
|
/* 0x088F */ u8 unk_88F;
|
||||||
/* 0x089A */ s16 floorPitchAlt; // the calculation for this value is bugged and doesn't represent anything meaningful
|
/* 0x0890 */ u8 unk_890;
|
||||||
/* 0x089C */ s16 unk_89C;
|
/* 0x0891 */ u8 bodyShockTimer;
|
||||||
/* 0x089E */ u16 floorSfxOffset;
|
/* 0x0892 */ u8 unk_892;
|
||||||
/* 0x08A0 */ u8 unk_8A0;
|
/* 0x0893 */ u8 hoverBootsTimer;
|
||||||
/* 0x08A1 */ u8 unk_8A1;
|
/* 0x0894 */ s16 fallStartHeight; // last truncated Y position before falling
|
||||||
/* 0x08A2 */ s16 unk_8A2;
|
/* 0x0896 */ s16 fallDistance; // truncated Y distance the player has fallen so far (positive is down)
|
||||||
/* 0x08A4 */ f32 unk_8A4;
|
/* 0x0898 */ s16 floorPitch; // angle of the floor slope in the direction of current world yaw (positive for ascending slope)
|
||||||
/* 0x08A8 */ f32 unk_8A8;
|
/* 0x089A */ s16 floorPitchAlt; // the calculation for this value is bugged and doesn't represent anything meaningful
|
||||||
/* 0x08AC */ f32 pushedSpeed; // Pushing player, examples include water currents, floor conveyors, climbing sloped surfaces
|
/* 0x089C */ s16 unk_89C;
|
||||||
/* 0x08B0 */ s16 pushedYaw; // Yaw direction of player being pushed
|
/* 0x089E */ u16 floorSfxOffset;
|
||||||
|
/* 0x08A0 */ u8 unk_8A0;
|
||||||
|
/* 0x08A1 */ u8 unk_8A1;
|
||||||
|
/* 0x08A2 */ s16 unk_8A2;
|
||||||
|
/* 0x08A4 */ f32 unk_8A4;
|
||||||
|
/* 0x08A8 */ f32 unk_8A8;
|
||||||
|
/* 0x08AC */ f32 pushedSpeed; // Pushing player, examples include water currents, floor conveyors, climbing sloped surfaces
|
||||||
|
/* 0x08B0 */ s16 pushedYaw; // Yaw direction of player being pushed
|
||||||
/* 0x08B4 */ WeaponInfo meleeWeaponInfo[3];
|
/* 0x08B4 */ WeaponInfo meleeWeaponInfo[3];
|
||||||
/* 0x0908 */ Vec3f bodyPartsPos[PLAYER_BODYPART_MAX];
|
/* 0x0908 */ Vec3f bodyPartsPos[PLAYER_BODYPART_MAX];
|
||||||
/* 0x09E0 */ MtxF mf_9E0;
|
/* 0x09E0 */ MtxF mf_9E0;
|
||||||
/* 0x0A20 */ MtxF shieldMf;
|
/* 0x0A20 */ MtxF shieldMf;
|
||||||
/* 0x0A60 */ u8 isBurning;
|
/* 0x0A60 */ u8 bodyIsBurning;
|
||||||
/* 0x0A61 */ u8 flameTimers[PLAYER_BODYPART_MAX]; // one flame per body part
|
/* 0x0A61 */ u8 bodyFlameTimers[PLAYER_BODYPART_MAX]; // one flame per body part
|
||||||
/* 0x0A73 */ u8 unk_A73;
|
/* 0x0A73 */ u8 unk_A73;
|
||||||
/* 0x0A74 */ PlayerFuncA74 func_A74;
|
/* 0x0A74 */ PlayerFuncA74 func_A74;
|
||||||
/* 0x0A78 */ s8 invincibilityTimer; // prevents damage when nonzero (positive = visible, counts towards zero each frame)
|
/* 0x0A78 */ s8 invincibilityTimer; // prevents damage when nonzero (positive = visible, counts towards zero each frame)
|
||||||
/* 0x0A79 */ u8 unk_A79;
|
/* 0x0A79 */ u8 floorTypeTimer; // counts up every frame the current floor type is the same as the last frame
|
||||||
/* 0x0A7A */ u8 unk_A7A;
|
/* 0x0A7A */ u8 floorProperty;
|
||||||
/* 0x0A7B */ u8 unk_A7B;
|
/* 0x0A7B */ u8 prevFloorType;
|
||||||
/* 0x0A7C */ f32 unk_A7C;
|
/* 0x0A7C */ f32 prevControlStickMagnitude;
|
||||||
/* 0x0A80 */ s16 unk_A80;
|
/* 0x0A80 */ s16 prevControlStickAngle;
|
||||||
/* 0x0A82 */ u16 unk_A82;
|
/* 0x0A82 */ u16 prevFloorSfxOffset;
|
||||||
/* 0x0A84 */ s16 unk_A84;
|
/* 0x0A84 */ s16 unk_A84;
|
||||||
/* 0x0A86 */ s8 unk_A86;
|
/* 0x0A86 */ s8 unk_A86;
|
||||||
/* 0x0A87 */ u8 unk_A87;
|
/* 0x0A87 */ u8 unk_A87;
|
||||||
/* 0x0A88 */ Vec3f unk_A88; // previous body part 0 position
|
/* 0x0A88 */ Vec3f unk_A88; // previous body part 0 position
|
||||||
// #region SOH [General]
|
// #region SOH [General]
|
||||||
// Upstream TODO: Rename these to be more obviously SoH specific
|
// Upstream TODO: Rename these to be more obviously SoH specific
|
||||||
/* */ PendingFlag pendingFlag;
|
/* */ PendingFlag pendingFlag;
|
||||||
@ -670,7 +677,7 @@ typedef struct Player {
|
|||||||
// #endregion
|
// #endregion
|
||||||
// #region SOH [Enhancements]
|
// #region SOH [Enhancements]
|
||||||
// Upstream TODO: Rename this to make it more obvious it is apart of an enhancement
|
// Upstream TODO: Rename this to make it more obvious it is apart of an enhancement
|
||||||
/* */ u8 boomerangQuickRecall; // Has the player pressed the boomerang button while it's in the air still?
|
/* */ u8 boomerangQuickRecall; // Has the player pressed the boomerang button while it's in the air still?
|
||||||
// #endregion
|
// #endregion
|
||||||
u8 ivanFloating;
|
u8 ivanFloating;
|
||||||
u8 ivanDamageMultiplier;
|
u8 ivanDamageMultiplier;
|
||||||
|
@ -7,68 +7,6 @@ export RESPATH="${SNAME%/MacOS*}/Resources"
|
|||||||
export LIBPATH="${SNAME%/MacOS*}/Frameworks"
|
export LIBPATH="${SNAME%/MacOS*}/Frameworks"
|
||||||
export DYLD_FALLBACK_LIBRARY_PATH="$LIBPATH"
|
export DYLD_FALLBACK_LIBRARY_PATH="$LIBPATH"
|
||||||
|
|
||||||
remap_hashes ()
|
|
||||||
{
|
|
||||||
# Remap v64 and n64 hashes to their z64 hash equivalent
|
|
||||||
# ZAPD will handle converting the data into z64 format
|
|
||||||
case "$ROMHASH" in
|
|
||||||
a9059b56e761c9034fbe02fe4c24985aaa835dac) # v64
|
|
||||||
ROMHASH=cee6bc3c2a634b41728f2af8da54d9bf8cc14099
|
|
||||||
;;
|
|
||||||
24708102dc504d3f375a37f4ae4e149c167dc515) # n64
|
|
||||||
ROMHASH=cee6bc3c2a634b41728f2af8da54d9bf8cc14099
|
|
||||||
;;
|
|
||||||
580dd0bd1b6d2c51cc20a764eece84dba558964c) # v64
|
|
||||||
ROMHASH=0227d7c0074f2d0ac935631990da8ec5914597b4
|
|
||||||
;;
|
|
||||||
d6342c59007e57c1194661ec6880b2f078403f4e) # n64
|
|
||||||
ROMHASH=0227d7c0074f2d0ac935631990da8ec5914597b4
|
|
||||||
;;
|
|
||||||
d0bdc2eb320668b4ba6893b9aefe4040a73123ff) # v64
|
|
||||||
ROMHASH=328a1f1beba30ce5e178f031662019eb32c5f3b5
|
|
||||||
;;
|
|
||||||
4946ab250f6ac9b32d76b21f309ebb8ebc8103d2) # n64
|
|
||||||
ROMHASH=328a1f1beba30ce5e178f031662019eb32c5f3b5
|
|
||||||
;;
|
|
||||||
663c34f1b2c05a09e5beffe4d0dcd440f7d49dc7) # v64
|
|
||||||
ROMHASH=cfbb98d392e4a9d39da8285d10cbef3974c2f012
|
|
||||||
;;
|
|
||||||
24c73d378b0620a380ce5ef9f2b186c6c157a68b) # n64
|
|
||||||
ROMHASH=cfbb98d392e4a9d39da8285d10cbef3974c2f012
|
|
||||||
;;
|
|
||||||
8ebf2e29313f44f2d49e5b4191971d09919e8e48) # v64
|
|
||||||
ROMHASH=f46239439f59a2a594ef83cf68ef65043b1bffe2
|
|
||||||
;;
|
|
||||||
4264bf7b875737b8fae77d52322a5099d051fc11) # n64
|
|
||||||
ROMHASH=f46239439f59a2a594ef83cf68ef65043b1bffe2
|
|
||||||
;;
|
|
||||||
973bc6fe56010a8d646166a1182a81b4f13b8cf9) # v64
|
|
||||||
ROMHASH=50bebedad9e0f10746a52b07239e47fa6c284d03
|
|
||||||
;;
|
|
||||||
d327752c46edc70ff3668b9514083dbbee08927c) # v64
|
|
||||||
ROMHASH=50bebedad9e0f10746a52b07239e47fa6c284d03
|
|
||||||
;;
|
|
||||||
ecdeb1747560834e079c22243febea7f6f26ba3b) # v64
|
|
||||||
ROMHASH=079b855b943d6ad8bd1eb026c0ed169ecbdac7da
|
|
||||||
;;
|
|
||||||
f19f8662ec7abee29484a272a6fda53e39efe0f1) # n64
|
|
||||||
ROMHASH=079b855b943d6ad8bd1eb026c0ed169ecbdac7da
|
|
||||||
;;
|
|
||||||
ab519ce04a33818ce2c39b3c514a751d807a494a) # v64
|
|
||||||
ROMHASH=cfecfdc58d650e71a200c81f033de4e6d617a9f6
|
|
||||||
;;
|
|
||||||
c19a34f7646305e1755249fca2071e178bd7cd00) # n64
|
|
||||||
ROMHASH=cfecfdc58d650e71a200c81f033de4e6d617a9f6
|
|
||||||
;;
|
|
||||||
25e8ae79ea0839ca5c984473f7460d8040c36f9c) # v64
|
|
||||||
ROMHASH=517bd9714c73cb96c21e7c2ef640d7b55186102f
|
|
||||||
;;
|
|
||||||
166c02770d67fcc3954c443eb400a6a3573d3fc0) # n64
|
|
||||||
ROMHASH=517bd9714c73cb96c21e7c2ef640d7b55186102f
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ ! -e "$SHIP_HOME" ]; then mkdir "$SHIP_HOME"; fi
|
if [ ! -e "$SHIP_HOME" ]; then mkdir "$SHIP_HOME"; fi
|
||||||
|
|
||||||
if [ ! -e "$SHIP_HOME"/mods ]; then
|
if [ ! -e "$SHIP_HOME"/mods ]; then
|
||||||
@ -76,178 +14,6 @@ if [ ! -e "$SHIP_HOME"/mods ]; then
|
|||||||
touch "$SHIP_HOME"/mods/custom_otr_files_go_here.txt
|
touch "$SHIP_HOME"/mods/custom_otr_files_go_here.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If either OTR doesn't exist kick off the OTR gen process
|
|
||||||
if [ ! -e "$SHIP_HOME"/oot.otr ] || [ ! -e "$SHIP_HOME"/oot-mq.otr ]; then
|
|
||||||
|
|
||||||
# If no ROMs exist kick off the file selection prompts
|
|
||||||
while [ ! -e "$SHIP_HOME"/*.*64 ] && [ ! -e "$SHIP_HOME"/oot*.otr ]; do
|
|
||||||
|
|
||||||
SHOULD_PROMPT_FOR_ROM=1
|
|
||||||
while [ $SHOULD_PROMPT_FOR_ROM -eq 1 ]; do
|
|
||||||
SHOULD_PROMPT_FOR_ROM=0
|
|
||||||
# Use osascript to prompt the user to chose a file
|
|
||||||
DROPROM=`osascript <<-EOF
|
|
||||||
set romFile to choose file of type {"b64","n64","v64","z64"} with prompt "Please select your ROM:"
|
|
||||||
return POSIX path of romFile
|
|
||||||
EOF`
|
|
||||||
|
|
||||||
# If no rom was selected, the user cancelled, so exit
|
|
||||||
if [[ -z $DROPROM ]] && [[ -z "$UPLOAD_ANOTHER_RESULT" ]]; then
|
|
||||||
echo "No ROM selected. Exiting..."
|
|
||||||
exit 1
|
|
||||||
elif [[ -z $DROPROM ]]; then
|
|
||||||
break;
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If an invalid rom was selected, let the user know and ask to try again
|
|
||||||
ROMHASH="$(shasum "$DROPROM" | awk '{ print $1 }')"
|
|
||||||
|
|
||||||
remap_hashes
|
|
||||||
|
|
||||||
case "$ROMHASH" in
|
|
||||||
cee6bc3c2a634b41728f2af8da54d9bf8cc14099)
|
|
||||||
ROM_TYPE=0;;
|
|
||||||
0227d7c0074f2d0ac935631990da8ec5914597b4)
|
|
||||||
ROM_TYPE=0;;
|
|
||||||
328a1f1beba30ce5e178f031662019eb32c5f3b5)
|
|
||||||
ROM_TYPE=0;;
|
|
||||||
cfbb98d392e4a9d39da8285d10cbef3974c2f012)
|
|
||||||
ROM_TYPE=0;;
|
|
||||||
f46239439f59a2a594ef83cf68ef65043b1bffe2)
|
|
||||||
ROM_TYPE=1;;
|
|
||||||
50bebedad9e0f10746a52b07239e47fa6c284d03)
|
|
||||||
ROM_TYPE=1;;
|
|
||||||
079b855b943d6ad8bd1eb026c0ed169ecbdac7da)
|
|
||||||
ROM_TYPE=1;;
|
|
||||||
cfecfdc58d650e71a200c81f033de4e6d617a9f6)
|
|
||||||
ROM_TYPE=1;;
|
|
||||||
517bd9714c73cb96c21e7c2ef640d7b55186102f)
|
|
||||||
ROM_TYPE=1;;
|
|
||||||
*)
|
|
||||||
TRY_AGAIN_RESULT=`osascript <<-EOF
|
|
||||||
set alertText to "Incompatible ROM hash"
|
|
||||||
set alertMessage to "Incompatible ROM provided, would you like to try again?"
|
|
||||||
return display alert alertText \
|
|
||||||
message alertMessage \
|
|
||||||
as critical \
|
|
||||||
buttons {"Cancel", "Try Again"}
|
|
||||||
EOF`
|
|
||||||
if [[ "$TRY_AGAIN_RESULT" == "button returned:Try Again" ]]; then
|
|
||||||
SHOULD_PROMPT_FOR_ROM=1
|
|
||||||
continue;
|
|
||||||
else
|
|
||||||
echo "No ROM selected. Exiting..."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
esac
|
|
||||||
|
|
||||||
cp "$DROPROM" "$SHIP_HOME"
|
|
||||||
|
|
||||||
# Ask user if they would also like to select the other variant (MQ/Vanilla)
|
|
||||||
if [ $ROM_TYPE -eq 0 ] && [[ -z "$UPLOAD_ANOTHER_RESULT" ]]; then
|
|
||||||
UPLOAD_ANOTHER_RESULT=`osascript <<-EOF
|
|
||||||
set alertText to "Success"
|
|
||||||
set alertMessage to "Would you also like to provide a Master Quest ROM?"
|
|
||||||
return display alert alertText \
|
|
||||||
message alertMessage \
|
|
||||||
buttons {"No", "Yes"}
|
|
||||||
EOF`
|
|
||||||
elif [[ -z "$UPLOAD_ANOTHER_RESULT" ]]; then
|
|
||||||
UPLOAD_ANOTHER_RESULT=`osascript <<-EOF
|
|
||||||
set alertText to "Success"
|
|
||||||
set alertMessage to "Would you also like to provide a Vanilla (Non Master Quest) ROM?"
|
|
||||||
return display alert alertText \
|
|
||||||
message alertMessage \
|
|
||||||
buttons {"No", "Yes"}
|
|
||||||
EOF`
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$UPLOAD_ANOTHER_RESULT" == "button returned:Yes" ]]; then
|
|
||||||
UPLOAD_ANOTHER_RESULT="button returned:No"
|
|
||||||
SHOULD_PROMPT_FOR_ROM=1
|
|
||||||
continue;
|
|
||||||
fi
|
|
||||||
break
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
# At this point we should now have 1 or more valid roms in $SHIP_HOME directory
|
|
||||||
|
|
||||||
# Prepare tmp dir
|
|
||||||
for ROMPATH in "$SHIP_HOME"/*.*64
|
|
||||||
do
|
|
||||||
ASSETDIR="$(mktemp -d /tmp/assets-XXXXX)"
|
|
||||||
export ASSETDIR
|
|
||||||
cp -r "$RESPATH/assets" "$ASSETDIR"
|
|
||||||
mkdir -p "$ASSETDIR"/tmp
|
|
||||||
cp "$ROMPATH" "$ASSETDIR"/tmp/rom.z64
|
|
||||||
cd "$ASSETDIR" || return
|
|
||||||
|
|
||||||
# If an invalid rom was detected, let the user know
|
|
||||||
ROMHASH="$(shasum "$ASSETDIR"/tmp/rom.z64 | awk '{ print $1 }')"
|
|
||||||
|
|
||||||
remap_hashes
|
|
||||||
|
|
||||||
case "$ROMHASH" in
|
|
||||||
cee6bc3c2a634b41728f2af8da54d9bf8cc14099)
|
|
||||||
ROM=GC_NMQ_D
|
|
||||||
OTRNAME="oot.otr";;
|
|
||||||
0227d7c0074f2d0ac935631990da8ec5914597b4)
|
|
||||||
ROM=GC_NMQ_PAL_F
|
|
||||||
OTRNAME="oot.otr";;
|
|
||||||
328a1f1beba30ce5e178f031662019eb32c5f3b5)
|
|
||||||
ROM=N64_PAL_10
|
|
||||||
OTRNAME="oot.otr";;
|
|
||||||
cfbb98d392e4a9d39da8285d10cbef3974c2f012)
|
|
||||||
ROM=N64_PAL_11
|
|
||||||
OTRNAME="oot.otr";;
|
|
||||||
f46239439f59a2a594ef83cf68ef65043b1bffe2)
|
|
||||||
ROM=GC_MQ_PAL_F
|
|
||||||
OTRNAME="oot-mq.otr";;
|
|
||||||
50bebedad9e0f10746a52b07239e47fa6c284d03)
|
|
||||||
ROM=GC_MQ_D
|
|
||||||
OTRNAME="oot-mq.otr";;
|
|
||||||
079b855b943d6ad8bd1eb026c0ed169ecbdac7da)
|
|
||||||
ROM=GC_MQ_D
|
|
||||||
OTRNAME="oot-mq.otr";;
|
|
||||||
cfecfdc58d650e71a200c81f033de4e6d617a9f6)
|
|
||||||
ROM=GC_MQ_D
|
|
||||||
OTRNAME="oot-mq.otr";;
|
|
||||||
517bd9714c73cb96c21e7c2ef640d7b55186102f)
|
|
||||||
ROM=GC_MQ_D
|
|
||||||
OTRNAME="oot-mq.otr";;
|
|
||||||
*)
|
|
||||||
osascript -e 'display notification "One or more invalid ROM provided" with title "Ship Of Harkinian"'
|
|
||||||
rm -r "$ASSETDIR"
|
|
||||||
cd "$SNAME"
|
|
||||||
continue;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Only generate OTR if we don't have on of this type yet
|
|
||||||
if [ -e "$SHIP_HOME"/"$OTRNAME" ]; then
|
|
||||||
rm -r "$ASSETDIR"
|
|
||||||
cd "$SNAME"
|
|
||||||
continue;
|
|
||||||
fi
|
|
||||||
|
|
||||||
osascript -e 'display notification "Generating OTR..." with title "Ship Of Harkinian"'
|
|
||||||
assets/extractor/ZAPD.out ed -i assets/extractor/xmls/"${ROM}" -b tmp/rom.z64 -fl assets/extractor/filelists -o placeholder -osf placeholder -gsf 1 -rconf assets/extractor/Config_"${ROM}".xml -se OTR --portVer "@CMAKE_PROJECT_VERSION@"
|
|
||||||
if [ -e "$ASSETDIR"/oot.otr ]; then
|
|
||||||
osascript -e 'display notification "OTR successfully generated" with title "Ship Of Harkinian"'
|
|
||||||
cp "$ASSETDIR"/oot.otr "$SHIP_HOME"/"$OTRNAME"
|
|
||||||
rm -r "$ASSETDIR"
|
|
||||||
cd "$SNAME"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ ! -e "$SHIP_HOME"/oot*.otr ]; then
|
|
||||||
osascript -e 'display notification "OTR failed to generate" with title "Ship Of Harkinian"'
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd "$SNAME"
|
|
||||||
|
|
||||||
"$RESPATH"/soh-macos
|
"$RESPATH"/soh-macos
|
||||||
|
|
||||||
exit
|
exit
|
||||||
|