Merge remote-tracking branch 'upstream/main' into docker

This commit is contained in:
Thomas Rohloff 2025-07-04 13:10:26 +02:00
commit fd5acc8c9a
146 changed files with 9458 additions and 6069 deletions

View File

@ -7,7 +7,6 @@ on:
jobs:
deploy:
if: 0
runs-on: ubuntu-latest
steps:
- name: Checkout repository
@ -17,7 +16,7 @@ jobs:
- name: Install Doxygen
run: |
sudo apt-get install graphviz doxygen
wget https://www.doxygen.nl/files/doxygen-1.11.0.linux.bin.tar.gz
wget https://www.doxygen.nl/files/doxygen-1.13.2.linux.bin.tar.gz
tar -xzf doxygen-*.linux.bin.tar.gz
- name: Generate Doxygen documentation

View File

@ -12,10 +12,14 @@ jobs:
with:
submodules: recursive
- name: Install dependencies
run: brew install sdl2 libpng glew ninja cmake libzip nlohmann-json tinyxml2 spdlog vorbis-tools
run: brew install ninja cmake
- name: Install vcpkg
uses: lukka/run-vcpkg@v11.5
with:
vcpkgDirectory: '${{ github.workspace }}/vcpkg'
- name: Build
run: |
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build-cmake -j
- name: Create Package
run: |

View File

@ -82,10 +82,14 @@ jobs:
with:
submodules: recursive
- name: Install dependencies
run: brew install sdl2 sdl2_net libpng glew ninja cmake libzip nlohmann-json tinyxml2 spdlog vorbis-tools
run: brew install ninja cmake
- name: Install vcpkg
uses: lukka/run-vcpkg@v11.5
with:
vcpkgDirectory: '${{ github.workspace }}/vcpkg'
- name: Build
run: |
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build-cmake --config Release -j3
- name: Download spaghetti.o2r
uses: actions/download-artifact@v4
@ -99,7 +103,7 @@ jobs:
mv build-cmake/spaghetti.o2r spaghetti-release/
mv config.yml spaghetti-release/
mv yamls spaghetti-release/
wget -O spaghetti-release/gamecontrollerdb.txt https://github.com/mdqinc/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
wget -O spaghetti-release/gamecontrollerdb.txt https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/master/gamecontrollerdb.txt
- name: Publish packaged artifacts
uses: actions/upload-artifact@v4
with:
@ -182,7 +186,7 @@ jobs:
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE=Release
cmake --build build-cmake --config Release -j3
(cd build-cmake && cpack -G External)
wget -O gamecontrollerdb.txt https://github.com/mdqinc/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
wget -O gamecontrollerdb.txt https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/master/gamecontrollerdb.txt
mv README.md readme.txt
mv build-cmake/*.appimage spaghetti.appimage
# - name: Upload build
@ -283,7 +287,7 @@ jobs:
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE=Release
cmake --build build-cmake --config Release -j3
(cd build-cmake && cpack -G External)
wget -O gamecontrollerdb.txt https://github.com/mdqinc/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
wget -O gamecontrollerdb.txt https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/master/gamecontrollerdb.txt
mv README.md readme.txt
mv build-cmake/*.appimage spaghetti.appimage
- name: Upload build
@ -339,7 +343,7 @@ jobs:
sudo sh /tmp/cmake.sh --prefix=/usr/local/ --exclude-subdir
cmake -H. -Bbuild-switch -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/Switch.cmake
cmake --build build-switch --config Release -j3
wget -O gamecontrollerdb.txt https://github.com/mdqinc/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
wget -O gamecontrollerdb.txt https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/master/gamecontrollerdb.txt
mv README.md readme.txt
mv build-switch/*.nro Spaghettify.nro
- name: Upload build

1
.gitignore vendored
View File

@ -125,3 +125,4 @@ cmake-build-*/
.vs
build*/
.DS_Store
.cache/

View File

@ -393,7 +393,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
find_package(Vorbis CONFIG REQUIRED)
link_libraries(Vorbis::vorbisfile)
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"$<$<BOOL:${USE_NETWORKING}>:SDL2_net::SDL2_net-static>"
"Ogg::ogg"
"Vorbis::vorbis"
"Vorbis::vorbisenc"
@ -416,7 +415,6 @@ else()
find_package(Ogg REQUIRED)
find_package(Vorbis REQUIRED)
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"$<$<BOOL:${USE_NETWORKING}>:SDL2_net::SDL2_net>"
"Ogg::ogg"
"Vorbis::vorbis"
"Vorbis::vorbisenc"
@ -435,7 +433,7 @@ if(USE_NETWORKING)
target_link_libraries(${PROJECT_NAME} PRIVATE SDL2_net)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
find_package(SDL2_net REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE SDL2_net::SDL2_net)
target_link_libraries(${PROJECT_NAME} PRIVATE $<IF:$<TARGET_EXISTS:SDL2_net::SDL2_net>,SDL2_net::SDL2_net,SDL2_net::SDL2_net-static>)
else()
find_package(SDL2_net REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE SDL2_net::SDL2_net-static)

2931
Doxyfile Normal file

File diff suppressed because it is too large Load Diff

View File

