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

This commit is contained in:
Thomas Rohloff
2025-07-19 11:32:15 +02:00
188 changed files with 12721 additions and 8316 deletions
+1 -2
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
+2
View File
@@ -10,6 +10,8 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
submodules: recursive
- name: Update machine
run: sudo apt update
+3 -1
View File
@@ -10,6 +10,8 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
submodules: recursive
- name: Install dependencies
run: brew install ninja cmake
@@ -24,7 +26,7 @@ jobs:
- name: Create Package
run: |
mkdir spaghetti-release
mv build-cmake/spaghetti spaghetti-release/
mv build-cmake/Spaghettify spaghetti-release/
- name: Publish packaged artifacts
uses: actions/upload-artifact@v4
with:
+42
View File
@@ -50,6 +50,8 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
submodules: recursive
- name: Build
run: |
@@ -80,6 +82,8 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
submodules: recursive
- name: Install dependencies
run: brew install ninja cmake
@@ -116,6 +120,8 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
submodules: recursive
- name: Update machine
run: sudo apt update
@@ -205,6 +211,8 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
submodules: recursive
- name: Update machine
run: sudo apt update
@@ -300,6 +308,29 @@ jobs:
yamls
gamecontrollerdb.txt
build-linux-docker:
needs: generate-port-o2r
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
submodules: recursive
- name: Docker caching
uses: ScribeMD/docker-cache@0.5.0
id: cache
continue-on-error: true
with:
key: sk-docker-cache-${{ hashFiles('Dockerfile') }}
- name: Build docker image
if: steps.cache.outputs.cache-hit != 'true'
run: docker build . -t spaghetti
- name: Confiure
run: docker run --rm -v ${PWD}:/project spaghetti cmake -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE=Release
- name: Build spaghetti
run: docker run --rm -v ${PWD}:/project spaghetti cmake --build build-cmake --config Release -j$(nproc)
build-switch:
needs: generate-port-o2r
runs-on: ubuntu-latest
@@ -308,6 +339,8 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
submodules: recursive
- name: Install dependencies
run: |
@@ -319,6 +352,15 @@ jobs:
git -C libultraship checkout nx/main-nx
wget https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-linux-x86_64.sh -O /tmp/cmake.sh
sudo sh /tmp/cmake.sh --prefix=/usr/local/ --exclude-subdir
wget https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz
tar -xzf 10.0.0.tar.gz
cd tinyxml2-10.0.0
mkdir build
cd build
cmake -H.. -B. -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/Switch.cmake
make
sudo make install
cd ../..
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://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/master/gamecontrollerdb.txt
+3 -1
View File
@@ -10,6 +10,8 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
submodules: recursive
- name: Build
run: |
@@ -20,4 +22,4 @@ jobs:
with:
name: spaghetti-windows
path: ./build/x64/Debug
retention-days: 1
retention-days: 1
+1 -2
View File
@@ -106,11 +106,10 @@ mingw64/
!tools/ido-recomp/*/*
# models
*.blend
models/**.blend
# torch
torch.hash.yml
build*
.idea
# the game
+40 -9
View File
@@ -11,6 +11,36 @@ set(NATO_PHONETIC_ALPHABET
"Xray" "Yankee" "Zulu"
)
execute_process(
COMMAND git describe --tags
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE PROJECT_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if (DEFINED PROJECT_VERSION AND NOT "${PROJECT_VERSION}" STREQUAL "")
string(REPLACE "-" ";" PROJECT_VERSION_LIST "${PROJECT_VERSION}")
list(GET PROJECT_VERSION_LIST 0 PROJECT_VERSION_PATCH)
string(REPLACE "." ";" PROJECT_VERSION_LIST "${PROJECT_VERSION_PATCH}")
list(LENGTH PROJECT_VERSION_LIST PROJECT_VERSION_LIST_LENGTH)
if (${PROJECT_VERSION_LIST_LENGTH} LESS 3)
set(PROJECT_VERSION_PATCH 0)
else()
list(GET PROJECT_VERSION_LIST 2 PROJECT_VERSION_PATCH)
endif()
else()
set(PROJECT_VERSION "Unknown")
execute_process(
COMMAND git log --pretty=format:%h -1
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE PROJECT_VERSION_PATCH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if (DEFINED PROJECT_VERSION_PATCH AND NOT "${PROJECT_VERSION_PATCH}" STREQUAL "")
set(PROJECT_VERSION "${PROJECT_VERSION}-${PROJECT_VERSION_PATCH}")
endif()
set(PROJECT_VERSION_PATCH 0)
endif()
# Get the patch version number from the project version
math(EXPR PATCH_INDEX "${PROJECT_VERSION_PATCH}")
@@ -20,6 +50,8 @@ list(GET NATO_PHONETIC_ALPHABET ${PATCH_INDEX} PROJECT_PATCH_WORD)
set(PROJECT_BUILD_NAME "Alfredo ${PROJECT_PATCH_WORD}" CACHE STRING "" FORCE)
set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "" FORCE)
message("Spaghetti Kart version: ${PROJECT_VERSION} Alfredo ${PROJECT_PATCH_WORD}")
if(APPLE)
enable_language(OBJCXX)
endif()
@@ -35,9 +67,6 @@ set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use")
set(CMAKE_C_STANDARD 11 CACHE STRING "The C standard to use")
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Spaghettify)
set(PROJECT_TEAM "MegaMech")
set(PROJECT_VERSION_MAJOR 1)
set(PROJECT_VERSION_MINOR 0)
set(PROJECT_VERSION_PATCH 0)
#add_compile_options(-fsanitize=address)
#add_link_options(-fsanitize=address)
@@ -58,10 +87,8 @@ set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
endif()
if(NOT EXISTS ${CMAKE_BINARY_DIR}/config.yml)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/config.yml" "${CMAKE_BINARY_DIR}/config.yml")
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/yamls/" "${CMAKE_BINARY_DIR}/yamls/")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/config.yml" "${CMAKE_BINARY_DIR}/config.yml")
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/yamls/" "${CMAKE_BINARY_DIR}/yamls/")
if (MSVC)
set(CPP "${CMAKE_C_COMPILER}" "/EP")
@@ -150,6 +177,7 @@ add_compile_definitions(
NON_MATCHING=1
NON_EQUIVALENT=1
AVOID_UB=1
SPAGHETTI_VERSION="${PROJECT_VERSION}"
)
# Find necessary libraries
@@ -321,6 +349,10 @@ include_directories(${STB_DIR})
set(EXCLUDE_MPQ_SUPPORT TRUE CACHE BOOL "")
add_compile_definitions(EXCLUDE_MPQ_SUPPORT)
if(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
find_package(SDL2)
endif()
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/src
@@ -422,7 +454,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
"Vorbis::vorbisfile"
)
elseif(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
find_package(SDL2)
set(ADDITIONAL_LIBRARY_DEPENDENCIES
-lglad
SDL2::SDL2
@@ -478,7 +509,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch")
nx_generate_nacp(${PROJECT_NAME}.nacp
NAME "${PROJECT_NAME}"
AUTHOR "${PROJECT_TEAM}"
VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
VERSION "${PROJECT_VERSION}"
)
nx_create_nro(${PROJECT_NAME}
+64
View File
@@ -0,0 +1,64 @@
FROM ubuntu:22.04
ENV DOCKER_CMAKE_VERSION="4.0.3"
# Install dependencies
RUN apt-get update -y && apt-get -y upgrade && apt-get -y install gcc g++ git cmake ninja-build lsb-release libsdl2-dev libsdl2-net-dev libpng-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev libogg-dev libvorbis-dev wget file
# Install libultraship compatible cmake
# This is based on https://askubuntu.com/questions/829310/how-to-upgrade-cmake-in-ubuntu
RUN apt-get remove -y cmake && \
wget https://github.com/Kitware/CMake/releases/download/v4.0.3/cmake-${DOCKER_CMAKE_VERSION}-linux-x86_64.sh && \
chmod +x cmake-${DOCKER_CMAKE_VERSION}-linux-x86_64.sh && \
./cmake-${DOCKER_CMAKE_VERSION}-linux-x86_64.sh --prefix=/opt/ --include-subdir --skip-license && \
ln -s /opt/cmake-${DOCKER_CMAKE_VERSION}-linux-x86_64/bin/* /usr/bin && \
rm cmake-${DOCKER_CMAKE_VERSION}-linux-x86_64.sh
# Install latest SDL
RUN wget https://www.libsdl.org/release/SDL2-2.30.3.tar.gz && \
tar -xzf SDL2-2.30.3.tar.gz && \
cd SDL2-2.30.3 && \
./configure --enable-hidapi-libusb && \
make -j$(nproc) && \
make install && \
cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/ && \
cd .. && \
rm -rf SDL2-2.30.3.tar.gz SDL2-2.30.3
# Install latest SDL_net
RUN wget https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.2.0.tar.gz && \
tar -xzf SDL2_net-2.2.0.tar.gz && \
cd SDL2_net-2.2.0 && \
./configure && \
make -j$(nproc) && \
make install && \
cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/ && \
cd .. && \
rm -rf SDL2_net-2.2.0.tar.gz SDL2_net-2.2.0
# Install latest tinyxml2
RUN wget https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz && \
tar -xzf 10.0.0.tar.gz && \
cd tinyxml2-10.0.0 && \
mkdir -p build && \
cd build && \
cmake .. && \
make -j$(nproc) && \
make install && \
cd ../.. && \
rm -rf 10.0.0.tar.gz tinyxml2-10.0.0
# Install libzip without crypto
RUN wget https://github.com/nih-at/libzip/releases/download/v1.10.1/libzip-1.10.1.tar.gz && \
tar -xzf libzip-1.10.1.tar.gz && \
cd libzip-1.10.1 && \
mkdir -p build && \
cd build && \
cmake .. -DENABLE_COMMONCRYPTO=OFF -DENABLE_GNUTLS=OFF -DENABLE_MBEDTLS=OFF -DENABLE_OPENSSL=OFF && \
make -j$(nproc) && \
make install & \
# cp -av /usr/local/lib/libzip* /lib/x86_64-linux-gnu/ && \
cd ../.. && \
rm -rf libzip-1.10.1.tar.gz libzip-1.10.1
WORKDIR /project
+2931
View File
File diff suppressed because it is too large Load Diff
+10 -7
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)
-1068
View File
File diff suppressed because it is too large Load Diff
+8 -1
View File
@@ -300,7 +300,14 @@ float4 PSMain(PSInput input, float4 screenSpace : SV_Position) : SV_TARGET {
@end
@if(o_grayscale)
float intensity = (texel.r + texel.g + texel.b) / 3.0;
float p = float(0x19);
float r = texel.r*float(0x55);
float g = texel.g*float(0x4B);
float b = texel.b*float(0x5F);
float intensity = (r+g+b) / 256.0;
intensity *= 255.0/256.0;
intensity = pow(intensity, (p * 1.5 / 256.0) + 0.25);
intensity *= 31.0/32.0;
float3 new_texel = input.grayscale.rgb * intensity;
texel.rgb = lerp(texel.rgb, new_texel, input.grayscale.a);
@end
+8 -1
View File
@@ -260,7 +260,14 @@ fragment float4 fragmentShader(ProjectedVertex in [[stage_in]], constant FrameUn
@end
@if(o_grayscale)
float intensity = (texel.x + texel.y + texel.z) / 3.0;
float p = float(0x19);
float r = texel.r*float(0x55);
float g = texel.g*float(0x4B);
float b = texel.b*float(0x5F);
float intensity = (r+g+b) / 256.0;
intensity *= 255.0/256.0;
intensity = pow(intensity, (p * 1.5 / 256.0) + 0.25);
intensity *= 31.0/32.0;
float3 new_texel = in.grayscale.xyz * intensity;
texel.xyz = mix(texel.xyz, new_texel, in.grayscale.w);
@end
+8 -1
View File
@@ -188,7 +188,14 @@ void main() {
@end
@if(o_grayscale)
float intensity = (texel.r + texel.g + texel.b) / 3.0;
float p = float(0x19);
float r = texel.r*float(0x55);
float g = texel.g*float(0x4B);
float b = texel.b*float(0x5F);
float intensity = (r+g+b) / 256.0;
intensity *= 255.0/256.0;
intensity = pow(intensity, (p * 1.5 / 256.0) + 0.25);
intensity *= 31.0/32.0;
vec3 new_texel = vGrayscaleColor.rgb * intensity;
texel.rgb = mix(texel.rgb, new_texel, vGrayscaleColor.a);
@end
+37 -16
View File
@@ -1,4 +1,4 @@
# Building Starship
# Building SpagettiKart
## Windows
@@ -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
@@ -79,8 +79,15 @@ C:\Program Files\CMake\bin\cmake.exe --build build-cmake --target clean
```
## Linux
### Install dependencies
#### Debian/Ubuntu
### Clone the repo and enter the directory
```sh
git clone https://github.com/HarbourMasters/SpaghettiKart.git
cd SpaghettiKart
```
### Manual
#### Install dependencies
##### Debian/Ubuntu
```sh
# using gcc
apt-get install gcc g++ git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev libogg-dev libvorbis-dev
@@ -88,7 +95,7 @@ apt-get install gcc g++ git cmake ninja-build lsb-release libsdl2-dev libpng-dev
# or using clang
apt-get install clang git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev libogg-dev libvorbis-dev
```
#### Arch
##### Arch
```sh
# using gcc
pacman -S gcc git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost libogg libvorbis
@@ -96,7 +103,7 @@ pacman -S gcc git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyx
# or using clang
pacman -S clang git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost libogg libvorbis
```
#### Fedora
##### Fedora
```sh
# using gcc
dnf install gcc gcc-c++ git cmake ninja-build lsb_release SDL2-devel SDL2_net-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel boost-devel libogg-devel libvorbis-devel
@@ -104,7 +111,7 @@ dnf install gcc gcc-c++ git cmake ninja-build lsb_release SDL2-devel SDL2_net-de
# or using clang
dnf install clang git cmake ninja-build lsb_release SDL2-devel SDL2_net-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel boost-devel libogg-devel libvorbis-devel
```
#### openSUSE
##### openSUSE
```sh
# using gcc
zypper in gcc gcc-c++ git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel libogg-devel libvorbis-devel
@@ -113,15 +120,11 @@ zypper in gcc gcc-c++ git cmake ninja SDL2-devel libpng16-devel libzip-devel lib
zypper in clang libstdc++-devel git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel libogg-devel libvorbis-devel
```
### Build
#### Build
_Note: If you're using Visual Studio Code, the [CMake Tools plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
```bash
# Clone the repo and enter the directory
git clone https://github.com/HarbourMasters/SpaghettiKart.git
cd SpaghettiKart
```sh
# Clone the submodules
git submodule update --init
@@ -139,11 +142,29 @@ cmake --build build-cmake
# 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
#### Create the docker container
```sh
docker build . -t spaghetti
```
#### Configure the project
```sh
docker run --rm -v ${PWD}:/project spaghetti cmake -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE=Release
```
#### Compile the project
```sh
docker run --rm -v ${PWD}:/project spaghetti cmake --build build-cmake --config Release -j$(nproc)
```
### Generate a distributable
After compiling the project you can generate a distributable by running of the following:
```bash
```sh
# Go to build folder
cd build-cmake
# Generate
@@ -160,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!**
@@ -185,7 +206,7 @@ cmake --build build-cmake --target ExtractAssets
cmake --build build-cmake
# Now you can run the executable file:
./build-cmake/mm/spaghetti-macos
./build/Spaghettify
# To develop the project open the repository in VSCode (or your preferred editor)
```
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

+54
View File
@@ -0,0 +1,54 @@
# Custom characters
Custom characters can only replace existing characters for now.
1. Download the Kart Setup blender file included with this post(Slightly altered .blender file provided by the Overkart server with some adjustments to the animation to export for Spaghetti, thanks again Andrat for permission to post this and a huge thanks to the Overkart 64 community in general.) [Kart Setup.blend](MK64_Spaghetti_Adjusted_Kart_Setup.blend)
2. Replace Mario with your character, and handle weights of the skeleton as needed to make them move properly.
3. Set the path a valid one(the included path is what Andrat had setup for his original kart setup) but make sure the name matches a listed kart name below and ends with ###, this will ensure it is 3 digits(example path/to/export/toad_kart/toad_kart_frame###)
4. Render the animation at whatever power of 2 of 64x64 you want(64x64, 128x128, 256x256 and so on),
5. In the above toad example, zip up the toad_kart folder and rename it to a .o2r file.
6. Put it in mods folder and run.
# Examples for all characters:
mario_kart/mario_kart_frame###
luigi_kart/luigi_kart_frame###
peach_kart/peach_kart_frame###
wario_kart/wario_kart_frame###
toad_kart/toad_kart_frame###
donkeykong_kart/donkeykong_kart_frame###
bowser_kart/bowser_kart_frame###
yoshi_kart/yoshi_kart_frame###
# Additional Files
Some other files to look out for(still using toad as a example)
placement icon = common_data/common_texture_portrait_toad.png Original frame is 32x32
player selection frames = player_selection/toad_face_00.png ~ toad_face_16.png Original frames is 64x64 (note that Donkeykong uses donkey_kong here instead)
player select nameplate = texture_tkmk00/gTextureNameToad.png Original frame is 64x12 (note that Donkeykong uses DK here instead)
## Tips
### Change Viewport Render Settings
Assuming your using the overkart setup kart.
In object mode, select View -> Cameras -> Active Camera
Set your render resolution and path as shown in the image below
Then render your animation by selecting View -> Viewport Render Animation
![Viewport Render Settings](change_viewport.png)
## Tools To Help
* There is [Racer Ready-Up](https://vinievex.itch.io/racer-ready-up) which is a tool to help you create custom characters for SpaghettiKart.
## Future plans
* Support for custom characters that do not replace existing ones.
* Support 3d models for characters.
+21 -2
View File
@@ -1,6 +1,10 @@
# Custom Tracks
Note that this doc is a work-in-progress and has been hastily written to provide a very basic guide to get people started. It is not all encompassing and may be missing important information.
A better manual will be drafted in the future.
This guide is
* Hastily written
* Made for advanced users
* A work-in-progress
This guide is not all encompassing and may be missing important information. A better manual will be drafted in the future.
## Dependencies
* Blender v4.3 (older should work fine too).
@@ -15,7 +19,21 @@ Note that this doc is a work-in-progress and has been hastily written to provide
* Stuff like buildings or walls should be separate meshes to not mess with the collision generator.
* The track/pavement should be a separate mesh from the rest of the scene.
## Materials
* Youtube tutorials discuss how materials work.
* Fast64 often defaults to a CI8 palette texture, always change `Format` to `RGBA-16 bit` or `RGBA-32 bit`
The Colour Index (CI8) format can cause issues if not used correctly. It's easy to confuse this as directly below this box it says `RGBA 16-bit`
Example of incorrect texture format:
<img width="677" height="777" alt="image" src="https://github.com/user-attachments/assets/518bd16e-3d16-43f9-9767-fc73ea2ab5f8" />
Example of correct texture format
<img width="627" height="205" alt="image" src="https://github.com/user-attachments/assets/2cce483b-7fcb-435b-924e-3443e2976e95" />
## Export
* Check `Ignore Textures Restrictions` failing to do so may result in errors
<img width="318" height="315" alt="image" src="https://github.com/user-attachments/assets/60f084d3-aef4-429c-889f-2e2d74473e1a" />
* FAST64 MUST BE SET TO F3DEX MODE (The others *should* work but they don't)
* Select the empty and click the SpaghettiKart and Harbour Masters profiles
@@ -61,6 +79,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
+22
View File
@@ -0,0 +1,22 @@
# Modding
Modding are really early stages so a lot of features are not implemented yet. We don't use Retro and we want to make it as simple as possible to mod the game (so no weird format or obscure tools).
* Textures Pack
* Some texture might not be possible to change yet, but most of them can be changed.
* [link](textures-pack.md)
* Custom Tracks (CT)
* Custom tracks are reserved for advanced users. We plan to simply the process in the future.
* [link](custom-track.md)
* Custom Characters
* Custom characters can only replace existing characters for now. We plan to allow to add new characters in the future.
* [link](custom-characters.md)
* Custom Music
* Custom music are not supported yet. We plan to add support for custom music in the future.
* Scripting
* Add logic to the game are not possible yet but we plan to add support for scripting in the future. We will use [WebAssembly](https://en.wikipedia.org/wiki/WebAssembly) with [component model](https://component-model.bytecodealliance.org/) this will allow you to choose your language (Rust, C, C++, Python, JS, etc.) and compile it to WebAssembly.
* 3D Models For Characters
* Custom 3D models for characters are not supported yet. Put high quality character can be really close of 3d model but easily add a lot of size to the mod. We plan to add support for custom 3D models in the future.
* Custom Sounds
* Custom sounds are not supported yet. We plan to add support for custom sounds in the future.
* Custom Menus
* Custom menus are not supported yet. We plan to add support for custom menus in the future.
+21
View File
@@ -0,0 +1,21 @@
# Texture Pack
To replace textures you should only create a zip file with textures to replace at the same path as mk64.o2r. Only png, jpg and bmp files are supported.
## Example:
You want to change other_textures/logo_mario_kart_64 then you just need to create a zip file with the following structure:
```
textures_pack.zip
└── other_textures
└── logo_mario_kart_64.png
```
## Tools To Help
To extract textures from the game you can use [convert-texture-o2r](https://github.com/coco875/convert-texture-o2r/releases). Just place the `convert-texture-o2r` executable in the same folder as `mk64.o2r` and drag and drop the `mk64.o2r` file on it or run it through command line:
```bash
convert-texture-o2r mk64.o2r
```
This will create a `textures` folder with all the textures extracted from the game.
## Future plans
* Make name more meaningful and uniform. (example: change `texture_69B140`). You can suggest name or make a PR to help rename them/organise them.
* Support dds files.
* move texture in a subfolder.
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once
bool GameEngine_OTRSigCheck(char* imgData);
bool GameEngine_OTRSigCheck(const char* imgData);
#if defined(_WIN32)
#define ALIGN_ASSET(x) __declspec(align(x))
+24
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";
+4
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";
+48
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";
+2
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";
+56
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";
-4
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";
+50
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";
+148
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";
+36
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";
+35 -1
View File
@@ -248,7 +248,7 @@ static const ALIGN_ASSET(2) char d_course_luigi_raceway_unknown_waypoints[] = "_
static const ALIGN_ASSET(2) char d_course_luigi_raceway_track_waypoints[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_track_waypoints";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_vtx_BA90[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_vtx_BA90";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_basket_model_lod2[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_basket_model_lod2";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_unknown_model1[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_unknown_model1";
@@ -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";
@@ -280,42 +282,74 @@ static const ALIGN_ASSET(2) char d_course_luigi_raceway_balloon_rope[] = "__OTR_
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 luigi_raceway_data_seg6_gfx_F588[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F588";
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 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_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";
+12
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";
+10
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";
+58 -42
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";
+3 -3
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";
+33 -3
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";
@@ -186,11 +190,35 @@ static const char* d_course_rainbow_road_static_tluts[] = {
gTLUTRainbowRoadNeonToad,
};
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom1[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom1";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom2[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom2";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom3[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom3";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom4[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom4";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom5[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom5";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario1[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario1";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario2[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario2";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario3[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario3";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario4[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario4";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario5[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario5";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo1[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo1";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo2[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo2";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo3[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo3";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo4[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo4";
static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo5[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo5";
static const ALIGN_ASSET(2) char gTextureRainbowRoadNeonPeach[] = "__OTR__rainbow_road_data/gTextureRainbowRoadNeonPeach";
@@ -216,6 +244,8 @@ static const char* d_course_rainbow_road_static_textures[] = {
gTextureRainbowRoadNeonToad,
};
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_light1[] = "__OTR__rainbow_road_data/d_course_rainbow_road_light1";
static const ALIGN_ASSET(2) char d_course_rainbow_road_sphere[] = "__OTR__rainbow_road_data/d_course_rainbow_road_sphere";
+22
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";
+44
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";
+48 -48
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";
+31 -31
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";
+216
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";
+4
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";
+10
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";
+33 -17
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;
@@ -289,12 +289,12 @@ typedef struct {
/* 0x0070 */ f32 boundingBoxSize;
/* 0x0074 */ f32 unk_074;
/* 0x0078 */ s16 unk_078;
/* 0x007A */ s16 unk_07A;
/* 0x007A */ s16 hopFrameCounter;
/* 0x007C */ s32 unk_07C;
/* 0x0080 */ f32 boostPower;
/* 0x0084 */ f32 unk_084;
/* 0x0088 */ f32 unk_088;
/* 0x008C */ f32 unk_08C;
/* 0x008C */ f32 kartPropulsionStrength;
/* 0x0090 */ f32 unk_090;
/* 0x0094 */ f32 speed;
/* 0x0098 */ f32 unk_098;
@@ -314,13 +314,13 @@ 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;
/* 0x00D4 */ Vec4s unk_0D4;
/* 0x00DC */ s16 boostTimer;
/* 0x00DE */ u16 unk_0DE;
/* 0x00DE */ u16 waterInteractionFlags;
/* 0x00E0 */ s16 unk_0E0;
/* 0x00E2 */ s16 unk_0E2;
/* 0x00E4 */ f32 unk_0E4;
@@ -333,7 +333,7 @@ typedef struct {
/* 0x00FC */ f32 kartFriction;
/* 0x0100 */ f32 kartGravity;
/* 0x0104 */ f32 unk_104;
/* 0x0108 */ f32 unk_108;
/* 0x0108 */ f32 hopVerticalOffset;
/* 0x010C */ s16 unk_10C;
/* 0x010E */ char unk_10E[0x2];
/* 0x0110 */ Collision collision;
@@ -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;
+86 -12
View File
@@ -48,6 +48,27 @@
#define HOLD_ALL_DPAD_AND_C_BUTTONS \
(U_JPAD | L_JPAD | R_JPAD | D_JPAD | U_CBUTTONS | L_CBUTTONS | R_CBUTTONS | D_CBUTTONS)
#define ALL_BUTTONS \
(A_BUTTON | B_BUTTON | L_TRIG | R_TRIG | Z_TRIG | START_BUTTON | U_JPAD | L_JPAD | R_JPAD | D_JPAD | U_CBUTTONS | \
L_CBUTTONS | R_CBUTTONS | D_CBUTTONS)
/**
* Replay controller buttons
* Used for time trial replays (including staff and player ghosts)
* Each entry is converted to a u32 value
* This allows access to the button struct member
*/
#define REPLAY_A_BUTTON (1 << 31) // 0x80000000
#define REPLAY_B_BUTTON (1 << 30) // 0x40000000
#define REPLAY_Z_TRIG (1 << 29) // 0x20000000
#define REPLAY_R_TRIG (1 << 28) // 0x10000000
#define REPLAY_FRAME_COUNTER 0xFF0000
#define REPLAY_CLEAR_FRAME_COUNTER (0xFFFFFFFF & ~REPLAY_FRAME_COUNTER)
#define REPLAY_STICK_Y 0xFF00
#define REPLAY_STICK_X 0xFF
#define REPLAY_FRAME_INCREMENT 0x10000
/**
* @brief Jump to demo mode from the debug menu using L and A
*/
@@ -344,15 +365,56 @@ 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_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
@@ -367,6 +429,18 @@ enum PLACE { FIRST_PLACE, SECOND_PLACE, THIRD_PLACE, FOURTH_PLACE };
#define COLOR_LAVA GPACK_RGB888(0x34, 0x00, 0x00)
#define COLOR_BLACK GPACK_RGB888(0, 0, 0)
/**
* @brief player water interaction flags (player->unk_0DE)
*
*/
#define WATER_NO_INTERACTION 0x0000 // No water interaction
#define WATER_IS_FULLY_SUBMERGED 0x0001 // Kart is completely underwater
#define WATER_IS_PARTIALLY_SUBMERGED 0x0002 // Kart is partially in the water
#define WATER_IN_DEEP_LIQUID_STATE 0x0004 // Persistent flag for being in a deep liquid state?
#define WATER_JUST_ENTERED_DEEP_LIQUID 0x0008 // Momentary flag for the instant of entering deep liquid
/**
*
* Collision mesh flags
@@ -382,9 +456,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
-33
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
@@ -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);
}
+26 -17
View File
@@ -264,23 +264,26 @@ void update_actor_red_blue_shell(struct ShellActor* shell) {
shell->pos[1] = pad7;
}
//! @bug commented out code results in cpus controlling player1 items and other glitches
// According to other code, this whole chunk should not be ran by CPUs
if ((player->type & PLAYER_HUMAN) != 0) {
if (gDemoMode) {
controller = gControllerOne;
} else {
controller = &gControllers[shell->playerId];
}
} else {
controller = gControllerOne;
}
if ((controller->buttonDepressed & Z_TRIG) != 0) {
controller->buttonDepressed &= ~Z_TRIG;
shell->state = RELEASED_SHELL;
if (player->unk_0C0 > 0) {
shell->rotAngle = 0x78E3;
} else {
shell->rotAngle = -0x78E4;
// } else {
// controller = gControllerOne;
// }
if ((controller->buttonDepressed & Z_TRIG) != 0) {
controller->buttonDepressed &= ~Z_TRIG;
shell->state = RELEASED_SHELL;
if (player->unk_0C0 > 0) {
shell->rotAngle = 0x78E3;
} else {
shell->rotAngle = -0x78E4;
}
}
}
break;
@@ -290,9 +293,12 @@ void update_actor_red_blue_shell(struct ShellActor* shell) {
shell->rotAngle -= 0x71C;
if (shell->rotAngle < 0) {
shell->state = MOVING_SHELL;
func_800C9060(shell->playerId, SOUND_ARG_LOAD(0x19, 0x00, 0x80, 0x04));
func_800C90F4(shell->playerId,
(player->characterId * 0x10) + SOUND_ARG_LOAD(0x29, 0x00, 0x80, 0x00));
// Added condition so that CPUs do not make sound on item-use
if ((gPlayers[shell->playerId].type & PLAYER_HUMAN) != 0) {
func_800C9060(shell->playerId, SOUND_ARG_LOAD(0x19, 0x00, 0x80, 0x04));
func_800C90F4(shell->playerId,
(player->characterId * 0x10) + SOUND_ARG_LOAD(0x29, 0x00, 0x80, 0x00));
}
if (pad13 == ACTOR_RED_SHELL) {
add_red_shell_in_unexpired_actor_list(CM_FindActorIndex(shell));
} else {
@@ -304,9 +310,12 @@ void update_actor_red_blue_shell(struct ShellActor* shell) {
shell->rotAngle += 0x71C;
if (shell->rotAngle > 0) {
shell->state = MOVING_SHELL;
func_800C9060(shell->playerId, SOUND_ARG_LOAD(0x19, 0x00, 0x80, 0x04));
func_800C90F4(shell->playerId,
(player->characterId * 0x10) + SOUND_ARG_LOAD(0x29, 0x00, 0x80, 0x00));
// Added condition so that CPUs do not make sound on item-use
if ((gPlayers[shell->playerId].type & PLAYER_HUMAN) != 0) {
func_800C9060(shell->playerId, SOUND_ARG_LOAD(0x19, 0x00, 0x80, 0x04));
func_800C90F4(shell->playerId,
(player->characterId * 0x10) + SOUND_ARG_LOAD(0x29, 0x00, 0x80, 0x00));
}
if (pad13 == ACTOR_RED_SHELL) {
add_red_shell_in_unexpired_actor_list(CM_FindActorIndex(shell));
} else {
+3 -5
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);
}
+1 -1
View File
@@ -58,7 +58,7 @@ void update_actor_kiwano_fruit(struct KiwanoFruit* fruit) {
player->velocity[2] -= temp_f14 * 0.7f;
func_800C9060(player - gPlayerOne, SOUND_ARG_LOAD(0x19, 0x00, 0x70, 0x18));
if (gModeSelection != GRAND_PRIX) {
D_80162DF8 = 1;
gPostTimeTrialReplayCannotSave = 1;
}
}
}
+1 -1
View File
@@ -82,7 +82,7 @@ void render_limb_or_add_mtx(Armature* arg0, s16* arg1, AnimationLimbVector arg2,
for (i = 0; i < 3; i++) {
pos[i] = sOriginalPosAnimation[i] + arg0->pos[i];
}
isNotTheFirst += 1;
isNotTheFirst = 1;
} else {
for (i = 0; i < 3; i++) {
pos[i] = arg0->pos[i];
+5 -5
View File
@@ -593,7 +593,7 @@ void func_800C2474(void) {
gPlayers[var_v0].unk_20C = 0.0f;
gPlayers[var_v0].unk_0C0 = 0;
gPlayers[var_v0].unk_098 = 0.0f;
gPlayers[var_v0].unk_0DE = 0;
gPlayers[var_v0].waterInteractionFlags = WATER_NO_INTERACTION;
D_8018FC10[var_v0][0] = 0x00FF;
D_8018FC10[var_v0][1] = 0;
D_800EA10C[var_v0] = 0;
@@ -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 */
@@ -2689,7 +2689,7 @@ void func_800C76C0(u8 playerId) {
}
void func_800C847C(u8 playerId) {
if ((gPlayers[playerId].unk_0DE & 1) == 1) {
if ((gPlayers[playerId].waterInteractionFlags & WATER_IS_FULLY_SUBMERGED) == WATER_IS_FULLY_SUBMERGED) {
if (D_800E9F74[playerId] == 0) {
if ((s32) D_800EA1C0 < 2) {
func_800C9018(playerId, SOUND_ARG_LOAD(0x01, 0x00, 0xF9, 0x26));
+5 -3
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;
}
+12 -9
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]);
+4 -3
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;
+1 -1
View File
@@ -22,7 +22,7 @@ typedef struct {
} struct_D_802BFB80_4; // size = 0x1000
/*
* In render_player, spawn_players, and staff_ghosts D_802BFB80 is the arraySize8 entry
* In render_player, spawn_players, and replays D_802BFB80 is the arraySize8 entry
* But in menu_items its the arraySize4 entry
* The only way to unify those 2 things is to use a union
*/
+15 -37
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];
@@ -342,17 +342,8 @@ void func_8001CA10(Camera* camera) {
}
void func_8001CA24(Player* player, f32 arg1) {
Camera* camera = &cameras[0];
Camera* camera = &cameras[player - gPlayerOne];
if (player == gPlayerTwo) {
camera += 1;
}
if (player == gPlayerThree) {
camera += 2;
}
if (player == gPlayerFour) {
camera += 3;
}
camera->unk_94.unk_8 = 0;
camera->unk_94.unk_0 = arg1;
}
@@ -548,8 +539,8 @@ void func_8001CCEC(Player* player, Camera* camera, Vec3f arg2, f32* arg3, f32* a
*arg4 = camera->pos[1] + (((y - camera->pos[1]) * 0.15));
}
if ((player->unk_0DE & 1) != 0) {
*arg4 = D_801652A0[index];
if ((player->waterInteractionFlags & WATER_IS_FULLY_SUBMERGED) != 0) {
*arg4 = gPlayerWaterLevel[index];
}
}
@@ -571,7 +562,7 @@ void func_8001D53C(Player* player, Camera* camera, Vec3f arg2, f32* arg3, f32* a
} else {
move_f32_towards(&camera->unk_A0, 0.0f, 0.06f);
}
thing = D_801652A0[arg7];
thing = gPlayerWaterLevel[arg7];
sp68[0] = camera->unk_30[0];
sp68[1] = camera->unk_30[1];
sp68[2] = camera->unk_30[2];
@@ -768,8 +759,8 @@ void func_8001D944(Player* player, Camera* camera, Vec3f arg2, f32* arg3, f32* a
*arg4 = camera->pos[1] + (((y - camera->pos[1]) * 0.15));
}
if ((player->unk_0DE & 1) != 0) {
*arg4 = D_801652A0[index];
if ((player->waterInteractionFlags & WATER_IS_FULLY_SUBMERGED) != 0) {
*arg4 = gPlayerWaterLevel[index];
}
}
@@ -852,7 +843,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 +965,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;
@@ -1049,20 +1040,8 @@ void func_8001EA0C(Camera* camera, Player* player, s8 arg2) {
}
void func_8001EE98(Player* player, Camera* camera, s8 index) {
s32 cameraIndex;
s32 cameraIndex = camera->cameraId;
if (camera == camera1) {
cameraIndex = 0;
}
if (camera == camera2) {
cameraIndex = 1;
}
if (camera == camera3) {
cameraIndex = 2;
}
if (camera == camera4) {
cameraIndex = 3;
}
switch (gModeSelection) {
case GRAND_PRIX:
// clang-format off
@@ -1126,10 +1105,10 @@ void func_8001EE98(Player* player, Camera* camera, s8 index) {
}
if (gIsGamePaused == 0) {
switch (D_80152300[cameraIndex]) {
case 3:
case 3: // end of race
func_8001A588(&D_80152300[cameraIndex], camera, player, index, cameraIndex);
break;
case 1:
case 1: // player camera
if (((player->unk_0CA & 1) == 1) || ((player->unk_0CA & 2) == 2)) {
func_8001E8E8(camera, player, index);
break;
@@ -1137,7 +1116,7 @@ void func_8001EE98(Player* player, Camera* camera, s8 index) {
freecam(camera, player, index); // Runs func_8001E45C when freecam is disabled
//func_8001E45C(camera, player, index);
break;
case 8:
case 8: // Transition start
func_8001E0C4(camera, player, index);
func_8001F87C(cameraIndex);
break;
@@ -1155,9 +1134,9 @@ void func_8001EE98(Player* player, Camera* camera, s8 index) {
void func_8001F394(Player* player, f32* arg1) {
f32 var_f0;
UNUSED s32 pad;
s32 playerIndex;
s32 playerIndex = player - gPlayerOne;
UNUSED s32 pad2;
Camera* camera = &cameras[0];
Camera* camera = &cameras[playerIndex];
if (player == gPlayerOne) {
playerIndex = 0;
@@ -1278,7 +1257,6 @@ void func_8001F394(Player* player, f32* arg1) {
break;
}
*arg1 = var_f0;
camera += playerIndex; // In 500 words or less, please explain why?
camera->unk_B4 = var_f0;
}
+1 -1
View File
@@ -17,7 +17,7 @@
#include "skybox_and_splitscreen.h"
#include "code_8006E9C0.h"
#include "spawn_players.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "render_courses.h"
#include "main.h"
#include "courses/all_course_data.h"
+1052 -954
View File
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -69,12 +69,12 @@ void func_8003E048(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
if (player->collision.orientationVector[1] <= 0.8829f) {
arg3[0] = ((player->unk_206 / 182) * 0xB4);
arg3[2] = (-(player->slopeAccel / 182) * 0xB4);
player_decelerate(player, 4.0f);
player_decelerate_alternative(player, 4.0f);
player->unk_DAC = 0.5f;
if ((player->effects & BOOST_EFFECT) != 0) {
remove_boost_effect(player);
player->currentSpeed /= 2;
player->unk_08C /= 2;
player->kartPropulsionStrength /= 2;
}
} else if ((((player->speed / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) {
arg3[0] = ((player->unk_206 / 182) * 0x32);
@@ -96,13 +96,13 @@ void func_8003E37C(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
arg3[0] = ((player->unk_206 / 182) * 0xB4);
arg3[2] = (-(player->slopeAccel / 182) * 0xB4);
if (((player->speed / 18.0f) * 216.0f) >= 8.0f) {
player_decelerate(player, 5.0f);
player_decelerate_alternative(player, 5.0f);
}
player->unk_DAC = 0.5f;
if ((player->effects & BOOST_EFFECT) != 0) {
remove_boost_effect(player);
player->currentSpeed /= 2;
player->unk_08C /= 2;
player->kartPropulsionStrength /= 2;
}
} else if ((((player->speed / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) {
arg3[0] = ((player->unk_206 / 182) * 0x32);
@@ -123,7 +123,7 @@ void func_8003E6EC(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
if (player->collision.orientationVector[1] <= 0.8829f) {
arg3[0] = ((player->unk_206 / 182) * 0xB4);
arg3[2] = (-(player->slopeAccel / 182) * 0xB4);
player_decelerate(player, 4.0f);
player_decelerate_alternative(player, 4.0f);
func_8003DC40(player);
} else if ((((player->speed / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) {
arg3[0] = ((player->unk_206 / 182) * 0x32);
@@ -144,7 +144,7 @@ void func_8003E9EC(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
if (player->collision.orientationVector[1] <= 0.8357f) {
arg3[0] = ((player->unk_206 / 182) * 0x78);
arg3[2] = (-(player->slopeAccel / 182) * 0xB4);
player_decelerate(player, 4.0f);
player_decelerate_alternative(player, 4.0f);
func_8003DC40(player);
} else {
if ((((player->speed / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) {
@@ -178,7 +178,7 @@ void func_8003EE2C(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
if (player->collision.orientationVector[1] <= 0.8357f) {
arg3[0] = ((player->unk_206 / 182) * 0x78);
arg3[2] = (-(player->slopeAccel / 182) * 0xB4);
player_decelerate(player, 4.0f);
player_decelerate_alternative(player, 4.0f);
func_8003DC40(player);
} else if ((((player->speed / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) {
arg3[0] = ((player->unk_206 / 182) * 0x32);
@@ -202,7 +202,7 @@ void func_8003F138(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4
if (player->collision.orientationVector[1] <= 0.8357f) {
arg3[0] = ((player->unk_206 / 182) * 0xC8);
arg3[2] = (-(player->slopeAccel / 182) * 0xC8);
player_decelerate(player, 4.0f);
player_decelerate_alternative(player, 4.0f);
player->unk_DAC = 0.5f;
arg3[0] = 0;
} else if ((((player->speed / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) {
+1519 -1522
View File
File diff suppressed because it is too large Load Diff
+39 -41
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);
@@ -262,7 +266,7 @@ extern u8** D_800E47A0[];
extern s32 D_800E47DC[];
extern s32 D_800E480C[];
extern f32 D_801652A0[];
extern f32 gPlayerWaterLevel[];
extern s32 D_80165590;
extern s32 D_80165594;
@@ -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
+6 -16
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];
+64 -6
View File
@@ -28,6 +28,7 @@
#include "effects.h"
#include <assets/boo_frames.h>
#include "port/Game.h"
#include "port/Engine.h"
#include "engine/courses/Course.h"
@@ -166,7 +167,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];
}
@@ -197,10 +199,12 @@ void func_8006F008(void) {
// Flip the minimap player markers
if (gIsMirrorMode != 0) {
CM_GetProps()->Minimap.PlayerX = CM_GetProps()->Minimap.Width - CM_GetProps()->Minimap.PlayerX; // gMinimapPlayerX = gMinimapWidth - gMinimapPlayerX
CM_GetProps()->Minimap.PlayerX =
CM_GetProps()->Minimap.Width -
CM_GetProps()->Minimap.PlayerX; // gMinimapPlayerX = gMinimapWidth - gMinimapPlayerX
}
switch(gPlayerCount) {
switch (gPlayerCount) {
case 2:
// Set X coord
if (!IsToadsTurnpike()) {
@@ -265,7 +269,7 @@ void func_8006F8CC(void) {
D_801657F0 = 1;
D_80165800[0] = D_80165800[1] = 0;
}
CM_GetProps()->Minimap.Pos[0].Y = 65;
CM_GetProps()->Minimap.Pos[1].Y = 180;
}
@@ -484,6 +488,49 @@ void init_object_list_index(void) {
// }
}
Vtx cloudvtx[4][4] = { {
{ { { -32, -16, 0 }, 0, { 0, 0 }, { 255, 255, 255, 255 } } },
{ { { 31, -16, 0 }, 0, { 4032, 0 }, { 255, 255, 255, 255 } } },
{ { { 31, 15, 0 }, 0, { 4032, 496 }, { 255, 255, 255, 255 } } },
{ { { -32, 15, 0 }, 0, { 0, 496 }, { 255, 255, 255, 255 } } },
},
{
{ { { -32, -16, 0 }, 0, { 0, 512 }, { 255, 255, 255, 255 } } },
{ { { 31, -16, 0 }, 0, { 4032, 512 }, { 255, 255, 255, 255 } } },
{ { { 31, 15, 0 }, 0, { 4032, 1008 }, { 255, 255, 255, 255 } } },
{ { { -32, 15, 0 }, 0, { 0, 1008 }, { 255, 255, 255, 255 } } },
},
{
{ { { -32, -16, 0 }, 0, { 0, 1024 }, { 255, 255, 255, 255 } } },
{ { { 31, -16, 0 }, 0, { 4032, 1024 }, { 255, 255, 255, 255 } } },
{ { { 31, 15, 0 }, 0, { 4032, 1520 }, { 255, 255, 255, 255 } } },
{ { { -32, 15, 0 }, 0, { 0, 1520 }, { 255, 255, 255, 255 } } },
},
{
{ { { -32, -16, 0 }, 0, { 0, 1536 }, { 255, 255, 255, 255 } } },
{ { { 31, -16, 0 }, 0, { 4032, 1536 }, { 255, 255, 255, 255 } } },
{ { { 31, 15, 0 }, 0, { 4032, 2032 }, { 255, 255, 255, 255 } } },
{ { { -32, 15, 0 }, 0, { 0, 2032 }, { 255, 255, 255, 255 } } },
} };
Vtx cloudvtx2[3][4] = { {
{ { { -32, -16, 0 }, 0, { 0, -32 }, { 255, 255, 255, 255 } } },
{ { { 31, -16, 0 }, 0, { 4032, -32 }, { 255, 255, 255, 255 } } },
{ { { 31, 15, 0 }, 0, { 4032, 662 }, { 255, 255, 255, 255 } } },
{ { { -32, 15, 0 }, 0, { 0, 662 }, { 255, 255, 255, 255 } } },
},
{
{ { { -32, -16, 0 }, 0, { 0, 682 }, { 255, 255, 255, 255 } } },
{ { { 31, -16, 0 }, 0, { 4032, 682 }, { 255, 255, 255, 255 } } },
{ { { 31, 15, 0 }, 0, { 4032, 1324 }, { 255, 255, 255, 255 } } },
{ { { -32, 15, 0 }, 0, { 0, 1324 }, { 255, 255, 255, 255 } } },
},
{
{ { { -32, -16, 0 }, 0, { 0, 1335 }, { 255, 255, 255, 255 } } },
{ { { 31, -16, 0 }, 0, { 4032, 1335 }, { 255, 255, 255, 255 } } },
{ { { 31, 15, 0 }, 0, { 4032, 2027 }, { 255, 255, 255, 255 } } },
{ { { -32, 15, 0 }, 0, { 0, 2027 }, { 255, 255, 255, 255 } } },
} };
void init_cloud_object(s32 objectIndex, s32 arg1, CloudData* arg2) {
ItemWindowObjects* temp_v0;
@@ -494,8 +541,19 @@ void init_cloud_object(s32 objectIndex, s32 arg1, CloudData* arg2) {
temp_v0->direction_angle[1] = arg2->rotY;
temp_v0->unk_09E = arg2->posY;
temp_v0->sizeScaling = (f32) arg2->scalePercent / 100.0;
temp_v0->activeTexture = ((u8(*)[1024])CM_GetProps()->CloudTexture)[arg2->subType];
func_80073404(objectIndex, 0x40U, 0x20U, D_0D005FB0);
if (GameEngine_ResourceGetTexTypeByName(CM_GetProps()->CloudTexture) != 1) {
temp_v0->activeTexture = ((u8*) LOAD_ASSET_RAW(CM_GetProps()->CloudTexture)) + (arg2->subType * 1024);
func_80073404(objectIndex, 0x40U, 0x20U, D_0D005FB0);
} else {
temp_v0->activeTexture = CM_GetProps()->CloudTexture;
if (strcmp(CM_GetProps()->CloudTexture, gTextureExhaust0) == 0 ||
strcmp(CM_GetProps()->CloudTexture, gTextureExhaust1) == 0 ||
strcmp(CM_GetProps()->CloudTexture, gTextureExhaust2) == 0) {
func_80073404(objectIndex, 0x40U, 0x20U, cloudvtx2[arg2->subType]);
} else {
func_80073404(objectIndex, 0x40U, 0x20U, cloudvtx[arg2->subType]);
}
}
temp_v0->primAlpha = 0x00FF;
}
+5 -5
View File
@@ -954,15 +954,15 @@ UNUSED bool func_80088F94(s32 objectIndex, Player* player, f32 arg2) {
return var_v1;
}
void func_80088FF0(Player* player) {
player->unk_08C = 0.0f;
void reset_player_speed_and_velocity(Player* player) {
player->kartPropulsionStrength = 0.0f;
player->currentSpeed = 0.0f;
player->velocity[0] = 0.0f;
player->velocity[2] = 0.0f;
}
UNUSED void func_8008900C(Player* player) {
player->unk_08C = 0.0f;
player->kartPropulsionStrength = 0.0f;
player->currentSpeed = 0.0f;
}
@@ -1915,8 +1915,8 @@ void object_origin_pos_randomize_around_xyz(s32 objectIndex, s16 x, s16 y, s16 z
}
void object_origin_pos_around_player_one(s32 objectIndex, s16 dist, u16 angle) {
gObjectList[objectIndex].origin_pos[0] = gPlayerOneCopy->pos[0] + (sins(angle) * dist);
gObjectList[objectIndex].origin_pos[2] = gPlayerOneCopy->pos[2] + (coss(angle) * dist);
gObjectList[objectIndex].origin_pos[0] = gPlayerOne->pos[0] + (sins(angle) * dist);
gObjectList[objectIndex].origin_pos[2] = gPlayerOne->pos[2] + (coss(angle) * dist);
}
UNUSED void func_8008BEA4(s32 objectIndex, u16 arg1, u16 arg2) {
+1 -1
View File
@@ -76,7 +76,7 @@ bool has_collided_with_player_1d(s32, Player*, f32);
bool has_collided_with_player_and_within_height(s32, Player*, f32);
f32 func_80088F54(s32, Player*);
UNUSED bool func_80088F94(s32, Player*, f32);
void func_80088FF0(Player*);
void reset_player_speed_and_velocity(Player*);
void func_8008900C(Player*);
void func_80089020(s32, f32*);
void func_800892E0(s32);
+5 -5
View File
@@ -7,7 +7,7 @@
#include "collision.h"
void func_800914A0(void) {
D_80152308 = gPlayerOneCopy->unk_006 + 7;
D_80152308 = gPlayerOne->unk_006 + 7;
if ((s32) D_8015F6F8 < D_80152308) {
D_80152308 -= D_8015F6F8;
}
@@ -21,7 +21,7 @@ UNUSED void func_800914E0(void) {
struct ActorSpawnData* tempData;
s16 temp3 = (s16) D_80152308;
s16 temp2 = (s16) gPlayerOneCopy->unk_006;
s16 temp2 = (s16) gPlayerOne->unk_006;
s16 temp;
f32 sp38;
f32 sp34;
@@ -46,10 +46,10 @@ UNUSED void func_800914E0(void) {
camera->pos[0] = (f32) (tempData->pos[0] + 10);
camera->pos[1] = (f32) (tempData->pos[1] + 7);
camera->pos[2] = (f32) (tempData->pos[2] - 20);
camera->lookAt[0] = gPlayerOneCopy->pos[0];
camera->lookAt[0] = gPlayerOne->pos[0];
camera->lookAt[1] = gPlayerOneCopy->pos[1];
camera->lookAt[2] = gPlayerOneCopy->pos[2];
camera->lookAt[1] = gPlayerOne->pos[1];
camera->lookAt[2] = gPlayerOne->pos[2];
check_bounding_collision(&camera->collision, 20.0f, camera->pos[0], camera->pos[1], camera->pos[2]);
sp38 = camera->lookAt[0] - camera->pos[0];
sp34 = camera->lookAt[1] - camera->pos[1];
+81 -80
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;
+8 -8
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[];
+1339 -1339
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -46,7 +46,7 @@
#include <render_courses.h>
#include <skybox_and_splitscreen.h>
#include <spawn_players.h>
#include <staff_ghosts.h>
#include <replays.h>
#include <textures.h>
#include <actor_types.h>
+151 -149
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) {
@@ -221,7 +221,7 @@ void func_8008C528(Player* player, s8 arg1) {
void func_8008C62C(Player* player, s8 arg1) {
player_decelerate(player, 5.0f);
player_decelerate_alternative(player, 5.0f);
player->unk_0A8 += (s16) 0xA0;
player->unk_042 += (s16) 0x71C;
if (player->unk_0A8 >= 0x2000) {
@@ -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);
}
}
}
@@ -255,8 +255,8 @@ void func_8008C6D0(Player* player, s8 arg1) {
player->unk_042 = 0;
}
void func_8008C73C(Player* player, s8 arg1) {
clean_effect(player, arg1);
void func_8008C73C(Player* player, s8 playerIndex) {
clean_effect(player, playerIndex);
if (((player->effects & 0x80) != 0x80) && ((player->effects & 0x40) != 0x40)) {
player->effects &= ~0x10;
@@ -270,22 +270,22 @@ void func_8008C73C(Player* player, s8 arg1) {
// clang-format off
player->unk_0C0 = 0; player->unk_07C = 0; player->unk_078 = 0; player->unk_0AE = player->rotation[1]; player->unk_0B2 = 2;
// clang-format on
D_80165190[0][arg1] = 1;
D_80165190[1][arg1] = 1;
D_80165190[2][arg1] = 1;
D_80165190[3][arg1] = 1;
D_80165280[arg1] = player->currentSpeed;
gTimerBoostTripleACombo[arg1] = 0;
gIsPlayerTripleAButtonCombo[arg1] = false;
gCountASwitch[arg1] = 0;
gFrameSinceLastACombo[arg1] = 0;
D_8018D920[arg1] = 0;
D_80165190[0][playerIndex] = 1;
D_80165190[1][playerIndex] = 1;
D_80165190[2][playerIndex] = 1;
D_80165190[3][playerIndex] = 1;
gPlayerCurrentSpeed[playerIndex] = player->currentSpeed;
gTimerBoostTripleACombo[playerIndex] = 0;
gIsPlayerTripleAButtonCombo[playerIndex] = false;
gCountASwitch[playerIndex] = 0;
gFrameSinceLastACombo[playerIndex] = 0;
D_8018D920[playerIndex] = 0;
if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) &&
((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) {
func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008003);
func_800C90F4(playerIndex, (player->characterId * 0x10) + 0x29008003);
} else {
play_cpu_sound_effect(arg1, player);
play_cpu_sound_effect(playerIndex, player);
}
}
}
@@ -323,15 +323,15 @@ void func_8008C9EC(Player* player, s8 arg1) {
player->unk_206 = 0;
player->slopeAccel = 0;
if ((player->unk_046 & 0x40) == 0x40) {
player_decelerate(player, 100.0f);
player_decelerate_alternative(player, 100.0f);
} else {
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
player_decelerate(player, 1.0f);
player_decelerate_alternative(player, 1.0f);
} else {
player_decelerate(player, 4.0f);
player_decelerate_alternative(player, 4.0f);
}
if (!(player->type & PLAYER_HUMAN)) {
player_decelerate(player, 30.0f);
player_decelerate_alternative(player, 30.0f);
}
}
if ((player->effects & 0x80) == 0x80) {
@@ -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);
}
}
}
@@ -724,7 +724,7 @@ void apply_hit_effect(Player* player, s8 arg1) {
player->unk_0A8 = 0;
player->unk_07C = 0;
player->unk_0C0 = 0;
player->unk_08C = 0.0f;
player->kartPropulsionStrength = 0.0f;
player->currentSpeed = 0.0f;
// clang-format off
if ((player->collision.surfaceDistance[2] >= 600.0f) || ((player->effects & 0x1000) != 0)) { D_8018D990[arg1] = 3; } // placed block on same line to match
@@ -833,10 +833,10 @@ void apply_hit_rotating_sound_effect(Player* player, s8 arg1) {
player->soundEffects &= ~HIT_ROTATING_SOUND_EFFECT;
player->effects |= 0x40020000;
player->effects &= ~0x10;
player->unk_08C *= 0.6;
player->kartPropulsionStrength *= 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);
}
}
@@ -893,10 +893,10 @@ void apply_lightning_effect(Player* player, s8 arg1) {
D_80165190[3][arg1] = 1;
}
}
player_decelerate(player, 1.0f);
player_decelerate_alternative(player, 1.0f);
} else {
player->unk_0B0 += 1;
player->unk_08C = (f32) ((f64) player->unk_08C * 0.6);
player->kartPropulsionStrength = (f32) ((f64) player->kartPropulsionStrength * 0.6);
if ((player->unk_0B0 == 1) && (player->type & PLAYER_HUMAN)) {
func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008005);
}
@@ -938,7 +938,7 @@ void func_8008E4A4(Player* player, s8 arg1) {
player->unk_07C = 0;
player->unk_0C2 = 0xF;
player->unk_042 += 0xAAA;
player->unk_08C = 0.0f;
player->kartPropulsionStrength = 0.0f;
player->currentSpeed = 0.0f;
player->velocity[0] = 0.0f;
player->velocity[2] = 0.0f;
@@ -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;
@@ -1051,7 +1051,7 @@ void apply_hit_by_item_effect(Player* player, s8 arg1) {
player->unk_07C = 0;
player->unk_0C2 = 0xF;
player->unk_042 += 0xAAA;
player->unk_08C /= 2;
player->kartPropulsionStrength /= 2;
player->currentSpeed = 0.0f;
player->effects &= ~0xC0;
@@ -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);
}
}
}
@@ -1183,7 +1183,7 @@ void apply_boost_ramp_asphalt_effect(Player* player) {
if (player->unk_0C2 >= 0x33) {
temp_f0 = 0.7;
player->currentSpeed = (player->currentSpeed * temp_f0);
player->unk_08C = (player->unk_08C * temp_f0);
player->kartPropulsionStrength = (player->kartPropulsionStrength * temp_f0);
}
}
}
@@ -1226,7 +1226,7 @@ void apply_boost_ramp_wood_effect(Player* player) {
player->effects &= ~BOOST_RAMP_WOOD_EFFECT;
player->boostPower = 0.0f;
player->currentSpeed /= 2;
player->unk_08C /= 2;
player->kartPropulsionStrength /= 2;
}
}
@@ -1255,7 +1255,7 @@ void func_8008F104(Player* player, s8 arg1) {
void func_8008F1B8(Player* player, s8 arg1) {
s16 temp;
player->unk_08C = (player->unk_210 * 0.05);
player->kartPropulsionStrength = (player->unk_210 * 0.05);
if (player->unk_0B2 < 0) {
if ((player->unk_044 & 0x80) == 0x80) {
player->rotation[1] += 182;
@@ -1310,7 +1310,7 @@ void func_8008F3F4(Player* player, UNUSED s8 arg1) {
player->unk_042 += 0x71C;
player->unk_07C = 0;
player->currentSpeed = 0.0f;
player->unk_08C /= 2;
player->kartPropulsionStrength /= 2;
if (player->unk_0A8 >= 0x2000) {
player->unk_0A8 = 0;
--player->unk_236;
@@ -1339,7 +1339,7 @@ void func_8008F494(Player* player, s8 arg1) {
player->unk_042 = 0;
if (((player->type & PLAYER_HUMAN) != 0) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) == 0) &&
((player->unk_0CA & 2) == 0) && ((player->unk_0DE & 1) == 0) && ((player->unk_0DE & 2) == 0)) {
((player->unk_0CA & 2) == 0) && ((player->waterInteractionFlags & 1) == 0) && ((player->waterInteractionFlags & 2) == 0)) {
func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008004);
}
}
@@ -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;
}
}
@@ -1575,7 +1577,7 @@ void func_8008FE84(Player* player, UNUSED s8 arg1) {
if ((player->effects & 8) != 8) {
player->effects &= ~0x10000000;
player->currentSpeed /= 2;
player->unk_08C /= 2;
player->kartPropulsionStrength /= 2;
}
}
@@ -1760,7 +1762,7 @@ void func_80090778(Player* player) {
player->unk_0CA |= 8;
player->effects &= ~0x10;
player->unk_222 = 0;
player->unk_08C = 0.0f;
player->kartPropulsionStrength = 0.0f;
clean_effect(player, playerIndex);
func_8008F86C(player, playerIndex);
@@ -1787,7 +1789,7 @@ void func_80090868(Player* player) {
player->unk_078 = 0;
player->unk_07C = 0;
player->unk_0C0 = 0;
player->unk_08C = 0.0f;
player->kartPropulsionStrength = 0.0f;
playerIndex = get_player_index_for_player(player);
if ((player->unk_0CA & 2) != 2) {
@@ -1798,7 +1800,7 @@ void func_80090868(Player* player) {
player->unk_222 = 0;
player->unk_0CA |= 2;
player->unk_0C8 = 0;
if ((player->unk_0DE & 1) == 1) {
if ((player->waterInteractionFlags & WATER_IS_FULLY_SUBMERGED) == WATER_IS_FULLY_SUBMERGED) {
if ((IsBowsersCastle()) || (IsBigDonut())) {
player->unk_0CA |= 0x1000;
} else {
@@ -1826,7 +1828,7 @@ void func_80090970(Player* player, s8 playerId, s8 arg2) {
player->unk_078 = 0;
player->unk_07C = 0;
player->unk_0C0 = 0;
player->unk_08C = 0.0f;
player->kartPropulsionStrength = 0.0f;
clean_effect(player, playerId);
switch (player->unk_222) {
case 0:
@@ -1837,12 +1839,12 @@ void func_80090970(Player* player, s8 playerId, s8 arg2) {
player->unk_0C8 = 0x003C;
}
} else {
move_f32_towards(&player->pos[1], D_801652A0[playerId] + 100.0f, 0.012f);
move_f32_towards(&player->pos[1], gPlayerWaterLevel[playerId] + 100.0f, 0.012f);
move_s16_towards(&player->unk_0CC[arg2], 0, 0.2f);
if ((D_801652A0[playerId] + 40.0f) <= player->pos[1]) {
if ((gPlayerWaterLevel[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) {
@@ -1863,18 +1865,18 @@ void func_80090970(Player* player, s8 playerId, s8 arg2) {
func_8009E088(playerId, 0xA);
}
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;
move_f32_towards(&player->pos[1], gPlayerWaterLevel[playerId] + 40.0f, 0.02f);
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,10 +1930,10 @@ 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;
player->waterInteractionFlags &= ~WATER_IN_DEEP_LIQUID_STATE;
if ((player->unk_0CA & 0x80) != 0x80) {
player->unk_0CA &= ~0x0008;
if ((player->topSpeed * 0.9) <= player->currentSpeed) {
@@ -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);
}
@@ -2074,7 +2076,7 @@ void func_80091298(Player* player, s8 arg1) {
player->unk_0D4[0] = 0;
player->type |= PLAYER_START_SEQUENCE;
player->speed = 0.0f;
player->unk_08C = 0.0f;
player->kartPropulsionStrength = 0.0f;
player->currentSpeed = 0.0f;
if (arg1 == 0) {
D_801658BC = 1;
+4 -4
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 */
@@ -141,7 +141,7 @@ extern f32 D_800E3790[];
extern f32 D_800E37D0[];
extern f32 D_800E37F0[];
extern s16 D_80165190[4][8];
extern f32 D_80165280[];
extern f32 gPlayerCurrentSpeed[];
extern s32 gFrameSinceLastACombo[];
#endif
+3 -2
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;
@@ -1582,7 +1582,8 @@ void ceremony_transition_sliding_borders(void) {
gDPSetCycleType(gDisplayListHead++, G_CYC_FILL);
gDPSetFillColor(gDisplayListHead++, (GPACK_RGBA5551(0, 0, 0, 1) << 16 | GPACK_RGBA5551(0, 0, 0, 1)));
gDPFillWideRectangle(gDisplayListHead++, OTRGetRectDimensionFromLeftEdge(0), 0, OTRGetGameRenderWidth(), (s32)lry);
// Add lry - 1 so that the transition border clears the top of the screen properly
gDPFillWideRectangle(gDisplayListHead++, OTRGetRectDimensionFromLeftEdge(0), 0, OTRGetGameRenderWidth(), (s32)lry - 1);
gDPFillWideRectangle(gDisplayListHead++, OTRGetRectDimensionFromLeftEdge(0), (s32)uly, OTRGetGameRenderWidth(), 239);
//gDPFillRectangle(gDisplayListHead++, 0, 0, 319, (s32) lry);
//gDPFillRectangle(gDisplayListHead++, 0, (s32) uly, 319, 239);
-1
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?
+5
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_D_802874D8_actors();
gCurrentCourseId = COURSE_ROYAL_RACEWAY;
SelectPodiumCeremony();
D_800DC5B4 = (u16) 1;
+4
View File
@@ -132,6 +132,10 @@ CeremonyActor* new_actor(ActorInitParams* arg0) {
return actor;
}
void clear_D_802874D8_actors() {
memset(&D_802874D8, 0, sizeof(struct_D_802874D8));
}
u16 random_u16_credits(void) {
u16 temp1, temp2;
+1
View File
@@ -83,6 +83,7 @@ void func_80280650(void);
void set_initial_position(CeremonyActor*);
CeremonyActor* find_available_entry(void);
CeremonyActor* new_actor(ActorInitParams*);
void clear_D_802874D8_actors(void);
u16 random_u16_credits(void);
f32 random_float_between_0_and_1(void);
f32 random_who_knows(f32);
+2 -2
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];
}
+3 -3
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();
};
+3 -3
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);
+2 -2
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;
+17 -17
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
+4 -4
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:
+51 -47
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(),
};
+6 -2
View File
@@ -30,7 +30,7 @@ extern "C" {
#include "render_objects.h"
#include "assets/common_data.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "actors.h"
#include "collision.h"
#include "memory.h"
@@ -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() {
+3 -2
View File
@@ -24,7 +24,7 @@ extern "C" {
#include "render_objects.h"
#include "assets/common_data.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "actors.h"
#include "collision.h"
#include "memory.h"
@@ -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));
+3 -2
View File
@@ -24,7 +24,7 @@ extern "C" {
#include "render_objects.h"
#include "assets/common_data.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "actors.h"
#include "collision.h"
#include "memory.h"
@@ -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));
+7 -3
View File
@@ -26,7 +26,7 @@ extern "C" {
#include "render_objects.h"
#include "assets/common_data.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "actors.h"
#include "collision.h"
#include "code_8003DC40.h"
@@ -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
+6 -2
View File
@@ -25,7 +25,7 @@ extern "C" {
#include "render_objects.h"
#include "assets/common_data.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "actors.h"
#include "collision.h"
#include "code_8003DC40.h"
@@ -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() {
+28 -16
View File
@@ -18,7 +18,7 @@ extern "C" {
#include "assets/common_data.h"
#include "render_objects.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "code_800029B0.h"
#include "render_courses.h"
#include "collision.h"
@@ -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);
}
}
@@ -328,7 +341,7 @@ void Course::WhatDoesThisDoAI(Player* player, int8_t playerId) {
}
void Course::SetStaffGhost() {
D_80162DD6 = 1;
bCourseGhostDisabled = 1;
D_80162DF4 = 1;
}
@@ -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;
+2
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];
+9 -5
View File
@@ -29,7 +29,7 @@ extern "C" {
#include "render_objects.h"
#include "assets/common_data.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "actors.h"
#include "collision.h"
#include "code_8003DC40.h"
@@ -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() {
+3 -2
View File
@@ -24,7 +24,7 @@ extern "C" {
#include "render_objects.h"
#include "assets/common_data.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "actors.h"
#include "collision.h"
#include "memory.h"
@@ -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));
+8 -4
View File
@@ -28,7 +28,7 @@ extern "C" {
#include "render_objects.h"
#include "assets/common_data.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "actors.h"
#include "collision.h"
#include "memory.h"
@@ -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() {
+14 -13
View File
@@ -46,7 +46,7 @@ extern "C" {
#include "render_objects.h"
#include "assets/common_data.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "actors.h"
#include "collision.h"
#include "memory.h"
@@ -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));
@@ -573,7 +574,7 @@ Harbour::Harbour() {
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
Props.CloudTexture = (u8*) LOAD_ASSET_RAW(gTextureExhaust5);
Props.CloudTexture = (u8*) gTextureExhaust5;
Props.Clouds = gKalimariDesertClouds;
Props.CloudList = gLuigiRacewayClouds;
Props.Minimap.FinishlineX = 0;
@@ -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[] = {
+12 -8
View File
@@ -28,7 +28,7 @@ extern "C" {
#include "render_objects.h"
#include "assets/common_data.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "actors.h"
#include "collision.h"
#include "memory.h"
@@ -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));
@@ -112,7 +113,7 @@ KalimariDesert::KalimariDesert() {
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
Props.CloudTexture = (u8*) LOAD_ASSET_RAW(gTextureExhaust5);
Props.CloudTexture = (u8*) gTextureExhaust5;
Props.Clouds = gKalimariDesertClouds;
Props.CloudList = gKalimariDesertClouds;
@@ -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() {
+14 -7
View File
@@ -27,7 +27,7 @@ extern "C" {
#include "render_objects.h"
#include "assets/common_data.h"
#include "save.h"
#include "staff_ghosts.h"
#include "replays.h"
#include "actors.h"
#include "collision.h"
#include "code_8003DC40.h"
@@ -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));
@@ -118,7 +119,7 @@ KoopaTroopaBeach::KoopaTroopaBeach() {
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
Props.CloudTexture = (u8*) LOAD_ASSET_RAW(gTextureExhaust3);
Props.CloudTexture = (u8*) gTextureExhaust3;
Props.Clouds = gKoopaTroopaBeachClouds;
Props.CloudList = gKoopaTroopaBeachClouds;
@@ -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() {
@@ -142,10 +149,10 @@ void KoopaTroopaBeach::Load() {
parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_koopa_troopa_beach_addr));
func_80295C6C();
find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x0700ADE0), -0x6A, 255, 255, 255);
find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x0700A540), -0x6A, 255, 255, 255);
find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07009E70), -0x6A, 255, 255, 255);
find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07000358), -0x6A, 255, 255, 255);
find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x0700ADE0), 106, 255, 255, 255);
find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x0700A540), 106, 255, 255, 255);
find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07009E70), 106, 255, 255, 255);
find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07000358), 106, 255, 255, 255);
}
void KoopaTroopaBeach::LoadTextures() {

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