@ -29,6 +29,7 @@ Your ROM needs to be in .z64 format. If it's in .n64 format, use the following t
#### Linux
* Extract every file from the zip into a folder of your choosing.
* Ensure `zenity` or `kdialog` package is installed.
* Run "spaghetti.appimage" and select your US ROM. You may have to chmod +x the appimage via terminal.
#### Nintendo Switch
@ -41,10 +42,11 @@ Congratulations, you are now sailing with SpaghettiKart! Have fun!
# Configuration
### Default keyboard configuration
| N64 | A | B | Z | Start | Analog stick | C buttons | D-Pad |
| - | - | - | - | - | - | - | - |
| Keyboard | Shift | Ctrl | Z | Enter | Arrow keys | TGFH (↑ ↓ ← →) | Num 8 2 4 6 |
### Default controls configuration
| N64 | A | B | L | R | Z | Start | Analogue stick | C buttons | D-Pad |
| - | - | - | - | - | - | - | - | - | - |
| Keyboard | Shift | Ctrl | Q | Space | Z | Enter | Arrow keys | TGFH (↑ ↓ ← →) | Num 8 2 4 6 |
| SDL Gamepad | A | X | LB | RB | LT | Start | L-Stick | R-Stick Up, B, Y, R-Stick Right (↑ ↓ ← →) | D-Pad |
### Other shortcuts
| Keys | Action |
@ -74,9 +76,10 @@ If you want to manually compile SpaghettiKart, please consult the [building inst
### Playtesting
If you want to playtest a continuous integration build, you can find them at the links below. Keep in mind that these are for playtesting only, and you will likely encounter bugs and possibly crashes.
* [Windows](https://nightly.link/HarbourMasters/SpaghettiKart/workflows/main/main/spaghettify-windows.zip)
* [Linux](https://nightly.link/HarbourMasters/SpaghettiKart/workflows/main/main/SpaghettiKart-linux.zip)
* [Switch](https://nightly.link/HarbourMasters/SpaghettiKart/workflows/main/main/Spaghettify-switch.zip)
* [Windows](https://nightly.link/HarbourMasters/SpaghettiKart/workflows/main/main/spaghetti-windows.zip?status=completed)
* [Linux](https://nightly.link/HarbourMasters/SpaghettiKart/workflows/main/main/Spaghettify-linux.zip?status=completed)
* [macOS](https://nightly.link/HarbourMasters/SpaghettiKart/workflows/main/main/spaghetti-mac-x64.zip?status=completed)
* [Switch](https://nightly.link/HarbourMasters/SpaghettiKart/workflows/main/main/Spaghettify-switch.zip?status=completed)
Maintainers: [MegaMech](https://www.github.com/MegaMech), [Coco](https://www.github.com/coco875), [Kirito](https://github.com/KiritoDv)

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
# Building Starship
# Building SpagettiKart
## Windows
@ -22,7 +22,7 @@ It is recommended that you install Python and Git standalone, the install proces
_Note: Be sure to either clone with the ``--recursive`` flag or do ``git submodule update --init`` after cloning to pull in the libultraship submodule!_
2. After setup and initial build, use the built-in OTR extraction to make your sf64.o2r file.
2. After setup and initial build, use the built-in OTR extraction to make your mk64.o2r file.
_Note: Instructions assume using powershell_
```powershell
@ -33,7 +33,7 @@ cd spaghetti
# Add `-DCMAKE_BUILD_TYPE:STRING=Release` if you're packaging
& 'C:\Program Files\CMake\bin\cmake' -S . -B "build/x64" -G "Visual Studio 17 2022" -T v143 -A x64
# Generate sf64.o2r
# Generate mk64.o2r
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target ExtractAssets
# Compile project
@ -43,7 +43,7 @@ cd spaghetti
# Now you can run the executable in .\build\x64 or run in Visual Studio
```
### Developing Starship
### Developing SpaghettiKart
With the cmake build system you have two options for working on the project:
#### Visual Studio
@ -133,15 +133,17 @@ git submodule update --init
# Add `-DPython3_EXECUTABLE=$(which python3)` if you are using non-standard Python installations such as PyEnv
cmake -H. -Bbuild-cmake -GNinja
# Generate sf64.o2r
# Generate mk64.o2r
cmake --build build-cmake --target ExtractAssets
# Compile the project
# Add `--config Release` if you're packaging
cmake --build build-cmake
# Now you can run the executable in ./build-cmake/mm/2s2h.elf
# Now you can run the executable in ./build-cmake/Spaghettify
# To develop the project open the repository in VSCode (or your preferred editor)
# System wide freezes may be due to low memory, add "-j4" to the end of the build command to use four cores.
```
### Docker
@ -179,7 +181,7 @@ cmake --build build-cmake --target clean
```
## macOS
Requires Xcode (or xcode-tools) && `sdl2, libpng, glew, ninja, cmake, nlohmann-json, libzip, vorbis-tools` (can be installed via homebrew, macports, etc)
Requires Xcode (or xcode-tools) && `sdl2, libpng, glew, ninja, cmake, nlohmann-json, libzip, vorbis-tools, sdl2_net, tinyxml2` (can be installed via homebrew, macports, etc)
**Important: For maximum performance make sure you have ninja build tools installed!**
@ -196,7 +198,7 @@ git submodule update --init
# Add `-DCMAKE_BUILD_TYPE:STRING=Release` if you're packaging
cmake -H. -Bbuild-cmake -GNinja
# Generate sf64.o2r
# Generate mk64.o2r
cmake --build build-cmake --target ExtractAssets
# Compile the project

View File

@ -61,6 +61,7 @@ Note that this doc is a work-in-progress and has been hastily written to provide
**The Laws of SpaghettiKart**
* Track geography must be a plane, not a box
* A flat course with a basic plane (square), needs to be turned into triangules and/or subdivided a few times, otherwise the collision generation will 'wig out', placing the racers incorrectly
* The starting line must face north
* In Blender: Positive Green Y Axis
* In game: Negative Z axis

@ -1 +1 @@
Subproject commit 28ed396de19cd3d803bcb483dceefdb6d03b1b2b
Subproject commit 9760c30014131f4eacb8e96f15f3869c7bc5dd8c

View File

@ -6,14 +6,20 @@
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_0[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_0";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_0[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_0";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_8[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_8";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_38[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_38";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_38[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_38";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_40[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_40";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_68[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_68";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_68[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_68";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_A0[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_A0";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_160[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_160";
@ -242,14 +248,24 @@ static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_cheep_cheep10[] = "_
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_fish_eyes[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_fish_eyes";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_7650[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_7650";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_7650[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_7650";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_78C0[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_78C0";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_78C0[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_78C0";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_7978[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_7978";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_7978[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_7978";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_7B38[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_7B38";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_7B38[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_7B38";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_7B78[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_7B78";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_7B78[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_7B78";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_cheep_cheep[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_cheep_cheep";
@ -281,10 +297,18 @@ static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_texture[] = "__OTR__
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_A850[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_A850";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_A850[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_A850";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_A900[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_A900";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_A900[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_A900";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_A9B0[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_A9B0";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_A9B0[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_A9B0";
static const ALIGN_ASSET(2) char banshee_boardwalk_data_seg6_gfx_A9C8[] = "__OTR__banshee_boardwalk_data/banshee_boardwalk_data_seg6_gfx_A9C8";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_A9C8[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_A9C8";
static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_dl_trash_bin[] = "__OTR__banshee_boardwalk_data/d_course_banshee_boardwalk_dl_trash_bin";

View File

@ -257,10 +257,14 @@ static const ALIGN_ASSET(2) char d_course_bowsers_castle_thwomp_model3[] = "__OT
static const ALIGN_ASSET(2) char d_course_bowsers_castle_thwomp_model4[] = "__OTR__bowsers_castle_data/d_course_bowsers_castle_thwomp_model4";
static const ALIGN_ASSET(2) char bowsers_castle_data_seg6_gfx_8F38[] = "__OTR__bowsers_castle_data/bowsers_castle_data_seg6_gfx_8F38";
static const ALIGN_ASSET(2) char d_course_bowsers_castle_dl_8F38[] = "__OTR__bowsers_castle_data/d_course_bowsers_castle_dl_8F38";
static const ALIGN_ASSET(2) char d_course_bowsers_castle_dl_9078[] = "__OTR__bowsers_castle_data/d_course_bowsers_castle_dl_9078";
static const ALIGN_ASSET(2) char bowsers_castle_data_seg6_gfx_9078[] = "__OTR__bowsers_castle_data/bowsers_castle_data_seg6_gfx_9078";
static const ALIGN_ASSET(2) char d_course_bowsers_castle_dl_thwomp[] = "__OTR__bowsers_castle_data/d_course_bowsers_castle_dl_thwomp";
static const ALIGN_ASSET(2) char d_course_bowsers_castle_unknown_model[] = "__OTR__bowsers_castle_data/d_course_bowsers_castle_unknown_model";

View File

@ -25,16 +25,28 @@ static const ALIGN_ASSET(2) char ceremony_data_seg11_vtx_E50[] = "__OTR__ceremon
static const ALIGN_ASSET(2) char silver_trophy_dl[] = "__OTR__ceremony_data/silver_trophy_dl";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_FE0[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_FE0";
static const ALIGN_ASSET(2) char silver_trophy_dl2[] = "__OTR__ceremony_data/silver_trophy_dl2";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_10B8[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_10B8";
static const ALIGN_ASSET(2) char silver_trophy_dl3[] = "__OTR__ceremony_data/silver_trophy_dl3";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_1188[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_1188";
static const ALIGN_ASSET(2) char silver_trophy_dl4[] = "__OTR__ceremony_data/silver_trophy_dl4";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_1260[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_1260";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_1418[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_1418";
static const ALIGN_ASSET(2) char silver_trophy_dl5[] = "__OTR__ceremony_data/silver_trophy_dl5";
static const ALIGN_ASSET(2) char silver_trophy_dl6[] = "__OTR__ceremony_data/silver_trophy_dl6";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_14D0[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_14D0";
static const ALIGN_ASSET(2) char ceremony_data_seg11_vtx_1580[] = "__OTR__ceremony_data/ceremony_data_seg11_vtx_1580";
static const ALIGN_ASSET(2) char ceremony_data_seg11_vtx_16E0[] = "__OTR__ceremony_data/ceremony_data_seg11_vtx_16E0";
@ -81,22 +93,40 @@ static const ALIGN_ASSET(2) char reflection_map_silver[] = "__OTR__ceremony_data
static const ALIGN_ASSET(2) char ceremony_reflection_map_gold[] = "__OTR__ceremony_data/reflection_map_gold";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_5E70[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_5E70";
static const ALIGN_ASSET(2) char gold_trophy_dl[] = "__OTR__ceremony_data/gold_trophy_dl";
static const ALIGN_ASSET(2) char gold_trophy_dl2[] = "__OTR__ceremony_data/gold_trophy_dl2";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_5F20[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_5F20";
static const ALIGN_ASSET(2) char gold_trophy_dl3[] = "__OTR__ceremony_data/gold_trophy_dl3";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_5FD0[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_5FD0";
static const ALIGN_ASSET(2) char gold_trophy_dl4[] = "__OTR__ceremony_data/gold_trophy_dl4";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_6218[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_6218";
static const ALIGN_ASSET(2) char gold_trophy_dl5[] = "__OTR__ceremony_data/gold_trophy_dl5";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_62C8[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_62C8";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_6518[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_6518";
static const ALIGN_ASSET(2) char gold_trophy_dl6[] = "__OTR__ceremony_data/gold_trophy_dl6";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_6720[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_6720";
static const ALIGN_ASSET(2) char gold_trophy_dl7[] = "__OTR__ceremony_data/gold_trophy_dl7";
static const ALIGN_ASSET(2) char gold_trophy_dl8[] = "__OTR__ceremony_data/gold_trophy_dl8";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_6880[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_6880";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_6948[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_6948";
static const ALIGN_ASSET(2) char gold_trophy_dl9[] = "__OTR__ceremony_data/gold_trophy_dl9";
static const ALIGN_ASSET(2) char gold_trophy_dl10[] = "__OTR__ceremony_data/gold_trophy_dl10";
@ -111,6 +141,8 @@ static const ALIGN_ASSET(2) char gold_trophy_dl14[] = "__OTR__ceremony_data/gold
static const ALIGN_ASSET(2) char gold_trophy_dl15[] = "__OTR__ceremony_data/gold_trophy_dl15";
static const ALIGN_ASSET(2) char ceremony_data_seg11_lights_6BB8[] = "__OTR__ceremony_data/ceremony_data_seg11_lights_6BB8";
static const ALIGN_ASSET(2) char light1[] = "__OTR__ceremony_data/light1";
static const ALIGN_ASSET(2) char gTexturePodium1[] = "__OTR__ceremony_data/texture_podium1";
@ -121,8 +153,12 @@ static const ALIGN_ASSET(2) char ceremony_data_seg11_vtx_74D0[] = "__OTR__ceremo
static const ALIGN_ASSET(2) char podium_dl[] = "__OTR__ceremony_data/podium_dl";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_7510[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_7510";
static const ALIGN_ASSET(2) char podium_dl2[] = "__OTR__ceremony_data/podium_dl2";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_75E0[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_75E0";
static const ALIGN_ASSET(2) char podium_dl3[] = "__OTR__ceremony_data/podium_dl3";
static const ALIGN_ASSET(2) char podium_dl4[] = "__OTR__ceremony_data/podium_dl4";
@ -131,12 +167,18 @@ static const ALIGN_ASSET(2) char ceremony_data_seg11_vtx_7608[] = "__OTR__ceremo
static const ALIGN_ASSET(2) char ceremony_data_seg11_vtx_7708[] = "__OTR__ceremony_data/ceremony_data_seg11_vtx_7708";
static const ALIGN_ASSET(2) char ceremony_data_seg11_lights_7748[] = "__OTR__ceremony_data/ceremony_data_seg11_lights_7748";
static const ALIGN_ASSET(2) char light2[] = "__OTR__ceremony_data/light2";
static const ALIGN_ASSET(2) char gTexturePodium2[] = "__OTR__ceremony_data/texture_podium2";
static const ALIGN_ASSET(2) char podium2_dl[] = "__OTR__ceremony_data/podium2_dl";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_7F60[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_7F60";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_8030[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_8030";
static const ALIGN_ASSET(2) char podium2_dl2[] = "__OTR__ceremony_data/podium2_dl2";
static const ALIGN_ASSET(2) char podium2_dl3[] = "__OTR__ceremony_data/podium2_dl3";
@ -145,14 +187,20 @@ static const ALIGN_ASSET(2) char podium2_dl4[] = "__OTR__ceremony_data/podium2_d
static const ALIGN_ASSET(2) char light3[] = "__OTR__ceremony_data/light3";
static const ALIGN_ASSET(2) char ceremony_data_seg11_lights_8058[] = "__OTR__ceremony_data/ceremony_data_seg11_lights_8058";
static const ALIGN_ASSET(2) char gTexturePodium3[] = "__OTR__ceremony_data/texture_podium3";
static const ALIGN_ASSET(2) char ceremony_data_seg11_vtx_8870[] = "__OTR__ceremony_data/ceremony_data_seg11_vtx_8870";
static const ALIGN_ASSET(2) char ceremony_data_seg11_vtx_8970[] = "__OTR__ceremony_data/ceremony_data_seg11_vtx_8970";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_89B0[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_89B0";
static const ALIGN_ASSET(2) char podium3_dl[] = "__OTR__ceremony_data/podium3_dl";
static const ALIGN_ASSET(2) char ceremony_data_seg11_gfx_8A80[] = "__OTR__ceremony_data/ceremony_data_seg11_gfx_8A80";
static const ALIGN_ASSET(2) char podium3_dl2[] = "__OTR__ceremony_data/podium3_dl2";
static const ALIGN_ASSET(2) char podium3_dl3[] = "__OTR__ceremony_data/podium3_dl3";

View File

@ -200,6 +200,8 @@ static const ALIGN_ASSET(2) char d_course_choco_mountain_unknown_waypoints[] = "
static const ALIGN_ASSET(2) char d_course_choco_mountain_track_waypoints[] = "__OTR__choco_mountain_data/d_course_choco_mountain_track_waypoints";
static const ALIGN_ASSET(2) char choco_mountain_data_seg6_lights_5AE0[] = "__OTR__choco_mountain_data/choco_mountain_data_seg6_lights_5AE0";
static const ALIGN_ASSET(2) char d_course_choco_mountain_light[] = "__OTR__choco_mountain_data/d_course_choco_mountain_light";
static const ALIGN_ASSET(2) char d_course_choco_mountain_6005AF8[] = "__OTR__choco_mountain_data/d_course_choco_mountain_6005AF8";

View File

@ -53,10 +53,16 @@ static const ALIGN_ASSET(2) char D_0D001828[] = "__OTR__common_data/D_0D001828";
static const ALIGN_ASSET(2) char D_0D001840[] = "__OTR__common_data/D_0D001840";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_1840[] = "__OTR__common_data/common_data_seg13_gfx_1840";
static const ALIGN_ASSET(2) char common_model_finish_post[] = "__OTR__common_data/common_model_finish_post";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_1AB8[] = "__OTR__common_data/common_data_seg13_gfx_1AB8";
static const ALIGN_ASSET(2) char D_0D001B68[] = "__OTR__common_data/D_0D001B68";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_1B68[] = "__OTR__common_data/common_data_seg13_gfx_1B68";
static const ALIGN_ASSET(2) char D_0D001B90[] = "__OTR__common_data/D_0D001B90";
static const ALIGN_ASSET(2) char D_0D001BD8[] = "__OTR__common_data/D_0D001BD8";
@ -79,6 +85,8 @@ static const ALIGN_ASSET(2) char itemBoxQuestionMarkModel[] = "__OTR__common_dat
static const ALIGN_ASSET(2) char D_0D003090[] = "__OTR__common_data/D_0D003090";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_3090[] = "__OTR__common_data/common_data_seg13_gfx_3090";
static const ALIGN_ASSET(2) char D_0D0030F8[] = "__OTR__common_data/D_0D0030F8";
static const ALIGN_ASSET(2) char D_0D003128[] = "__OTR__common_data/D_0D003128";
@ -95,6 +103,8 @@ static const ALIGN_ASSET(2) char D_0D003218[] = "__OTR__common_data/D_0D003218";
static const ALIGN_ASSET(2) char D_0D003248[] = "__OTR__common_data/D_0D003248";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_3278[] = "__OTR__common_data/common_data_seg13_gfx_3278";
static const ALIGN_ASSET(2) char D_0D003278[] = "__OTR__common_data/D_0D003278";
static const ALIGN_ASSET(2) char D_0D003288[] = "__OTR__common_data/D_0D003288";
@ -125,6 +135,8 @@ static const ALIGN_ASSET(2) char D_0D0052B8[] = "__OTR__common_data/D_0D0052B8";
static const ALIGN_ASSET(2) char D_0D005308[] = "__OTR__common_data/D_0D005308";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_5308[] = "__OTR__common_data/common_data_seg13_gfx_5308";
static const ALIGN_ASSET(2) char D_0D005338[] = "__OTR__common_data/D_0D005338";
static const ALIGN_ASSET(2) char D_0D005368[] = "__OTR__common_data/D_0D005368";
@ -201,14 +213,20 @@ static const ALIGN_ASSET(2) char D_0D006930[] = "__OTR__common_data/D_0D006930";
static const ALIGN_ASSET(2) char common_rectangle_display[] = "__OTR__common_data/common_rectangle_display";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_6940[] = "__OTR__common_data/common_data_seg13_gfx_6940";
static const ALIGN_ASSET(2) char D_0D006950[] = "__OTR__common_data/D_0D006950";
static const ALIGN_ASSET(2) char D_0D006968[] = "__OTR__common_data/D_0D006968";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_6980[] = "__OTR__common_data/common_data_seg13_gfx_6980";
static const ALIGN_ASSET(2) char D_0D006980[] = "__OTR__common_data/D_0D006980";
static const ALIGN_ASSET(2) char D_0D006998[] = "__OTR__common_data/D_0D006998";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_69B0[] = "__OTR__common_data/common_data_seg13_gfx_69B0";
static const ALIGN_ASSET(2) char D_0D0069B0[] = "__OTR__common_data/D_0D0069B0";
static const ALIGN_ASSET(2) char D_0D0069C8[] = "__OTR__common_data/D_0D0069C8";
@ -219,6 +237,8 @@ static const ALIGN_ASSET(2) char D_0D0069F8[] = "__OTR__common_data/D_0D0069F8";
static const ALIGN_ASSET(2) char D_0D006A10[] = "__OTR__common_data/D_0D006A10";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_6A10[] = "__OTR__common_data/common_data_seg13_gfx_6A10";
static const ALIGN_ASSET(2) char D_0D006A28[] = "__OTR__common_data/D_0D006A28";
static const ALIGN_ASSET(2) char D_0D006A40[] = "__OTR__common_data/D_0D006A40";
@ -233,6 +253,8 @@ static const ALIGN_ASSET(2) char common_texture_debug_font[] = "__OTR__common_da
static const ALIGN_ASSET(2) char D_0D0076F8[] = "__OTR__common_data/D_0D0076F8";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_7780[] = "__OTR__common_data/common_data_seg13_gfx_7780";
static const ALIGN_ASSET(2) char D_0D007780[] = "__OTR__common_data/D_0D007780";
static const ALIGN_ASSET(2) char D_0D0077A0[] = "__OTR__common_data/D_0D0077A0";
@ -253,6 +275,8 @@ static const ALIGN_ASSET(2) char D_0D0078D0[] = "__OTR__common_data/D_0D0078D0";
static const ALIGN_ASSET(2) char D_0D0078F8[] = "__OTR__common_data/D_0D0078F8";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_78F8[] = "__OTR__common_data/common_data_seg13_gfx_78F8";
static const ALIGN_ASSET(2) char D_0D007928[] = "__OTR__common_data/D_0D007928";
static const ALIGN_ASSET(2) char D_0D007948[] = "__OTR__common_data/D_0D007948";
@ -269,6 +293,8 @@ static const ALIGN_ASSET(2) char D_0D0079E8[] = "__OTR__common_data/D_0D0079E8";
static const ALIGN_ASSET(2) char D_0D007A08[] = "__OTR__common_data/D_0D007A08";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_7A08[] = "__OTR__common_data/common_data_seg13_gfx_7A08";
static const ALIGN_ASSET(2) char D_0D007A40[] = "__OTR__common_data/D_0D007A40";
static const ALIGN_ASSET(2) char D_0D007A60[] = "__OTR__common_data/D_0D007A60";
@ -289,6 +315,8 @@ static const ALIGN_ASSET(2) char D_0D007B98[] = "__OTR__common_data/D_0D007B98";
static const ALIGN_ASSET(2) char D_0D007C10[] = "__OTR__common_data/D_0D007C10";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_7C88[] = "__OTR__common_data/common_data_seg13_gfx_7C88";
static const ALIGN_ASSET(2) char D_0D007C88[] = "__OTR__common_data/D_0D007C88";
static const ALIGN_ASSET(2) char D_0D007CB8[] = "__OTR__common_data/D_0D007CB8";
@ -327,6 +355,10 @@ static const ALIGN_ASSET(2) char D_0D007EB8[] = "__OTR__common_data/D_0D007EB8";
static const ALIGN_ASSET(2) char D_0D007ED8[] = "__OTR__common_data/D_0D007ED8";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_7ED8[] = "__OTR__common_data/common_data_seg13_gfx_7ED8";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_7EF8[] = "__OTR__common_data/common_data_seg13_gfx_7EF8";
static const ALIGN_ASSET(2) char D_0D007EF8[] = "__OTR__common_data/D_0D007EF8";
static const ALIGN_ASSET(2) char D_0D007F18[] = "__OTR__common_data/D_0D007F18";
@ -341,12 +373,16 @@ static const ALIGN_ASSET(2) char D_0D007F98[] = "__OTR__common_data/D_0D007F98";
static const ALIGN_ASSET(2) char D_0D007FB8[] = "__OTR__common_data/D_0D007FB8";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_7FB8[] = "__OTR__common_data/common_data_seg13_gfx_7FB8";
static const ALIGN_ASSET(2) char D_0D007FE0[] = "__OTR__common_data/D_0D007FE0";
static const ALIGN_ASSET(2) char D_0D008000[] = "__OTR__common_data/D_0D008000";
static const ALIGN_ASSET(2) char D_0D008020[] = "__OTR__common_data/D_0D008020";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_8020[] = "__OTR__common_data/common_data_seg13_gfx_8020";
static const ALIGN_ASSET(2) char D_0D008040[] = "__OTR__common_data/D_0D008040";
static const ALIGN_ASSET(2) char D_0D008060[] = "__OTR__common_data/D_0D008060";
@ -369,6 +405,8 @@ static const ALIGN_ASSET(2) char D_0D008C38[] = "__OTR__common_data/D_0D008C38";
static const ALIGN_ASSET(2) char common_square_plain_render[] = "__OTR__common_data/common_square_plain_render";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_8C78[] = "__OTR__common_data/common_data_seg13_gfx_8C78";
static const ALIGN_ASSET(2) char D_0D008C90[] = "__OTR__common_data/D_0D008C90";
static const ALIGN_ASSET(2) char common_setting_render_character[] = "__OTR__common_data/common_setting_render_character";
@ -379,6 +417,8 @@ static const ALIGN_ASSET(2) char D_0D008D58[] = "__OTR__common_data/D_0D008D58";
static const ALIGN_ASSET(2) char D_0D008DA0[] = "__OTR__common_data/D_0D008DA0";
static const ALIGN_ASSET(2) char common_data_seg13_gfx_8DA0[] = "__OTR__common_data/common_data_seg13_gfx_8DA0";
static const ALIGN_ASSET(2) char D_0D008DB8[] = "__OTR__common_data/D_0D008DB8";
static const ALIGN_ASSET(2) char D_0D008DF8[] = "__OTR__common_data/D_0D008DF8";
@ -806,5 +846,21 @@ static const char* common_texture_minimap_kart_character[] = {
common_texture_minimap_kart_bowser,
};
static const ALIGN_ASSET(2) char common_texture_minimap_bowser[] = "__OTR__common_data/common_texture_minimap_bowser";
static const ALIGN_ASSET(2) char common_texture_minimap_progress_dot[] = "__OTR__common_data/common_texture_minimap_progress_dot";
static const ALIGN_ASSET(2) char common_texture_minimap_mario[] = "__OTR__common_data/common_texture_minimap_mario";
static const ALIGN_ASSET(2) char common_texture_minimap_luigi[] = "__OTR__common_data/common_texture_minimap_luigi";
static const ALIGN_ASSET(2) char common_texture_minimap_yoshi[] = "__OTR__common_data/common_texture_minimap_yoshi";
static const ALIGN_ASSET(2) char common_texture_minimap_toad[] = "__OTR__common_data/common_texture_minimap_toad";
static const ALIGN_ASSET(2) char common_texture_minimap_dk[] = "__OTR__common_data/common_texture_minimap_dk";
static const ALIGN_ASSET(2) char common_texture_minimap_wario[] = "__OTR__common_data/common_texture_minimap_wario";
static const ALIGN_ASSET(2) char common_texture_minimap_peach[] = "__OTR__common_data/common_texture_minimap_peach";

View File

@ -47,10 +47,6 @@ static const ALIGN_ASSET(2) char D_800E8C00[] = "__OTR__data_800E8700/D_800E8C00
static const ALIGN_ASSET(2) char D_800E8C40[] = "__OTR__data_800E8700/D_800E8C40";
static const ALIGN_ASSET(2) char data_800E8700_vtx_800E8C40[] = "__OTR__data_800E8700/data_800E8700_vtx_800E8C40";
static const ALIGN_ASSET(2) char data_800E8700_vtx_800E8CC0[] = "__OTR__data_800E8700/data_800E8700_vtx_800E8CC0";
static const ALIGN_ASSET(2) char D_800E8CC0[] = "__OTR__data_800E8700/D_800E8CC0";
static const ALIGN_ASSET(2) char D_800E8D40[] = "__OTR__data_800E8700/D_800E8D40";

View File

@ -4,6 +4,8 @@
#include <libultra/gbi.h>
#include <align_asset_macro.h>
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_0[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_0";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_0[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_0";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_20[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_20";
@ -252,10 +254,18 @@ static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_paddle_boat_model15
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_unknown_light1[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_unknown_light1";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_lights_9DE8[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_lights_9DE8";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_lights_9E00[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_lights_9E00";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_unknown_light2[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_unknown_light2";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_lights_9E18[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_lights_9E18";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_unknown_light3[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_unknown_light3";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_lights_9E30[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_lights_9E30";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_unknown_light4[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_unknown_light4";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_mario_sign[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_mario_sign";
@ -270,40 +280,74 @@ static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_boat_railing[] = "_
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_DE48[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_DE48";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_DE48[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_DE48";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_DF30[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_DF30";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_DF30[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_DF30";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E030[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E030";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E030[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E030";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E048[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E048";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E048[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E048";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_railings_dl[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_railings_dl";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E068[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E068";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E068[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E068";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E150[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E150";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E150[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E150";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E238[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E238";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E238[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E238";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E250[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E250";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E250[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E250";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E310[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E310";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E310[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E310";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E320[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E320";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E320[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E320";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E578[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E578";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E578[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E578";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E588[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E588";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E588[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E588";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E618[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E618";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E618[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E618";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E628[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E628";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E628[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E628";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E688[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E688";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E688[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E688";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E6E8[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E6E8";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E6E8[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E6E8";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_E700[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_E700";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_E700[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_E700";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_boat_dl[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_boat_dl";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_paddle_boat_paddle_model1[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_paddle_boat_paddle_model1";
@ -318,10 +362,16 @@ static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_boat_paddle2[] = "_
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_FAE0[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_FAE0";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_FAE0[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_FAE0";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_FC08[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_FC08";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_FC08[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_FC08";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_FC18[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_FC18";
static const ALIGN_ASSET(2) char dks_jungle_parkway_data_seg6_gfx_FC18[] = "__OTR__dks_jungle_parkway_data/dks_jungle_parkway_data_seg6_gfx_FC18";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_paddle_wheel_dl[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_paddle_wheel_dl";
static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_dl_FC38[] = "__OTR__dks_jungle_parkway_data/d_course_dks_jungle_parkway_dl_FC38";

View File

@ -298,28 +298,50 @@ static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod2_locomotiv
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1B7C0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1B7C0";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1B7C0[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1B7C0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1B850[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1B850";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1B850[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1B850";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1B950[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1B950";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1B950[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1B950";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1B968[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1B968";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1B968[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1B968";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1B978[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1B978";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1B990[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1B990";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1B990[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1B990";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1BD18[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1BD18";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1BD18[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1BD18";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1BD58[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1BD58";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1BD58[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1BD58";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1BEF8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1BEF8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1BEF8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1BEF8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1BF90[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1BF90";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1BF90[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1BF90";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1C0B0[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1C0B0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1C0B0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1C0B0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1C0E0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1C0E0";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1C0E0[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1C0E0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1C0F0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1C0F0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_locomotive_model_lod1[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_locomotive_model_lod1";
@ -352,30 +374,52 @@ static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod1_locomotiv
static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod1_locomotive_model14[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_unknown_lod1_locomotive_model14";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1CFA8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1CFA8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1CFA8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1CFA8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1D038[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1D038";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D038[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D038";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1D138[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1D138";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D138[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D138";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1D150[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1D150";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D150[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D150";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D160[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D160";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1D178[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1D178";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D178[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D178";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1D418[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1D418";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D418[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D418";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D450[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D450";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1D450[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1D450";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1D540[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1D540";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D540[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D540";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1D598[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1D598";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D598[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D598";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1D630[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1D630";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D630[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D630";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D660[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D660";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1D660[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1D660";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1D670[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1D670";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_locomotive_model_lod0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_locomotive_model_lod0";
@ -406,30 +450,52 @@ static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod0_locomotiv
static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod0_locomotive_model13[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_unknown_lod0_locomotive_model13";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1E2C8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1E2C8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E2C8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E2C8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1E358[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1E358";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E358[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E358";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1E458[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1E458";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E458[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E458";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1E470[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1E470";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E470[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E470";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E480[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E480";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E498[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E498";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1E498[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1E498";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E6D8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E6D8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1E6D8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1E6D8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E710[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E710";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1E710[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1E710";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E800[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E800";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1E800[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1E800";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E858[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E858";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1E858[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1E858";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E8D0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E8D0";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1E8D0[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1E8D0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E900[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E900";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1E900[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1E900";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1E910[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1E910";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_tender_model_lod2[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_tender_model_lod2";
@ -442,16 +508,26 @@ static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod2_tender_mo
static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod2_tender_model4[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_unknown_lod2_tender_model4";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1EFD8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1EFD8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1EFD8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1EFD8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1F050[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1F050";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F050[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F050";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F0D8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F0D8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1F0D8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1F0D8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F1F8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F1F8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1F1F8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1F1F8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F218[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F218";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1F218[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1F218";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F228[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F228";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_tender_model_lod1[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_tender_model_lod1";
@ -460,14 +536,22 @@ static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod1_tender_mo
static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod1_tender_model2[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_unknown_lod1_tender_model2";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1F570[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1F570";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F570[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F570";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1F5E0[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1F5E0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F5E0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F5E0";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1F6E0[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1F6E0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F6E0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F6E0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F6F8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F6F8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1F6F8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1F6F8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F708[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F708";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F720[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F720";
@ -478,14 +562,22 @@ static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod0_tender_mo
static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod0_tender_model2[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_unknown_lod0_tender_model2";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1F988[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1F988";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F988[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F988";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1F9D8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1F9D8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1F9D8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1F9D8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1FAD0[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1FAD0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1FAD0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1FAD0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1FAE8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1FAE8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_1FAE8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_1FAE8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1FAF8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1FAF8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_1FB10[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_1FB10";
@ -512,24 +604,44 @@ static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod2_carriage_
static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod2_carriage_chassis_model10[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_unknown_lod2_carriage_chassis_model10";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_20578[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_20578";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_20578[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_20578";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_20610[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_20610";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_20610[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_20610";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_20620[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_20620";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_20620[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_20620";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_20630[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_20630";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_20630[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_20630";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_20688[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_20688";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_20688[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_20688";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_208A0[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_208A0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_208A0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_208A0";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_20928[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_20928";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_20928[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_20928";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_20980[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_20980";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_20980[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_20980";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_209C8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_209C8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_209C8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_209C8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_209F8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_209F8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_209F8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_209F8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_20A08[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_20A08";
@ -556,24 +668,42 @@ static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod1_carriage_
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21178[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21178";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21178[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21178";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21200[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21200";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21200[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21200";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21210[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21210";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21210[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21210";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21220[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21220";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21238[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21238";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21238[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21238";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21288[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21288";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21288[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21288";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21480[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21480";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21480[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21480";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_214D0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_214D0";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_214D0[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_214D0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21518[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21518";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21518[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21518";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21540[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21540";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21540[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21540";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21550[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21550";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_carriage_model_lod0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_carriage_model_lod0";
@ -588,24 +718,42 @@ static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod0_carriage_
static const ALIGN_ASSET(2) char d_course_kalimari_desert_unknown_lod0_carriage_model5[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_unknown_lod0_carriage_model5";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_219D8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_219D8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_219D8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_219D8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21A60[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21A60";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21A60[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21A60";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21A70[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21A70";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21A70[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21A70";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21A80[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21A80";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21A98[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21A98";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21A98[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21A98";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21AE8[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21AE8";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21AE8[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21AE8";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21BC0[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21BC0";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21BC0[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21BC0";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21C10[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21C10";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21C10[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21C10";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21C58[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21C58";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21C58[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21C58";
static const ALIGN_ASSET(2) char kalimari_desert_data_seg6_gfx_21C80[] = "__OTR__kalimari_desert_data/kalimari_desert_data_seg6_gfx_21C80";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21C80[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21C80";
static const ALIGN_ASSET(2) char d_course_kalimari_desert_dl_21C90[] = "__OTR__kalimari_desert_data/d_course_kalimari_desert_dl_21C90";

View File

@ -6,8 +6,12 @@
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_0[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_0";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_0[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_0";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_48[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_48";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_48[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_48";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_90[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_90";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_118[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_118";
@ -634,6 +638,8 @@ static const char* d_course_koopa_troopa_beach_crab_frames[] = {
gTextureCrab7,
};
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_lights_14BE8[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_lights_14BE8";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_light1[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_light1";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_bird_wing[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_bird_wing";
@ -664,6 +670,8 @@ static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_bird_wing_3_model[]
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_16990[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_16990";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_lights_16B78[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_lights_16B78";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_light2[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_light2";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_tree_model[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_tree_model";
@ -676,12 +684,20 @@ static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_palm_trunk[] = "__O
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_18520[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_18520";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_18520[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_18520";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_185E8[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_185E8";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_185E8[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_185E8";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_tree_top1[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_tree_top1";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_18608[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_18608";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_18608[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_18608";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_186A8[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_186A8";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_186A8[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_186A8";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_tree_trunk1[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_tree_trunk1";
@ -692,14 +708,24 @@ static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_unknown_model5[] =
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_light3[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_light3";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_lights_18858[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_lights_18858";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_18870[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_18870";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_18870[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_18870";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_18938[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_18938";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_18938[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_18938";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_tree_top2[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_tree_top2";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_18958[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_18958";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_18958[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_18958";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_189F8[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_189F8";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_189F8[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_189F8";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_tree_trunk2[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_tree_trunk2";
@ -708,16 +734,26 @@ static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_tree_3_model[] = "_
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_unknown_model6[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_unknown_model6";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_lights_18BA8[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_lights_18BA8";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_light4[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_light4";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_18BC0[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_18BC0";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_18BC0[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_18BC0";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_18C88[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_18C88";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_18C88[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_18C88";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_tree_top3[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_tree_top3";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_18CA8[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_18CA8";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_18CA8[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_18CA8";
static const ALIGN_ASSET(2) char koopa_troopa_beach_data_seg6_gfx_18D48[] = "__OTR__koopa_troopa_beach_data/koopa_troopa_beach_data_seg6_gfx_18D48";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_18D48[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_18D48";
static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_dl_tree_trunk3[] = "__OTR__koopa_troopa_beach_data/d_course_koopa_troopa_beach_dl_tree_trunk3";

View File

@ -260,6 +260,8 @@ static const ALIGN_ASSET(2) char d_course_luigi_raceway_unknown_model4[] = "__OT
static const ALIGN_ASSET(2) char d_course_luigi_raceway_unknown_model5[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_unknown_model5";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_lights_C3A0[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_lights_C3A0";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_light1[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_light1";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_basket_model_lod1[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_basket_model_lod1";
@ -278,44 +280,76 @@ static const ALIGN_ASSET(2) char d_course_luigi_raceway_balloon_basket[] = "__OT
static const ALIGN_ASSET(2) char d_course_luigi_raceway_balloon_rope[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_balloon_rope";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F588[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F588";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F588[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F588";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F630[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F630";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F630[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F630";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F640[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F640";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F640[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F640";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F650[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F650";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F660[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F660";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F660[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F660";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F718[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F718";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F718[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F718";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F728[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F728";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F728[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F728";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F938[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F938";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F938[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F938";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F948[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F948";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F948[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F948";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F960[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F960";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F970[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F970";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F970[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F970";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_FA00[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_FA00";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_FA00[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_FA00";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_FA10[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_FA10";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_FA10[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_FA10";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_FA20[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_FA20";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_FA30[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_FA30";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_FA30[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_FA30";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_FB10[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_FB10";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_FB10[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_FB10";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_FB20[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_FB20";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_FB20[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_FB20";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_FBB8[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_FBB8";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_FBB8[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_FBB8";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_FBC8[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_FBC8";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_FBC8[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_FBC8";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_FBE0[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_FBE0";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_tree_model[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_tree_model";

View File

@ -176,14 +176,26 @@ static const ALIGN_ASSET(2) char d_course_mario_sign_right[] = "__OTR__mario_rac
static const ALIGN_ASSET(2) char d_course_mario_raceway_dl_9068[] = "__OTR__mario_raceway_data/d_course_mario_raceway_dl_9068";
static const ALIGN_ASSET(2) char mario_raceway_data_seg6_gfx_9068[] = "__OTR__mario_raceway_data/mario_raceway_data_seg6_gfx_9068";
static const ALIGN_ASSET(2) char mario_raceway_data_seg6_gfx_90B0[] = "__OTR__mario_raceway_data/mario_raceway_data_seg6_gfx_90B0";
static const ALIGN_ASSET(2) char d_course_mario_raceway_dl_90B0[] = "__OTR__mario_raceway_data/d_course_mario_raceway_dl_90B0";
static const ALIGN_ASSET(2) char mario_raceway_data_seg6_gfx_90C0[] = "__OTR__mario_raceway_data/mario_raceway_data_seg6_gfx_90C0";
static const ALIGN_ASSET(2) char d_course_mario_raceway_dl_90C0[] = "__OTR__mario_raceway_data/d_course_mario_raceway_dl_90C0";
static const ALIGN_ASSET(2) char mario_raceway_data_seg6_gfx_9190[] = "__OTR__mario_raceway_data/mario_raceway_data_seg6_gfx_9190";
static const ALIGN_ASSET(2) char d_course_mario_raceway_dl_9190[] = "__OTR__mario_raceway_data/d_course_mario_raceway_dl_9190";
static const ALIGN_ASSET(2) char mario_raceway_data_seg6_gfx_9250[] = "__OTR__mario_raceway_data/mario_raceway_data_seg6_gfx_9250";
static const ALIGN_ASSET(2) char d_course_mario_raceway_dl_9250[] = "__OTR__mario_raceway_data/d_course_mario_raceway_dl_9250";
static const ALIGN_ASSET(2) char mario_raceway_data_seg6_gfx_9310[] = "__OTR__mario_raceway_data/mario_raceway_data_seg6_gfx_9310";
static const ALIGN_ASSET(2) char d_course_mario_raceway_dl_9310[] = "__OTR__mario_raceway_data/d_course_mario_raceway_dl_9310";
static const ALIGN_ASSET(2) char d_course_mario_raceway_dl_sign[] = "__OTR__mario_raceway_data/d_course_mario_raceway_dl_sign";

View File

@ -6,12 +6,20 @@
static const ALIGN_ASSET(2) char d_course_moo_moo_farm_dl_0[] = "__OTR__moo_moo_farm_data/d_course_moo_moo_farm_dl_0";
static const ALIGN_ASSET(2) char moo_moo_farm_data_seg6_gfx_0[] = "__OTR__moo_moo_farm_data/moo_moo_farm_data_seg6_gfx_0";
static const ALIGN_ASSET(2) char d_course_moo_moo_farm_dl_30[] = "__OTR__moo_moo_farm_data/d_course_moo_moo_farm_dl_30";
static const ALIGN_ASSET(2) char moo_moo_farm_data_seg6_gfx_30[] = "__OTR__moo_moo_farm_data/moo_moo_farm_data_seg6_gfx_30";
static const ALIGN_ASSET(2) char moo_moo_farm_data_seg6_gfx_48[] = "__OTR__moo_moo_farm_data/moo_moo_farm_data_seg6_gfx_48";
static const ALIGN_ASSET(2) char d_course_moo_moo_farm_dl_48[] = "__OTR__moo_moo_farm_data/d_course_moo_moo_farm_dl_48";
static const ALIGN_ASSET(2) char d_course_moo_moo_farm_dl_60[] = "__OTR__moo_moo_farm_data/d_course_moo_moo_farm_dl_60";
static const ALIGN_ASSET(2) char moo_moo_farm_data_seg6_gfx_60[] = "__OTR__moo_moo_farm_data/moo_moo_farm_data_seg6_gfx_60";
static const ALIGN_ASSET(2) char d_course_moo_moo_farm_dl_78[] = "__OTR__moo_moo_farm_data/d_course_moo_moo_farm_dl_78";
static const ALIGN_ASSET(2) char d_course_moo_moo_farm_dl_88[] = "__OTR__moo_moo_farm_data/d_course_moo_moo_farm_dl_88";
@ -241,6 +249,8 @@ static const ALIGN_ASSET(2) char d_course_moo_moo_farm_unknown_model2[] = "__OTR
static const ALIGN_ASSET(2) char d_course_moo_moo_farm_dl_13B88[] = "__OTR__moo_moo_farm_data/d_course_moo_moo_farm_dl_13B88";
static const ALIGN_ASSET(2) char moo_moo_farm_data_seg6_gfx_13B88[] = "__OTR__moo_moo_farm_data/moo_moo_farm_data_seg6_gfx_13B88";
static const ALIGN_ASSET(2) char d_course_moo_moo_farm_dl_cow1[] = "__OTR__moo_moo_farm_data/d_course_moo_moo_farm_dl_cow1";
static const ALIGN_ASSET(2) char d_course_moo_moo_farm_dl_cow2[] = "__OTR__moo_moo_farm_data/d_course_moo_moo_farm_dl_cow2";

View File

@ -573,37 +573,53 @@ static const ALIGN_ASSET(2) char gTexture68DEC0[] = "__OTR__other_textures/textu
static const ALIGN_ASSET(2) char gTexture68E2D0[] = "__OTR__other_textures/texture_68E2D0";
static const ALIGN_ASSET(2) char gTextureGreenShell0[] = "__OTR__other_textures/gTextureGreenShell0";
static const ALIGN_ASSET(2) char texture_red_shell_0[] = "__OTR__other_textures/texture_red_shell_0";
static const ALIGN_ASSET(2) char gTextureGreenShell1[] = "__OTR__other_textures/gTextureGreenShell1";
static const ALIGN_ASSET(2) char texture_green_shell_0[] = "__OTR__other_textures/texture_green_shell_0";
static const ALIGN_ASSET(2) char gTextureGreenShell2[] = "__OTR__other_textures/gTextureGreenShell2";
static const ALIGN_ASSET(2) char texture_green_shell_1[] = "__OTR__other_textures/texture_green_shell_1";
static const ALIGN_ASSET(2) char gTextureGreenShell3[] = "__OTR__other_textures/gTextureGreenShell3";
static const ALIGN_ASSET(2) char texture_red_shell_1[] = "__OTR__other_textures/texture_red_shell_1";
static const ALIGN_ASSET(2) char gTextureGreenShell4[] = "__OTR__other_textures/gTextureGreenShell4";
static const ALIGN_ASSET(2) char texture_green_shell_2[] = "__OTR__other_textures/texture_green_shell_2";
static const ALIGN_ASSET(2) char gTextureGreenShell5[] = "__OTR__other_textures/gTextureGreenShell5";
static const ALIGN_ASSET(2) char texture_red_shell_2[] = "__OTR__other_textures/texture_red_shell_2";
static const ALIGN_ASSET(2) char gTextureGreenShell6[] = "__OTR__other_textures/gTextureGreenShell6";
static const ALIGN_ASSET(2) char texture_green_shell_3[] = "__OTR__other_textures/texture_green_shell_3";
static const ALIGN_ASSET(2) char gTextureGreenShell7[] = "__OTR__other_textures/gTextureGreenShell7";
static const ALIGN_ASSET(2) char texture_red_shell_3[] = "__OTR__other_textures/texture_red_shell_3";
static const ALIGN_ASSET(2) char gTextureBlueShell0[] = "__OTR__other_textures/gTextureBlueShell0";
static const ALIGN_ASSET(2) char texture_red_shell_4[] = "__OTR__other_textures/texture_red_shell_4";
static const ALIGN_ASSET(2) char gTextureBlueShell1[] = "__OTR__other_textures/gTextureBlueShell1";
static const ALIGN_ASSET(2) char texture_green_shell_4[] = "__OTR__other_textures/texture_green_shell_4";
static const ALIGN_ASSET(2) char gTextureBlueShell2[] = "__OTR__other_textures/gTextureBlueShell2";
static const ALIGN_ASSET(2) char texture_green_shell_5[] = "__OTR__other_textures/texture_green_shell_5";
static const ALIGN_ASSET(2) char gTextureBlueShell3[] = "__OTR__other_textures/gTextureBlueShell3";
static const ALIGN_ASSET(2) char texture_red_shell_5[] = "__OTR__other_textures/texture_red_shell_5";
static const ALIGN_ASSET(2) char gTextureBlueShell4[] = "__OTR__other_textures/gTextureBlueShell4";
static const ALIGN_ASSET(2) char texture_green_shell_6[] = "__OTR__other_textures/texture_green_shell_6";
static const ALIGN_ASSET(2) char gTextureBlueShell5[] = "__OTR__other_textures/gTextureBlueShell5";
static const ALIGN_ASSET(2) char texture_red_shell_6[] = "__OTR__other_textures/texture_red_shell_6";
static const ALIGN_ASSET(2) char gTextureBlueShell6[] = "__OTR__other_textures/gTextureBlueShell6";
static const ALIGN_ASSET(2) char texture_green_shell_7[] = "__OTR__other_textures/texture_green_shell_7";
static const ALIGN_ASSET(2) char gTextureBlueShell7[] = "__OTR__other_textures/gTextureBlueShell7";
static const ALIGN_ASSET(2) char texture_red_shell_7[] = "__OTR__other_textures/texture_red_shell_7";
static const ALIGN_ASSET(2) char texture_blue_shell_0[] = "__OTR__other_textures/texture_blue_shell_0";
static const ALIGN_ASSET(2) char texture_blue_shell_1[] = "__OTR__other_textures/texture_blue_shell_1";
static const ALIGN_ASSET(2) char texture_blue_shell_2[] = "__OTR__other_textures/texture_blue_shell_2";
static const ALIGN_ASSET(2) char texture_blue_shell_3[] = "__OTR__other_textures/texture_blue_shell_3";
static const ALIGN_ASSET(2) char texture_blue_shell_4[] = "__OTR__other_textures/texture_blue_shell_4";
static const ALIGN_ASSET(2) char texture_blue_shell_5[] = "__OTR__other_textures/texture_blue_shell_5";
static const ALIGN_ASSET(2) char texture_blue_shell_6[] = "__OTR__other_textures/texture_blue_shell_6";
static const ALIGN_ASSET(2) char texture_blue_shell_7[] = "__OTR__other_textures/texture_blue_shell_7";
static const ALIGN_ASSET(2) char gTextureQuestionMarkYellow[] = "__OTR__other_textures/question_mark_yellow";
@ -709,11 +725,11 @@ static const ALIGN_ASSET(2) char gTexture69B03C[] = "__OTR__other_textures/textu
static const ALIGN_ASSET(2) char gTexture69B140[] = "__OTR__other_textures/texture_69B140";
static const ALIGN_ASSET(2) char gTexture69B378[] = "__OTR__other_textures/texture_69B378";
static const ALIGN_ASSET(2) char gGrassParticle[] = "__OTR__other_textures/gGrassParticle";
static const ALIGN_ASSET(2) char gTexture69B960[] = "__OTR__other_textures/texture_69B960";
static const ALIGN_ASSET(2) char gTextureMusicNote[] = "__OTR__other_textures/texture_69B960";
static const ALIGN_ASSET(2) char gTexture69BA28[] = "__OTR__other_textures/texture_69BA28";
static const ALIGN_ASSET(2) char gTextureSpeechBubble[] = "__OTR__other_textures/texture_69BA28";
static const ALIGN_ASSET(2) char gTextureBoingExclamation[] = "__OTR__other_textures/boing_exclamation";
@ -725,9 +741,9 @@ static const ALIGN_ASSET(2) char gTexture69C090[] = "__OTR__other_textures/textu
static const ALIGN_ASSET(2) char gTexture69C1E8[] = "__OTR__other_textures/texture_69C1E8";
static const ALIGN_ASSET(2) char gTexture69C354[] = "__OTR__other_textures/texture_69C354";
static const ALIGN_ASSET(2) char gTextureSmokePuff[] = "__OTR__other_textures/texture_69C354";
static const ALIGN_ASSET(2) char gTexture69C4E4[] = "__OTR__other_textures/texture_69C4E4";
static const ALIGN_ASSET(2) char gGroundDust[] = "__OTR__other_textures/gGroundDust";
static const ALIGN_ASSET(2) char gTexture69C80C[] = "__OTR__other_textures/texture_69C80C";
@ -1027,45 +1043,45 @@ static const ALIGN_ASSET(2) char gTextureExhaust4[] = "__OTR__other_textures/exh
static const ALIGN_ASSET(2) char gTextureExhaust5[] = "__OTR__other_textures/exhaust_5";
static const ALIGN_ASSET(2) char gTextureLogoMarioKart64[] = "__OTR__other_textures/logo_mario_kart_64";
static const ALIGN_ASSET(2) char logo_mario_kart_64[] = "__OTR__other_textures/logo_mario_kart_64";
static const ALIGN_ASSET(2) char gTextureCourseOutlineMarioRaceway[] = "__OTR__other_textures/gTextureCourseOutlineMarioRaceway";
static const ALIGN_ASSET(2) char minimap_mario_raceway[] = "__OTR__other_textures/minimap_mario_raceway";
static const ALIGN_ASSET(2) char gTextureCourseOutlineChocoMountain[] = "__OTR__other_textures/gTextureCourseOutlineChocoMountain";
static const ALIGN_ASSET(2) char minimap_choco_mountain[] = "__OTR__other_textures/minimap_choco_mountain";
static const ALIGN_ASSET(2) char gTextureCourseOutlineBowsersCastle[] = "__OTR__other_textures/gTextureCourseOutlineBowsersCastle";
static const ALIGN_ASSET(2) char minimap_bowsers_castle[] = "__OTR__other_textures/minimap_bowsers_castle";
static const ALIGN_ASSET(2) char gTextureCourseOutlineBansheeBoardwalk[] = "__OTR__other_textures/gTextureCourseOutlineBansheeBoardwalk";
static const ALIGN_ASSET(2) char minimap_banshee_boardwalk[] = "__OTR__other_textures/minimap_banshee_boardwalk";
static const ALIGN_ASSET(2) char gTextureCourseOutlineYoshiValley[] = "__OTR__other_textures/gTextureCourseOutlineYoshiValley";
static const ALIGN_ASSET(2) char minimap_yoshi_valley[] = "__OTR__other_textures/minimap_yoshi_valley";
static const ALIGN_ASSET(2) char gTextureCourseOutlineFrappeSnowland[] = "__OTR__other_textures/gTextureCourseOutlineFrappeSnowland";
static const ALIGN_ASSET(2) char minimap_frappe_snowland[] = "__OTR__other_textures/minimap_frappe_snowland";
static const ALIGN_ASSET(2) char gTextureCourseOutlineKoopaTroopaBeach[] = "__OTR__other_textures/gTextureCourseOutlineKoopaTroopaBeach";
static const ALIGN_ASSET(2) char minimap_koopa_troopa_beach[] = "__OTR__other_textures/minimap_koopa_troopa_beach";
static const ALIGN_ASSET(2) char gTextureCourseOutlineRoyalRaceway[] = "__OTR__other_textures/gTextureCourseOutlineRoyalRaceway";
static const ALIGN_ASSET(2) char minimap_royal_raceway[] = "__OTR__other_textures/minimap_royal_raceway";
static const ALIGN_ASSET(2) char gTextureCourseOutlineLuigiRaceway[] = "__OTR__other_textures/gTextureCourseOutlineLuigiRaceway";
static const ALIGN_ASSET(2) char minimap_luigi_raceway[] = "__OTR__other_textures/minimap_luigi_raceway";
static const ALIGN_ASSET(2) char gTextureCourseOutlineMooMooFarm[] = "__OTR__other_textures/gTextureCourseOutlineMooMooFarm";
static const ALIGN_ASSET(2) char minimap_moo_moo_farm[] = "__OTR__other_textures/minimap_moo_moo_farm";
static const ALIGN_ASSET(2) char gTextureCourseOutlineToadsTurnpike[] = "__OTR__other_textures/gTextureCourseOutlineToadsTurnpike";
static const ALIGN_ASSET(2) char minimap_toads_turnpike[] = "__OTR__other_textures/minimap_toads_turnpike";
static const ALIGN_ASSET(2) char gTextureCourseOutlineKalimariDesert[] = "__OTR__other_textures/gTextureCourseOutlineKalimariDesert";
static const ALIGN_ASSET(2) char minimap_kalimari_desert[] = "__OTR__other_textures/minimap_kalimari_desert";
static const ALIGN_ASSET(2) char gTextureCourseOutlineSherbetLand[] = "__OTR__other_textures/gTextureCourseOutlineSherbetLand";
static const ALIGN_ASSET(2) char minimap_sherbet_land[] = "__OTR__other_textures/minimap_sherbet_land";
static const ALIGN_ASSET(2) char gTextureCourseOutlineRainbowRoad[] = "__OTR__other_textures/gTextureCourseOutlineRainbowRoad";
static const ALIGN_ASSET(2) char minimap_rainbow_road[] = "__OTR__other_textures/minimap_rainbow_road";
static const ALIGN_ASSET(2) char gTextureCourseOutlineWarioStadium[] = "__OTR__other_textures/gTextureCourseOutlineWarioStadium";
static const ALIGN_ASSET(2) char minimap_wario_stadium[] = "__OTR__other_textures/minimap_wario_stadium";
static const ALIGN_ASSET(2) char gTextureCourseOutlineBlockFort[] = "__OTR__other_textures/gTextureCourseOutlineBlockFort";
static const ALIGN_ASSET(2) char minimap_block_fort[] = "__OTR__other_textures/minimap_block_fort";
static const ALIGN_ASSET(2) char gTextureCourseOutlineSkyscraper[] = "__OTR__other_textures/gTextureCourseOutlineSkyscraper";
static const ALIGN_ASSET(2) char minimap_skyscraper[] = "__OTR__other_textures/minimap_skyscraper";
static const ALIGN_ASSET(2) char gTextureCourseOutlineDoubleDeck[] = "__OTR__other_textures/gTextureCourseOutlineDoubleDeck";
static const ALIGN_ASSET(2) char minimap_double_deck[] = "__OTR__other_textures/minimap_double_deck";
static const ALIGN_ASSET(2) char gTextureCourseOutlineDksJungleParkway[] = "__OTR__other_textures/gTextureCourseOutlineDksJungleParkway";
static const ALIGN_ASSET(2) char minimap_dks_jungle_parkway[] = "__OTR__other_textures/minimap_dks_jungle_parkway";
static const ALIGN_ASSET(2) char gTextureCourseOutlineBigDonut[] = "__OTR__other_textures/gTextureCourseOutlineBigDonut";
static const ALIGN_ASSET(2) char minimap_big_donut[] = "__OTR__other_textures/minimap_big_donut";

View File

@ -328,9 +328,9 @@ static const ALIGN_ASSET(2) char gTextureCupSilver[] = "__OTR__player_selection/
static const ALIGN_ASSET(2) char gTextureCupBronze[] = "__OTR__player_selection/cup_bronze";
static const ALIGN_ASSET(2) char gTexturePushStartButton[] = "__OTR__player_selection/push_start_button";
static const ALIGN_ASSET(2) char push_start_button[] = "__OTR__player_selection/push_start_button";
static const ALIGN_ASSET(2) char gTextureCopyright1996[] = "__OTR__player_selection/copyright_1996";
static const ALIGN_ASSET(2) char copyright_1996[] = "__OTR__player_selection/copyright_1996";
static const ALIGN_ASSET(2) char gTextureP1BorderBlue[] = "__OTR__player_selection/p1_border_blue";
@ -340,7 +340,7 @@ static const ALIGN_ASSET(2) char gTextureP3BorderOrange[] = "__OTR__player_selec
static const ALIGN_ASSET(2) char gTextureP4BorderGreen[] = "__OTR__player_selection/p4_border_green";
static const ALIGN_ASSET(2) char gTextureSmallGreenTriangle[] = "__OTR__player_selection/small_green_triangle";
static const ALIGN_ASSET(2) char texture_small_green_triangle[] = "__OTR__player_selection/texture_small_green_triangle";
static const ALIGN_ASSET(2) char gTexture7E56E4[] = "__OTR__player_selection/texture_7E56E4";

View File

@ -6,8 +6,12 @@
static const ALIGN_ASSET(2) char d_course_rainbow_road_dl_0[] = "__OTR__rainbow_road_data/d_course_rainbow_road_dl_0";
static const ALIGN_ASSET(2) char rainbow_road_data_seg6_gfx_0[] = "__OTR__rainbow_road_data/rainbow_road_data_seg6_gfx_0";
static const ALIGN_ASSET(2) char d_course_rainbow_road_dl_80[] = "__OTR__rainbow_road_data/d_course_rainbow_road_dl_80";
static const ALIGN_ASSET(2) char rainbow_road_data_seg6_gfx_80[] = "__OTR__rainbow_road_data/rainbow_road_data_seg6_gfx_80";
static const ALIGN_ASSET(2) char d_course_rainbow_road_dl_D8[] = "__OTR__rainbow_road_data/d_course_rainbow_road_dl_D8";
static const ALIGN_ASSET(2) char d_course_rainbow_road_dl_178[] = "__OTR__rainbow_road_data/d_course_rainbow_road_dl_178";
@ -218,6 +222,8 @@ static const char* d_course_rainbow_road_static_textures[] = {
static const ALIGN_ASSET(2) char d_course_rainbow_road_light1[] = "__OTR__rainbow_road_data/d_course_rainbow_road_light1";
static const ALIGN_ASSET(2) char rainbow_road_data_seg6_lights_12010[] = "__OTR__rainbow_road_data/rainbow_road_data_seg6_lights_12010";
static const ALIGN_ASSET(2) char d_course_rainbow_road_sphere[] = "__OTR__rainbow_road_data/d_course_rainbow_road_sphere";
static const ALIGN_ASSET(2) char d_course_rainbow_road_reflection_map_metal[] = "__OTR__rainbow_road_data/d_course_rainbow_road_reflection_map_metal";

View File

@ -308,24 +308,40 @@ static const ALIGN_ASSET(2) char d_course_sherbet_land_ice[] = "__OTR__sherbet_l
static const ALIGN_ASSET(2) char d_course_sherbet_land_dl_70E8[] = "__OTR__sherbet_land_data/d_course_sherbet_land_dl_70E8";
static const ALIGN_ASSET(2) char sherbet_land_data_seg6_gfx_70E8[] = "__OTR__sherbet_land_data/sherbet_land_data_seg6_gfx_70E8";
static const ALIGN_ASSET(2) char d_course_sherbet_land_dl_7208[] = "__OTR__sherbet_land_data/d_course_sherbet_land_dl_7208";
static const ALIGN_ASSET(2) char sherbet_land_data_seg6_gfx_7208[] = "__OTR__sherbet_land_data/sherbet_land_data_seg6_gfx_7208";
static const ALIGN_ASSET(2) char d_course_sherbet_land_dl_ice_block[] = "__OTR__sherbet_land_data/d_course_sherbet_land_dl_ice_block";
static const ALIGN_ASSET(2) char d_course_sherbet_land_dl_7228[] = "__OTR__sherbet_land_data/d_course_sherbet_land_dl_7228";
static const ALIGN_ASSET(2) char sherbet_land_data_seg6_lights_7240[] = "__OTR__sherbet_land_data/sherbet_land_data_seg6_lights_7240";
static const ALIGN_ASSET(2) char d_course_sherbet_land_light1[] = "__OTR__sherbet_land_data/d_course_sherbet_land_light1";
static const ALIGN_ASSET(2) char sherbet_land_data_seg6_lights_7258[] = "__OTR__sherbet_land_data/sherbet_land_data_seg6_lights_7258";
static const ALIGN_ASSET(2) char d_course_sherbet_land_light2[] = "__OTR__sherbet_land_data/d_course_sherbet_land_light2";
static const ALIGN_ASSET(2) char sherbet_land_data_seg6_lights_7270[] = "__OTR__sherbet_land_data/sherbet_land_data_seg6_lights_7270";
static const ALIGN_ASSET(2) char d_course_sherbet_land_light3[] = "__OTR__sherbet_land_data/d_course_sherbet_land_light3";
static const ALIGN_ASSET(2) char sherbet_land_data_seg6_lights_7288[] = "__OTR__sherbet_land_data/sherbet_land_data_seg6_lights_7288";
static const ALIGN_ASSET(2) char d_course_sherbet_land_light4[] = "__OTR__sherbet_land_data/d_course_sherbet_land_light4";
static const ALIGN_ASSET(2) char sherbet_land_data_seg6_lights_72A0[] = "__OTR__sherbet_land_data/sherbet_land_data_seg6_lights_72A0";
static const ALIGN_ASSET(2) char d_course_sherbet_land_light5[] = "__OTR__sherbet_land_data/d_course_sherbet_land_light5";
static const ALIGN_ASSET(2) char d_course_sherbet_land_light6[] = "__OTR__sherbet_land_data/d_course_sherbet_land_light6";
static const ALIGN_ASSET(2) char sherbet_land_data_seg6_lights_72D0[] = "__OTR__sherbet_land_data/sherbet_land_data_seg6_lights_72D0";
static const ALIGN_ASSET(2) char d_course_sherbet_land_light7[] = "__OTR__sherbet_land_data/d_course_sherbet_land_light7";
static const ALIGN_ASSET(2) char d_course_sherbet_land_penguin_beak[] = "__OTR__sherbet_land_data/d_course_sherbet_land_penguin_beak";
@ -334,16 +350,22 @@ static const ALIGN_ASSET(2) char d_course_sherbet_land_penguin_eye[] = "__OTR__s
static const ALIGN_ASSET(2) char d_course_sherbet_land_penguin_eyes_model[] = "__OTR__sherbet_land_data/d_course_sherbet_land_penguin_eyes_model";
static const ALIGN_ASSET(2) char sherbet_land_data_seg6_gfx_8368[] = "__OTR__sherbet_land_data/sherbet_land_data_seg6_gfx_8368";
static const ALIGN_ASSET(2) char d_course_sherbet_land_dl_8368[] = "__OTR__sherbet_land_data/d_course_sherbet_land_dl_8368";
static const ALIGN_ASSET(2) char d_course_sherbet_land_penguin_nose_model[] = "__OTR__sherbet_land_data/d_course_sherbet_land_penguin_nose_model";
static const ALIGN_ASSET(2) char sherbet_land_data_seg6_gfx_83D8[] = "__OTR__sherbet_land_data/sherbet_land_data_seg6_gfx_83D8";
static const ALIGN_ASSET(2) char d_course_sherbet_land_dl_83D8[] = "__OTR__sherbet_land_data/d_course_sherbet_land_dl_83D8";
static const ALIGN_ASSET(2) char d_course_sherbet_land_penguin_head_model1[] = "__OTR__sherbet_land_data/d_course_sherbet_land_penguin_head_model1";
static const ALIGN_ASSET(2) char d_course_sherbet_land_penguin_head_model2[] = "__OTR__sherbet_land_data/d_course_sherbet_land_penguin_head_model2";
static const ALIGN_ASSET(2) char sherbet_land_data_seg6_gfx_85B0[] = "__OTR__sherbet_land_data/sherbet_land_data_seg6_gfx_85B0";
static const ALIGN_ASSET(2) char d_course_sherbet_land_dl_85B0[] = "__OTR__sherbet_land_data/d_course_sherbet_land_dl_85B0";
static const ALIGN_ASSET(2) char d_course_sherbet_land_penguin_arms_model[] = "__OTR__sherbet_land_data/d_course_sherbet_land_penguin_arms_model";

View File

@ -54,22 +54,38 @@ static const ALIGN_ASSET(2) char startup_logo_seg6_vtx_2740[] = "__OTR__startup_
static const ALIGN_ASSET(2) char startup_logo_seg6_vtx_2940[] = "__OTR__startup_logo/startup_logo_seg6_vtx_2940";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_2B00[] = "__OTR__startup_logo/startup_logo_seg6_gfx_2B00";
static const ALIGN_ASSET(2) char startup_logo_dl[] = "__OTR__startup_logo/dl1";
static const ALIGN_ASSET(2) char startup_logo_dl2[] = "__OTR__startup_logo/dl2";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_2C88[] = "__OTR__startup_logo/startup_logo_seg6_gfx_2C88";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_2D58[] = "__OTR__startup_logo/startup_logo_seg6_gfx_2D58";
static const ALIGN_ASSET(2) char startup_logo_dl3[] = "__OTR__startup_logo/dl3";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_2F20[] = "__OTR__startup_logo/startup_logo_seg6_gfx_2F20";
static const ALIGN_ASSET(2) char startup_logo_dl4[] = "__OTR__startup_logo/dl4";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_2FF0[] = "__OTR__startup_logo/startup_logo_seg6_gfx_2FF0";
static const ALIGN_ASSET(2) char startup_logo_dl5[] = "__OTR__startup_logo/dl5";
static const ALIGN_ASSET(2) char startup_logo_dl6[] = "__OTR__startup_logo/dl6";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_3180[] = "__OTR__startup_logo/startup_logo_seg6_gfx_3180";
static const ALIGN_ASSET(2) char startup_logo_dl7[] = "__OTR__startup_logo/dl7";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_3308[] = "__OTR__startup_logo/startup_logo_seg6_gfx_3308";
static const ALIGN_ASSET(2) char startup_logo_dl8[] = "__OTR__startup_logo/dl8";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_33D8[] = "__OTR__startup_logo/startup_logo_seg6_gfx_33D8";
static const ALIGN_ASSET(2) char startup_logo_seg6_vtx_3538[] = "__OTR__startup_logo/startup_logo_seg6_vtx_3538";
static const ALIGN_ASSET(2) char startup_logo_seg6_vtx_3738[] = "__OTR__startup_logo/startup_logo_seg6_vtx_3738";
@ -148,38 +164,66 @@ static const ALIGN_ASSET(2) char startup_logo_seg6_vtx_75A8[] = "__OTR__startup_
static const ALIGN_ASSET(2) char startup_logo_seg6_vtx_77A8[] = "__OTR__startup_logo/startup_logo_seg6_vtx_77A8";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_7988[] = "__OTR__startup_logo/startup_logo_seg6_gfx_7988";
static const ALIGN_ASSET(2) char startup_logo_dl9[] = "__OTR__startup_logo/dl9";
static const ALIGN_ASSET(2) char startup_logo_dl10[] = "__OTR__startup_logo/dl10";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_7C18[] = "__OTR__startup_logo/startup_logo_seg6_gfx_7C18";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_7CE8[] = "__OTR__startup_logo/startup_logo_seg6_gfx_7CE8";
static const ALIGN_ASSET(2) char startup_logo_dl11[] = "__OTR__startup_logo/dl11";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_7E50[] = "__OTR__startup_logo/startup_logo_seg6_gfx_7E50";
static const ALIGN_ASSET(2) char startup_logo_dl12[] = "__OTR__startup_logo/dl12";
static const ALIGN_ASSET(2) char startup_logo_dl13[] = "__OTR__startup_logo/dl13";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_7E90[] = "__OTR__startup_logo/startup_logo_seg6_gfx_7E90";
static const ALIGN_ASSET(2) char startup_logo_dl14[] = "__OTR__startup_logo/dl14";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_7ED0[] = "__OTR__startup_logo/startup_logo_seg6_gfx_7ED0";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_7F88[] = "__OTR__startup_logo/startup_logo_seg6_gfx_7F88";
static const ALIGN_ASSET(2) char startup_logo_dl15[] = "__OTR__startup_logo/dl15";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_80F0[] = "__OTR__startup_logo/startup_logo_seg6_gfx_80F0";
static const ALIGN_ASSET(2) char startup_logo_dl16[] = "__OTR__startup_logo/dl16";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_8250[] = "__OTR__startup_logo/startup_logo_seg6_gfx_8250";
static const ALIGN_ASSET(2) char startup_logo_dl17[] = "__OTR__startup_logo/dl17";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_83C8[] = "__OTR__startup_logo/startup_logo_seg6_gfx_83C8";
static const ALIGN_ASSET(2) char startup_logo_dl18[] = "__OTR__startup_logo/dl18";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_8548[] = "__OTR__startup_logo/startup_logo_seg6_gfx_8548";
static const ALIGN_ASSET(2) char startup_logo_dl19[] = "__OTR__startup_logo/dl19";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_87A0[] = "__OTR__startup_logo/startup_logo_seg6_gfx_87A0";
static const ALIGN_ASSET(2) char startup_logo_dl20[] = "__OTR__startup_logo/dl20";
static const ALIGN_ASSET(2) char startup_reflection_map_gold[] = "__OTR__startup_logo/reflection_map_gold";
static const ALIGN_ASSET(2) char startup_texture_dl1[] = "__OTR__startup_logo/startup_texture_dl1";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_9248[] = "__OTR__startup_logo/startup_logo_seg6_gfx_9248";
static const ALIGN_ASSET(2) char lights[] = "__OTR__startup_logo/lights";
static const ALIGN_ASSET(2) char startup_texture_dl2[] = "__OTR__startup_logo/startup_texture_dl2";
static const ALIGN_ASSET(2) char startup_logo_seg6_gfx_9320[] = "__OTR__startup_logo/startup_logo_seg6_gfx_9320";
static const ALIGN_ASSET(2) char startup_texture_dl3[] = "__OTR__startup_logo/startup_texture_dl3";
static const ALIGN_ASSET(2) char startup_texture_dl4[] = "__OTR__startup_logo/startup_texture_dl4";

View File

@ -149,7 +149,7 @@ static const ALIGN_ASSET(2) char gTexture7EEB18[] = "__OTR__texture_data_2/textu
static const ALIGN_ASSET(2) char gTextureTinyFontMinus[] = "__OTR__texture_data_2/tiny_font_minus";
static const ALIGN_ASSET(2) char gTextureTinyFontComma[] = "__OTR__texture_data_2/tiny_font_comma";
static const ALIGN_ASSET(2) char gTextureTinyFontComma[] = "__OTR__texture_data_2/tiny_font_dot";
static const ALIGN_ASSET(2) char gTextureTinyFontForwardSlash[] = "__OTR__texture_data_2/tiny_font_forward_slash";
@ -327,95 +327,95 @@ static const ALIGN_ASSET(2) char gTexture7F1038[] = "__OTR__texture_data_2/textu
static const ALIGN_ASSET(2) char gTexture7F109C[] = "__OTR__texture_data_2/texture_7F109C";
static const ALIGN_ASSET(2) char gTexture7F1124[] = "__OTR__texture_data_2/7F1124";
static const ALIGN_ASSET(2) char font_four_dote[] = "__OTR__texture_data_2/font_four_dote";
static const ALIGN_ASSET(2) char gTexture7F11F4[] = "__OTR__texture_data_2/7F11F4";
static const ALIGN_ASSET(2) char font_cc[] = "__OTR__texture_data_2/font_cc";
static const ALIGN_ASSET(2) char gTexture7F12C4[] = "__OTR__texture_data_2/7F12C4";
static const ALIGN_ASSET(2) char font_double_quote[] = "__OTR__texture_data_2/font_double_quote";
static const ALIGN_ASSET(2) char gTexture7F1394[] = "__OTR__texture_data_2/7F1394";
static const ALIGN_ASSET(2) char font_exclamation_mark[] = "__OTR__texture_data_2/font_exclamation_mark";
static const ALIGN_ASSET(2) char gTexture7F1464[] = "__OTR__texture_data_2/7F1464";
static const ALIGN_ASSET(2) char font_minus[] = "__OTR__texture_data_2/font_minus";
static const ALIGN_ASSET(2) char gTexture7F1534[] = "__OTR__texture_data_2/7F1534";
static const ALIGN_ASSET(2) char font_dot[] = "__OTR__texture_data_2/7F1534";
static const ALIGN_ASSET(2) char gTexture7F1604[] = "__OTR__texture_data_2/7F1604";
static const ALIGN_ASSET(2) char font_plus[] = "__OTR__texture_data_2/font_plus";
static const ALIGN_ASSET(2) char gTexture7F16D4[] = "__OTR__texture_data_2/7F16D4";
static const ALIGN_ASSET(2) char font_interogation_mark[] = "__OTR__texture_data_2/7F16D4";
static const ALIGN_ASSET(2) char gTexture7F17A4[] = "__OTR__texture_data_2/7F17A4";
static const ALIGN_ASSET(2) char font_simple_quote[] = "__OTR__texture_data_2/7F17A4";
static const ALIGN_ASSET(2) char gTexture7F1874[] = "__OTR__texture_data_2/7F1874";
static const ALIGN_ASSET(2) char font_number_zero[] = "__OTR__texture_data_2/font_number_zero";
static const ALIGN_ASSET(2) char gTexture7F1944[] = "__OTR__texture_data_2/7F1944";
static const ALIGN_ASSET(2) char font_number_one[] = "__OTR__texture_data_2/font_number_one";
static const ALIGN_ASSET(2) char gTexture7F1A14[] = "__OTR__texture_data_2/7F1A14";
static const ALIGN_ASSET(2) char font_number_two[] = "__OTR__texture_data_2/font_number_two";
static const ALIGN_ASSET(2) char gTexture7F1AE4[] = "__OTR__texture_data_2/7F1AE4";
static const ALIGN_ASSET(2) char font_number_three[] = "__OTR__texture_data_2/font_number_three";
static const ALIGN_ASSET(2) char gTexture7F1BB4[] = "__OTR__texture_data_2/7F1BB4";
static const ALIGN_ASSET(2) char font_number_four[] = "__OTR__texture_data_2/font_number_four";
static const ALIGN_ASSET(2) char gTexture7F1C84[] = "__OTR__texture_data_2/7F1C84";
static const ALIGN_ASSET(2) char font_number_five[] = "__OTR__texture_data_2/font_number_five";
static const ALIGN_ASSET(2) char gTexture7F1D54[] = "__OTR__texture_data_2/7F1D54";
static const ALIGN_ASSET(2) char font_number_six[] = "__OTR__texture_data_2/font_number_six";
static const ALIGN_ASSET(2) char gTexture7F1E24[] = "__OTR__texture_data_2/7F1E24";
static const ALIGN_ASSET(2) char font_number_seven[] = "__OTR__texture_data_2/font_number_seven";
static const ALIGN_ASSET(2) char gTexture7F1EF4[] = "__OTR__texture_data_2/7F1EF4";
static const ALIGN_ASSET(2) char font_number_eight[] = "__OTR__texture_data_2/font_number_eight";
static const ALIGN_ASSET(2) char gTexture7F1FC4[] = "__OTR__texture_data_2/7F1FC4";
static const ALIGN_ASSET(2) char font_number_nine[] = "__OTR__texture_data_2/font_number_nine";
static const ALIGN_ASSET(2) char gTexture7F2094[] = "__OTR__texture_data_2/7F2094";
static const ALIGN_ASSET(2) char font_letter_A[] = "__OTR__texture_data_2/font_letter_A";
static const ALIGN_ASSET(2) char gTexture7F2164[] = "__OTR__texture_data_2/7F2164";
static const ALIGN_ASSET(2) char font_letter_B[] = "__OTR__texture_data_2/font_letter_B";
static const ALIGN_ASSET(2) char gTexture7F2234[] = "__OTR__texture_data_2/7F2234";
static const ALIGN_ASSET(2) char font_letter_C[] = "__OTR__texture_data_2/font_letter_C";
static const ALIGN_ASSET(2) char gTexture7F2304[] = "__OTR__texture_data_2/7F2304";
static const ALIGN_ASSET(2) char font_letter_D[] = "__OTR__texture_data_2/font_letter_D";
static const ALIGN_ASSET(2) char gTexture7F23D4[] = "__OTR__texture_data_2/7F23D4";
static const ALIGN_ASSET(2) char font_letter_E[] = "__OTR__texture_data_2/font_letter_E";
static const ALIGN_ASSET(2) char gTexture7F24A4[] = "__OTR__texture_data_2/7F24A4";
static const ALIGN_ASSET(2) char font_letter_F[] = "__OTR__texture_data_2/font_letter_F";
static const ALIGN_ASSET(2) char gTexture7F2574[] = "__OTR__texture_data_2/7F2574";
static const ALIGN_ASSET(2) char font_letter_G[] = "__OTR__texture_data_2/font_letter_G";
static const ALIGN_ASSET(2) char gTexture7F2644[] = "__OTR__texture_data_2/7F2644";
static const ALIGN_ASSET(2) char font_letter_H[] = "__OTR__texture_data_2/font_letter_H";
static const ALIGN_ASSET(2) char gTexture7F2714[] = "__OTR__texture_data_2/7F2714";
static const ALIGN_ASSET(2) char font_letter_I[] = "__OTR__texture_data_2/font_letter_I";
static const ALIGN_ASSET(2) char gTexture7F27E4[] = "__OTR__texture_data_2/7F27E4";
static const ALIGN_ASSET(2) char font_letter_J[] = "__OTR__texture_data_2/font_letter_J";
static const ALIGN_ASSET(2) char gTexture7F28B4[] = "__OTR__texture_data_2/7F28B4";
static const ALIGN_ASSET(2) char font_letter_K[] = "__OTR__texture_data_2/font_letter_K";
static const ALIGN_ASSET(2) char gTexture7F2984[] = "__OTR__texture_data_2/7F2984";
static const ALIGN_ASSET(2) char font_letter_L[] = "__OTR__texture_data_2/font_letter_L";
static const ALIGN_ASSET(2) char gTexture7F2A54[] = "__OTR__texture_data_2/7F2A54";
static const ALIGN_ASSET(2) char font_letter_M[] = "__OTR__texture_data_2/font_letter_M";
static const ALIGN_ASSET(2) char gTexture7F2B24[] = "__OTR__texture_data_2/7F2B24";
static const ALIGN_ASSET(2) char font_letter_N[] = "__OTR__texture_data_2/font_letter_N";
static const ALIGN_ASSET(2) char gTexture7F2BF4[] = "__OTR__texture_data_2/7F2BF4";
static const ALIGN_ASSET(2) char font_letter_O[] = "__OTR__texture_data_2/font_letter_O";
static const ALIGN_ASSET(2) char gTexture7F2CC4[] = "__OTR__texture_data_2/7F2CC4";
static const ALIGN_ASSET(2) char font_letter_P[] = "__OTR__texture_data_2/font_letter_P";
static const ALIGN_ASSET(2) char gTexture7F2D94[] = "__OTR__texture_data_2/7F2D94";
static const ALIGN_ASSET(2) char font_letter_Q[] = "__OTR__texture_data_2/font_letter_Q";
static const ALIGN_ASSET(2) char gTexture7F2E64[] = "__OTR__texture_data_2/7F2E64";
static const ALIGN_ASSET(2) char font_letter_R[] = "__OTR__texture_data_2/font_letter_R";
static const ALIGN_ASSET(2) char gTexture7F2F34[] = "__OTR__texture_data_2/7F2F34";
static const ALIGN_ASSET(2) char font_letter_S[] = "__OTR__texture_data_2/font_letter_S";
static const ALIGN_ASSET(2) char gTexture7F3004[] = "__OTR__texture_data_2/7F3004";
static const ALIGN_ASSET(2) char font_letter_T[] = "__OTR__texture_data_2/font_letter_T";
static const ALIGN_ASSET(2) char gTexture7F30D4[] = "__OTR__texture_data_2/7F30D4";
static const ALIGN_ASSET(2) char font_letter_U[] = "__OTR__texture_data_2/font_letter_U";
static const ALIGN_ASSET(2) char gTexture7F31A4[] = "__OTR__texture_data_2/7F31A4";
static const ALIGN_ASSET(2) char font_letter_V[] = "__OTR__texture_data_2/font_letter_V";
static const ALIGN_ASSET(2) char gTexture7F3274[] = "__OTR__texture_data_2/7F3274";
static const ALIGN_ASSET(2) char font_letter_W[] = "__OTR__texture_data_2/font_letter_W";
static const ALIGN_ASSET(2) char gTexture7F3344[] = "__OTR__texture_data_2/7F3344";
static const ALIGN_ASSET(2) char font_letter_X[] = "__OTR__texture_data_2/font_letter_X";
static const ALIGN_ASSET(2) char gTexture7F3414[] = "__OTR__texture_data_2/7F3414";
static const ALIGN_ASSET(2) char font_letter_Y[] = "__OTR__texture_data_2/font_letter_Y";
static const ALIGN_ASSET(2) char gTexture7F34E4[] = "__OTR__texture_data_2/7F34E4";
static const ALIGN_ASSET(2) char font_letter_Z[] = "__OTR__texture_data_2/font_letter_Z";
static const ALIGN_ASSET(2) char gTexture7F35B4[] = "__OTR__texture_data_2/7F35B4";
@ -787,7 +787,7 @@ static const ALIGN_ASSET(2) char gTexture7F9F44[] = "__OTR__texture_data_2/7F9F4
static const ALIGN_ASSET(2) char gTexture7F9FC4[] = "__OTR__texture_data_2/7F9FC4";
static const ALIGN_ASSET(2) char gTexture7FA044[] = "__OTR__texture_data_2/7FA044";
static const ALIGN_ASSET(2) char font_apostrophe[] = "__OTR__texture_data_2/font_apostrophe";
static const ALIGN_ASSET(2) char gTexture7FA0C4[] = "__OTR__texture_data_2/7FA0C4";
@ -795,5 +795,5 @@ static const ALIGN_ASSET(2) char gTexture7FA194[] = "__OTR__texture_data_2/7FA19
static const ALIGN_ASSET(2) char gTexture7FA264[] = "__OTR__texture_data_2/7FA264";
static const ALIGN_ASSET(2) char gTexture7FA334[] = "__OTR__texture_data_2/7FA334";
static const ALIGN_ASSET(2) char font_comma[] = "__OTR__texture_data_2/7FA334";

View File

@ -3,25 +3,25 @@
#include <libultraship.h>
#include <align_asset_macro.h>
static const ALIGN_ASSET(2) char gTexturePlayerSelect[] = "__OTR__texture_tkmk00/gTexturePlayerSelect";
static const ALIGN_ASSET(2) char texture_player_select[] = "__OTR__texture_tkmk00/texture_player_select";
static const ALIGN_ASSET(2) char gTextureOption[] = "__OTR__texture_tkmk00/gTextureOption";
static const ALIGN_ASSET(2) char texture_option[] = "__OTR__texture_tkmk00/texture_option";
static const ALIGN_ASSET(2) char gTextureNameDK[] = "__OTR__texture_tkmk00/gTextureNameDK";
static const ALIGN_ASSET(2) char texture_name_dk[] = "__OTR__texture_tkmk00/texture_name_dk";
static const ALIGN_ASSET(2) char gTextureNameToad[] = "__OTR__texture_tkmk00/gTextureNameToad";
static const ALIGN_ASSET(2) char texture_name_toad[] = "__OTR__texture_tkmk00/texture_name_toad";
static const ALIGN_ASSET(2) char gTextureNameBowser[] = "__OTR__texture_tkmk00/gTextureNameBowser";
static const ALIGN_ASSET(2) char texture_name_bowser[] = "__OTR__texture_tkmk00/texture_name_bowser";
static const ALIGN_ASSET(2) char gTextureNameLuigi[] = "__OTR__texture_tkmk00/gTextureNameLuigi";
static const ALIGN_ASSET(2) char texture_name_luigi[] = "__OTR__texture_tkmk00/texture_name_luigi";
static const ALIGN_ASSET(2) char gTextureNameMario[] = "__OTR__texture_tkmk00/gTextureNameMario";
static const ALIGN_ASSET(2) char texture_name_mario[] = "__OTR__texture_tkmk00/texture_name_mario";
static const ALIGN_ASSET(2) char gTextureNamePeach[] = "__OTR__texture_tkmk00/gTextureNamePeach";
static const ALIGN_ASSET(2) char texture_name_peach[] = "__OTR__texture_tkmk00/texture_name_peach";
static const ALIGN_ASSET(2) char gTextureNameWario[] = "__OTR__texture_tkmk00/gTextureNameWario";
static const ALIGN_ASSET(2) char texture_name_wario[] = "__OTR__texture_tkmk00/texture_name_wario";
static const ALIGN_ASSET(2) char gTextureNameYoshi[] = "__OTR__texture_tkmk00/gTextureNameYoshi";
static const ALIGN_ASSET(2) char texture_name_yoshi[] = "__OTR__texture_tkmk00/texture_name_yoshi";
static const ALIGN_ASSET(2) char gTextureTitleMarioRaceway[] = "__OTR__texture_tkmk00/gTextureTitleMarioRaceway";
@ -73,51 +73,51 @@ static const ALIGN_ASSET(2) char gTextureMenuStarCup[] = "__OTR__texture_tkmk00/
static const ALIGN_ASSET(2) char gTextureMenuSpecialCup[] = "__OTR__texture_tkmk00/gTextureMenuSpecialCup";
static const ALIGN_ASSET(2) char gTextureGameSelect[] = "__OTR__texture_tkmk00/gTextureGameSelect";
static const ALIGN_ASSET(2) char texture_game_select[] = "__OTR__texture_tkmk00/texture_game_select";
static const ALIGN_ASSET(2) char gTextureMenu1PGame[] = "__OTR__texture_tkmk00/gTextureMenu1PGame";
static const ALIGN_ASSET(2) char texture_menu_1p_game[] = "__OTR__texture_tkmk00/texture_menu_1p_game";
static const ALIGN_ASSET(2) char gTextureMenu2PGame[] = "__OTR__texture_tkmk00/gTextureMenu2PGame";
static const ALIGN_ASSET(2) char texture_menu_2p_game[] = "__OTR__texture_tkmk00/texture_menu_2p_game";
static const ALIGN_ASSET(2) char gTextureMenu3PGame[] = "__OTR__texture_tkmk00/gTextureMenu3PGame";
static const ALIGN_ASSET(2) char texture_menu_3p_game[] = "__OTR__texture_tkmk00/texture_menu_3p_game";
static const ALIGN_ASSET(2) char gTextureMenu4PGame[] = "__OTR__texture_tkmk00/gTextureMenu4PGame";
static const ALIGN_ASSET(2) char texture_menu_4p_game[] = "__OTR__texture_tkmk00/texture_menu_4p_game";
static const ALIGN_ASSET(2) char gTextureMenuModeBattle[] = "__OTR__texture_tkmk00/gTextureMenuModeBattle";
static const ALIGN_ASSET(2) char texture_mode_battle[] = "__OTR__texture_tkmk00/texture_mode_battle";
static const ALIGN_ASSET(2) char gTextureMenuModeTimeTrials[] = "__OTR__texture_tkmk00/gTextureMenuModeTimeTrials";
static const ALIGN_ASSET(2) char texture_mode_time_trials[] = "__OTR__texture_tkmk00/texture_mode_time_trials";
static const ALIGN_ASSET(2) char gTextureMenuModeMarioGP[] = "__OTR__texture_tkmk00/gTextureMenuModeMarioGP";
static const ALIGN_ASSET(2) char texture_mode_mario_gp[] = "__OTR__texture_tkmk00/texture_mode_mario_gp";
static const ALIGN_ASSET(2) char gTextureMenuModeVS[] = "__OTR__texture_tkmk00/gTextureMenuModeVS";
static const ALIGN_ASSET(2) char texture_mode_vs[] = "__OTR__texture_tkmk00/texture_mode_vs";
static const ALIGN_ASSET(2) char gTextureMenuLOption[] = "__OTR__texture_tkmk00/gTextureMenuLOption";
static const ALIGN_ASSET(2) char texture_l_option[] = "__OTR__texture_tkmk00/texture_l_option";
static const ALIGN_ASSET(2) char gTextureMenuRData[] = "__OTR__texture_tkmk00/gTextureMenuRData";
static const ALIGN_ASSET(2) char texture_r_data[] = "__OTR__texture_tkmk00/texture_r_data";
static const ALIGN_ASSET(2) char gTextureMenu50cc[] = "__OTR__texture_tkmk00/gTextureMenu50cc";
static const ALIGN_ASSET(2) char texture_50cc[] = "__OTR__texture_tkmk00/texture_50cc";
static const ALIGN_ASSET(2) char gTextureMenu100cc[] = "__OTR__texture_tkmk00/gTextureMenu100cc";
static const ALIGN_ASSET(2) char texture_100cc[] = "__OTR__texture_tkmk00/texture_100cc";
static const ALIGN_ASSET(2) char gTextureMenu150cc[] = "__OTR__texture_tkmk00/gTextureMenu150cc";
static const ALIGN_ASSET(2) char texture_150cc[] = "__OTR__texture_tkmk00/texture_150cc";
static const ALIGN_ASSET(2) char gTextureMenuExtra[] = "__OTR__texture_tkmk00/gTextureMenuExtra";
static const ALIGN_ASSET(2) char texture_extra[] = "__OTR__texture_tkmk00/texture_extra";
static const ALIGN_ASSET(2) char gTextureMenuWithoutItem[] = "__OTR__texture_tkmk00/gTextureMenuWithoutItem";
static const ALIGN_ASSET(2) char gTextureMenuWithItem[] = "__OTR__texture_tkmk00/gTextureMenuWithItem";
static const ALIGN_ASSET(2) char gTextureMenuBegin[] = "__OTR__texture_tkmk00/gTextureMenuBegin";
static const ALIGN_ASSET(2) char texture_begin[] = "__OTR__texture_tkmk00/texture_begin";
static const ALIGN_ASSET(2) char gTextureMenuGhost[] = "__OTR__texture_tkmk00/gTextureMenuGhost";
static const ALIGN_ASSET(2) char texture_menu_ghost[] = "__OTR__texture_tkmk00/texture_menu_ghost";
static const ALIGN_ASSET(2) char gTextureMenuData[] = "__OTR__texture_tkmk00/gTextureMenuData";
static const ALIGN_ASSET(2) char texture_data[] = "__OTR__texture_tkmk00/texture_data";
static const ALIGN_ASSET(2) char gTextureMenuOK[] = "__OTR__texture_tkmk00/gTextureMenuOK";
static const ALIGN_ASSET(2) char texture_ok[] = "__OTR__texture_tkmk00/texture_ok";
static const ALIGN_ASSET(2) char gTextureBackgroundBlueSky[] = "__OTR__texture_tkmk00/gTextureBackgroundBlueSky";
static const ALIGN_ASSET(2) char background_blue_sky[] = "__OTR__texture_tkmk00/background_blue_sky";
static const ALIGN_ASSET(2) char gTextureBackgroundSunset[] = "__OTR__texture_tkmk00/gTextureBackgroundSunset";
static const ALIGN_ASSET(2) char background_sunset[] = "__OTR__texture_tkmk00/background_sunset";
static const ALIGN_ASSET(2) char gTextureGreenGoldStripe[] = "__OTR__texture_tkmk00/gTextureGreenGoldStripe";

View File

@ -6,8 +6,12 @@
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_60[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_60";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_60[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_60";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_80[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_80";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_158[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_158";
@ -270,30 +274,54 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_truck_unknown_model13[]
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_18DB8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_18DB8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_18DB8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_18DB8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_18E38[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_18E38";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_18E38[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_18E38";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_18EB8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_18EB8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_18EB8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_18EB8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_18F58[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_18F58";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_18F58[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_18F58";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_18FF8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_18FF8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_18FF8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_18FF8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19020[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19020";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_19030[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_19030";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19030[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19030";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_190E8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_190E8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_190E8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_190E8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_19168[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_19168";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19168[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19168";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_192B0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_192B0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_192B0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_192B0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19390[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19390";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_19390[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_19390";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19450[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19450";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_19450[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_19450";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_194E0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_194E0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_194E0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_194E0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19518[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19518";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_truck_model_lod1[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_truck_model_lod1";
@ -312,24 +340,40 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_truck_unknown_model19[]
static const ALIGN_ASSET(2) char d_course_toads_turnpike_truck_unknown_model20[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_truck_unknown_model20";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_19CF8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_19CF8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19CF8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19CF8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_19D68[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_19D68";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19D68[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19D68";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_19DD8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_19DD8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19DD8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19DD8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19DF0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19DF0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19E00[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19E00";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_19E00[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_19E00";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_19E38[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_19E38";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19E38[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19E38";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_19EA0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_19EA0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19EA0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19EA0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_19F08[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_19F08";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_19F08[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_19F08";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1A040[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1A040";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1A040[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1A040";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1A068[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1A068";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_truck_model_lod2[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_truck_model_lod2";
@ -344,18 +388,30 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_truck_unknown_model24[]
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1A4B8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1A4B8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1A4B8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1A4B8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1A528[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1A528";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1A528[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1A528";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1A5E0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1A5E0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1A5E0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1A5E0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1A5F8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1A5F8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1A608[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1A608";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1A608[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1A608";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1A640[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1A640";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1A640[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1A640";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1A6B0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1A6B0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1A6B0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1A6B0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1A6C8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1A6C8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_bus_model_lod0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_bus_model_lod0";
@ -390,28 +446,48 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_bus_unknown_model14[] =
static const ALIGN_ASSET(2) char d_course_toads_turnpike_bus_unknown_model15[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_bus_unknown_model15";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1B5C8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1B5C8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1B5C8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1B5C8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1B658[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1B658";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1B658[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1B658";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1B6D8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1B6D8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1B6D8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1B6D8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1B758[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1B758";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1B758[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1B758";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1B778[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1B778";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1B788[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1B788";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1B788[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1B788";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1B810[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1B810";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1B810[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1B810";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1B8A0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1B8A0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1B8A0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1B8A0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1BC78[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1BC78";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1BC78[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1BC78";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1BD48[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1BD48";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1BD48[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1BD48";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1BE18[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1BE18";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1BE18[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1BE18";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1BE48[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1BE48";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_bus_model_lod1[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_bus_model_lod1";
@ -438,20 +514,34 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_bus_unknown_model25[] =
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1C628[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1C628";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1C628[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1C628";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1C688[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1C688";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1C688[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1C688";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1C6E8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1C6E8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1C6E8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1C6E8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1C700[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1C700";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1C710[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1C710";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1C710[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1C710";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1C770[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1C770";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1C770[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1C770";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1C7D0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1C7D0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1C7D0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1C7D0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1CA88[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1CA88";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1CA88[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1CA88";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1CAA8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1CAA8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_bus_model_lod2[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_bus_model_lod2";
@ -468,18 +558,28 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_bus_unknown_model30[] =
static const ALIGN_ASSET(2) char d_course_toads_turnpike_bus_unknown_model31[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_bus_unknown_model31";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1CD98[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1CD98";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1CD98[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1CD98";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1CDF8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1CDF8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1CDF8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1CDF8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1CE58[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1CE58";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1CE58[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1CE58";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1CE70[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1CE70";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1CE80[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1CE80";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1CE80[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1CE80";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1D008[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1D008";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1D008[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1D008";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1D018[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1D018";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_tanker_truck_model_lod0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_tanker_truck_model_lod0";
@ -512,30 +612,52 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_tanker_truck_unknown_mo
static const ALIGN_ASSET(2) char d_course_toads_turnpike_tanker_truck_unknown_model14[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_tanker_truck_unknown_model14";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1E288[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1E288";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1E288[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1E288";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1E318[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1E318";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1E318[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1E318";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1E3A8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1E3A8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1E3A8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1E3A8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1E438[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1E438";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1E438[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1E438";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1E458[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1E458";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1E468[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1E468";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1E468[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1E468";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1E508[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1E508";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1E508[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1E508";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1E810[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1E810";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1E810[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1E810";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1E8A0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1E8A0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1E8A0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1E8A0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1E970[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1E970";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1E970[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1E970";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1EA40[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1EA40";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1EA40[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1EA40";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1EB10[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1EB10";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1EB10[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1EB10";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1EB48[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1EB48";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_tanker_truck_model_lod1[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_tanker_truck_model_lod1";
@ -572,34 +694,60 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_tanker_truck_unknown_mo
static const ALIGN_ASSET(2) char d_course_toads_turnpike_tanker_truck_unknown_model30[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_tanker_truck_unknown_model30";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1F7D8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1F7D8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1F7D8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1F7D8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1F850[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1F850";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1F850[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1F850";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1F8C0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1F8C0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1F8C0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1F8C0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1F938[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1F938";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1F938[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1F938";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1F9A8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1F9A8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1F9A8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1F9A8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1F9D0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1F9D0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1F9E0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1F9E0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1F9E0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1F9E0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1FCD8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1FCD8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1FCD8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1FCD8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1FD58[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1FD58";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1FD58[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1FD58";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1FDD0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1FDD0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1FDD0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1FDD0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1FE50[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1FE50";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1FE50[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1FE50";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1FEC8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1FEC8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1FEC8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1FEC8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1FF50[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1FF50";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1FF50[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1FF50";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_1FFC8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_1FFC8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_1FFC8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_1FFC8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_20008[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_20008";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_tanker_truck_model_lod2[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_tanker_truck_model_lod2";
@ -610,18 +758,28 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_tanker_truck_unknown_mo
static const ALIGN_ASSET(2) char d_course_toads_turnpike_tanker_truck_unknown_model33[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_tanker_truck_unknown_model33";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_20348[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_20348";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_20348[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_20348";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_20450[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_20450";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_20450[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_20450";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_204F8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_204F8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_204F8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_204F8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_20510[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_20510";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_20520[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_20520";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_20520[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_20520";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_20598[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_20598";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_20598[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_20598";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_205A8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_205A8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_car_model_lod0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_car_model_lod0";
@ -658,30 +816,56 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_car_unknown_model15[] =
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21648[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21648";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_21648[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_21648";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_216D8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_216D8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_216D8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_216D8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21768[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21768";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_21768[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_21768";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21780[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21780";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21790[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21790";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_21790[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_21790";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21820[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21820";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_21820[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_21820";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_218B0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_218B0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_218B0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_218B0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_21950[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_21950";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21950[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21950";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21A28[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21A28";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_21A28[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_21A28";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21C78[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21C78";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_21C78[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_21C78";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21CD0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21CD0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_21CD0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_21CD0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21D28[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21D28";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_21D28[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_21D28";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21D80[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21D80";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_21D80[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_21D80";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_21DD8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_21DD8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21DD8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21DD8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_21E28[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_21E28";
@ -712,24 +896,44 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_car_unknown_model26[] =
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_22A68[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_22A68";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_22A68[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_22A68";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_22AF8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_22AF8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_22AF8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_22AF8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_22B88[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_22B88";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_22B88[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_22B88";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_22BA0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_22BA0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_22BB0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_22BB0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_22BB0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_22BB0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_22C50[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_22C50";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_22C50[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_22C50";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_22C88[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_22C88";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_22C88[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_22C88";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_22CC0[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_22CC0";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_22CC0[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_22CC0";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_22D60[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_22D60";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_22D60[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_22D60";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_22E38[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_22E38";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_22E38[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_22E38";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_23040[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_23040";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_23040[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_23040";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_23078[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_23078";
@ -748,20 +952,32 @@ static const ALIGN_ASSET(2) char d_course_toads_turnpike_car_unknown_model31[] =
static const ALIGN_ASSET(2) char d_course_toads_turnpike_car_unknown_model32[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_car_unknown_model32";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_23538[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_23538";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_23538[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_23538";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_23600[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_23600";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_23600[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_23600";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_23678[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_23678";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_23678[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_23678";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_237D8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_237D8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_237D8[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_237D8";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_237F8[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_237F8";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_23808[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_23808";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_23808[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_23808";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_23838[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_23838";
static const ALIGN_ASSET(2) char toads_turnpike_data_seg6_gfx_23838[] = "__OTR__toads_turnpike_data/toads_turnpike_data_seg6_gfx_23838";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_23848[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_23848";
static const ALIGN_ASSET(2) char d_course_toads_turnpike_dl_23858[] = "__OTR__toads_turnpike_data/d_course_toads_turnpike_dl_23858";

View File

@ -240,8 +240,12 @@ static const ALIGN_ASSET(2) char d_course_wario_stadium_sign_top_right[] = "__OT
static const ALIGN_ASSET(2) char d_course_wario_stadium_sign_bottom_right[] = "__OTR__wario_stadium_data/d_course_wario_stadium_sign_bottom_right";
static const ALIGN_ASSET(2) char wario_stadium_data_seg6_gfx_C890[] = "__OTR__wario_stadium_data/wario_stadium_data_seg6_gfx_C890";
static const ALIGN_ASSET(2) char d_course_wario_stadium_dl_C890[] = "__OTR__wario_stadium_data/d_course_wario_stadium_dl_C890";
static const ALIGN_ASSET(2) char wario_stadium_data_seg6_gfx_CA50[] = "__OTR__wario_stadium_data/wario_stadium_data_seg6_gfx_CA50";
static const ALIGN_ASSET(2) char d_course_wario_stadium_dl_CA50[] = "__OTR__wario_stadium_data/d_course_wario_stadium_dl_CA50";
static const ALIGN_ASSET(2) char d_course_wario_stadium_dl_sign[] = "__OTR__wario_stadium_data/d_course_wario_stadium_dl_sign";

View File

@ -6,8 +6,12 @@
static const ALIGN_ASSET(2) char d_course_yoshi_valley_dl_0[] = "__OTR__yoshi_valley_data/d_course_yoshi_valley_dl_0";
static const ALIGN_ASSET(2) char yoshi_valley_data_seg6_gfx_0[] = "__OTR__yoshi_valley_data/yoshi_valley_data_seg6_gfx_0";
static const ALIGN_ASSET(2) char d_course_yoshi_valley_dl_20[] = "__OTR__yoshi_valley_data/d_course_yoshi_valley_dl_20";
static const ALIGN_ASSET(2) char yoshi_valley_data_seg6_gfx_20[] = "__OTR__yoshi_valley_data/yoshi_valley_data_seg6_gfx_20";
static const ALIGN_ASSET(2) char d_course_yoshi_valley_dl_40[] = "__OTR__yoshi_valley_data/d_course_yoshi_valley_dl_40";
static const ALIGN_ASSET(2) char d_course_yoshi_valley_dl_290[] = "__OTR__yoshi_valley_data/d_course_yoshi_valley_dl_290";
@ -282,8 +286,12 @@ static const ALIGN_ASSET(2) char d_course_yoshi_valley_yoshi_flag[] = "__OTR__yo
static const ALIGN_ASSET(2) char d_course_yoshi_valley_unknown_light4[] = "__OTR__yoshi_valley_data/d_course_yoshi_valley_unknown_light4";
static const ALIGN_ASSET(2) char yoshi_valley_data_seg6_lights_141A0[] = "__OTR__yoshi_valley_data/yoshi_valley_data_seg6_lights_141A0";
static const ALIGN_ASSET(2) char d_course_yoshi_valley_unknown_light5[] = "__OTR__yoshi_valley_data/d_course_yoshi_valley_unknown_light5";
static const ALIGN_ASSET(2) char yoshi_valley_data_seg6_lights_141B8[] = "__OTR__yoshi_valley_data/yoshi_valley_data_seg6_lights_141B8";
static const ALIGN_ASSET(2) char d_course_yoshi_valley_flag_pole_model1[] = "__OTR__yoshi_valley_data/d_course_yoshi_valley_flag_pole_model1";
static const ALIGN_ASSET(2) char d_course_yoshi_valley_flag_pole_model2[] = "__OTR__yoshi_valley_data/d_course_yoshi_valley_flag_pole_model2";
@ -330,6 +338,8 @@ static const ALIGN_ASSET(2) char d_course_yoshi_valley_egg_model4[] = "__OTR__yo
static const ALIGN_ASSET(2) char d_course_yoshi_valley_egg_model5[] = "__OTR__yoshi_valley_data/d_course_yoshi_valley_egg_model5";
static const ALIGN_ASSET(2) char yoshi_valley_data_seg6_lights_16558[] = "__OTR__yoshi_valley_data/yoshi_valley_data_seg6_lights_16558";
static const ALIGN_ASSET(2) char d_course_yoshi_valley_lights4[] = "__OTR__yoshi_valley_data/d_course_yoshi_valley_lights4";
static const ALIGN_ASSET(2) char d_course_yoshi_valley_egg_spot[] = "__OTR__yoshi_valley_data/d_course_yoshi_valley_egg_spot";

View File

@ -160,13 +160,13 @@ typedef struct {
} Collision;
typedef struct {
/* 0x00 */ Vec3f unk_000;
/* 0x0C */ f32 unk_00C;
/* 0x00 */ Vec3f pos;
/* 0x0C */ f32 scale;
/* 0x10 */ u16 unk_010;
/* 0x12 */ u16 unk_012;
/* 0x14 */ f32 unk_014;
/* 0x12 */ u16 type;
/* 0x14 */ f32 surfaceType;
/* 0x18 */ f32 unk_018;
/* 0x1C */ s16 unk_01C;
/* 0x1C */ s16 isAlive;
/* 0x1E */ s16 unk_01E;
/* 0x20 */ s16 unk_020;
/* 0x22 */ s16 unk_022;
@ -178,10 +178,10 @@ typedef struct {
/* 0x32 */ s16 unk_032;
/* 0x34 */ s16 unk_034;
/* 0x36 */ s16 unk_036;
/* 0x38 */ s16 unk_038;
/* 0x3A */ s16 unk_03A;
/* 0x3C */ s16 unk_03C;
/* 0x3E */ s16 unk_03E;
/* 0x38 */ s16 red;
/* 0x3A */ s16 green;
/* 0x3C */ s16 blue;
/* 0x3E */ s16 alpha;
/* 0x40 */ s16 unk_040;
/* 0x42 */ s16 unk_042;
/* 0x44 */ s16 unk_044;
@ -314,7 +314,7 @@ typedef struct {
/* 0x00C0 */ s16 unk_0C0;
/* 0x00C2 */ s16 unk_0C2;
/* 0x00C4 */ s16 slopeAccel;
/* 0x00C6 */ s16 unk_0C6;
/* 0x00C6 */ s16 alpha;
/* 0x00C8 */ s16 unk_0C8;
/* 0x00CA */ s16 unk_0CA;
/* 0x00CC */ Vec4s unk_0CC;
@ -343,7 +343,7 @@ typedef struct {
/* 0x01F8 */ f32 unk_1F8;
/* 0x01FC */ f32 unk_1FC;
/* 0x0200 */ u32 unk_200; // May be s32. but less casting required if u32
/* 0x0204 */ s16 unk_204;
/* 0x0204 */ s16 driftDuration;
/* 0x0206 */ s16 unk_206;
/* 0x0208 */ f32 unk_208;
/* 0x020C */ f32 unk_20C;
@ -355,7 +355,7 @@ typedef struct {
/* 0x0222 */ s16 unk_222;
/* 0x0224 */ f32 size;
/* 0x0228 */ s16 unk_228;
/* 0x022A */ s16 unk_22A;
/* 0x022A */ s16 driftState;
/* 0x022C */ f32 previousSpeed;
/* 0x0230 */ f32 unk_230;
/* 0x0234 */ s16 unk_234;
@ -368,7 +368,10 @@ typedef struct {
/* 0x024C */ u16 animGroupSelector[4]; // Based on screen
/* 0x0254 */ u16 characterId;
/* 0x0256 */ u16 unk_256;
/* 0x0258 */ UnkPlayerStruct258 unk_258[40];
/* 0x0258 */ UnkPlayerStruct258 particlePool0[10];
/* 0x06D8 */ UnkPlayerStruct258 particlePool1[10];
/* 0x0C98 */ UnkPlayerStruct258 particlePool2[10];
/* 0x1278 */ UnkPlayerStruct258 particlePool3[10];
/* 0x0D98 */ s16 unk_D98;
/* 0x0D9A */ s16 unk_D9A;
/* 0x0D9C */ f32 unk_D9C;
@ -397,6 +400,19 @@ typedef struct {
u32 nHasAuthority;
} Player; // size = 0xDD8
enum POOL_1_PARTICLE_TYPES {
NO_PARTICLE,
DRIFT_PARTICLE,
GROUND_PARTICLE,
GRASS_PARTICLE,
POOL_1_PARTICLE_TYPE_4,
POOL_1_PARTICLE_TYPE_5,
POOL_1_PARTICLE_TYPE_6,
POOL_1_PARTICLE_TYPE_7,
POOL_1_PARTICLE_TYPE_8,
POOL_1_PARTICLE_TYPE_9
};
typedef struct {
// Something related to time trial ghost data?
/* 0x00 */ s32 unk_00;

View File

@ -344,15 +344,57 @@ enum PLACE { FIRST_PLACE, SECOND_PLACE, THIRD_PLACE, FOURTH_PLACE };
* @brief effect of player's
* for effects
*/
#define BOOST_RAMP_WOOD_EFFECT 0x4 // being boosted by a ramp
#define STAR_EFFECT 0x200 // being a star
#define BOOST_EFFECT 0x2000 // being boosted by trigger a mushroom
#define BOOST_RAMP_ASPHALT_EFFECT 0x100000 // being boosted by a boost pad
#define REVERSE_EFFECT 0x400000 // being in reverse of the course
#define HIT_BY_ITEM_EFFECT 0x2000000 // being hit by an item
#define HIT_EFFECT 0x4000000 // hitting an object
#define LIGHTNING_EFFECT 0x40000000 // being hit by lightning
#define BOO_EFFECT 0x80000000 // being a boo
#define UNKNOWN_EFFECT_0x1 0x1 //
#define BOOST_RAMP_WOOD_EFFECT 0x4 // being boosted by a ramp
#define DRIFTING_EFFECT 0x10 // drifting
#define UNKNOWN_EFFECT_0x40 0x40 //
#define UNKNOWN_EFFECT_0x80 0x80 //
#define UNKNOWN_EFFECT_0xC 0xC //
#define UNKNOWN_EFFECT_0x10 0x10 //
#define UNKNOWN_EFFECT_0x100 0x100 //
#define UNKNOWN_EFFECT_0x1000 0x1000 //
#define STAR_EFFECT 0x200 // being a star
#define BOOST_EFFECT 0x2000 // being boosted by trigger a mushroom
#define UNKNOWN_EFFECT_0x10000 0x10000 //
#define BOOST_RAMP_ASPHALT_EFFECT 0x100000 // being boosted by a boost pad
#define UNKNOWN_EFFECT_0x200000 0x200000 //
#define REVERSE_EFFECT 0x400000 // being in reverse of the course
#define UNKNOWN_EFFECT_0x1000000 0x1000000 //
#define HIT_BY_ITEM_EFFECT 0x2000000 // being hit by an item
#define HIT_EFFECT 0x4000000 // hitting an object
#define UNKNOWN_EFFECT_0x10000000 0x10000000 //
#define LIGHTNING_EFFECT 0x40000000 // being hit by lightning
#define BOO_EFFECT 0x80000000 // being a boo
/**
* @brief durations of effects
*/
#define STAR_EFFECT_DURATION 0xA
#define BOO_EFFECT_DURATION 0x7
/**
* @brief alpha relates values
*/
#define ALPHA_MAX 0xFF
#define ALPHA_MIN 0x0
#define ALPHA_BOO_EFFECT 0x60
/**
* @brief durations of effects
*/
#define STAR_EFFECT_DURATION 0xA
#define BOO_EFFECT_DURATION 0x7
/**
* @brief alpha related values
*/
#define ALPHA_MAX 0xFF
#define ALPHA_MIN 0x0
#define ALPHA_BOO_EFFECT 0x60
#define ALPHA_CHANGE_LARGE 8
#define ALPHA_CHANGE_MEDIUM 4
#define ALPHA_CHANGE_SMALL 2
/**
* @brief shell state
@ -382,9 +424,9 @@ enum PLACE { FIRST_PLACE, SECOND_PLACE, THIRD_PLACE, FOURTH_PLACE };
#endif // DEFINES_H
/**
*
*
* Laps
*
*
*/
#define MIN_LAPS 0
#define MAX_LAPS 3
#define MAX_LAPS 3

View File

@ -142,39 +142,6 @@ void gSPInvalidateTexCache(Gfx* pkt, uintptr_t texAddr);
#define TEXTURE_LOAD_FIX 2
#define TEXTURE_SIZE_FIX 1
// Dumb hack to fix load tile size on higher than native resolutions
#define gMKLoadTextureTile(pkt, timg, fmt, siz, width, height, uls, ult, lrs, lrt, pal, cms, cmt, masks, maskt, \
shifts, shiftt) \
_DW({ \
gDPSetTextureImage(pkt, fmt, siz, width, timg); \
gDPSetTile(pkt, fmt, siz, (((((lrs) - (uls) + 1) * siz##_TILE_BYTES) + 7) >> 3), 0, G_TX_LOADTILE, 0, cmt, \
maskt, shiftt, cms, masks, shifts); \
gDPLoadSync(pkt); \
gDPLoadTile(pkt, G_TX_LOADTILE, (uls) << G_TEXTURE_IMAGE_FRAC, (ult) << G_TEXTURE_IMAGE_FRAC, \
(lrs) << G_TEXTURE_IMAGE_FRAC, (lrt + TEXTURE_LOAD_FIX) << G_TEXTURE_IMAGE_FRAC); \
gDPPipeSync(pkt); \
gDPSetTile(pkt, fmt, siz, (((((lrs) - (uls) + 1) * siz##_LINE_BYTES) + 7) >> 3), 0, G_TX_RENDERTILE, pal, cmt, \
maskt, shiftt, cms, masks, shifts); \
gDPSetTileSize(pkt, G_TX_RENDERTILE, (uls) << G_TEXTURE_IMAGE_FRAC, (ult) << G_TEXTURE_IMAGE_FRAC, \
(lrs) << G_TEXTURE_IMAGE_FRAC, (lrt - TEXTURE_SIZE_FIX) << G_TEXTURE_IMAGE_FRAC); \
})
#define gMKLoadTextureTile_4b(pkt, timg, fmt, width, height, uls, ult, lrs, lrt, pal, cms, cmt, masks, maskt, shifts, \
shiftt) \
_DW({ \
gDPSetTextureImage(pkt, fmt, G_IM_SIZ_8b, ((width) >> 1), timg); \
gDPSetTile(pkt, fmt, G_IM_SIZ_8b, (((((lrs) - (uls) + 1) >> 1) + 7) >> 3), 0, G_TX_LOADTILE, 0, cmt, maskt, \
shiftt, cms, masks, shifts); \
gDPLoadSync(pkt); \
gDPLoadTile(pkt, G_TX_LOADTILE, (uls) << (G_TEXTURE_IMAGE_FRAC - 1), (ult) << (G_TEXTURE_IMAGE_FRAC), \
(lrs) << (G_TEXTURE_IMAGE_FRAC - 1), (lrt + TEXTURE_LOAD_FIX) << (G_TEXTURE_IMAGE_FRAC)); \
gDPPipeSync(pkt); \
gDPSetTile(pkt, fmt, G_IM_SIZ_4b, (((((lrs) - (uls) + 1) >> 1) + 7) >> 3), 0, G_TX_RENDERTILE, pal, cmt, \
maskt, shiftt, cms, masks, shifts); \
gDPSetTileSize(pkt, G_TX_RENDERTILE, (uls) << G_TEXTURE_IMAGE_FRAC, (ult) << G_TEXTURE_IMAGE_FRAC, \
(lrs) << G_TEXTURE_IMAGE_FRAC, (lrt - TEXTURE_SIZE_FIX) << G_TEXTURE_IMAGE_FRAC); \
})
#ifdef __cplusplus
}
#endif

View File

@ -10,6 +10,7 @@
*/
void render_actor_red_shell(Camera* camera, Mat4 matrix, struct ShellActor* shell) {
gDPLoadTLUT_pal256(gDisplayListHead++, &gTLUTRedShell); // set texture
// Set up color combiner for channel swapping
render_actor_shell(camera, matrix, shell);
}

View File

@ -12,13 +12,11 @@ void func_8029CF0C(struct ActorSpawnData* spawnData, struct FallingRock* rock) {
struct ActorSpawnData* temp_v0 = (struct ActorSpawnData*) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
#endif
Vec3s sp24 = { 60, 120, 180 };
#ifndef TARGET_N64
temp_v0 += rock->unk_06;
#endif
rock->respawnTimer = sp24[rock->unk_06]; // * 2
rock->pos[0] = (f32) temp_v0[rock->unk_06].pos[0] * gCourseDirection;
rock->pos[1] = (f32) temp_v0[rock->unk_06].pos[1] + 10.0f;
rock->pos[2] = (f32) temp_v0[rock->unk_06].pos[2];
rock->pos[0] = (f32) temp_v0->pos[0] * gCourseDirection;
rock->pos[1] = (f32) temp_v0->pos[1] + 10.0f;
rock->pos[2] = (f32) temp_v0->pos[2];
vec3f_set(rock->velocity, 0, 0, 0);
vec3s_set(rock->rot, 0, 0, 0);
}

View File

@ -1935,7 +1935,7 @@ void func_800C6108(u8 playerId) {
} else {
D_800E9E54[playerId] = (f32) -player->unk_0C0;
}
if ((player->effects & 0x10) == 0x10) {
if ((player->effects & DRIFTING_EFFECT) == DRIFTING_EFFECT) {
D_800E9EB4[playerId] = D_800E9E64[playerId] + D_800E9DE4[playerId];
} else {
D_800E9EB4[playerId] = D_800E9E64[playerId] + D_800E9DE4[playerId] - (D_800E9E54[playerId] / 12000.0f);
@ -2205,7 +2205,7 @@ void func_800C683C(u8 cameraId) {
void func_800C70A8(u8 playerId) {
if (D_800EA0EC[playerId] == 0) {
D_800E9E74[playerId] = 0;
if ((D_800E9E54[playerId] > 3500.0f) || ((gPlayers[playerId].effects & 0x10) == 0x10)) {
if ((D_800E9E54[playerId] > 3500.0f) || ((gPlayers[playerId].effects & DRIFTING_EFFECT) == DRIFTING_EFFECT)) {
D_800E9E74[playerId] = 1;
switch (gPlayers[playerId].tyres[AUDIO_LEFT_TYRE].surfaceType) {
case DIRT: /* switch 1 */
@ -2237,7 +2237,7 @@ void func_800C70A8(u8 playerId) {
break;
}
}
if ((gPlayers[playerId].effects & 0x10) == 0x10) {
if ((gPlayers[playerId].effects & DRIFTING_EFFECT) == DRIFTING_EFFECT) {
D_800E9E74[playerId] = 2;
switch (gPlayers[playerId].tyres[AUDIO_LEFT_TYRE].surfaceType) { /* switch 2 */
case DIRT: /* switch 2 */

View File

@ -240,8 +240,9 @@ void* dma_sample_data(uintptr_t devAddr, u32 size, s32 arg2, u8* dmaIndexRef) {
dma->ttl = 2;
dma->source = dmaDevAddr;
dma->sizeUnused = transfer;
osPiStartDma(&gCurrAudioFrameDmaIoMesgBufs[gCurrAudioFrameDmaCount++], OS_MESG_PRI_NORMAL, OS_READ, dmaDevAddr,
dma->buffer, transfer, &gCurrAudioFrameDmaQueue);
dma->buffer = dmaDevAddr;
// osPiStartDma(&gCurrAudioFrameDmaIoMesgBufs[gCurrAudioFrameDmaCount++], OS_MESG_PRI_NORMAL, OS_READ, dmaDevAddr,
// dma->buffer, transfer, &gCurrAudioFrameDmaQueue);
*dmaIndexRef = dmaIndex;
return (devAddr - dmaDevAddr) + dma->buffer;
}
@ -329,6 +330,7 @@ s32 func_800BB304(struct AudioBankSample* sample) {
sample->loaded = 0x81;
sample->sampleAddr = mem; // sound->unk4
}
return 0;
}
s32 func_800BB388(s32 bankId, s32 instId, s32 arg2) {
@ -414,7 +416,7 @@ void func_800BB584(s32 bankId) {
u8* var_a1;
if (gAlTbl->seqArray[bankId].len == 0) {
var_a1 = gAlTbl->seqArray[(s32) gAlTbl->seqArray[bankId].offset].offset;
var_a1 = gAlTbl->seqArray[(uintptr_t) gAlTbl->seqArray[bankId].offset].offset;
} else {
var_a1 = gAlTbl->seqArray[bankId].offset;
}

View File

@ -11,6 +11,8 @@
#include "audio/external.h"
#include "port/Engine.h"
#include <stdio.h>
/**
* Given that (almost) all of these are format strings, it is highly likely
* that they are meant to be used in some sort of printf variant. But I don't
@ -733,14 +735,15 @@ void seq_channel_layer_process_script(struct SequenceChannelLayer* layer) {
if (seqChannel) {}
}
u8 get_instrument(struct SequenceChannel *seqChannel, u8 instId, struct Instrument **instOut, struct AdsrSettings *adsr) {
struct CtlEntry *bank = GameEngine_LoadBank(seqChannel->bankId);
if(instId >= bank->numInstruments) {
u8 get_instrument(struct SequenceChannel* seqChannel, u8 instId, struct Instrument** instOut,
struct AdsrSettings* adsr) {
struct CtlEntry* bank = GameEngine_LoadBank(seqChannel->bankId);
if (instId >= bank->numInstruments) {
*instOut = NULL;
return 0;
}
struct Instrument* inst = bank->instruments[instId];
if(inst == NULL) {
if (inst == NULL) {
*instOut = NULL;
return 0;
}
@ -911,9 +914,9 @@ void sequence_channel_process_script(struct SequenceChannel* seqChannel) {
case 0xEB: {
cmd = m64_read_u8(state);
struct AudioSequenceData *sequence = GameEngine_LoadSequence(seqPlayer->seqId);
struct AudioSequenceData* sequence = GameEngine_LoadSequence(seqPlayer->seqId);
cmd = sequence->banks[cmd];
if(IS_BANK_LOAD_COMPLETE(cmd)) {
if (IS_BANK_LOAD_COMPLETE(cmd)) {
seqChannel->bankId = cmd;
}
}
@ -1009,9 +1012,9 @@ void sequence_channel_process_script(struct SequenceChannel* seqChannel) {
case 0xC6: {
cmd = m64_read_u8(state);
struct AudioSequenceData *sequence = GameEngine_LoadSequence(seqPlayer->seqId);
struct AudioSequenceData* sequence = GameEngine_LoadSequence(seqPlayer->seqId);
cmd = sequence->banks[cmd];
if(IS_BANK_LOAD_COMPLETE(cmd)) {
if (IS_BANK_LOAD_COMPLETE(cmd)) {
seqChannel->bankId = cmd;
}
break;
@ -1214,7 +1217,7 @@ void sequence_player_process_sequence(struct SequencePlayer* seqPlayer) {
if (seqPlayer->enabled == false) {
return;
}
GameEngine_LoadSequence(seqPlayer->seqId);
GameEngine_LoadBank(seqPlayer->defaultBank[0]);

View File

@ -470,11 +470,12 @@ Acmd* synthesis_process_note(s32 noteIndex, struct NoteSubEu* noteSubEu, struct
if (loopInfo_2 != 0) {
temp_t6 = ((synthesisState->samplePosInt - s3) + 16) / 16; // diff from sm64 sh
if (audioBookSample->loaded == 0x81) { // sm64 has audioBookSample->medium
var_a0_2 = (temp_t6 * 9) + sampleAddr;
var_a0_2 = &sampleAddr[temp_t6 * 9];
} else {
var_a0_2 = (temp_t6 * 9) + sampleAddr;
// var_a0_2 =
// dma_sample_data((uintptr_t) (temp_t6 * 9) + sampleAddr, ALIGN(((loopInfo_2 * 9) + 16), 4),
// dma_sample_data((uintptr_t) (temp_t6 * 9) + sampleAddr, ALIGN(((loopInfo_2 * 9) + 16),
// 4),
// flags, &synthesisState->sampleDmaIndex);
// unsure flags?
}
@ -576,7 +577,7 @@ Acmd* synthesis_process_note(s32 noteIndex, struct NoteSubEu* noteSubEu, struct
resampledTempLen + DMEM_ADDR_RESAMPLED);
break;
}
//break;
// break;
}
if (noteSubEu->finished != false) {
break;

View File

@ -25,7 +25,7 @@
f32 D_800DDB30[] = { 0.4f, 0.6f, 0.275f, 0.3f };
Camera cameras[5];
Camera cameras[8]; // This size should be 5 but there is an overflow somewhere in Bowser's Castle, so we allocate 8 cameras to avoid it.
Camera* camera1 = &cameras[0];
Camera* camera2 = &cameras[1];
Camera* camera3 = &cameras[2];
@ -852,7 +852,7 @@ void func_8001E45C(Camera* camera, Player* player, s8 arg2) {
UNUSED s16 pad6;
s16 temp;
if ((player->effects & 0x10) == 0x10) {
if ((player->effects & DRIFTING_EFFECT) == DRIFTING_EFFECT) {
var_a3 = 100;
if (player->unk_078 == 0) {
camera->unk_B0 = 0;
@ -974,7 +974,7 @@ void func_8001EA0C(Camera* camera, Player* player, s8 arg2) {
UNUSED s16 pad6;
s16 temp;
if ((player->effects & 0x10) == 0x10) {
if ((player->effects & DRIFTING_EFFECT) == DRIFTING_EFFECT) {
var_a3 = 100;
if (player->unk_078 == 0) {
camera->unk_B0 = 0;

View File

@ -1687,7 +1687,7 @@ void update_player(s32 playerId) {
if (!(player->unk_0CA & 2) && !(player->unk_0CA & 8)) {
gPlayerPathIndex = gPathIndexByPlayerId[playerId];
set_current_path(gPlayerPathIndex);
// if (GetCourse() == GetKalimariDesert()) {
// if (IsKalimariDesert()) {
CM_VehicleCollision(playerId, player);
// handle_trains_interactions(playerId, player);
if (playerId == 0) {
@ -1811,7 +1811,7 @@ void update_player(s32 playerId) {
return;
}
if ((D_801630E8[playerId] == 1) || (D_801630E8[playerId] == -1)) {
player->effects |= 0x10;
player->effects |= DRIFTING_EFFECT;
}
if (D_801630E8[playerId] != 0) {
sPlayerAngle[playerId] = -get_angle_between_two_vectors(&player->oldPos[0], player->pos);
@ -2079,7 +2079,7 @@ void func_8000B140(s32 playerId) {
Player* player;
player = &gPlayers[playerId];
if (!(player->effects & 0x10) && (D_801630E8[playerId] != 1) && (D_801630E8[playerId] != -1) &&
if (!(player->effects & DRIFTING_EFFECT) && (D_801630E8[playerId] != 1) && (D_801630E8[playerId] != -1) &&
!(gTrackPositionFactor[playerId] < -1.0f) && !(gTrackPositionFactor[playerId] > 1.0f) &&
(player->characterId != 5) && (player->characterId != 7) && (player->characterId != 4) &&
!(player->effects & STAR_EFFECT)) {
@ -3728,6 +3728,8 @@ void load_track_path(s32 pathIndex) {
if (!bInvalidPath) {
var_v0 = func_80011014(pathDest, path, sp24, pathIndex);
gPathCountByPathIndex[pathIndex] = (u16) var_v0;
} else {
printf("PathTable is invalid. It has %d path points\n It may also be missing the end tag.\n", i);
}
}
}
@ -4339,7 +4341,7 @@ void func_80011EC0(s32 arg0, Player* player, s32 arg2, UNUSED u16 arg3) {
if ((arg2 >= -9) && (D_80162FF8[arg0] == 0)) {
if ((gTrackPositionFactor[arg0] > -0.8) && (gTrackPositionFactor[arg0] < 0.5)) {
kart_hop(player);
player->effects |= 0x10;
player->effects |= DRIFTING_EFFECT;
D_801630E8[arg0] = 1;
break;
}
@ -4351,7 +4353,7 @@ void func_80011EC0(s32 arg0, Player* player, s32 arg2, UNUSED u16 arg3) {
if ((arg2 < 0xA) && (D_80162FF8[arg0] == 0)) {
if ((gTrackPositionFactor[arg0] > -0.5) && (gTrackPositionFactor[arg0] < 0.8)) {
kart_hop(player);
player->effects |= 0x10;
player->effects |= DRIFTING_EFFECT;
D_801630E8[arg0] = -1;
break;
}
@ -7087,15 +7089,15 @@ void cpu_use_item_strategy(s32 playerId) {
switch (temp_s0->branch) {
case CPU_STRATEGY_WAIT_NEXT_ITEM:
temp_s0->actorIndex = -1;
if (CVarGetInteger("gHarderCPU", 0) == 1) {
if (((gNumPathPointsTraversed[playerId] + (playerId * 0x14) + 0x64) % 0x8 == 0) &&
(temp_s0->timer >= 0x200)) {
// Harder CPU Items
if (((gNumPathPointsTraversed[playerId] + (playerId * 0x14) + 0x64) % 0x8 == 0) &&
(temp_s0->timer >= 0x200) && (CVarGetInteger("gHarderCPU", 0) == true)) {
cpu_decisions_branch_item(playerId, &temp_s0->branch,
gen_random_item_human((s16) gLapCountByPlayerId[playerId],
hard_cpu_gen_random_item((s16) gLapCountByPlayerId[playerId],
gGPCurrentRaceRankByPlayerId[playerId]));
}
}
if ((((playerId * 0x14) + 0x64) < gNumPathPointsTraversed[playerId]) && (temp_s0->timer >= 0x259) &&
// Stock CPU Items
} else if ((((playerId * 0x14) + 0x64) < gNumPathPointsTraversed[playerId]) && (temp_s0->timer >= 0x259) &&
(temp_s0->numItemUse < 3) && (gLapCountByPlayerId[playerId] < 3)) {
cpu_decisions_branch_item(playerId, &temp_s0->branch,
cpu_gen_random_item((s16) gLapCountByPlayerId[playerId],

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,10 @@
#ifndef CODE_80057C60_H
#define CODE_80057C60_H
#ifdef __cplusplus
extern "C" {
#endif
#include <common_structs.h>
#include "objects.h"
#include "camera.h"
@ -116,16 +120,16 @@ void func_8005D18C(void);
void func_8005D1F4(s32);
void func_8005D290(void);
void func_8005D6C0(Player*);
void func_8005D794(Player*, UnkPlayerStruct258*, f32, f32, f32, s8, s8);
s32 func_8005D7D8(UnkPlayerStruct258*, s8, f32);
s32 func_8005D800(UnkPlayerStruct258*, s32, s16);
s32 func_8005D82C(UnkPlayerStruct258*, s32, s16);
void func_8005D898(Player*, s16, s32, s8, s8);
void func_8005DA30(Player*, s16, s32, s8, s8);
void reset_player_particle_pool(Player*);
void set_particle_position_and_rotation(Player*, UnkPlayerStruct258*, f32, f32, f32, s8, s8);
s32 init_particle_player(UnkPlayerStruct258*, s8, f32);
s32 set_particle_colour(UnkPlayerStruct258*, s32, s16);
s32 set_particle_colour_randomly_varried(UnkPlayerStruct258*, s32, s16);
void set_drift_particles(Player*, s16, s32, s8, s8);
void check_drift_particles_setup_valid(Player*, s16, s32, s8, s8);
void func_8005DAD0(void);
void func_8005DAD8(UnkPlayerStruct258*, s16, s16, s16);
void func_8005DAF4(Player*, s16, s32, s8, s8);
void setup_tyre_particles(Player*, s16, s32, s8, s8);
void func_8005EA94(Player*, s16, s32, s8, s8);
void func_8005ED48(Player*, s16, s32, s8, s8);
@ -162,7 +166,7 @@ void func_80062B18(f32*, f32*, f32*, f32, f32, f32, u16, u16);
void func_80062C74(Player*, s16, s32, s32);
void func_80062F98(Player*, s16, s8, s8);
void func_800630C0(Player*, s16, s8, s8);
void set_oob_splash_particle_position(Player*, s16, s8, s8);
void func_800631A8(Player*, s16, s8, s8);
void func_80063268(Player*, s16, s8, s8);
void func_80063408(Player*, s16, s8, s8);
@ -192,41 +196,41 @@ void func_800651F4(Player*, s8, s8, s8);
void func_800652D4(Vec3f, Vec3s, f32);
void func_8006538C(Player*, s8, s16, s8);
void func_800658A0(Player*, s8, s16, s8);
void func_80065AB0(Player*, s8, s16, s8);
void func_80065F0C(Player*, s8, s16, s8);
void render_player_drift_particles(Player*, s8, s16, s8);
void render_player_ground_particles(Player*, s8, s16, s8);
void func_800664E0(Player*, s8, s16, s8);
void func_80066998(Player*, s8, s16, s8);
void func_80066BAC(Player*, s8, s16, s8);
void func_80067280(Player*, s8, s16, s8);
void func_80067604(Player*, s8, s16, s8);
void func_80067964(Player*, s8, f32, s8, s8);
void func_80067D3C(Player*, s8, u8*, s8, f32, s32);
void render_player_boost_spark_particles(Player*, s8, s16, s8);
void render_player_onomatopoeia_whrrrr(Player*, s8, f32, s8, s8);
void render_player_speech_bubble(Player*, s8, u8*, s8, f32, s32);
void func_8006801C(Player*, s8, u8*, s8, f32, s32);
void func_80068310(Player*, s8, f32, s8, s8);
void render_music_note(Player*, s8, u8*, s8, f32, s32);
void render_player_onomatopoeia_crash(Player*, s8, f32, s8, s8);
void func_80068724(Player*, s8, f32, s8, s8);
void func_80068AA4(Player*, s8, f32, s8, s8);
void func_80068DA0(Player*, s8, f32, s8, s8);
void render_player_onomatopoeia_boing(Player*, s8, f32, s8, s8);
void render_player_onomatopoeia_pomp(Player*, s8, f32, s8, s8);
void func_800691B8(Player*, s8, s16, s8);
void func_80069444(Player*, s8, s16, s8);
void func_800696CC(Player*, s8, s16, s8, f32);
void render_wall_bonk_star_particles(Player*, s8, s16, s8, f32);
void func_80069938(Player*, s8, s16, s8);
void func_80069BA8(Player*, s8, s16, s8);
void func_80069DB8(Player*, s8, s16, s8);
void func_8006A01C(Player*, s8, s16, s8);
void func_8006A280(Player*, s8, s16, s8);
void func_8006A50C(Player*, f32, f32, s8, s8, s16);
void init_balloon(Player*, f32, f32, s8, s8, s16);
void func_8006A7C0(Player*, f32, f32, s8, s8);
void render_battle_balloon(Player*, s8, s16, s8);
void func_8006B7E4(Player*, s8);
void func_8006B87C(Player*, s8);
void func_8006B8B4(Player*, s8);
void func_8006B974(s32, s8, s8);
void init_all_player_balloons(Player*, s8);
void clear_all_player_balloons(Player*, s8);
void pop_player_balloon(Player*, s8);
void set_player_balloon_to_gone(s32, s8, s8);
void func_8006B9CC(Player*, s8);
void func_8006BA94(Player*, s8, s8);
void render_balloon(Vec3f, f32, s16, s16);
@ -594,30 +598,20 @@ extern u8* D_8018D464;
extern u8* D_8018D468;
extern u8* D_8018D46C;
extern u8* D_8018D470;
extern u8* D_8018D474;
extern u8* D_8018D478;
extern u8* D_8018D480;
extern u8* D_8018D484;
extern u8* D_8018D488;
extern u8* D_8018D48C;
extern u8* D_8018D490;
extern u8* D_8018D494;
extern u8* D_8018D498;
extern u8* D_8018D49C;
extern u8* D_8018D4A0;
extern u8* D_8018D4A4;
extern u8* D_8018D4A8;
extern u8* D_8018D4AC;
extern u8* D_8018D4B0;
extern u8* D_8018D4B4;
extern u8* D_8018D4B8;
extern u8* D_8018D4BC;
extern u8* D_8018D4C0;
extern u8* D_8018D4C4;
extern u8* D_8018D4C8;
extern Vec3f D_8018D4D0[];
extern Vec3f D_8018D530[];
extern Vec3f D_8018D590[];
extern u8* gTextureLoadedLightningBolt0;
extern u8* gTextureLoadedLightningBolt1;
extern Vec3f gPlayerBalloonPosX[];
extern Vec3f gPlayerBalloonPosY[];
extern Vec3f gPlayerBalloonPosZ[];
extern u16 gPlayerBalloonStatus[8][3];
extern Vec3s D_8018D620[];
extern Vec3f D_8018D650[];
@ -633,8 +627,12 @@ extern Vec3s D_8018D830[];
extern Vec3s D_8018D860[];
extern Vec3s D_8018D890[];
extern s16 gPlayerBalloonCount[]; // D_8018D8C0
extern Vec3s D_8018D8D0[];
extern Vec3s gPlayerBalloonDepartingTimer[];
/** @endcond */
#ifdef __cplusplus
}
#endif
#endif

View File

@ -182,31 +182,21 @@ u8* D_8018D464;
u8* D_8018D468;
u8* D_8018D46C;
u8* D_8018D470;
u8* D_8018D474;
u8* D_8018D478;
UNUSED u8* D_8018D47C;
u8* D_8018D480;
u8* D_8018D484;
u8* D_8018D488;
u8* D_8018D48C;
u8* D_8018D490;
u8* D_8018D494;
u8* D_8018D498;
u8* D_8018D49C;
u8* D_8018D4A0;
u8* D_8018D4A4;
u8* D_8018D4A8;
u8* D_8018D4AC;
u8* D_8018D4B0;
u8* D_8018D4B4;
u8* D_8018D4B8;
u8* D_8018D4BC;
u8* D_8018D4C0;
u8* D_8018D4C4;
u8* D_8018D4C8;
Vec3f D_8018D4D0[8];
Vec3f D_8018D530[8];
Vec3f D_8018D590[8];
u8* gTextureLoadedLightningBolt0;
u8* gTextureLoadedLightningBolt1;
Vec3f gPlayerBalloonPosX[8];
Vec3f gPlayerBalloonPosY[8];
Vec3f gPlayerBalloonPosZ[8];
u16 gPlayerBalloonStatus[8][3];
Vec3s D_8018D620[8];
Vec3f D_8018D650[8];
@ -221,4 +211,4 @@ Vec3s D_8018D830[8];
Vec3s D_8018D860[8];
Vec3s D_8018D890[8];
s16 gPlayerBalloonCount[8];
Vec3s D_8018D8D0[8];
Vec3s gPlayerBalloonDepartingTimer[8];

View File

@ -166,7 +166,8 @@ void get_minimap_properties() {
D_8018D240 = (uintptr_t) CM_GetProps()->Minimap.Texture;
// This is incredibly dumb. MinimapDimensions ought to be something more like
// `u16 MinimapDimensions[][2]` but that doesn't match for some insane reason
gMinimapWidth = CM_GetProps()->Minimap.Width; // MinimapDimensions[courseId * 2];
gMinimapWidth = CM_GetProps()->Minimap.Width; // MinimapDimensions[courseId * 2];
gMinimapHeight = CM_GetProps()->Minimap.Height; // MinimapDimensions[courseId * 2 + 1];
}

View File

@ -3,157 +3,159 @@
#include <assets/other_textures.h>
#include "some_data.h"
Vtx D_800E49C0[] = {
// Values below are altered so that the whole kart texture may be rendered as one texture instead of two half.
Vtx gPlayerOneVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
};
Vtx D_800E4AC0[] = {
Vtx gPlayerTwoVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
};
Vtx D_800E4BC0[] = {
Vtx gPlayerThreeVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
};
Vtx D_800E4CC0[] = {
Vtx gPlayerFourVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
};
Vtx D_800E4DC0[] = {
Vtx gPlayerFiveVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
};
Vtx D_800E4EC0[] = {
Vtx gPlayerSixVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0x60 } } },
};
Vtx D_800E4FD0[] = {
Vtx gPlayerSevenVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
};
Vtx D_800E50D0[] = {
Vtx gPlayerEightVtx[] = {
{ { { 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { 9, 0, -6 }, 0, { 0, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 0, -6 }, 0, { 4032, 3776 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
{ { { -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF } } },
};
Vtx D_800E51D0[] = {
@ -192,13 +194,11 @@ Vtx gBalloonVertexPlane2[] = {
// };
u8* gCourseOutlineTextures[] = {
gTextureCourseOutlineMarioRaceway, gTextureCourseOutlineChocoMountain, gTextureCourseOutlineBowsersCastle,
gTextureCourseOutlineBansheeBoardwalk, gTextureCourseOutlineYoshiValley, gTextureCourseOutlineFrappeSnowland,
gTextureCourseOutlineKoopaTroopaBeach, gTextureCourseOutlineRoyalRaceway, gTextureCourseOutlineLuigiRaceway,
gTextureCourseOutlineMooMooFarm, gTextureCourseOutlineToadsTurnpike, gTextureCourseOutlineKalimariDesert,
gTextureCourseOutlineSherbetLand, gTextureCourseOutlineRainbowRoad, gTextureCourseOutlineWarioStadium,
gTextureCourseOutlineBlockFort, gTextureCourseOutlineSkyscraper, gTextureCourseOutlineDoubleDeck,
gTextureCourseOutlineDksJungleParkway, gTextureCourseOutlineBigDonut,
minimap_mario_raceway, minimap_choco_mountain, minimap_bowsers_castle, minimap_banshee_boardwalk,
minimap_yoshi_valley, minimap_frappe_snowland, minimap_koopa_troopa_beach, minimap_royal_raceway,
minimap_luigi_raceway, minimap_moo_moo_farm, minimap_toads_turnpike, minimap_kalimari_desert,
minimap_sherbet_land, minimap_rainbow_road, minimap_wario_stadium, minimap_block_fort,
minimap_skyscraper, minimap_double_deck, minimap_dks_jungle_parkway, minimap_big_donut,
};
s16 D_800E5520[] = {
@ -522,7 +522,8 @@ SplineData D_800E5D78 = {
// Note the use of the plain SplineData type here. Since these are pointers, we don't care
// about their internal array size
SplineData* D_800E5D9C[] = { &D_800E5988, &D_800E5A44, &D_800E5B08, &D_800E5BD4, &D_800E5C90, &boo6, &boo7, &boo8, &boo9, &boo10 };
SplineData* D_800E5D9C[] = { &D_800E5988, &D_800E5A44, &D_800E5B08, &D_800E5BD4, &D_800E5C90,
&boo6, &boo7, &boo8, &boo9, &boo10 };
// Unused
SplineData* D_800E5DB0 = &D_800E5988;

View File

@ -11,14 +11,14 @@
extern "C" {
#endif
extern Vtx D_800E49C0[];
extern Vtx D_800E4AC0[];
extern Vtx D_800E4BC0[];
extern Vtx D_800E4CC0[];
extern Vtx D_800E4DC0[];
extern Vtx D_800E4EC0[];
extern Vtx D_800E4FD0[];
extern Vtx D_800E50D0[];
extern Vtx gPlayerOneVtx[];
extern Vtx gPlayerTwoVtx[];
extern Vtx gPlayerThreeVtx[];
extern Vtx gPlayerFourVtx[];
extern Vtx gPlayerFiveVtx[];
extern Vtx gPlayerSixVtx[];
extern Vtx gPlayerSevenVtx[];
extern Vtx gPlayerEightVtx[];
extern Vtx D_800E51D0[];
extern Vtx D_800E5210[];
extern Vtx gBalloonVertexPlane1[];

File diff suppressed because it is too large Load Diff

View File

@ -21,9 +21,9 @@
s32 D_8018D900[8];
s16 D_8018D920[8];
s32 D_8018D930[8];
s32 D_8018D950[8];
s32 D_8018D970[8];
s32 gPlayerStarEffectStartTime[8];
s32 gPlayerBooEffectStartTime[8];
s32 gPlayerOtherScreensAlpha[8];
s32 D_8018D990[8];
UNUSED void func_unnamed(void) {
@ -231,7 +231,7 @@ void func_8008C62C(Player* player, s8 arg1) {
player->unk_0A8 = 0x2000;
func_8008C6D0(player, arg1);
if (gModeSelection == BATTLE) {
func_8006B8B4(player, arg1);
pop_player_balloon(player, arg1);
}
}
}
@ -342,7 +342,7 @@ void func_8008C9EC(Player* player, s8 arg1) {
player->unk_0B2--;
if (player->unk_0B2 <= 0) {
if (gModeSelection == BATTLE) {
func_8006B8B4(player, arg1);
pop_player_balloon(player, arg1);
}
func_8008C8C4(player, arg1);
}
@ -356,7 +356,7 @@ void func_8008C9EC(Player* player, s8 arg1) {
if (player->unk_0B2 <= 0) {
func_8008C8C4(player, arg1);
if (gModeSelection == BATTLE) {
func_8006B8B4(player, arg1);
pop_player_balloon(player, arg1);
}
}
}
@ -836,7 +836,7 @@ void apply_hit_rotating_sound_effect(Player* player, s8 arg1) {
player->unk_08C *= 0.6;
player->unk_0B0 = 0;
player->size = 1.0f;
D_8018D930[arg1] = gCourseTimer;
gPlayerStarEffectStartTime[arg1] = gCourseTimer;
player->unk_0AE = player->rotation[1];
player->unk_0B2 = 2;
player->unk_0C0 = 0;
@ -857,7 +857,7 @@ void apply_hit_rotating_sound_effect(Player* player, s8 arg1) {
play_cpu_sound_effect(arg1, player);
}
if (gModeSelection == BATTLE) {
func_8006B8B4(player, arg1);
pop_player_balloon(player, arg1);
}
}
@ -963,7 +963,7 @@ void func_8008E4A4(Player* player, s8 arg1) {
player->currentSpeed += 100.0f;
}
if (gModeSelection == BATTLE) {
func_8006B8B4(player, arg1);
pop_player_balloon(player, arg1);
}
} else {
player->unk_0A8 += 0x80;
@ -980,7 +980,7 @@ void func_8008E4A4(Player* player, s8 arg1) {
player->unk_042 = 0;
if (gModeSelection == BATTLE) {
func_8006B8B4(player, arg1);
pop_player_balloon(player, arg1);
}
if ((gIsPlayerTripleAButtonCombo[arg1] == true) && ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN)) {
player->currentSpeed += 100.0f;
@ -1074,7 +1074,7 @@ void apply_hit_by_item_effect(Player* player, s8 arg1) {
}
if (gModeSelection == BATTLE) {
func_8006B8B4(player, arg1);
pop_player_balloon(player, arg1);
}
} else {
player->unk_0A8 = (s16) (player->unk_0A8 + 0x90);
@ -1094,7 +1094,7 @@ void apply_hit_by_item_effect(Player* player, s8 arg1) {
}
if (gModeSelection == BATTLE) {
func_8006B8B4(player, arg1);
pop_player_balloon(player, arg1);
}
}
}
@ -1347,7 +1347,7 @@ void func_8008F494(Player* player, s8 arg1) {
void func_8008F5A4(Player* player, s8 arg1) {
if ((player->unk_044 & 0x8000) != 0) {
func_8006B8B4(player, arg1);
pop_player_balloon(player, arg1);
player->unk_044 &= ~0x8000;
}
@ -1369,7 +1369,7 @@ void func_8008F5A4(Player* player, s8 arg1) {
}
void apply_star_effect(Player* player, s8 arg1) {
if (((s32) gCourseTimer - D_8018D930[arg1]) >= 9) {
if (((s32) gCourseTimer - gPlayerStarEffectStartTime[arg1]) >= 9) {
D_8018D900[arg1] = 1;
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) &&
@ -1384,7 +1384,7 @@ void apply_star_effect(Player* player, s8 arg1) {
}
}
if (((s32) gCourseTimer - D_8018D930[arg1]) >= 0xA) {
if (((s32) gCourseTimer - gPlayerStarEffectStartTime[arg1]) >= 0xA) {
player->effects &= ~STAR_EFFECT;
}
}
@ -1395,7 +1395,7 @@ void apply_star_sound_effect(Player* player, s8 arg1) {
player->effects |= STAR_EFFECT;
player->soundEffects &= ~STAR_SOUND_EFFECT;
D_8018D930[arg1] = gCourseTimer;
gPlayerStarEffectStartTime[arg1] = gCourseTimer;
D_8018D900[arg1] = 1;
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) &&
@ -1421,86 +1421,88 @@ void func_8008F86C(Player* player, s8 arg1) {
func_800CAACC(arg1);
}
void apply_boo_effect(Player* arg0, s8 arg1) {
s32 tmp;
tmp = ((s32) gCourseTimer) - D_8018D950[arg1];
if (tmp < 7) {
arg0->unk_0C6 -= 2;
void apply_boo_effect(Player* player, s8 playerIndex) {
s32 time_elapsed;
time_elapsed = ((s32) gCourseTimer) - gPlayerBooEffectStartTime[playerIndex];
if (time_elapsed < BOO_EFFECT_DURATION) {
player->alpha -= ALPHA_CHANGE_SMALL;
if (arg0->unk_0C6 < 0x61) {
arg0->unk_0C6 = 0x60;
if (player->alpha <= ALPHA_BOO_EFFECT) {
player->alpha = ALPHA_BOO_EFFECT;
}
D_8018D970[arg1] -= 2;
if (D_8018D970[arg1] <= 0) {
D_8018D970[arg1] = 0;
// Player becomes invisible to other players
gPlayerOtherScreensAlpha[playerIndex] -= ALPHA_CHANGE_SMALL;
if (gPlayerOtherScreensAlpha[playerIndex] <= 0) {
gPlayerOtherScreensAlpha[playerIndex] = 0;
}
} else {
arg0->unk_0C6 += 4;
if (arg0->unk_0C6 >= 0xF0) {
arg0->unk_0C6 = 0xFF;
D_8018D970[arg1] = 0xFF;
arg0->effects &= ~0x80000000;
if ((arg0->type & 0x4000) != 0) {
func_800CB064(arg1);
// Player returns to normal visibility
player->alpha += ALPHA_CHANGE_MEDIUM;
if (player->alpha > ALPHA_MAX - (ALPHA_CHANGE_LARGE * 2)) {
player->alpha = ALPHA_MAX;
gPlayerOtherScreensAlpha[playerIndex] = ALPHA_MAX;
player->effects &= ~0x80000000;
if ((player->type & 0x4000) != 0) {
func_800CB064(playerIndex);
}
}
D_8018D970[arg1] += 8;
if (D_8018D970[arg1] >= 0xF0) {
D_8018D970[arg1] = 0xFF;
arg0->unk_0C6 = 0xFF;
arg0->effects &= ~0x80000000;
if ((arg0->type & 0x4000) != 0) {
func_800CB064(arg1);
gPlayerOtherScreensAlpha[playerIndex] += 8;
if (gPlayerOtherScreensAlpha[playerIndex] >= 0xF0) {
gPlayerOtherScreensAlpha[playerIndex] = ALPHA_MAX;
player->alpha = ALPHA_MAX;
player->effects &= ~0x80000000;
if ((player->type & 0x4000) != 0) {
func_800CB064(playerIndex);
}
}
}
}
void apply_boo_sound_effect(Player* player, s8 arg1) {
void apply_boo_sound_effect(Player* player, s8 playerIndex) {
s16 temp_v1;
if ((player->type & PLAYER_HUMAN) != 0) {
player->unk_044 |= 0x200;
for (temp_v1 = 0; temp_v1 < 10; ++temp_v1) {
player->unk_258[temp_v1].unk_01C = 0;
player->unk_258[temp_v1].unk_01E = 0;
player->unk_258[temp_v1].unk_012 = 0;
player->particlePool0[temp_v1].isAlive = 0;
player->particlePool0[temp_v1].unk_01E = 0;
player->particlePool0[temp_v1].type = 0;
}
}
clean_effect(player, arg1);
clean_effect(player, playerIndex);
player->effects |= BOO_EFFECT;
player->soundEffects &= ~BOO_SOUND_EFFECT;
D_8018D950[arg1] = gCourseTimer;
D_8018D970[arg1] = 0xFF;
gPlayerBooEffectStartTime[playerIndex] = gCourseTimer;
gPlayerOtherScreensAlpha[playerIndex] = ALPHA_MAX;
if ((player->type & PLAYER_HUMAN) != 0) {
func_800CAFC0(arg1);
func_800CAFC0(playerIndex);
}
}
void func_8008FB30(Player* arg0, s8 arg1) {
arg0->unk_0C6 += 8;
if (arg0->unk_0C6 >= 0xF0) {
arg0->unk_0C6 = 0xFF;
D_8018D970[arg1] = 0xFF;
void func_8008FB30(Player* player, s8 playerIndex) {
player->alpha += ALPHA_CHANGE_LARGE;
if (player->alpha > ALPHA_MAX - (ALPHA_CHANGE_LARGE * 2)) {
player->alpha = ALPHA_MAX;
gPlayerOtherScreensAlpha[playerIndex] = ALPHA_MAX;
arg0->effects &= ~0x80000000;
if ((arg0->type & 0x4000) != 0) {
func_800CB064(arg1);
player->effects &= ~0x80000000;
if ((player->type & 0x4000) != 0) {
func_800CB064(playerIndex);
}
}
D_8018D970[arg1] += 0x10;
if (D_8018D970[arg1] >= 0xE0) {
D_8018D970[arg1] = 0xFF;
arg0->unk_0C6 = 0xFF;
arg0->effects &= ~0x80000000;
if ((arg0->type & 0x4000) != 0) {
func_800CB064(arg1);
gPlayerOtherScreensAlpha[playerIndex] += 0x10;
if (gPlayerOtherScreensAlpha[playerIndex] >= 0xE0) {
gPlayerOtherScreensAlpha[playerIndex] = ALPHA_MAX;
player->alpha = ALPHA_MAX;
player->effects &= ~0x80000000;
if ((player->type & 0x4000) != 0) {
func_800CB064(playerIndex);
}
}
}
@ -1515,25 +1517,25 @@ void func_8008FC1C(Player* player) {
}
}
void func_8008FC64(Player* player, s8 arg1) {
player->unk_0C6 -= 4;
if (player->unk_0C6 < 5) {
player->unk_0C6 = 0;
void func_8008FC64(Player* player, s8 playerIndex) {
player->alpha -= ALPHA_CHANGE_MEDIUM;
if (player->alpha <= ALPHA_CHANGE_MEDIUM) {
player->alpha = ALPHA_MIN;
player->soundEffects &= 0xFBFFFFFF;
player->soundEffects |= 0x08000000;
player->type |= PLAYER_UNKNOWN_0x40;
func_8008FDA8(player, arg1);
func_800569F4(arg1);
func_8008FDA8(player, playerIndex);
func_800569F4(playerIndex);
}
}
void func_8008FCDC(Player* player, s8 arg1) {
player->unk_0C6 += 2;
if (player->unk_0C6 >= 0xF0) {
player->unk_0C6 = 0xFF;
player->alpha += ALPHA_CHANGE_SMALL;
if (player->alpha > ALPHA_MAX - (ALPHA_CHANGE_LARGE * 2)) {
player->alpha = ALPHA_MAX;
player->soundEffects &= ~0x08000000;
}
func_80056A40(arg1, (u32) player->unk_0C6);
func_80056A40(arg1, (u32) player->alpha);
}
void func_8008FD4C(Player* player, UNUSED s8 arg1) {
@ -1543,9 +1545,9 @@ void func_8008FD4C(Player* player, UNUSED s8 arg1) {
player->unk_044 |= 0x200;
for (temp_v0 = 0; temp_v0 < 10; ++temp_v0) {
player->unk_258[temp_v0].unk_01C = 0;
player->unk_258[temp_v0].unk_01E = 0;
player->unk_258[temp_v0].unk_012 = 0;
player->particlePool0[temp_v0].isAlive = 0;
player->particlePool0[temp_v0].unk_01E = 0;
player->particlePool0[temp_v0].type = 0;
}
}
@ -1553,9 +1555,9 @@ void func_8008FDA8(Player* player, UNUSED s8 arg1) {
s16 temp_v0;
player->unk_044 |= 0x200;
for (temp_v0 = 0; temp_v0 < 10; ++temp_v0) {
player->unk_258[temp_v0].unk_01C = 0;
player->unk_258[temp_v0].unk_01E = 0;
player->unk_258[temp_v0].unk_012 = 0;
player->particlePool0[temp_v0].isAlive = 0;
player->particlePool0[temp_v0].unk_01E = 0;
player->particlePool0[temp_v0].type = 0;
}
}
@ -1842,7 +1844,7 @@ void func_80090970(Player* player, s8 playerId, s8 arg2) {
if ((D_801652A0[playerId] + 40.0f) <= player->pos[1]) {
player->unk_222 = 1;
player->unk_0CA |= 4;
player->unk_0C6 = 0x00FF;
player->alpha = ALPHA_MAX;
}
}
} else if ((player->unk_0CA & 2) == 2) {
@ -1851,7 +1853,7 @@ void func_80090970(Player* player, s8 playerId, s8 arg2) {
if ((player->unk_074 + 40.0f) <= player->pos[1]) {
player->unk_222 = 1;
player->unk_0CA |= 4;
player->unk_0C6 = 0x00FF;
player->alpha = ALPHA_MAX;
}
}
if ((player->effects & BOO_EFFECT) == BOO_EFFECT) {
@ -1864,17 +1866,17 @@ void func_80090970(Player* player, s8 playerId, s8 arg2) {
}
if ((player->unk_0CA & 1) == 1) {
move_f32_towards(&player->pos[1], D_801652A0[playerId] + 40.0f, 0.02f);
player->unk_0C6 -= 8;
if (player->unk_0C6 < 9) {
player->unk_0C6 = 0;
player->alpha -= ALPHA_CHANGE_LARGE;
if (player->alpha <= ALPHA_CHANGE_LARGE) {
player->alpha = ALPHA_MIN;
player->unk_222 = 2;
player->unk_0CA &= ~0x0001;
}
} else {
move_f32_towards(&player->pos[1], player->oldPos[1] + 40.0f, 0.02f);
player->unk_0C6 -= 8;
if (player->unk_0C6 < 9) {
player->unk_0C6 = 0;
player->alpha -= ALPHA_CHANGE_LARGE;
if (player->alpha <= ALPHA_CHANGE_LARGE) {
player->alpha = ALPHA_MIN;
player->unk_222 = 2;
}
}
@ -1900,9 +1902,9 @@ void func_80090970(Player* player, s8 playerId, s8 arg2) {
player->pos[2] = sp44[2];
player->pos[2] = player->pos[2] + coss((playerId * 0x1C70) - player->rotation[1]) * -5.0f;
player->pos[0] = player->pos[0] + sins((playerId * 0x1C70) - player->rotation[1]) * -5.0f;
player->unk_0C6 += 8;
if (player->unk_0C6 >= 0xF0) {
player->unk_0C6 = 0x00FF;
player->alpha += ALPHA_CHANGE_LARGE;
if (player->alpha > ALPHA_MAX - (ALPHA_CHANGE_LARGE * 2)) {
player->alpha = ALPHA_MAX;
player->unk_222 = 4;
player->unk_0CA &= ~0x0004;
player->unk_0C8 = 0;
@ -1928,7 +1930,7 @@ void func_80090970(Player* player, s8 playerId, s8 arg2) {
func_800C9018(playerId, SOUND_ARG_LOAD(0x01, 0x00, 0xFA, 0x28));
}
if (gModeSelection == BATTLE) {
func_8006B8B4(player, playerId);
pop_player_balloon(player, playerId);
}
player->unk_0CA &= ~0x0002;
player->unk_0DE &= ~0x0004;
@ -2015,30 +2017,30 @@ void func_800911B4(Player* player, s8 arg1) {
player->unk_078 = 0;
D_8018D920[arg1] = 0;
player->unk_258[31].unk_012 = 0;
player->unk_258[31].unk_01E = 0;
player->unk_258[31].unk_01C = 0;
player->unk_258[30].unk_012 = 0;
player->unk_258[30].unk_01E = 0;
player->unk_258[30].unk_01C = 0;
player->particlePool3[1].type = 0;
player->particlePool3[1].unk_01E = 0;
player->particlePool3[1].isAlive = 0;
player->particlePool3[0].type = 0;
player->particlePool3[0].unk_01E = 0;
player->particlePool3[0].isAlive = 0;
// clang-format off
temp_v0 = 2; do {
// clang-format on
player->unk_258[31 + temp_v0].unk_01C = 0;
player->unk_258[31 + temp_v0].unk_01E = 0;
player->unk_258[31 + temp_v0].unk_012 = 0;
player->unk_258[32 + temp_v0].unk_01C = 0;
player->unk_258[32 + temp_v0].unk_01E = 0;
player->unk_258[32 + temp_v0].unk_012 = 0;
player->unk_258[33 + temp_v0].unk_01C = 0;
player->unk_258[33 + temp_v0].unk_01E = 0;
player->unk_258[33 + temp_v0].unk_012 = 0;
player->particlePool3[1 + temp_v0].isAlive = 0;
player->particlePool3[1 + temp_v0].unk_01E = 0;
player->particlePool3[1 + temp_v0].type = 0;
player->particlePool3[2 + temp_v0].isAlive = 0;
player->particlePool3[2 + temp_v0].unk_01E = 0;
player->particlePool3[2 + temp_v0].type = 0;
player->particlePool3[3 + temp_v0].isAlive = 0;
player->particlePool3[3 + temp_v0].unk_01E = 0;
player->particlePool3[3 + temp_v0].type = 0;
temp_v0 += 4;
player->unk_258[26 + temp_v0].unk_01C = 0;
player->unk_258[26 + temp_v0].unk_01E = 0;
player->unk_258[26 + temp_v0].unk_012 = 0;
player->particlePool2[6 + temp_v0].isAlive = 0;
player->particlePool2[6 + temp_v0].unk_01E = 0;
player->particlePool2[6 + temp_v0].type = 0;
} while (temp_v0 < 10);
}

View File

@ -125,9 +125,9 @@ void func_800CB064(u8);
extern s32 D_8018D900[];
extern s16 D_8018D920[];
extern s32 D_8018D930[];
extern s32 D_8018D950[];
extern s32 D_8018D970[];
extern s32 gPlayerStarEffectStartTime[];
extern s32 gPlayerBooEffectStartTime[];
extern s32 gPlayerOtherScreensAlpha[];
extern s32 D_8018D990[];
/* This is where I'd put my static data, if I had any */

View File

@ -28,7 +28,7 @@
f32 D_802856B0 = 98.0f;
f32 D_802856B4 = 12.0f;
f32 gOrderedSizeSlidingBorders = 52.0f;
f32 D_802856BC = 52.0f;
static const f32 D_802856BC = 52.0f;
f32 gSizeSlidingBorders = 0.0f;
s32 D_802856C4 = 0;

View File

@ -209,7 +209,6 @@ extern s32 D_80283FF4;
extern f32 D_802856B0;
extern f32 D_802856B4;
extern f32 gOrderedSizeSlidingBorders;
extern f32 D_802856BC;
extern f32 gSizeSlidingBorders;
extern s32 D_802856C4;
extern s32 D_802856C8[]; // padding?

View File

@ -24,6 +24,9 @@
#include <string.h>
#include "port/Game.h"
// For init podium ceremony
#include "ceremony_and_credits.h"
#define bcopy memcpy
u8 defaultCharacterIds[] = { 1, 2, 3, 4, 5, 6, 7, 0 };
@ -92,6 +95,8 @@ void func_802818BC(void) {
void setup_podium_ceremony(void) {
Camera* camera = &cameras[0];
clear_podium_actors();
gCurrentCourseId = COURSE_ROYAL_RACEWAY;
SelectPodiumCeremony();
D_800DC5B4 = (u16) 1;

View File

@ -132,6 +132,10 @@ CeremonyActor* new_actor(ActorInitParams* arg0) {
return actor;
}
void clear_podium_actors() {
memset(&sPodiumActorList, 0, sizeof(CeremonyActor));
}
u16 random_u16_credits(void) {
u16 temp1, temp2;

View File

@ -100,6 +100,7 @@ void func_80281530(void);
void func_80281538(void);
void func_80281540(void);
void podium_ceremony_loop(void);
void clear_podium_actors(void);
extern struct_D_802874D8 D_802874D8;
extern CeremonyActor* sPodiumActorList;

View File

@ -1,7 +1,7 @@
#include "Cup.h"
#include "courses/Course.h"
Cup::Cup(std::string id, const char* name, std::vector<Course*> courses) {
Cup::Cup(std::string id, const char* name, std::vector<std::shared_ptr<Course>> courses) {
Id = id;
Name = name;
Courses = courses;
@ -30,7 +30,7 @@ void Cup::SetCourse(size_t position) {
CursorPosition = position;
}
Course* Cup::GetCourse() {
std::shared_ptr<Course> Cup::GetCourse() {
return Courses[CursorPosition];
}

View File

@ -13,15 +13,15 @@ public:
const char* Name;
u8 *Thumbnail;
size_t CursorPosition = 0; // Course index in cup
std::vector<Course*> Courses;
std::vector<std::shared_ptr<Course>> Courses;
explicit Cup(std::string id, const char* name, std::vector<Course*> courses);
explicit Cup(std::string id, const char* name, std::vector<std::shared_ptr<Course>> courses);
virtual void ShuffleCourses();
virtual void Next();
virtual void Previous();
virtual void SetCourse(size_t position);
virtual Course* GetCourse();
virtual std::shared_ptr<Course> GetCourse();
virtual size_t GetSize();
};

View File

@ -18,7 +18,7 @@ void ModelLoader::Load() {
_hasRan = true;
// Set to track processed courses
std::unordered_set<Course*> processedCourses;
std::unordered_set<std::shared_ptr<Course>> processedCourses;
for (auto& list : _deferredList) {
// Check if the course has already been processed
@ -34,8 +34,8 @@ void ModelLoader::Load() {
}
}
void ModelLoader::Extract(Course* course) {
Course* saveCourse = gWorldInstance.CurrentCourse;
void ModelLoader::Extract(std::shared_ptr<Course> course) {
std::shared_ptr<Course> saveCourse = gWorldInstance.CurrentCourse;
gWorldInstance.CurrentCourse = course; // Quick hack so that `get_texture` will find the right textures.
size_t vtxSize = (ResourceGetSizeByName(course->vtx) / sizeof(CourseVtx)) * sizeof(Vtx);

View File

@ -37,7 +37,7 @@ class ModelLoader {
public:
struct LoadModelList {
Course* course;
std::shared_ptr<Course> course;
Gfx* gfxBuffer; // buffer for output gfx
size_t gfxBufferSize;
@ -55,7 +55,7 @@ private:
};
void Extract(Course* course);
void Extract(std::shared_ptr<Course> course);
void UpdateVtx(LoadModelList list);
std::vector<LoadModelList> _deferredList;

View File

@ -26,13 +26,12 @@ World::~World() {
CM_CleanWorld();
}
Course* CurrentCourse;
std::shared_ptr<Course> CurrentCourse;
Cup* CurrentCup;
Course* World::AddCourse(std::unique_ptr<Course> course) {
Course* ptr = course.get();
gWorldInstance.Courses.push_back(std::move(course));
return ptr;
std::shared_ptr<Course> World::AddCourse(std::shared_ptr<Course> course) {
gWorldInstance.Courses.push_back(course);
return course;
}
void World::AddCup(Cup* cup) {
@ -43,7 +42,8 @@ void World::SetCourseFromCup() {
CurrentCourse = CurrentCup->GetCourse();
}
TrainCrossing* World::AddCrossing(Vec3f position, u32 waypointMin, u32 waypointMax, f32 approachRadius, f32 exitRadius) {
TrainCrossing* World::AddCrossing(Vec3f position, u32 waypointMin, u32 waypointMax, f32 approachRadius,
f32 exitRadius) {
auto crossing = std::make_shared<TrainCrossing>(position, waypointMin, waypointMax, approachRadius, exitRadius);
Crossings.push_back(crossing);
return crossing.get();
@ -99,7 +99,7 @@ void World::SetCourse(const char* name) {
//! @todo Use content dictionary instead
for (size_t i = 0; i < Courses.size(); i++) {
if (strcmp(Courses[i]->Props.Name, name) == 0) {
CurrentCourse = Courses[i].get();
CurrentCourse = Courses[i];
break;
}
}
@ -112,7 +112,7 @@ void World::NextCourse() {
} else {
CourseIndex = 0;
}
gWorldInstance.CurrentCourse = Courses[CourseIndex].get();
gWorldInstance.CurrentCourse = Courses[CourseIndex];
}
void World::PreviousCourse() {
@ -121,7 +121,7 @@ void World::PreviousCourse() {
} else {
CourseIndex = Courses.size() - 1;
}
gWorldInstance.CurrentCourse = Courses[CourseIndex].get();
gWorldInstance.CurrentCourse = Courses[CourseIndex];
}
AActor* World::AddActor(AActor* actor) {
@ -161,7 +161,7 @@ AActor* World::ConvertActorToAActor(Actor* actor) {
// Move the ptr back so that it points at the vtable.
// Which is the initial item in the class, or in other words
// Point to the class.
return reinterpret_cast<AActor*>((char*)actor - sizeof(void*));
return reinterpret_cast<AActor*>((char*) actor - sizeof(void*));
}
/**
@ -170,7 +170,7 @@ AActor* World::ConvertActorToAActor(Actor* actor) {
Actor* World::ConvertAActorToActor(AActor* actor) {
// Move the ptr forward past the vtable.
// This allows C to access the class variables like a normal Actor* struct.
return reinterpret_cast<Actor*>((char*)actor + sizeof(void*));
return reinterpret_cast<Actor*>((char*) actor + sizeof(void*));
}
AActor* World::GetActor(size_t index) {
@ -237,7 +237,7 @@ void World::TickObjects() {
// This is a fallback to support those objects. Probably don't use this.
void World::TickObjects60fps() {
for (const auto& object : Objects) {
object->Tick60fps();
object->Tick60fps();
}
}
@ -248,19 +248,19 @@ ParticleEmitter* World::AddEmitter(ParticleEmitter* emitter) {
void World::DrawObjects(s32 cameraId) {
for (const auto& object : Objects) {
object->Draw(cameraId);
object->Draw(cameraId);
}
}
void World::TickParticles() {
for (const auto& emitter : Emitters) {
emitter->Tick();
emitter->Tick();
}
}
void World::DrawParticles(s32 cameraId) {
for (const auto& emitter : Emitters) {
emitter->Draw(cameraId);
emitter->Draw(cameraId);
}
}
@ -272,8 +272,8 @@ void World::Reset() {
}
Object* World::GetObjectByIndex(size_t index) {
//if (index < this->Objects.size()) {
// Assuming GameActor::a is accessible, use reinterpret_cast if needed
// if (index < this->Objects.size()) {
// Assuming GameActor::a is accessible, use reinterpret_cast if needed
// return reinterpret_cast<Object*>(&this->Objects[index]->o);
//}
return nullptr; // Or handle the error as needed

View File

@ -54,7 +54,7 @@ public:
explicit World();
~World();
Course* AddCourse(std::unique_ptr<Course> course);
std::shared_ptr<Course> AddCourse(std::shared_ptr<Course> course);
AActor* AddActor(AActor* actor);
struct Actor* AddBaseActor();
@ -100,7 +100,7 @@ public:
void SetCourseByType() {
for (const auto& course : Courses) {
if (dynamic_cast<T*>(course.get())) {
CurrentCourse = course.get();
CurrentCourse = course;
return;
}
}
@ -112,7 +112,7 @@ public:
Matrix Mtx;
Course* CurrentCourse;
std::shared_ptr<Course> CurrentCourse;
Cup* CurrentCup;
std::vector<Cup*> Cups;
@ -132,7 +132,7 @@ public:
std::vector<std::shared_ptr<TrainCrossing>> Crossings;
// Holds all available courses
std::vector<std::unique_ptr<Course>> Courses;
std::vector<std::shared_ptr<Course>> Courses;
size_t CourseIndex = 0; // For browsing courses.
private:

View File

@ -23,7 +23,7 @@ ACloud::ACloud(FVector pos) {
Rot[1] = 0;
Rot[2] = 0;
//Flags = -0x8000 | 0x4000;
// Flags = -0x8000 | 0x4000;
BoundingBoxSize = 2.0f;
}
@ -48,7 +48,7 @@ void ACloud::Tick() {
extern Gfx cloud_mesh[];
void ACloud::Draw(Camera *camera) {
void ACloud::Draw(Camera* camera) {
Mat4 mtx;
if (PickedUp) {
@ -58,14 +58,14 @@ void ACloud::Draw(Camera *camera) {
mtxf_pos_rotation_xyz(mtx, Pos, Rot);
if (render_set_position(mtx, 0) != 0) {
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPDisplayList(gDisplayListHead++, (Gfx*)cloud_mesh);
gSPDisplayList(gDisplayListHead++, (Gfx*) cloud_mesh);
}
}
void ACloud::Collision(Player* player, AActor* actor) {
if (!PickedUp) {
if (query_collision_player_vs_actor_item(player, gWorldInstance.ConvertAActorToActor(actor))) {
// Player has picked up the actor, activate the cloud effect
// Player has picked up the actor, activate the cloud effect
_player = player;
PickedUp = true;
@ -77,61 +77,65 @@ void ACloud::Collision(Player* player, AActor* actor) {
}
}
bool ACloud::IsMod() { return true; }
bool ACloud::IsMod() {
return true;
}
Vtx cloud_mesh_vtx_cull[8] = {
{{ {0, -4, -4}, 0, {0, 0}, {0, 0, 0, 0} }},
{{ {0, -4, 4}, 0, {0, 0}, {0, 0, 0, 0} }},
{{ {0, 4, 4}, 0, {0, 0}, {0, 0, 0, 0} }},
{{ {0, 4, -4}, 0, {0, 0}, {0, 0, 0, 0} }},
{{ {0, -4, -4}, 0, {0, 0}, {0, 0, 0, 0} }},
{{ {0, -4, 4}, 0, {0, 0}, {0, 0, 0, 0} }},
{{ {0, 4, 4}, 0, {0, 0}, {0, 0, 0, 0} }},
{{ {0, 4, -4}, 0, {0, 0}, {0, 0, 0, 0} }},
{ { { 0, -4, -4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { 0, -4, 4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
{ { { 0, 4, 4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { 0, 4, -4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
{ { { 0, -4, -4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { 0, -4, 4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
{ { { 0, 4, 4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { 0, 4, -4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
};
Vtx cloud_mesh_vtx_0[4] = {
{{ {0, 4, 4}, 0, {-524, -530}, {255, 255, 255, 166} }},
{{ {0, -4, 4}, 0, {-530, 1516}, {255, 255, 255, 201} }},
{{ {0, -4, -4}, 0, {1516, 1522}, {255, 255, 255, 188} }},
{{ {0, 4, -4}, 0, {1522, -524}, {255, 255, 255, 154} }},
{ { { 0, 4, 4 }, 0, { -524, -530 }, { 255, 255, 255, 166 } } },
{ { { 0, -4, 4 }, 0, { -530, 1516 }, { 255, 255, 255, 201 } } },
{ { { 0, -4, -4 }, 0, { 1516, 1522 }, { 255, 255, 255, 188 } } },
{ { { 0, 4, -4 }, 0, { 1522, -524 }, { 255, 255, 255, 154 } } },
};
Gfx cloud_mesh_tri_0[] = {
gsSPVertex(cloud_mesh_vtx_0 + 0, 4, 0),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSPEndDisplayList(),
gsSPVertex(cloud_mesh_vtx_0 + 0, 4, 0),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSPEndDisplayList(),
};
Gfx mat_cloud_cutout[] = {
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_FOG | G_SHADING_SMOOTH),
gsSPClearGeometryMode(G_CULL_FRONT | G_CULL_BACK | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_CLIPPING),
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, PRIMITIVE, PRIMITIVE, TEXEL1, 0, 0, 0, TEXEL0, COMBINED, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED),
gsSPSetOtherMode(G_SETOTHERMODE_H, 4, 20, G_AD_NOISE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE),
gsSPSetOtherMode(G_SETOTHERMODE_L, 0, 32, G_AC_NONE | G_ZS_PIXEL | G_RM_FOG_SHADE_A | G_RM_AA_ZB_TEX_EDGE2),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetPrimColor(0, 0, 255, 220, 203, 255),
gsDPSetTextureImage(G_IM_FMT_I, G_IM_SIZ_8b_LOAD_BLOCK, 1, gTexture69C4E4),
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 511, 512),
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 1, G_TX_WRAP | G_TX_NOMIRROR, 5, 1),
gsDPSetTileSize(0, 98, 100, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, gTexture66C8F4),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 128, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 128, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPEndDisplayList(),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_FOG | G_SHADING_SMOOTH),
gsSPClearGeometryMode(G_CULL_FRONT | G_CULL_BACK | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD |
G_CLIPPING),
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, PRIMITIVE, PRIMITIVE, TEXEL1, 0, 0, 0, TEXEL0, COMBINED, 0, PRIMITIVE, 0, 0, 0, 0,
COMBINED),
gsSPSetOtherMode(G_SETOTHERMODE_H, 4, 20,
G_AD_NOISE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE |
G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE),
gsSPSetOtherMode(G_SETOTHERMODE_L, 0, 32, G_AC_NONE | G_ZS_PIXEL | G_RM_FOG_SHADE_A | G_RM_AA_ZB_TEX_EDGE2),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetPrimColor(0, 0, 255, 220, 203, 255),
gsDPSetTextureImage(G_IM_FMT_I, G_IM_SIZ_8b_LOAD_BLOCK, 1, gGroundDust),
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0,
G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 511, 512),
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 1, G_TX_WRAP | G_TX_NOMIRROR, 5, 1),
gsDPSetTileSize(0, 98, 100, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, gTexture66C8F4),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 128, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0,
G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 128, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR,
5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPEndDisplayList(),
};
Gfx cloud_mesh[] = {
//gsSPClearGeometryMode(G_LIGHTING),
//gsSPVertex(cloud_mesh_vtx_cull + 0, 8, 0),
gsSPSetGeometryMode(G_LIGHTING),
//gsSPCullDisplayList(0, 7),
gsSPDisplayList(mat_cloud_cutout),
gsSPDisplayList(cloud_mesh_tri_0),
gsSPEndDisplayList(),
// gsSPClearGeometryMode(G_LIGHTING),
// gsSPVertex(cloud_mesh_vtx_cull + 0, 8, 0),
gsSPSetGeometryMode(G_LIGHTING),
// gsSPCullDisplayList(0, 7),
gsSPDisplayList(mat_cloud_cutout),
gsSPDisplayList(cloud_mesh_tri_0),
gsSPEndDisplayList(),
};

View File

@ -69,7 +69,7 @@ BansheeBoardwalk::BansheeBoardwalk() {
this->gfx = d_course_banshee_boardwalk_packed_dls;
this->gfxSize = 3689;
Props.textures = banshee_boardwalk_textures;
Props.Minimap.Texture = gTextureCourseOutlineBansheeBoardwalk;
Props.Minimap.Texture = minimap_banshee_boardwalk;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 262;
@ -79,6 +79,7 @@ BansheeBoardwalk::BansheeBoardwalk() {
Props.Minimap.PlayerScaleFactor = 0.016f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Id = "mk:banshee_boardwalk";
@ -140,6 +141,9 @@ BansheeBoardwalk::BansheeBoardwalk() {
Props.Sequence = MusicSeq::MUSIC_SEQ_BANSHEE_BOARDWALK;
Props.WaterLevel = -80.0f;
for (size_t i = 0; i < 100; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) banshee_boardwalk_dls[i], Props.textures);
}
}
void BansheeBoardwalk::Load() {

View File

@ -43,7 +43,7 @@ BigDonut::BigDonut() {
this->gfx = d_course_big_donut_packed_dls;
this->gfxSize = 528;
Props.textures = big_donut_textures;
Props.Minimap.Texture = gTextureCourseOutlineBigDonut;
Props.Minimap.Texture = minimap_big_donut;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 257;
@ -53,6 +53,7 @@ BigDonut::BigDonut() {
Props.Minimap.PlayerScaleFactor = 0.0257f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "big donut", sizeof(Props.Name));
Props.SetText(Props.DebugName, "doughnut", sizeof(Props.DebugName));

View File

@ -45,7 +45,7 @@ BlockFort::BlockFort() {
this->gfx = d_course_block_fort_packed_dls;
this->gfxSize = 699;
Props.textures = block_fort_textures;
Props.Minimap.Texture = gTextureCourseOutlineBlockFort;
Props.Minimap.Texture = minimap_block_fort;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 257;
@ -55,6 +55,7 @@ BlockFort::BlockFort() {
Props.Minimap.PlayerScaleFactor = 0.0335f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "block fort", sizeof(Props.Name));
Props.SetText(Props.DebugName, "block", sizeof(Props.DebugName));

View File

@ -72,7 +72,7 @@ BowsersCastle::BowsersCastle() {
this->gfx = d_course_bowsers_castle_packed_dls;
this->gfxSize = 4900;
Props.textures = bowsers_castle_textures;
Props.Minimap.Texture = gTextureCourseOutlineBowsersCastle;
Props.Minimap.Texture = minimap_bowsers_castle;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 265;
@ -82,6 +82,7 @@ BowsersCastle::BowsersCastle() {
Props.Minimap.PlayerScaleFactor = 0.0174f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Id = "mk:bowsers_castle";
@ -144,6 +145,9 @@ BowsersCastle::BowsersCastle() {
Props.WaterLevel = -50.0f;
WaterVolumes.push_back({20.0f, 1549.0f, 1859.0f, -1402.0f, -1102.0f});
for (size_t i = 0; i < 108; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) bowsers_castle_dls[i], Props.textures);
}
}
void BowsersCastle::Load() {
@ -155,7 +159,7 @@ void BowsersCastle::Load() {
}
void BowsersCastle::LoadTextures() {
dma_textures(gTextureShrub, 0x000003FFU, 0x00000800U);
dma_textures(gTextureShrub, 0x000003FFU, 0x00000800U); // 0x03009000
}
// Required for the 2 thwomps that go far

View File

@ -64,7 +64,7 @@ ChocoMountain::ChocoMountain() {
this->gfx = d_course_choco_mountain_packed_dls;
this->gfxSize = 2910;
Props.textures = choco_mountain_textures;
Props.Minimap.Texture = gTextureCourseOutlineChocoMountain;
Props.Minimap.Texture = minimap_choco_mountain;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 265;
@ -74,6 +74,7 @@ ChocoMountain::ChocoMountain() {
Props.Minimap.PlayerScaleFactor = 0.022f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = -16.0;
ResizeMinimap(&Props.Minimap);
Id = "mk:choco_mountain";
Props.SetText(Props.Name, "choco mountain", sizeof(Props.Name));
@ -134,6 +135,9 @@ ChocoMountain::ChocoMountain() {
Props.Sequence = MusicSeq::MUSIC_SEQ_CHOCO_MOUNTAIN;
Props.WaterLevel = -80.0f;
for (size_t i = 0; i < 96; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) choco_mountain_dls[i], Props.textures);
}
}
void ChocoMountain::Load() {

View File

@ -27,6 +27,16 @@ extern "C" {
extern StaffGhost* d_mario_raceway_staff_ghost;
}
void ResizeMinimap(MinimapProps* minimap) {
if (minimap->Height < minimap->Width) {
minimap->Width = (minimap->Width * 64) / minimap->Height;
minimap->Height = 64;
} else {
minimap->Height = (minimap->Height * 64) / minimap->Width;
minimap->Width = 64;
}
}
Course::Course() {
Props.SetText(Props.Name, "Blank Track", sizeof(Props.Name));
Props.SetText(Props.DebugName, "blnktrck", sizeof(Props.DebugName));
@ -34,7 +44,7 @@ Course::Course() {
// Props.Cup = FLOWER_CUP;
// Props.CupIndex = 3;
Id = "";
Props.Minimap.Texture = gTextureCourseOutlineMarioRaceway;
Props.Minimap.Texture = minimap_mario_raceway;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 257;
@ -44,7 +54,8 @@ Course::Course() {
Props.Minimap.PlayerScaleFactor = 0.22f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
Props.Minimap.Colour = {255, 255, 255};
Props.Minimap.Colour = { 255, 255, 255 };
Props.WaterLevel = FLT_MAX;
Props.LakituTowType = (s32) OLakitu::LakituTowType::NORMAL;
@ -116,11 +127,12 @@ void Course::LoadO2R(std::string trackPath) {
size_t i = 0;
for (auto& path : paths) {
if (i == 0) {
Props.PathTable[0] = (TrackPathPoint*)path.data();
Props.PathSizes.unk0 = path.size();
Props.PathTable[0] = (TrackPathPoint*) path.data();
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
Props.PathTable2[0] = (TrackPathPoint*)path.data();
Props.PathTable2[0] = (TrackPathPoint*) path.data();
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@ -141,7 +153,7 @@ void Course::Load() {
// Load from O2R
if (!TrackSectionsPtr.empty()) {
bIsMod = true;
//auto res = std::dynamic_pointer_cast<MK64::TrackSectionsO2RClass>(ResourceLoad(TrackSectionsPtr.c_str()));
// auto res = std::dynamic_pointer_cast<MK64::TrackSectionsO2RClass>(ResourceLoad(TrackSectionsPtr.c_str()));
TrackSectionsO2R* sections = (TrackSectionsO2R*) LOAD_ASSET_RAW(TrackSectionsPtr.c_str());
size_t size = ResourceGetSizeByName(TrackSectionsPtr.c_str());
@ -223,8 +235,9 @@ void Course::ParseCourseSections(TrackSectionsO2R* sections, size_t size) {
} else {
D_8015F5A4 = 0;
}
printf("LOADING DL %s\n", sections[i].addr.c_str());
generate_collision_mesh((Gfx*)LOAD_ASSET_RAW(sections[i].addr.c_str()), sections[i].surfaceType, sections[i].sectionId);
printf("LOADING DL %s\n", sections[i].addr.c_str());
generate_collision_mesh((Gfx*) LOAD_ASSET_RAW(sections[i].addr.c_str()), sections[i].surfaceType,
sections[i].sectionId);
}
}
@ -234,8 +247,8 @@ void Course::TestPath() {
s16 x;
s16 y;
s16 z;
Vec3s rot = {0, 0, 0};
Vec3f vel = {0, 0, 0};
Vec3s rot = { 0, 0, 0 };
Vec3f vel = { 0, 0, 0 };
for (size_t i = 0; i < gPathCountByPathIndex[0]; i++) {
x = gTrackPaths[0][i].posX;
@ -247,7 +260,7 @@ void Course::TestPath() {
}
f32 height = spawn_actor_on_surface(x, 2000.0f, z);
Vec3f itemPos = {x, height, z};
Vec3f itemPos = { x, height, z };
add_actor_to_empty_slot(itemPos, rot, vel, ACTOR_ITEM_BOX);
}
}
@ -353,10 +366,10 @@ void Course::Render(struct UnkStruct_800DC5EC* arg0) {
// d_course_big_donut_packed_dl_DE8
}
TrackSectionsO2R* sections = (TrackSectionsO2R*)LOAD_ASSET_RAW(TrackSectionsPtr.c_str());
TrackSectionsO2R* sections = (TrackSectionsO2R*) LOAD_ASSET_RAW(TrackSectionsPtr.c_str());
size_t size = ResourceGetSizeByName(TrackSectionsPtr.c_str());
for (size_t i = 0; i < (size / sizeof(TrackSectionsO2R)); i++) {
gSPDisplayList(gDisplayListHead++, (Gfx*)LOAD_ASSET_RAW(sections[i].addr.c_str()));
gSPDisplayList(gDisplayListHead++, (Gfx*) LOAD_ASSET_RAW(sections[i].addr.c_str()));
}
}
}
@ -369,8 +382,7 @@ f32 Course::GetWaterLevel(FVector pos, Collision* collision) {
bool found = false;
for (const auto& volume : gWorldInstance.CurrentCourse->WaterVolumes) {
if (pos.x >= volume.MinX && pos.x <= volume.MaxX &&
pos.z >= volume.MinZ && pos.z <= volume.MaxZ) {
if (pos.x >= volume.MinX && pos.x <= volume.MaxX && pos.z >= volume.MinZ && pos.z <= volume.MaxZ) {
// Choose the highest water volume the player is over
if (!found || volume.Height > highestWater) {
highestWater = volume.Height;

View File

@ -61,6 +61,8 @@ typedef struct MinimapProps {
RGB8 Colour; // Colour of the visible pixels (the track path)
} MinimapProps;
void ResizeMinimap(MinimapProps* minimap);
typedef struct Properties {
char Name[128];
char DebugName[128];

View File

@ -73,7 +73,7 @@ DKJungle::DKJungle() {
this->gfx = d_course_dks_jungle_parkway_packed_dls;
this->gfxSize = 4997;
Props.textures = dks_jungle_parkway_textures;
Props.Minimap.Texture = gTextureCourseOutlineDksJungleParkway;
Props.Minimap.Texture = minimap_dks_jungle_parkway;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 255;
@ -83,6 +83,7 @@ DKJungle::DKJungle() {
Props.Minimap.PlayerScaleFactor = 0.0155f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "d.k.'s jungle parkway", sizeof(Props.Name));
Props.SetText(Props.DebugName, "jungle", sizeof(Props.DebugName));
@ -142,6 +143,9 @@ DKJungle::DKJungle() {
Props.Sequence = MusicSeq::MUSIC_SEQ_DK_JUNGLE;
Props.WaterLevel = -475.0f;
for (size_t i = 0; i < 104; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) d_course_dks_jungle_parkway_unknown_dl_list[i], Props.textures);
}
}
void DKJungle::Load() {
@ -185,9 +189,9 @@ f32 DKJungle::GetWaterLevel(FVector pos, Collision* collision) {
}
void DKJungle::LoadTextures() {
dma_textures(gTextureDksJungleParkwayKiwanoFruit1, 0x0000032FU, 0x00000400U);
dma_textures(gTextureDksJungleParkwayKiwanoFruit2, 0x00000369U, 0x00000400U);
dma_textures(gTextureDksJungleParkwayKiwanoFruit3, 0x00000364U, 0x00000400U);
dma_textures(gTextureDksJungleParkwayKiwanoFruit1, 0x0000032FU, 0x00000400U); // 0x03009000
dma_textures(gTextureDksJungleParkwayKiwanoFruit2, 0x00000369U, 0x00000400U); // 0x03009800
dma_textures(gTextureDksJungleParkwayKiwanoFruit3, 0x00000364U, 0x00000400U); // 0x0300A000
}
void DKJungle::BeginPlay() {

View File

@ -43,7 +43,7 @@ DoubleDeck::DoubleDeck() {
this->gfx = d_course_double_deck_packed_dls;
this->gfxSize = 699;
Props.textures = double_deck_textures;
Props.Minimap.Texture = gTextureCourseOutlineDoubleDeck;
Props.Minimap.Texture = minimap_double_deck;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 257;
@ -53,6 +53,7 @@ DoubleDeck::DoubleDeck() {
Props.Minimap.PlayerScaleFactor = 0.0285f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "double deck", sizeof(Props.Name));
Props.SetText(Props.DebugName, "deck", sizeof(Props.DebugName));

View File

@ -52,7 +52,7 @@ FrappeSnowland::FrappeSnowland() {
this->gfx = d_course_frappe_snowland_packed_dls;
this->gfxSize = 4140;
Props.textures = frappe_snowland_textures;
Props.Minimap.Texture = gTextureCourseOutlineFrappeSnowland;
Props.Minimap.Texture = minimap_frappe_snowland;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 262;
@ -63,6 +63,7 @@ FrappeSnowland::FrappeSnowland() {
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
Props.Minimap.Colour = {72, 100, 255};
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "frappe snowland", sizeof(Props.Name));
Props.SetText(Props.DebugName, "snow", sizeof(Props.DebugName));
@ -122,6 +123,9 @@ FrappeSnowland::FrappeSnowland() {
Props.Sequence = MusicSeq::MUSIC_SEQ_FRAPPE_SNOWLAND;
Props.WaterLevel = -50.0f;
for (size_t i = 0; i < 68; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) d_course_frappe_snowland_dl_list[i], Props.textures);
}
}
void FrappeSnowland::Load() {
@ -132,8 +136,8 @@ void FrappeSnowland::Load() {
}
void FrappeSnowland::LoadTextures() {
dma_textures(gTextureFrappeSnowlandTreeLeft, 0x00000454U, 0x00000800U);
dma_textures(gTextureFrappeSnowlandTreeRight, 0x00000432U, 0x00000800U);
dma_textures(gTextureFrappeSnowlandTreeLeft, 0x00000454U, 0x00000800U); // 0x03009000
dma_textures(gTextureFrappeSnowlandTreeRight, 0x00000432U, 0x00000800U); // 0x03009800
}
void FrappeSnowland::BeginPlay() {

View File

@ -519,7 +519,7 @@ TrackPathPoint harbour_path[] = {
Harbour::Harbour() {
this->gfxSize = 100;
this->textures = NULL;
Props.Minimap.Texture = gTextureCourseOutlineMarioRaceway;
Props.Minimap.Texture = minimap_mario_raceway;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 260;
@ -527,6 +527,7 @@ Harbour::Harbour() {
Props.Minimap.PlayerX = 6;
Props.Minimap.PlayerY = 28;
Props.Minimap.PlayerScaleFactor = 0.022f;
ResizeMinimap(&Props.Minimap);
Id = "mk:harbour";
Props.SetText(Props.Name, "Harbour", sizeof(Props.Name));
@ -618,16 +619,16 @@ void Harbour::Load() {
}
void Harbour::LoadTextures() {
dma_textures(gTextureTrees1, 0x0000035BU, 0x00000800U);
D_802BA058 = dma_textures(gTexturePiranhaPlant1, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant2, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant3, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant4, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant5, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant6, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant7, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant8, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant9, 0x000003E8U, 0x00000800U);
dma_textures(gTextureTrees1, 0x0000035BU, 0x00000800U); // 0x03009000
D_802BA058 = dma_textures(gTexturePiranhaPlant1, 0x000003E8U, 0x00000800U); // 0x03009800
dma_textures(gTexturePiranhaPlant2, 0x000003E8U, 0x00000800U); // 0x0300A000
dma_textures(gTexturePiranhaPlant3, 0x000003E8U, 0x00000800U); // 0x0300A800
dma_textures(gTexturePiranhaPlant4, 0x000003E8U, 0x00000800U); // 0x0300B000
dma_textures(gTexturePiranhaPlant5, 0x000003E8U, 0x00000800U); // 0x0300B800
dma_textures(gTexturePiranhaPlant6, 0x000003E8U, 0x00000800U); // 0x0300C000
dma_textures(gTexturePiranhaPlant7, 0x000003E8U, 0x00000800U); // 0x0300C800
dma_textures(gTexturePiranhaPlant8, 0x000003E8U, 0x00000800U); // 0x0300D000
dma_textures(gTexturePiranhaPlant9, 0x000003E8U, 0x00000800U); // 0x0300D800
}
Path2D harbour_path2D[] = {

View File

@ -57,7 +57,7 @@ KalimariDesert::KalimariDesert() {
this->gfx = d_course_kalimari_desert_packed_dls;
this->gfxSize = 5328;
Props.textures = kalimari_desert_textures;
Props.Minimap.Texture = gTextureCourseOutlineKalimariDesert;
Props.Minimap.Texture = minimap_kalimari_desert;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 263;
@ -67,6 +67,7 @@ KalimariDesert::KalimariDesert() {
Props.Minimap.PlayerScaleFactor = 0.015f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 4.0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "kalimari desert", sizeof(Props.Name));
Props.SetText(Props.DebugName, "desert", sizeof(Props.DebugName));
@ -125,6 +126,9 @@ KalimariDesert::KalimariDesert() {
Props.Skybox.FloorBottomLeft = {0, 0, 0};
Props.Skybox.FloorTopLeft = {255, 192, 0};
Props.Sequence = MusicSeq::MUSIC_SEQ_KALIMARI_DESERT;
for (size_t i = 0; i < 80; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) kalimari_desert_dls[i], Props.textures);
}
}
void KalimariDesert::Load() {
@ -136,11 +140,11 @@ void KalimariDesert::Load() {
}
void KalimariDesert::LoadTextures() {
dma_textures(gTextureCactus1Left, 0x0000033EU, 0x00000800U);
dma_textures(gTextureCactus1Right, 0x000002FBU, 0x00000800U);
dma_textures(gTextureCactus2Left, 0x000002A8U, 0x00000800U);
dma_textures(gTextureCactus2Right, 0x00000374U, 0x00000800U);
dma_textures(gTextureCactus3, 0x000003AFU, 0x00000800U);
dma_textures(gTextureCactus1Left, 0x0000033EU, 0x00000800U); // 0x03009000
dma_textures(gTextureCactus1Right, 0x000002FBU, 0x00000800U); // 0x03009800
dma_textures(gTextureCactus2Left, 0x000002A8U, 0x00000800U); // 0x0300A000
dma_textures(gTextureCactus2Right, 0x00000374U, 0x00000800U); // 0x0300A800
dma_textures(gTextureCactus3, 0x000003AFU, 0x00000800U); // 0x0300B000
}
void KalimariDesert::BeginPlay() {

View File

@ -62,7 +62,7 @@ KoopaTroopaBeach::KoopaTroopaBeach() {
this->gfx = d_course_koopa_troopa_beach_packed_dls;
this->gfxSize = 5720;
Props.textures = koopa_troopa_beach_textures;
Props.Minimap.Texture = gTextureCourseOutlineKoopaTroopaBeach;
Props.Minimap.Texture = minimap_koopa_troopa_beach;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 268;
@ -72,6 +72,7 @@ KoopaTroopaBeach::KoopaTroopaBeach() {
Props.Minimap.PlayerScaleFactor = 0.014f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Id = "mk:koopa_beach";
Props.SetText(Props.Name, "koopa troopa beach", sizeof(Props.Name));
@ -135,6 +136,12 @@ KoopaTroopaBeach::KoopaTroopaBeach() {
Props.WaterLevel = 0.0f;
gWaterVelocity = -0.1f;
WaterVolumes.push_back({0.8f, 67.0f, 239.0f, 2233.0f, 2405.0f});
for (size_t i = 0; i < 148; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) d_course_koopa_troopa_beach_dl_list1[i], Props.textures);
}
for (size_t i = 0; i < 148; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) koopa_troopa_beach_dls2[i], Props.textures);
}
}
void KoopaTroopaBeach::Load() {

View File

@ -89,7 +89,7 @@ LuigiRaceway::LuigiRaceway() {
this->gfx = d_course_luigi_raceway_packed_dls;
this->gfxSize = 6377;
Props.textures = luigi_raceway_textures;
Props.Minimap.Texture = gTextureCourseOutlineLuigiRaceway;
Props.Minimap.Texture = minimap_luigi_raceway;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 271;
@ -99,6 +99,7 @@ LuigiRaceway::LuigiRaceway() {
Props.Minimap.PlayerScaleFactor = 0.0155f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Id = "mk:luigi_raceway";
Props.SetText(Props.Name, "luigi raceway", sizeof(Props.Name));
@ -158,6 +159,9 @@ LuigiRaceway::LuigiRaceway() {
Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
Props.Skybox.FloorTopLeft = { 216, 232, 248 };
Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM;
for (size_t i = 0; i < 120; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) luigi_raceway_dls[i], Props.textures);
}
}
void LuigiRaceway::Load() {
@ -169,8 +173,8 @@ void LuigiRaceway::Load() {
}
void LuigiRaceway::LoadTextures() {
dma_textures(gTextureTrees5Left, 0x000003E8U, 0x00000800U);
dma_textures(gTextureTrees5Right, 0x000003E8U, 0x00000800U);
dma_textures(gTextureTrees5Left, 0x000003E8U, 0x00000800U); // 0x03009000
dma_textures(gTextureTrees5Right, 0x000003E8U, 0x00000800U); // 0x03009800
}
void LuigiRaceway::BeginPlay() {

View File

@ -76,7 +76,7 @@ MarioRaceway::MarioRaceway() {
this->gfxSize = 3367;
Props.textures = mario_raceway_textures;
Props.Minimap.Texture = gTextureCourseOutlineMarioRaceway;
Props.Minimap.Texture = minimap_mario_raceway;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 260;
@ -86,6 +86,7 @@ MarioRaceway::MarioRaceway() {
Props.Minimap.PlayerScaleFactor = 0.022f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = -2.0;
ResizeMinimap(&Props.Minimap);
Id = "mk:mario_raceway";
Props.SetText(Props.Name, "mario raceway", sizeof(Props.Name));
@ -146,6 +147,9 @@ MarioRaceway::MarioRaceway() {
Props.Skybox.FloorBottomLeft = {0, 0, 0};
Props.Skybox.FloorTopLeft = {0, 0, 0};
Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM;
for (size_t i = 0; i < 68; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) mario_raceway_dls[i], Props.textures);
}
}
void MarioRaceway::Load() {
@ -172,16 +176,16 @@ void MarioRaceway::Load() {
}
void MarioRaceway::LoadTextures() {
dma_textures(gTextureTrees1, 0x0000035BU, 0x00000800U);
D_802BA058 = dma_textures(gTexturePiranhaPlant1, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant2, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant3, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant4, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant5, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant6, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant7, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant8, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant9, 0x000003E8U, 0x00000800U);
dma_textures(gTextureTrees1, 0x0000035BU, 0x00000800U); // 0x03009000
D_802BA058 = dma_textures(gTexturePiranhaPlant1, 0x000003E8U, 0x00000800U); // 0x03009800
dma_textures(gTexturePiranhaPlant2, 0x000003E8U, 0x00000800U); // 0x0300A000
dma_textures(gTexturePiranhaPlant3, 0x000003E8U, 0x00000800U); // 0x0300A800
dma_textures(gTexturePiranhaPlant4, 0x000003E8U, 0x00000800U); // 0x0300B000
dma_textures(gTexturePiranhaPlant5, 0x000003E8U, 0x00000800U); // 0x0300B800
dma_textures(gTexturePiranhaPlant6, 0x000003E8U, 0x00000800U); // 0x0300C000
dma_textures(gTexturePiranhaPlant7, 0x000003E8U, 0x00000800U); // 0x0300C800
dma_textures(gTexturePiranhaPlant8, 0x000003E8U, 0x00000800U); // 0x0300D000
dma_textures(gTexturePiranhaPlant9, 0x000003E8U, 0x00000800U); // 0x0300D800
}
void MarioRaceway::BeginPlay() {

View File

@ -75,7 +75,7 @@ MooMooFarm::MooMooFarm() {
this->gfx = d_course_moo_moo_farm_packed_dls;
this->gfxSize = 3304;
Props.textures = moo_moo_farm_textures;
Props.Minimap.Texture = gTextureCourseOutlineMooMooFarm;
Props.Minimap.Texture = minimap_moo_moo_farm;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 271;
@ -85,6 +85,7 @@ MooMooFarm::MooMooFarm() {
Props.Minimap.PlayerScaleFactor = 0.0155f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "moo moo farm", sizeof(Props.Name));
Props.SetText(Props.DebugName, "farm", sizeof(Props.DebugName));
@ -143,6 +144,9 @@ MooMooFarm::MooMooFarm() {
Props.Skybox.FloorBottomLeft = {0, 0, 0};
Props.Skybox.FloorTopLeft = {255, 184, 99};
Props.Sequence = MusicSeq::MUSIC_SEQ_MOO_MOO_FARM_YOSHI_VALLEY;
for (size_t i = 0; i < 92; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) moo_moo_farm_dls[i], Props.textures);
}
}
void MooMooFarm::Load() {
@ -154,18 +158,18 @@ void MooMooFarm::Load() {
}
void MooMooFarm::LoadTextures() {
dma_textures(gTextureTrees4Left, 0x000003E8U, 0x00000800U);
dma_textures(gTextureTrees4Right, 0x000003E8U, 0x00000800U);
dma_textures(gTextureCow01Left, 0x00000400U, 0x00000800U);
dma_textures(gTextureCow01Right, 0x00000400U, 0x00000800U);
dma_textures(gTextureCow02Left, 0x00000400U, 0x00000800U);
dma_textures(gTextureCow02Right, 0x00000400U, 0x00000800U);
dma_textures(gTextureCow03Left, 0x00000400U, 0x00000800U);
dma_textures(gTextureCow03Right, 0x00000400U, 0x00000800U);
dma_textures(gTextureCow04Left, 0x00000400U, 0x00000800U);
dma_textures(gTextureCow04Right, 0x00000400U, 0x00000800U);
dma_textures(gTextureCow05Left, 0x00000400U, 0x00000800U);
dma_textures(gTextureCow05Right, 0x00000400U, 0x00000800U);
dma_textures(gTextureTrees4Left, 0x000003E8U, 0x00000800U); // 0x03009000
dma_textures(gTextureTrees4Right, 0x000003E8U, 0x00000800U); // 0x03009800
dma_textures(gTextureCow01Left, 0x00000400U, 0x00000800U); // 0x0300A000
dma_textures(gTextureCow01Right, 0x00000400U, 0x00000800U); // 0x0300A800
dma_textures(gTextureCow02Left, 0x00000400U, 0x00000800U); // 0x0300B000
dma_textures(gTextureCow02Right, 0x00000400U, 0x00000800U); // 0x0300B800
dma_textures(gTextureCow03Left, 0x00000400U, 0x00000800U); // 0x0300C000
dma_textures(gTextureCow03Right, 0x00000400U, 0x00000800U); // 0x0300C800
dma_textures(gTextureCow04Left, 0x00000400U, 0x00000800U); // 0x0300D000
dma_textures(gTextureCow04Right, 0x00000400U, 0x00000800U); // 0x0300D800
dma_textures(gTextureCow05Left, 0x00000400U, 0x00000800U); // 0x0300E000
dma_textures(gTextureCow05Right, 0x00000400U, 0x00000800U); // 0x0300E800
}
// These are full arrays that are not used in the original game

View File

@ -49,7 +49,7 @@ RainbowRoad::RainbowRoad() {
this->gfx = d_course_rainbow_road_packed_dls;
this->gfxSize = 5670;
Props.textures = rainbow_road_textures;
Props.Minimap.Texture = gTextureCourseOutlineRainbowRoad;
Props.Minimap.Texture = minimap_rainbow_road;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 261;
@ -59,6 +59,7 @@ RainbowRoad::RainbowRoad() {
Props.Minimap.PlayerScaleFactor = 0.0103f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "rainbow road", sizeof(Props.Name));
Props.SetText(Props.DebugName, "rainbow", sizeof(Props.DebugName));

View File

@ -87,7 +87,7 @@ RoyalRaceway::RoyalRaceway() {
this->gfx = d_course_royal_raceway_packed_dls;
this->gfxSize = 5670;
Props.textures = royal_raceway_textures;
Props.Minimap.Texture = gTextureCourseOutlineRoyalRaceway;
Props.Minimap.Texture = minimap_royal_raceway;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 262;
@ -97,6 +97,7 @@ RoyalRaceway::RoyalRaceway() {
Props.Minimap.PlayerScaleFactor = 0.014f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "royal raceway", sizeof(Props.Name));
Props.SetText(Props.DebugName, "p circuit", sizeof(Props.DebugName));
@ -157,6 +158,9 @@ RoyalRaceway::RoyalRaceway() {
Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM;
Props.WaterLevel = -60.0f;
for (size_t i = 0; i < 132; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) royal_raceway_dls[i], Props.textures);
}
}
void RoyalRaceway::Load() {
@ -167,17 +171,17 @@ void RoyalRaceway::Load() {
}
void RoyalRaceway::LoadTextures() {
dma_textures(gTextureTrees3, 0x000003E8U, 0x00000800U);
dma_textures(gTextureTrees7, 0x000003E8U, 0x00000800U);
D_802BA058 = dma_textures(gTexturePiranhaPlant1, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant2, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant3, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant4, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant5, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant6, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant7, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant8, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant9, 0x000003E8U, 0x00000800U);
dma_textures(gTextureTrees3, 0x000003E8U, 0x00000800U); // 0x03009000
dma_textures(gTextureTrees7, 0x000003E8U, 0x00000800U); // 0x03009800
D_802BA058 = dma_textures(gTexturePiranhaPlant1, 0x000003E8U, 0x00000800U); // 0x0300A000
dma_textures(gTexturePiranhaPlant2, 0x000003E8U, 0x00000800U); // 0x0300A800
dma_textures(gTexturePiranhaPlant3, 0x000003E8U, 0x00000800U); // 0x0300B000
dma_textures(gTexturePiranhaPlant4, 0x000003E8U, 0x00000800U); // 0x0300B800
dma_textures(gTexturePiranhaPlant5, 0x000003E8U, 0x00000800U); // 0x0300C000
dma_textures(gTexturePiranhaPlant6, 0x000003E8U, 0x00000800U); // 0x0300C800
dma_textures(gTexturePiranhaPlant7, 0x000003E8U, 0x00000800U); // 0x0300D000
dma_textures(gTexturePiranhaPlant8, 0x000003E8U, 0x00000800U); // 0x0300D800
dma_textures(gTexturePiranhaPlant9, 0x000003E8U, 0x00000800U); // 0x0300E000
}
void RoyalRaceway::BeginPlay() {

View File

@ -49,7 +49,7 @@ SherbetLand::SherbetLand() {
this->gfx = d_course_sherbet_land_packed_dls;
this->gfxSize = 1803;
Props.textures = sherbet_land_textures;
Props.Minimap.Texture = gTextureCourseOutlineSherbetLand;
Props.Minimap.Texture = minimap_sherbet_land;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 262;
@ -60,6 +60,7 @@ SherbetLand::SherbetLand() {
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
Props.Minimap.Colour = {72, 100, 255};
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "sherbet land", sizeof(Props.Name));
Props.SetText(Props.DebugName, "sherbet", sizeof(Props.DebugName));
@ -122,6 +123,12 @@ SherbetLand::SherbetLand() {
Props.Sequence = MusicSeq::MUSIC_SEQ_FRAPPE_SNOWLAND;
Props.WaterLevel = -18.0f;
for (size_t i = 0; i < 72; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) sherbet_land_dls[i], Props.textures);
}
for (size_t i = 0; i < 72; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) sherbet_land_dls_2[i], Props.textures);
}
}
void SherbetLand::Load() {

View File

@ -64,7 +64,7 @@ Skyscraper::Skyscraper() {
this->gfx = d_course_skyscraper_packed_dls;
this->gfxSize = 548;
Props.textures = skyscraper_textures;
Props.Minimap.Texture = gTextureCourseOutlineSkyscraper;
Props.Minimap.Texture = minimap_skyscraper;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 257;
@ -74,6 +74,7 @@ Skyscraper::Skyscraper() {
Props.Minimap.PlayerScaleFactor = 0.0445f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "skyscraper", sizeof(Props.Name));
Props.SetText(Props.DebugName, "skyscraper", sizeof(Props.DebugName));

View File

@ -61,7 +61,7 @@ extern "C" {
TestCourse::TestCourse() {
this->gfxSize = 100;
this->textures = NULL;
Props.Minimap.Texture = gTextureCourseOutlineMarioRaceway;
Props.Minimap.Texture = minimap_mario_raceway;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 260;
@ -72,6 +72,7 @@ TestCourse::TestCourse() {
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
Props.Minimap.Colour = {255, 255, 255};
ResizeMinimap(&Props.Minimap);
Id = "mk:test_course";
@ -145,16 +146,16 @@ void TestCourse::Load() {
}
void TestCourse::LoadTextures() {
dma_textures(gTextureTrees1, 0x0000035BU, 0x00000800U);
D_802BA058 = dma_textures(gTexturePiranhaPlant1, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant2, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant3, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant4, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant5, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant6, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant7, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant8, 0x000003E8U, 0x00000800U);
dma_textures(gTexturePiranhaPlant9, 0x000003E8U, 0x00000800U);
dma_textures(gTextureTrees1, 0x0000035BU, 0x00000800U); // 0x03009000
D_802BA058 = dma_textures(gTexturePiranhaPlant1, 0x000003E8U, 0x00000800U); // 0x03009800
dma_textures(gTexturePiranhaPlant2, 0x000003E8U, 0x00000800U); // 0x0300A000
dma_textures(gTexturePiranhaPlant3, 0x000003E8U, 0x00000800U); // 0x0300A800
dma_textures(gTexturePiranhaPlant4, 0x000003E8U, 0x00000800U); // 0x0300B000
dma_textures(gTexturePiranhaPlant5, 0x000003E8U, 0x00000800U); // 0x0300B800
dma_textures(gTexturePiranhaPlant6, 0x000003E8U, 0x00000800U); // 0x0300C000
dma_textures(gTexturePiranhaPlant7, 0x000003E8U, 0x00000800U); // 0x0300C800
dma_textures(gTexturePiranhaPlant8, 0x000003E8U, 0x00000800U); // 0x0300D000
dma_textures(gTexturePiranhaPlant9, 0x000003E8U, 0x00000800U); // 0x0300D800
}
Path2D test_course_path2D[] = {

View File

@ -70,7 +70,7 @@ ToadsTurnpike::ToadsTurnpike() {
this->gfx = d_course_toads_turnpike_packed_dls;
this->gfxSize = 3427;
Props.textures = toads_turnpike_textures;
Props.Minimap.Texture = gTextureCourseOutlineToadsTurnpike;
Props.Minimap.Texture = minimap_toads_turnpike;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 252;
@ -80,6 +80,7 @@ ToadsTurnpike::ToadsTurnpike() {
Props.Minimap.PlayerScaleFactor = 0.013f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "toad's turnpike", sizeof(Props.Name));
Props.SetText(Props.DebugName, "highway", sizeof(Props.DebugName));
@ -144,6 +145,9 @@ ToadsTurnpike::ToadsTurnpike() {
Props.Skybox.FloorBottomLeft = {0, 0, 0};
Props.Skybox.FloorTopLeft = {209, 65, 23};
Props.Sequence = MusicSeq::MUSIC_SEQ_TOADS_TURNPIKE;
for (size_t i = 0; i < 80; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) d_course_toads_turnpike_dl_list[i], Props.textures);
}
}
void ToadsTurnpike::Load() {

View File

@ -66,7 +66,7 @@ WarioStadium::WarioStadium() {
this->gfx = d_course_wario_stadium_packed_dls;
this->gfxSize = 5272;
Props.textures = wario_stadium_textures;
Props.Minimap.Texture = gTextureCourseOutlineWarioStadium;
Props.Minimap.Texture = minimap_wario_stadium;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.Pos[0].X = 262;
@ -76,6 +76,7 @@ WarioStadium::WarioStadium() {
Props.Minimap.PlayerScaleFactor = 0.0155f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "wario stadium", sizeof(Props.Name));
Props.SetText(Props.DebugName, "stadium", sizeof(Props.DebugName));
@ -140,6 +141,9 @@ WarioStadium::WarioStadium() {
Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
Props.Skybox.FloorTopLeft = { 0, 0, 0 };
Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM;
for (size_t i = 0; i < 108; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) wario_stadium_dls[i], Props.textures);
}
}
void WarioStadium::Load() {

View File

@ -61,7 +61,7 @@ YoshiValley::YoshiValley() {
this->gfxSize = 4140;
Props.textures = yoshi_valley_textures;
Props.Minimap.Texture = gTextureCourseOutlineYoshiValley;
Props.Minimap.Texture = minimap_yoshi_valley;
Props.Minimap.Width = ResourceGetTexWidthByName(Props.Minimap.Texture);
Props.Minimap.Height = ResourceGetTexHeightByName(Props.Minimap.Texture);
Props.Minimap.PlayerX = 61;
@ -69,6 +69,7 @@ YoshiValley::YoshiValley() {
Props.Minimap.PlayerScaleFactor = 0.018f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
ResizeMinimap(&Props.Minimap);
Props.SetText(Props.Name, "yoshi valley", sizeof(Props.Name));
Props.SetText(Props.DebugName, "maze", sizeof(Props.DebugName));
@ -127,6 +128,9 @@ YoshiValley::YoshiValley() {
Props.Skybox.FloorBottomLeft = {0, 0, 0};
Props.Skybox.FloorTopLeft = {95, 40, 15};
Props.Sequence = MusicSeq::MUSIC_SEQ_MOO_MOO_FARM_YOSHI_VALLEY;
for (size_t i = 0; i < 124; i++) {
replace_segmented_textures_with_o2r_textures((Gfx*) d_course_yoshi_valley_dl_list[i], Props.textures);
}
}
void YoshiValley::Load() {
@ -140,7 +144,7 @@ void YoshiValley::Load() {
}
void YoshiValley::LoadTextures() {
dma_textures(gTextureTrees2, 0x000003E8U, 0x00000800U);
dma_textures(gTextureTrees2, 0x000003E8U, 0x00000800U); // 0x03009000
}
void YoshiValley::BeginPlay() {

View File

@ -86,7 +86,7 @@ FVector ScreenRayTrace() {
bool QueryCollisionRayActor(Vec3f rayOrigin, Vec3f rayDir, Vec3f actorMin, Vec3f actorMax, float* t) {
float tmin = -FLT_MAX, tmax = FLT_MAX;
for (int i = 0; i < 3; i++) {
for (size_t i = 0; i < 3; i++) {
if (fabs(rayDir[i]) > 1e-6f) { // Avoid division by zero
float t1 = (actorMin[i] - rayOrigin[i]) / rayDir[i];
float t2 = (actorMax[i] - rayOrigin[i]) / rayDir[i];
@ -109,9 +109,9 @@ bool QueryCollisionRayActor(Vec3f rayOrigin, Vec3f rayDir, Vec3f actorMin, Vec3f
FVector4 MultiplyMatrixVector(float matrix[4][4], float vector[4]) {
FVector4 result;
float* resultPtr = &result.x;
for (int i = 0; i < 4; i++) {
for (size_t i = 0; i < 4; i++) {
resultPtr[i] = 0;
for (int j = 0; j < 4; j++) {
for (size_t j = 0; j < 4; j++) {
resultPtr[i] += matrix[j][i] * vector[j]; // Swap [i][j] → [j][i] for column order
}
}

View File

@ -147,7 +147,7 @@ namespace Editor {
course->Props.Minimap.Width = texture.Width;
course->Props.Minimap.Height = texture.Height;
} else { // Fallback
course->Props.Minimap.Texture = gTextureCourseOutlineMarioRaceway;
course->Props.Minimap.Texture = minimap_mario_raceway;
course->Props.Minimap.Width = ResourceGetTexWidthByName(course->Props.Minimap.Texture);
course->Props.Minimap.Height = ResourceGetTexHeightByName(course->Props.Minimap.Texture);
}

View File

@ -393,7 +393,7 @@ void OLakitu::func_80079860(s32 playerId) {
void OLakitu::func_8007993C(s32 objectIndex, Player* player) {
if (player->unk_0CA & 4) {
func_800722A4(objectIndex, 2);
gObjectList[objectIndex].primAlpha = player->unk_0C6;
gObjectList[objectIndex].primAlpha = player->alpha;
return;
}
func_800722CC(objectIndex, 2);
@ -784,7 +784,7 @@ void OLakitu::func_8007A778(s32 objectIndex) {
Player* player = &gPlayers[_playerId];
Camera* camera = &cameras[_playerId];
u16 rot = 0x8000 - camera->rot[1];
gObjectList[objectIndex].pos[0] =
(player->pos[0] +
(coss(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) -

View File

@ -102,8 +102,8 @@ void StarEmitter::Draw(s32 cameraId) { // func_80054BE8
Camera* camera;
camera = &camera1[cameraId];
gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007AE0);
load_texture_block_ia8_nomirror(D_8018D488, 0x00000020, 0x00000020);
gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007AE0);
load_texture_block_ia8_nomirror((u8*) gTexture69C80C, 0x00000020, 0x00000020);
func_8004B35C(0x000000FF, 0x000000FF, 0, 0x000000FF);
D_80183E80[0] = 0;
for (var_s0 = 0; var_s0 < gObjectParticle3_SIZE; var_s0++) {
@ -126,8 +126,8 @@ void StarEmitter::func_80054AFC(s32 objectIndex, Vec3f arg1) {
(s32) gObjectList[objectIndex].unk_084[2], (s32) gObjectList[objectIndex].primAlpha);
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, (u16*) D_80183E80,
gObjectList[objectIndex].sizeScaling);
gSPVertex(gDisplayListHead++, (uintptr_t)D_0D005AE0, 4, 0);
gSPDisplayList(gDisplayListHead++, (Gfx*)common_rectangle_display);
gSPVertex(gDisplayListHead++, (uintptr_t) D_0D005AE0, 4, 0);
gSPDisplayList(gDisplayListHead++, (Gfx*) common_rectangle_display);
}
void StarEmitter::func_80077428(s32 objectIndex) {

View File

@ -1,6 +1,3 @@
#ifndef GCC
#define gRaceState_AS_U16
#endif
#include <libultraship.h>
#include <libultra/vi.h>
#include <libultra/os.h>
@ -119,7 +116,7 @@ u8 gControllerBits;
CollisionGrid gCollisionGrid[1024];
u16 gNumActors;
u16 gMatrixObjectCount;
s32 gTickLogic; // Tick game physics at 60fps
s32 gTickLogic; // Tick game physics at 60fps
s32 gTickVisuals; // Tick animations at 30fps
s32 gTickGame;
f32 D_80150118;
@ -179,7 +176,7 @@ OSMesgQueue gPIMesgQueue;
s32 gGamestate = 0xFFFF;
// gRaceState is externed as an s32 in other files. D_800DC514 is only used in main.c, likely a developer mistake.
u16 gRaceState = RACE_INIT;
s32 gRaceState = RACE_INIT;
u16 D_800DC514 = 0;
u16 creditsRenderMode = 0; // Renders the whole track. Displays red if used in normal race mode.
u16 gDemoMode = DEMO_MODE_INACTIVE;
@ -648,8 +645,8 @@ void calculate_updaterate(void) {
static u32 remainder = 0;
static u32 logicAccumulator = 0;
static u32 visualsAccumulator = 0;
static u32 frameCounter = 0; // For tracking frames for logic updates
u32 now = SDL_GetTicks(); // Replaces osGetTime()
static u32 frameCounter = 0; // For tracking frames for logic updates
u32 now = SDL_GetTicks(); // Replaces osGetTime()
u32 frameRate = 0;
s32 total;
@ -673,9 +670,9 @@ void calculate_updaterate(void) {
// Avoid division by zero
if (total > 0) {
// Calculate approximate frame rate (milliseconds per frame)
frameRate = 1000 / total; // Frame rate in frames per second
frameRate = 1000 / total; // Frame rate in frames per second
} else {
frameRate = targetFPS; // Fallback to target FPS
frameRate = targetFPS; // Fallback to target FPS
}
// Default both to no updates
@ -683,13 +680,13 @@ void calculate_updaterate(void) {
gTickVisuals = 0;
// Calculate the update rates based on target FPS
s32 logicUpdateInterval = 1000 / 60; // Time in ms between logic updates
s32 logicUpdateInterval = 1000 / 60; // Time in ms between logic updates
s32 visualsUpdateInterval = 1000 / 30; // 30 FPS for visuals
// Accumulate time for logic updates
// Accumulate time for logic updates
logicAccumulator += total;
if (logicAccumulator >= logicUpdateInterval) {
logicAccumulator -= logicUpdateInterval; // Subtract full interval
logicAccumulator -= logicUpdateInterval; // Subtract full interval
if (targetFPS < 60) {
gTickLogic = 2;
} else {
@ -698,8 +695,8 @@ void calculate_updaterate(void) {
}
// Visual updates (based on 30 FPS equivalent)
visualsAccumulator += total; // Increment for each frame
if (visualsAccumulator >= visualsUpdateInterval) { // Check if it's time to update visuals
visualsAccumulator += total; // Increment for each frame
if (visualsAccumulator >= visualsUpdateInterval) { // Check if it's time to update visuals
visualsAccumulator -= visualsUpdateInterval;
// gTickVisuals <-- Goes here to use the native 60fps system
}
@ -711,28 +708,26 @@ void display_debug_info(void) {
if (!gEnableDebugMode) {
D_800DC514 = false;
} else if (D_800DC514) {
if ((gControllerOne->buttonPressed & R_TRIG) &&
(gControllerOne->button & A_BUTTON) &&
if ((gControllerOne->buttonPressed & R_TRIG) && (gControllerOne->button & A_BUTTON) &&
(gControllerOne->button & B_BUTTON)) {
D_800DC514 = false;
}
rotY = camera1->rot[1];
gDebugPathCount = D_800DC5EC->pathCounter;
if (rotY < 0x2000) {
func_80057A50(40, 100, "SOUTH ", gDebugPathCount);
} else if (rotY < 0x6000) {
func_80057A50(40, 100, "EAST ", gDebugPathCount);
} else if (rotY < 0xA000) {
func_80057A50(40, 100, "NORTH ", gDebugPathCount);
} else if (rotY < 0xE000) {
func_80057A50(40, 100, "WEST ", gDebugPathCount);
} else {
func_80057A50(40, 100, "SOUTH ", gDebugPathCount);
}
if (rotY < 0x2000) {
func_80057A50(40, 100, "SOUTH ", gDebugPathCount);
} else if (rotY < 0x6000) {
func_80057A50(40, 100, "EAST ", gDebugPathCount);
} else if (rotY < 0xA000) {
func_80057A50(40, 100, "NORTH ", gDebugPathCount);
} else if (rotY < 0xE000) {
func_80057A50(40, 100, "WEST ", gDebugPathCount);
} else {
func_80057A50(40, 100, "SOUTH ", gDebugPathCount);
}
} else if ((gControllerOne->buttonPressed & L_TRIG) &&
(gControllerOne->button & A_BUTTON) &&
} else if ((gControllerOne->buttonPressed & L_TRIG) && (gControllerOne->button & A_BUTTON) &&
(gControllerOne->button & B_BUTTON)) {
D_800DC514 = true;
}
@ -742,13 +737,11 @@ void display_debug_info(void) {
} else {
if (gEnableResourceMeters) {
resource_display();
if (!(gControllerOne->button & L_TRIG) &&
(gControllerOne->button & R_TRIG) &&
(gControllerOne->buttonPressed & B_BUTTON)) {
if (!(gControllerOne->button & L_TRIG) && (gControllerOne->button & R_TRIG) &&
(gControllerOne->buttonPressed & B_BUTTON)) {
gEnableResourceMeters = 0;
}
} else if (!(gControllerOne->button & L_TRIG) &&
(gControllerOne->button & R_TRIG) &&
} else if (!(gControllerOne->button & L_TRIG) && (gControllerOne->button & R_TRIG) &&
(gControllerOne->buttonPressed & B_BUTTON)) {
gEnableResourceMeters = 1;
}
@ -866,7 +859,7 @@ void race_logic_loop(void) {
select_framebuffer();
}
switch(gActiveScreenMode) {
switch (gActiveScreenMode) {
case SCREEN_MODE_1P:
render_screens(RENDER_SCREEN_MODE_1P_PLAYER_ONE, 0, 0);
break;
@ -1300,9 +1293,9 @@ void thread5_iteration(void) {
FB_CreateFramebuffers();
read_controllers();
game_state_handler();
//call_render_hook();
// call_render_hook();
end_master_display_list();
display_and_vsync();
}

View File

@ -207,15 +207,8 @@ extern OSMesg gPIMesgBuf[];
extern OSMesgQueue gPIMesgQueue;
void race_logic_loop(void);
extern s32 gGamestate;
#ifndef gRaceState_AS_U16
// Prevent overlapping writes in gcc
// Whether gRaceState was intended to be a separate variable in main.c from the rest of the game is unknown
#ifdef GCC
extern u16 gRaceState;
#else
extern s32 gRaceState;
#endif
#endif
extern u16 D_800DC514;
extern u16 creditsRenderMode;

View File

@ -904,7 +904,7 @@ s32 mtxf_set_matrix_gObjectList(s32 objectIndex, Mat4 transformMatrix) {
transformMatrix[3][3] = 1.0f;
// Search all recorded objects for the one we're drawing
for (int i = 0; i < OBJECT_LIST_SIZE; i++) {
for (size_t i = 0; i < OBJECT_LIST_SIZE; i++) {
if (objectIndex == prevObject2[i].objectIndex) {
// Coincidence!
// Skip drawing the object this frame if it warped to the other side of the screen

File diff suppressed because it is too large Load Diff

View File

@ -445,8 +445,6 @@ MenuTexture* func_8009A944(struct_8018DEE0_entry*, s32);
void func_8009A9FC(s32, s32, u32, s32);
void func_8009AB7C(s32);
void func_8009AD78(s32, s32);
void convert_img_to_greyscale(s32, u32);
void adjust_img_colour(s32, s32, s32, s32, s32);
u16* func_8009B8C4(u64*);
void func_8009B938(void);
void func_8009B954(MenuTexture*);
@ -463,8 +461,8 @@ Gfx* func_8009C708(Gfx*, struct_8018DEE0_entry*, s32, s32, s32, s32);
void func_8009C918(void);
void func_8009CA2C(void);
void func_8009CA6C(s32);
void func_8009CBE4(s32, s32, s32);
void func_8009CDDC(s32, s32);
void draw_fade_in(s32, s32, s32);
void draw_black_fade_in(s32, s32);
void func_8009CDFC(s32, s32);
void func_8009CE1C(void);
void func_8009CE64(s32);
@ -689,9 +687,9 @@ extern Gfx* sGfxPtr;
extern s32 gNumD_8018E768Entries;
extern struct_8018E768_entry D_8018E768[D_8018E768_SIZE];
extern s32 gCycleFlashMenu;
extern s8 D_8018E7AC[];
extern u32 D_8018E7B8[];
extern u32 D_8018E7D0[];
extern s8 gTransitionType[];
extern u32 gTransitionDuration[];
extern u32 gCurrentTransitionTime[];
extern struct UnkStruct_8018E7E8 D_8018E7E8[D_8018E7E8_SIZE];
extern struct UnkStruct_8018E7E8 D_8018E810[D_8018E810_SIZE];
extern s8 gTextColor;
@ -733,7 +731,7 @@ extern Unk_D_800E70A0 D_800E7458[];
extern Unk_D_800E70A0 D_800E7480[];
extern RGBA16 D_800E74A8[];
extern RGBA16 D_800E74D0[];
extern RGBA16 D_800E74E8[];
extern RGBA16 gBackgroundColor[];
extern const s16 gGlyphDisplayWidth[];
extern char* gCupNames[];
extern const s8 D_800EFD64[];

View File

@ -42,10 +42,11 @@ s8 gScreenModeListIndex; // 0-4 index, selects a screen mode in sScreenModePlaye
u8 gSoundMode;
s8 gPlayerCount;
s8 gVersusResultCursorSelection; // 4 options indexed (10-13), gets set when selecting an option
s8 gTimeTrialsResultCursorSelection; // 5 options indexed (5-9), gets set when selecting an option (excluding Save Ghost)
s8 gTimeTrialsResultCursorSelection; // 5 options indexed (5-9), gets set when selecting an option (excluding Save
// Ghost)
s8 gBattleResultCursorSelection; // 4 options indexed (10-13), gets set when selecting an option
s8 gTimeTrialDataCourseIndex;
s8 gCourseRecordsMenuSelection; // Used for selecting an option in course record data
s8 gCourseRecordsMenuSelection; // Used for selecting an option in course record data
s8 gCourseRecordsSubMenuSelection; // Used for erase records and ghosts (Quit - Erase)
s8 gDebugGotoScene;
bool gGhostPlayerInit;
@ -87,13 +88,9 @@ u32 sVIGammaOffDitherOn = (OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON);
/** Rodata **/
// Sets the actual screen mode based on values set in sScreenModePlayerCount
const s8 sScreenModePlayerTable[] = {
SCREEN_MODE_1P,
SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL,
SCREEN_MODE_2P_SPLITSCREEN_VERTICAL,
SCREEN_MODE_3P_4P_SPLITSCREEN,
SCREEN_MODE_3P_4P_SPLITSCREEN
};
const s8 sScreenModePlayerTable[] = { SCREEN_MODE_1P, SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL,
SCREEN_MODE_2P_SPLITSCREEN_VERTICAL, SCREEN_MODE_3P_4P_SPLITSCREEN,
SCREEN_MODE_3P_4P_SPLITSCREEN };
// Sets how many players can load on each screen mode set in sScreenModePlayerTable
const s8 sScreenModePlayerCount[] = { 1, 2, 2, 3, 4 };
@ -439,7 +436,8 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
}
case SUB_MENU_COPY_PAK_FROM_GHOST1_1P:
case SUB_MENU_COPY_PAK_FROM_GHOST2_1P: {
if ((btnAndStick & D_JPAD) && (gSubMenuSelection < SUB_MENU_COPY_PAK_FROM_GHOST_MAX) && (sp30[PLAYER_TWO].ghostDataSaved)) {
if ((btnAndStick & D_JPAD) && (gSubMenuSelection < SUB_MENU_COPY_PAK_FROM_GHOST_MAX) &&
(sp30[PLAYER_TWO].ghostDataSaved)) {
gSubMenuSelection += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->paramf < 4.2) {
@ -447,7 +445,8 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
}
sp38->subState = 1;
}
if ((btnAndStick & U_JPAD) && (gSubMenuSelection > SUB_MENU_COPY_PAK_FROM_GHOST_MIN) && sp30[PLAYER_ONE].ghostDataSaved) {
if ((btnAndStick & U_JPAD) && (gSubMenuSelection > SUB_MENU_COPY_PAK_FROM_GHOST_MIN) &&
sp30[PLAYER_ONE].ghostDataSaved) {
gSubMenuSelection -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->paramf < 4.2) {
@ -462,7 +461,8 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
}
if (btnAndStick & A_BUTTON) {
sp38->param2 = gSubMenuSelection - SUB_MENU_COPY_PAK_FROM_GHOST_MIN;
if (sp30[sp38->param2].courseIndex == D_8018EE10[PLAYER_TWO].courseIndex && D_8018EE10[PLAYER_TWO].ghostDataSaved) {
if (sp30[sp38->param2].courseIndex == D_8018EE10[PLAYER_TWO].courseIndex &&
D_8018EE10[PLAYER_TWO].ghostDataSaved) {
gSubMenuSelection = SUB_MENU_COPY_PAK_TO_GHOST2_2P;
} else {
gSubMenuSelection = SUB_MENU_COPY_PAK_TO_GHOST1_2P;
@ -474,7 +474,8 @@ void options_menu_act(struct Controller* controller, u16 controllerIdx) {
case SUB_MENU_COPY_PAK_TO_GHOST1_2P:
case SUB_MENU_COPY_PAK_TO_GHOST2_2P: {
// bit of a fake match, but if it works it works?
if ((sp30[sp38->param2].courseIndex != ((0, (D_8018EE10 + (gSubMenuSelection - SUB_MENU_COPY_PAK_TO_GHOST_MIN))->courseIndex))) ||
if ((sp30[sp38->param2].courseIndex !=
((0, (D_8018EE10 + (gSubMenuSelection - SUB_MENU_COPY_PAK_TO_GHOST_MIN))->courseIndex))) ||
((D_8018EE10 + (gSubMenuSelection - SUB_MENU_COPY_PAK_TO_GHOST_MIN))->ghostDataSaved == 0)) {
if ((btnAndStick & D_JPAD) && (gSubMenuSelection < SUB_MENU_COPY_PAK_TO_GHOST_MAX)) {
gSubMenuSelection += 1;
@ -1428,11 +1429,13 @@ void main_menu_act(struct Controller* controller, u16 controllerIdx) {
if (btnAndStick & D_JPAD) {
cursorMoved = false;
if (has_unlocked_extra_mode()) {
if (subMode < sGameModePlayerColumnExtra[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
if (subMode <
sGameModePlayerColumnExtra[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
cursorMoved = true;
}
} else {
if (subMode < sGameModePlayerColumnDefault[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
if (subMode <
sGameModePlayerColumnDefault[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
cursorMoved = true;
}
}
@ -1747,14 +1750,14 @@ void course_select_menu_act(struct Controller* controller, u16 controllerIdx) {
if ((btnAndStick & R_JPAD) != 0) {
sTempCupSelection = WorldNextCup();
//++gCupSelection;
//reset_cycle_flash_menu();
//play_sound2(SOUND_MENU_CURSOR_MOVE);
// reset_cycle_flash_menu();
// play_sound2(SOUND_MENU_CURSOR_MOVE);
}
if (((btnAndStick & L_JPAD) != 0)) {
sTempCupSelection = WorldPreviousCup();
//--gCupSelection;
//reset_cycle_flash_menu();
//play_sound2(SOUND_MENU_CURSOR_MOVE);
// reset_cycle_flash_menu();
// play_sound2(SOUND_MENU_CURSOR_MOVE);
}
D_800DC540 = GetCupIndex();
@ -1814,7 +1817,8 @@ void course_select_menu_act(struct Controller* controller, u16 controllerIdx) {
}
break;
case SUB_MENU_MAP_SELECT_OK:
if ((controllerIdx == PLAYER_ONE) && ((++gMenuTimingCounter == 0x3C) || ((gMenuTimingCounter % 300) == 0))) {
if ((controllerIdx == PLAYER_ONE) &&
((++gMenuTimingCounter == 0x3C) || ((gMenuTimingCounter % 300) == 0))) {
play_sound2(SOUND_MENU_OK);
}
@ -2062,7 +2066,8 @@ void set_sound_mode(void) {
* interacted while a fade transition is active
*/
bool is_screen_being_faded(void) {
if ((D_8018E7AC[4] == 2) || (D_8018E7AC[4] == 3) || (D_8018E7AC[4] == 4) || (D_8018E7AC[4] == 7)) {
if ((gTransitionType[4] == 2) || (gTransitionType[4] == 3) || (gTransitionType[4] == 4) ||
(gTransitionType[4] == 7)) {
return true;
}
return false;

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