Merge remote-tracking branch 'origin/dev' into screen-shader-effects

This commit is contained in:
Agent X 2026-03-20 18:03:27 -04:00
commit 78c7076f16
206 changed files with 3035 additions and 1619 deletions

View file

@ -26,7 +26,7 @@ jobs:
cd tools
g++ -std=c++17 -o hash_file hash_file.cpp
echo "::notice ::$(./hash_file ../build/us_pc/sm64coopdx)"
- name: Zip the game
run: |
cd ./build/us_pc
@ -37,7 +37,7 @@ jobs:
with:
name: sm64coopdx-linux
path: ./build/us_pc/sm64coopdx_Linux.zip
build-steamos:
if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '[build]') }}
runs-on: ubuntu-22.04
@ -58,7 +58,7 @@ jobs:
cd tools
g++ -std=c++17 -o hash_file hash_file.cpp
echo "::notice ::$(./hash_file ../build/us_pc/sm64coopdx)"
- name: Zip the game
run: |
cd ./build/us_pc
@ -108,7 +108,7 @@ jobs:
cd tools
g++ -std=c++17 -o hash_file.exe hash_file.cpp
echo "::notice ::$(./hash_file.exe ../build/us_pc/sm64coopdx.exe)"
- name: Zip the game
run: |
cd ./build/us_pc
@ -158,7 +158,7 @@ jobs:
cd tools
g++ -std=c++17 -o hash_file.exe hash_file.cpp
echo "::notice ::$(./hash_file.exe ../build/us_pc/sm64coopdx.exe)"
- name: Zip the game
run: |
cd ./build/us_pc
@ -172,17 +172,36 @@ jobs:
build-macos-arm:
if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '[build]') }}
runs-on: macos-latest
runs-on: macos-26
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: |
brew install make mingw-w64 sdl2 pkg-config glew glfw3 coreutils
brew install make mingw-w64 pkg-config glfw3 coreutils
- name: Compile glew
run: |
export MACOSX_DEPLOYMENT_TARGET=11
curl -L -o glew.tar.gz https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.tgz
tar -xzf glew.tar.gz
cd glew-2.2.0
make SYSTEM=darwin CC="clang -arch arm64 -mmacosx-version-min=11" GLEW_PREFIX=/opt/homebrew GLEW_DEST=/opt/homebrew
make install GLEW_PREFIX=/opt/homebrew GLEW_DEST=/opt/homebrew
- name: Compile SDL2
run: |
curl -L -o SDL2.tar.gz https://github.com/libsdl-org/SDL/releases/download/release-2.30.9/SDL2-2.30.9.tar.gz
tar -xzf SDL2.tar.gz
cd SDL2-2.30.9
./configure --prefix=/opt/homebrew CC="clang -arch arm64 -mmacosx-version-min=11"
make -j$(sysctl -n hw.ncpu)
make install
- name: Build the game
run: |
export PKG_CONFIG_PATH=/opt/homebrew/lib/pkgconfig:$PKG_CONFIG_PATH
gmake OSX_BUILD=1 -j$(sysctl -n hw.ncpu)
- name: Code sign the app (Ad-Hoc)
@ -199,7 +218,7 @@ jobs:
run: |
cd ./build/us_pc
zip -r sm64coopdx_macOS_ARM.zip sm64coopdx.app
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
@ -215,7 +234,25 @@ jobs:
- name: Install dependencies
run: |
brew install make mingw-w64 gcc@9 sdl2 pkg-config glew glfw3 coreutils
brew install make mingw-w64 gcc@9 pkg-config glfw3 coreutils
- name: Compile glew
run: |
export MACOSX_DEPLOYMENT_TARGET=10.15
curl -L -o glew.tar.gz https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.tgz
tar -xzf glew.tar.gz
cd glew-2.2.0
make SYSTEM=darwin CC="clang -arch x86_64 -mmacosx-version-min=10.15"
make install
- name: Compile SDL2
run: |
curl -L -o SDL2.tar.gz https://github.com/libsdl-org/SDL/releases/download/release-2.30.9/SDL2-2.30.9.tar.gz
tar -xzf SDL2.tar.gz
cd SDL2-2.30.9
./configure --prefix=/usr/local CC="clang -arch x86_64 -mmacosx-version-min=10.15"
make -j$(sysctl -n hw.ncpu)
make install
- name: Build the game
run: |
@ -235,7 +272,7 @@ jobs:
run: |
cd ./build/us_pc
zip -r sm64coopdx_macOS_Intel.zip sm64coopdx.app
- name: Upload artifact
uses: actions/upload-artifact@v4
with:

View file

@ -64,12 +64,7 @@ ICON ?= 1
# Use .app (for macOS)
USE_APP ?= 1
# Minimum macOS Version
# If our arch is arm, set to macOS 14
ifeq ($(shell arch),arm64)
MIN_MACOS_VERSION ?= 14
else
MIN_MACOS_VERSION ?= 10.15
endif
MIN_MACOS_VERSION ?= 11
# Make some small adjustments for handheld devices
HANDHELD ?= 0
@ -1575,15 +1570,15 @@ endif
# with no prerequisites, .SECONDARY causes no intermediate target to be removed
.SECONDARY:
# Handle end of macOS compilation
APP_DIR = ./sm64coopdx.app
APP_CONTENTS_DIR = $(APP_DIR)/Contents
APP_MACOS_DIR = $(APP_CONTENTS_DIR)/MacOS
APP_RESOURCES_DIR = $(APP_CONTENTS_DIR)/Resources
ifeq ($(OSX_BUILD),1)
GLEW_LIB := $(shell find $(BREW_PREFIX)/Cellar/glew | grep libGLEW.2.2.0 | sort -n | uniq)
SDL2_LIB := $(shell find $(BREW_PREFIX)/Cellar/sdl2 | grep libSDL2- | sort -n | uniq)
GLEW_LIB := $(shell find $(BREW_PREFIX)/lib/ | grep libGLEW.2.2.0 | sort -n | uniq)
SDL2_LIB := $(shell find $(BREW_PREFIX)/lib/ | grep libSDL2- | sort -n | uniq)
endif
all:
@ -1605,14 +1600,20 @@ all:
cp build/us_pc/libcoopnet.dylib $(APP_MACOS_DIR); \
cp build/us_pc/libjuice.1.6.2.dylib $(APP_MACOS_DIR); \
cp $(SDL2_LIB) $(APP_MACOS_DIR)/libSDL2.dylib; \
install_name_tool -change $(BREW_PREFIX)/opt/sdl2/lib/libSDL2-2.0.0.dylib @executable_path/libSDL2.dylib $(APP_MACOS_DIR)/sm64coopdx; > /dev/null 2>&1 \
install_name_tool -id @executable_path/libSDL2.dylib $(APP_MACOS_DIR)/libSDL2.dylib; > /dev/null 2>&1 \
install_name_tool -change $(BREW_PREFIX)/lib/libSDL2-2.0.0.dylib @executable_path/libSDL2.dylib $(APP_MACOS_DIR)/sm64coopdx > /dev/null 2>&1; \
install_name_tool -change $(BREW_PREFIX)/opt/sdl2/lib/libSDL2-2.0.0.dylib @executable_path/libSDL2.dylib $(APP_MACOS_DIR)/sm64coopdx > /dev/null 2>&1; \
install_name_tool -id @executable_path/libSDL2.dylib $(APP_MACOS_DIR)/libSDL2.dylib > /dev/null 2>&1; \
codesign --force --deep --sign - $(APP_MACOS_DIR)/libSDL2.dylib; \
cp $(GLEW_LIB) $(APP_MACOS_DIR)/libGLEW.dylib; \
install_name_tool -change $(BREW_PREFIX)/opt/glew/lib/libGLEW.2.2.dylib @executable_path/libGLEW.dylib $(APP_MACOS_DIR)/sm64coopdx; > /dev/null 2>&1 \
install_name_tool -id @executable_path/libGLEW.dylib $(APP_MACOS_DIR)/libGLEW.dylib; > /dev/null 2>&1 \
install_name_tool -change $(BREW_PREFIX)/lib/libGLEW.2.2.0.dylib @executable_path/libGLEW.dylib $(APP_MACOS_DIR)/sm64coopdx > /dev/null 2>&1; \
install_name_tool -change $(BREW_PREFIX)/opt/glew/lib/libGLEW.2.2.0.dylib @executable_path/libGLEW.dylib $(APP_MACOS_DIR)/sm64coopdx > /dev/null 2>&1; \
install_name_tool -id @executable_path/libGLEW.dylib $(APP_MACOS_DIR)/libGLEW.dylib > /dev/null 2>&1; \
codesign --force --deep --sign - $(APP_MACOS_DIR)/libGLEW.dylib; \
cp res/icon.icns $(APP_RESOURCES_DIR)/icon.icns; \
mkdir res/build; \
xcrun actool res/icon.icon --compile res/build --app-icon icon --output-partial-info-plist res/build/Info.plist --minimum-deployment-target $(MIN_MACOS_VERSION) --platform macosx > /dev/null 2>&1; \
mv res/build/Assets.car $(APP_RESOURCES_DIR)/; \
cp res/icon.icns $(APP_RESOURCES_DIR)/; \
rm -rf res/build; \
echo "APPL????" > $(APP_CONTENTS_DIR)/PkgInfo; \
echo '<?xml version="1.0" encoding="UTF-8"?>' > $(APP_CONTENTS_DIR)/Info.plist; \
echo '<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' >> $(APP_CONTENTS_DIR)/Info.plist; \
@ -1623,7 +1624,7 @@ all:
echo ' <key>CFBundleIconFile</key>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <string>icon</string>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <key>CFBundleIconName</key>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <string>AppIcon</string>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <string>icon</string>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <key>CFBundleDisplayName</key>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <string>sm64coopdx</string>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <!-- Add other keys and values here -->' >> $(APP_CONTENTS_DIR)/Info.plist; \

View file

@ -536,6 +536,8 @@ def def_constant(fname, processed_constant, skip_constant):
continue
if '"' in c[1]:
s += '\n--- @type string\n'
elif "." in c[1]:
s += '\n--- @type number\n'
else:
s += '\n--- @type integer\n'
s += '%s = %s\n' % (c[0], c[1])

View file

@ -951,7 +951,7 @@ def build_function(function, do_extern):
sparam = build_param(fid, param, i)
param_var, param_value = sparam.split('=')
param_type = param_var.replace(pid, '').strip()
s += ' %s = (%s) NULL;\n' % (param_var.strip(), param_type)
s += ' %s = (%s) %s;\n' % (param_var.strip(), param_type, "NULL" if '*' in param_type else "0")
s += ' if (top >= %d) {\n' % (i)
s += ' %s = %s\n' % (pid, param_value.strip())
s += ' if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %%u for function \'%%s\'", %d, "%s"); return 0; }\n' % (i, fid)
@ -1342,7 +1342,7 @@ def doc_function(fname, function):
s += '- None\n'
s += '\n### Returns\n'
if rtype != None:
if len(rvalues) > 0:
for _, ptype, plink in rvalues:
if plink:
s += '- [%s](%s)\n' % (ptype, plink)

View file

@ -306,6 +306,49 @@ IN_OUT_BOUNCE = function (x) return x < 0.5 and (1 - OUT_BOUNCE(1 - 2 * x)) / 2
---@return number
OUT_IN_BOUNCE = function (x) return x < 0.5 and 0.5 * OUT_BOUNCE(x * 2) or 0.5 + 0.5 * IN_BOUNCE(2 * x - 1) end
--- @alias EasingFunction
--- | `IN_SINE`
--- | `OUT_SINE`
--- | `IN_OUT_SINE`
--- | `OUT_IN_SINE`
--- | `IN_QUAD`
--- | `OUT_QUAD`
--- | `IN_OUT_QUAD`
--- | `OUT_IN_QUAD`
--- | `IN_CUBIC`
--- | `OUT_CUBIC`
--- | `IN_OUT_CUBIC`
--- | `OUT_IN_CUBIC`
--- | `IN_QUART`
--- | `OUT_QUART`
--- | `IN_OUT_QUART`
--- | `OUT_IN_QUART`
--- | `IN_QUINT`
--- | `OUT_QUINT`
--- | `IN_OUT_QUINT`
--- | `OUT_IN_QUINT`
--- | `IN_EXPO`
--- | `OUT_EXPO`
--- | `IN_OUT_EXPO`
--- | `OUT_IN_EXPO`
--- | `IN_CIRC`
--- | `OUT_CIRC`
--- | `IN_OUT_CIRC`
--- | `OUT_IN_CIRC`
--- | `IN_BACK`
--- | `OUT_BACK`
--- | `IN_OUT_BACK`
--- | `OUT_IN_BACK`
--- | `IN_ELASTIC`
--- | `OUT_ELASTIC`
--- | `IN_OUT_ELASTIC`
--- | `OUT_IN_ELASTIC`
--- | `IN_BOUNCE`
--- | `OUT_BOUNCE`
--- | `IN_OUT_BOUNCE`
--- | `OUT_IN_BOUNCE`
--- | fun(x: number): number
--------------------
-- math functions --
--------------------
@ -385,7 +428,7 @@ function math.round(x)
return x > 0 and __math_floor(x + 0.5) or __math_ceil(x - 0.5)
end
--- @param t function | number
--- @param t EasingFunction | number
--- @param a number
--- @param b number
--- @param x number

View file

@ -308,6 +308,49 @@ IN_OUT_BOUNCE = function (x) return x < 0.5 and (1 - OUT_BOUNCE(1 - 2 * x)) / 2
---@return number
OUT_IN_BOUNCE = function (x) return x < 0.5 and 0.5 * OUT_BOUNCE(x * 2) or 0.5 + 0.5 * IN_BOUNCE(2 * x - 1) end
--- @alias EasingFunction
--- | `IN_SINE`
--- | `OUT_SINE`
--- | `IN_OUT_SINE`
--- | `OUT_IN_SINE`
--- | `IN_QUAD`
--- | `OUT_QUAD`
--- | `IN_OUT_QUAD`
--- | `OUT_IN_QUAD`
--- | `IN_CUBIC`
--- | `OUT_CUBIC`
--- | `IN_OUT_CUBIC`
--- | `OUT_IN_CUBIC`
--- | `IN_QUART`
--- | `OUT_QUART`
--- | `IN_OUT_QUART`
--- | `OUT_IN_QUART`
--- | `IN_QUINT`
--- | `OUT_QUINT`
--- | `IN_OUT_QUINT`
--- | `OUT_IN_QUINT`
--- | `IN_EXPO`
--- | `OUT_EXPO`
--- | `IN_OUT_EXPO`
--- | `OUT_IN_EXPO`
--- | `IN_CIRC`
--- | `OUT_CIRC`
--- | `IN_OUT_CIRC`
--- | `OUT_IN_CIRC`
--- | `IN_BACK`
--- | `OUT_BACK`
--- | `IN_OUT_BACK`
--- | `OUT_IN_BACK`
--- | `IN_ELASTIC`
--- | `OUT_ELASTIC`
--- | `IN_OUT_ELASTIC`
--- | `OUT_IN_ELASTIC`
--- | `IN_BOUNCE`
--- | `OUT_BOUNCE`
--- | `IN_OUT_BOUNCE`
--- | `OUT_IN_BOUNCE`
--- | fun(x: number): number
--------------------
-- math functions --
--------------------
@ -387,7 +430,7 @@ function math.round(x)
return x > 0 and __math_floor(x + 0.5) or __math_ceil(x - 0.5)
end
--- @param t function | number
--- @param t EasingFunction | number
--- @param a number
--- @param b number
--- @param x number
@ -2717,6 +2760,42 @@ CONSOLE_MESSAGE_ERROR = 2 --- @type ConsoleMessageLevel
--- | `CONSOLE_MESSAGE_WARNING`
--- | `CONSOLE_MESSAGE_ERROR`
--- @type number
ROTATION_PIVOT_X_LEFT = 0.0
--- @type number
ROTATION_PIVOT_X_CENTER = 0.5
--- @type number
ROTATION_PIVOT_X_RIGHT = 1.0
--- @type number
ROTATION_PIVOT_Y_TOP = 0.0
--- @type number
ROTATION_PIVOT_Y_CENTER = 0.5
--- @type number
ROTATION_PIVOT_Y_BOTTOM = 1.0
--- @type number
TEXT_HALIGN_LEFT = 0.0
--- @type number
TEXT_HALIGN_CENTER = 0.5
--- @type number
TEXT_HALIGN_RIGHT = 1.0
--- @type number
TEXT_VALIGN_TOP = 0.0
--- @type number
TEXT_VALIGN_CENTER = 0.5
--- @type number
TEXT_VALIGN_BOTTOM = 1.0
RESOLUTION_DJUI = 0 --- @type HudUtilsResolution
RESOLUTION_N64 = 1 --- @type HudUtilsResolution
RESOLUTION_COUNT = 2 --- @type HudUtilsResolution
@ -2735,16 +2814,18 @@ FILTER_COUNT = 2 --- @type HudUtilsFilter
--- | `FILTER_LINEAR`
--- | `FILTER_COUNT`
FONT_NORMAL = 0 --- @type DjuiFontType
FONT_MENU = 1 --- @type DjuiFontType
FONT_HUD = 2 --- @type DjuiFontType
FONT_ALIASED = 3 --- @type DjuiFontType
FONT_CUSTOM_HUD = 4 --- @type DjuiFontType
FONT_RECOLOR_HUD = 5 --- @type DjuiFontType
FONT_SPECIAL = 6 --- @type DjuiFontType
FONT_COUNT = 7 --- @type DjuiFontType
FONT_LEGACY = -1 --- @type DjuiFontType
FONT_NORMAL = 0 --- @type DjuiFontType
FONT_MENU = 1 --- @type DjuiFontType
FONT_HUD = 2 --- @type DjuiFontType
FONT_ALIASED = 3 --- @type DjuiFontType
FONT_CUSTOM_HUD = 4 --- @type DjuiFontType
FONT_RECOLOR_HUD = 5 --- @type DjuiFontType
FONT_SPECIAL = 6 --- @type DjuiFontType
FONT_COUNT = 7 --- @type DjuiFontType
--- @alias DjuiFontType
--- | `FONT_LEGACY`
--- | `FONT_NORMAL`
--- | `FONT_MENU`
--- | `FONT_HUD`
@ -8147,7 +8228,13 @@ HOOK_MARIO_OVERRIDE_FLOOR_CLASS = 56 --- @type LuaHookedEventType
HOOK_ON_ADD_SURFACE = 57 --- @type LuaHookedEventType
HOOK_ON_CLEAR_AREAS = 58 --- @type LuaHookedEventType
HOOK_ON_PACKET_BYTESTRING_RECEIVE = 59 --- @type LuaHookedEventType
HOOK_MAX = 60 --- @type LuaHookedEventType
HOOK_ON_FIND_WALL_COLLISION = 60 --- @type LuaHookedEventType
HOOK_ON_FIND_CEIL = 61 --- @type LuaHookedEventType
HOOK_ON_FIND_FLOOR = 62 --- @type LuaHookedEventType
HOOK_ON_FIND_WATER_LEVEL = 63 --- @type LuaHookedEventType
HOOK_ON_FIND_POISON_GAS_LEVEL = 64 --- @type LuaHookedEventType
HOOK_ON_FIND_SURFACE_ON_RAY = 65 --- @type LuaHookedEventType
HOOK_MAX = 66 --- @type LuaHookedEventType
--- @alias LuaHookedEventType
--- | `HOOK_UPDATE`
@ -8210,6 +8297,12 @@ HOOK_MAX = 60 --- @type LuaHookedEventType
--- | `HOOK_ON_ADD_SURFACE`
--- | `HOOK_ON_CLEAR_AREAS`
--- | `HOOK_ON_PACKET_BYTESTRING_RECEIVE`
--- | `HOOK_ON_FIND_WALL_COLLISION`
--- | `HOOK_ON_FIND_CEIL`
--- | `HOOK_ON_FIND_FLOOR`
--- | `HOOK_ON_FIND_WATER_LEVEL`
--- | `HOOK_ON_FIND_POISON_GAS_LEVEL`
--- | `HOOK_ON_FIND_SURFACE_ON_RAY`
--- | `HOOK_MAX`
--- @type integer
@ -11194,7 +11287,7 @@ COOP_OBJ_FLAG_NON_SYNC = (1 << 2)
COOP_OBJ_FLAG_INITIALIZED = (1 << 3)
--- @type string
SM64COOPDX_VERSION = "v1.4.1"
SM64COOPDX_VERSION = "v1.4.2"
--- @type string
VERSION_TEXT = "v"

View file

@ -3856,7 +3856,9 @@ function djui_hud_reset_color()
-- ...
end
--- @return HudUtilsRotation
--- @return integer rotation
--- @return number pivotX
--- @return number pivotY
--- Gets the current DJUI HUD rotation
function djui_hud_get_rotation()
-- ...
@ -3881,6 +3883,29 @@ function djui_hud_set_rotation_interpolated(prevRotation, prevPivotX, prevPivotY
-- ...
end
--- @return number textHAlign
--- @return number textVAlign
--- Gets the current DJUI HUD text alignment
function djui_hud_get_text_alignment()
-- ...
end
--- @param textHAlign number
--- @param textVAlign number
--- Sets the current DJUI HUD text alignment
function djui_hud_set_text_alignment(textHAlign, textVAlign)
-- ...
end
--- @param prevTextHAlign number
--- @param prevTextVAlign number
--- @param textHAlign number
--- @param textVAlign number
--- Sets the current DJUI HUD text alignment interpolated
function djui_hud_set_text_alignment_interpolated(prevTextHAlign, prevTextVAlign, textHAlign, textVAlign)
-- ...
end
--- @return integer
--- Gets the screen width in the current DJUI HUD resolution
function djui_hud_get_screen_width()
@ -10183,6 +10208,12 @@ function smlua_audio_utils_replace_sequence(sequenceId, bankId, defaultVolume, m
-- ...
end
--- @return integer
--- Allocates a new sequence ID
function smlua_audio_utils_allocate_sequence()
-- ...
end
--- @param filename string
--- @return ModAudio
--- Loads an `audio` stream by `filename` (with extension)
@ -11647,6 +11678,14 @@ function get_active_mod()
-- ...
end
--- @param mod Mod
--- @param subDirectory? string
--- @return table
--- Gets all files a mod contains
function get_mod_files(mod, subDirectory)
-- ...
end
--- @param title string
--- Sets the window title to a custom title
function set_window_title(title)

View file

@ -127,7 +127,7 @@ function update_chat_command_description(command, description)
end
--- @param hookEventType LuaHookedEventType When a function should run
--- @param func fun(...: any): any The function to run
--- @param func fun(...: any): any?, any? The function to run
--- Different hooks can pass in different parameters and have different return values. Be sure to read the hooks guide for more information.
function hook_event(hookEventType, func)
-- ...

View file

@ -955,14 +955,6 @@
--- @field public translation Vec3s
--- @field public rotation Vec3s
--- @class HudUtilsRotation
--- @field public rotation number
--- @field public rotationDiff number
--- @field public prevPivotX number
--- @field public prevPivotY number
--- @field public pivotX number
--- @field public pivotY number
--- @class InstantWarp
--- @field public id integer
--- @field public area integer

View file

@ -1151,6 +1151,18 @@
<br />
## [djui_hud_utils.h](#djui_hud_utils.h)
- ROTATION_PIVOT_X_LEFT
- ROTATION_PIVOT_X_CENTER
- ROTATION_PIVOT_X_RIGHT
- ROTATION_PIVOT_Y_TOP
- ROTATION_PIVOT_Y_CENTER
- ROTATION_PIVOT_Y_BOTTOM
- TEXT_HALIGN_LEFT
- TEXT_HALIGN_CENTER
- TEXT_HALIGN_RIGHT
- TEXT_VALIGN_TOP
- TEXT_VALIGN_CENTER
- TEXT_VALIGN_BOTTOM
### [enum HudUtilsResolution](#HudUtilsResolution)
| Identifier | Value |
@ -1169,6 +1181,7 @@
### [enum DjuiFontType](#DjuiFontType)
| Identifier | Value |
| :--------- | :---- |
| FONT_LEGACY | -1 |
| FONT_NORMAL | 0 |
| FONT_MENU | 1 |
| FONT_HUD | 2 |
@ -3545,7 +3558,13 @@
| HOOK_ON_ADD_SURFACE | 57 |
| HOOK_ON_CLEAR_AREAS | 58 |
| HOOK_ON_PACKET_BYTESTRING_RECEIVE | 59 |
| HOOK_MAX | 60 |
| HOOK_ON_FIND_WALL_COLLISION | 60 |
| HOOK_ON_FIND_CEIL | 61 |
| HOOK_ON_FIND_FLOOR | 62 |
| HOOK_ON_FIND_WATER_LEVEL | 63 |
| HOOK_ON_FIND_POISON_GAS_LEVEL | 64 |
| HOOK_ON_FIND_SURFACE_ON_RAY | 65 |
| HOOK_MAX | 66 |
- MAX_HOOKED_BEHAVIORS
[:arrow_up_small:](#)

View file

@ -1312,7 +1312,8 @@ Calculates and returns the pitch and yaw angles from one 3D position (`from`) to
| to | [Vec3f](structs.md#Vec3f) |
### Returns
- None
- `integer`
- `integer`
### C Prototype
`void calculate_angles(Vec3f from, Vec3f to, RET s16 *pitch, RET s16 *yaw);`
@ -1585,7 +1586,7 @@ Applies a roll-based shake effect to the camera. Simulates rotational disturbanc
| roll | `integer` |
### Returns
- None
- `integer`
### C Prototype
`void shake_camera_roll(INOUT s16 *roll);`
@ -2825,7 +2826,7 @@ Gets the current DJUI HUD font
- `integer`
### C Prototype
`u8 djui_hud_get_font(void);`
`s8 djui_hud_get_font(void);`
[:arrow_up_small:](#)
@ -2928,16 +2929,18 @@ Resets the current DJUI HUD color
Gets the current DJUI HUD rotation
### Lua Example
`local hudUtilsRotationValue = djui_hud_get_rotation()`
`local rotation, pivotX, pivotY = djui_hud_get_rotation()`
### Parameters
- None
### Returns
- [HudUtilsRotation](structs.md#HudUtilsRotation)
- `integer`
- `number`
- `number`
### C Prototype
`struct HudUtilsRotation* djui_hud_get_rotation(void);`
`void djui_hud_get_rotation(RET s16 *rotation, RET f32 *pivotX, RET f32 *pivotY);`
[:arrow_up_small:](#)
@ -2990,7 +2993,79 @@ Sets the current DJUI HUD rotation interpolated
- None
### C Prototype
`void djui_hud_set_rotation_interpolated(s32 prevRotation, f32 prevPivotX, f32 prevPivotY, s32 rotation, f32 pivotX, f32 pivotY);`
`void djui_hud_set_rotation_interpolated(s16 prevRotation, f32 prevPivotX, f32 prevPivotY, s16 rotation, f32 pivotX, f32 pivotY);`
[:arrow_up_small:](#)
<br />
## [djui_hud_get_text_alignment](#djui_hud_get_text_alignment)
### Description
Gets the current DJUI HUD text alignment
### Lua Example
`local textHAlign, textVAlign = djui_hud_get_text_alignment()`
### Parameters
- None
### Returns
- `number`
- `number`
### C Prototype
`void djui_hud_get_text_alignment(RET f32 *textHAlign, RET f32 *textVAlign);`
[:arrow_up_small:](#)
<br />
## [djui_hud_set_text_alignment](#djui_hud_set_text_alignment)
### Description
Sets the current DJUI HUD text alignment
### Lua Example
`djui_hud_set_text_alignment(textHAlign, textVAlign)`
### Parameters
| Field | Type |
| ----- | ---- |
| textHAlign | `number` |
| textVAlign | `number` |
### Returns
- None
### C Prototype
`void djui_hud_set_text_alignment(f32 textHAlign, f32 textVAlign);`
[:arrow_up_small:](#)
<br />
## [djui_hud_set_text_alignment_interpolated](#djui_hud_set_text_alignment_interpolated)
### Description
Sets the current DJUI HUD text alignment interpolated
### Lua Example
`djui_hud_set_text_alignment_interpolated(prevTextHAlign, prevTextVAlign, textHAlign, textVAlign)`
### Parameters
| Field | Type |
| ----- | ---- |
| prevTextHAlign | `number` |
| prevTextVAlign | `number` |
| textHAlign | `number` |
| textVAlign | `number` |
### Returns
- None
### C Prototype
`void djui_hud_set_text_alignment_interpolated(f32 prevTextHAlign, f32 prevTextVAlign, f32 textHAlign, f32 textVAlign);`
[:arrow_up_small:](#)

View file

@ -5134,7 +5134,9 @@ Calculates the distance between two points in 3D space (`from` and `to`), as wel
| to | [Vec3f](structs.md#Vec3f) |
### Returns
- None
- `number`
- `integer`
- `integer`
### C Prototype
`void vec3f_get_dist_and_angle(Vec3f from, Vec3f to, RET f32 *dist, RET s16 *pitch, RET s16 *yaw);`

View file

@ -2945,7 +2945,7 @@ Determines an object's forward speed multiplier.
| floor_nY | `number` |
### Returns
- None
- `number`
### C Prototype
`void calc_obj_friction(RET f32 *objFriction, f32 floor_nY);`
@ -4419,7 +4419,7 @@ Begin by increasing the current object's scale by `scaleVel`, and slowly decreas
| blinkLength | `integer` |
### Returns
- None
- `integer`
### C Prototype
`void obj_update_blinking(INOUT s32 *blinkTimer, s16 baseCycleLength, s16 cycleLengthRange, s16 blinkLength);`
@ -4743,7 +4743,8 @@ Treats far home as Mario. Returns the distance and angle to the nearest player
| threshold | `number` |
### Returns
- None
- `integer`
- `integer`
### C Prototype
`void treat_far_home_as_mario(f32 threshold, RET s32* distanceToPlayer, RET s32* angleToPlayer);`

View file

@ -1963,7 +1963,7 @@ Marks an object to be unloaded at the end of the frame
| dragStrength | `number` |
### Returns
- None
- `number`
### C Prototype
`void apply_drag_to_value(INOUT f32 *value, f32 dragStrength);`
@ -5616,6 +5616,27 @@ Replaces the sequence corresponding to `sequenceId` with one called `m64Name`.m6
<br />
## [smlua_audio_utils_allocate_sequence](#smlua_audio_utils_allocate_sequence)
### Description
Allocates a new sequence ID
### Lua Example
`local integerValue = smlua_audio_utils_allocate_sequence()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u8 smlua_audio_utils_allocate_sequence(void);`
[:arrow_up_small:](#)
<br />
## [audio_stream_load](#audio_stream_load)
### Description

View file

@ -2107,6 +2107,30 @@ Gets the mod currently being processed
<br />
## [get_mod_files](#get_mod_files)
### Description
Gets all files a mod contains
### Lua Example
`local tableValue = get_mod_files(mod, subDirectory)`
### Parameters
| Field | Type |
| ----- | ---- |
| mod | [Mod](structs.md#Mod) |
| subDirectory | `string` |
### Returns
- `table`
### C Prototype
`LuaTable get_mod_files(struct Mod* mod, OPTIONAL const char* subDirectory);`
[:arrow_up_small:](#)
<br />
## [set_window_title](#set_window_title)
### Description

View file

@ -763,6 +763,9 @@
- [djui_hud_get_rotation](functions-3.md#djui_hud_get_rotation)
- [djui_hud_set_rotation](functions-3.md#djui_hud_set_rotation)
- [djui_hud_set_rotation_interpolated](functions-3.md#djui_hud_set_rotation_interpolated)
- [djui_hud_get_text_alignment](functions-3.md#djui_hud_get_text_alignment)
- [djui_hud_set_text_alignment](functions-3.md#djui_hud_set_text_alignment)
- [djui_hud_set_text_alignment_interpolated](functions-3.md#djui_hud_set_text_alignment_interpolated)
- [djui_hud_get_screen_width](functions-3.md#djui_hud_get_screen_width)
- [djui_hud_get_screen_height](functions-3.md#djui_hud_get_screen_height)
- [djui_hud_get_mouse_x](functions-3.md#djui_hud_get_mouse_x)
@ -1825,6 +1828,7 @@
- smlua_audio_utils.h
- [smlua_audio_utils_reset_all](functions-6.md#smlua_audio_utils_reset_all)
- [smlua_audio_utils_replace_sequence](functions-6.md#smlua_audio_utils_replace_sequence)
- [smlua_audio_utils_allocate_sequence](functions-6.md#smlua_audio_utils_allocate_sequence)
- [audio_stream_load](functions-6.md#audio_stream_load)
- [audio_stream_destroy](functions-6.md#audio_stream_destroy)
- [audio_stream_play](functions-6.md#audio_stream_play)
@ -2072,6 +2076,7 @@
- [set_environment_region](functions-7.md#set_environment_region)
- [mod_file_exists](functions-7.md#mod_file_exists)
- [get_active_mod](functions-7.md#get_active_mod)
- [get_mod_files](functions-7.md#get_mod_files)
- [set_window_title](functions-7.md#set_window_title)
- [reset_window_title](functions-7.md#reset_window_title)
- [get_os_name](functions-7.md#get_os_name)

View file

@ -151,6 +151,12 @@ The lua functions sent to `hook_event()` will be automatically called by SM64 wh
| HOOK_MARIO_OVERRIDE_FLOOR_CLASS | Called when Mario's floor class logic updates, return a `SURFACE_CLASS_*` constant to override the type. | [MarioState](../structs.md#MarioState) mario, `integer` surfaceClass |
| HOOK_ON_ADD_SURFACE | Called when collision surfaces are added. | [Surface](../structs.md#Surface) surface, `boolean` dynamic |
| HOOK_ON_CLEAR_AREAS | Called when a level's areas are unloaded. | None |
| HOOK_ON_FIND_WALL_COLLISION | Called after wall collision detection completes. You can modify the `colData` fields directly. Return a number to override `numCollisions` | `number` posX, `number` posY, `number` posZ, [WallCollisionData](../structs.md#WallCollisionData) colData |
| HOOK_ON_FIND_CEIL | Called after ceiling detection completes. Return `height` to override height, or `height, surface` to override both | `number` posX, `number` posY, `number` posZ, [Surface](../structs.md#Surface) ceil, `number` height |
| HOOK_ON_FIND_FLOOR | Called after floor detection completes. Return `height` to override height, or `height, surface` to override both | `number` posX, `number` posY, `number` posZ, [Surface](../structs.md#Surface) floor, `number` height |
| HOOK_ON_FIND_WATER_LEVEL | Called after water level detection completes. Return a number to override the water level | `number` x, `number` z, `number` waterLevel |
| HOOK_ON_FIND_POISON_GAS_LEVEL | Called after poison gas level detection completes. Return a number to override the gas level | `number` x, `number` z, `number` gasLevel |
| HOOK_ON_FIND_SURFACE_ON_RAY | Called after ray-surface intersection completes. Return `surface` to override the hit surface, or `surface, hitPos` to override both | `Vec3f` orig, `Vec3f` dir, [Surface](../structs.md#Surface) hitSurface, `Vec3f` hitPos |
### Parameters

View file

@ -53,7 +53,6 @@
- [GraphNodeSwitchCase](#GraphNodeSwitchCase)
- [GraphNodeTranslation](#GraphNodeTranslation)
- [GraphNodeTranslationRotation](#GraphNodeTranslationRotation)
- [HudUtilsRotation](#HudUtilsRotation)
- [InstantWarp](#InstantWarp)
- [LakituState](#LakituState)
- [LevelValues](#LevelValues)
@ -1427,21 +1426,6 @@
<br />
## [HudUtilsRotation](#HudUtilsRotation)
| Field | Type | Access |
| ----- | ---- | ------ |
| rotation | `number` | |
| rotationDiff | `number` | |
| prevPivotX | `number` | |
| prevPivotY | `number` | |
| pivotX | `number` | |
| pivotY | `number` | |
[:arrow_up_small:](#)
<br />
## [InstantWarp](#InstantWarp)
| Field | Type | Access |

View file

@ -46,10 +46,10 @@ NAMETAGS_MISSING_PARAMETERS = "Fehlende Parameter: [OPTION]"
SELF_KICK = "Du kannst dich nicht selbst kicken."
SELF_BAN = "Du kannst dich nicht selbst bannen."
SELF_MOD = "Du kannst dich nicht selbst zum Moderator machen."
KICK_CONFIRM = "Bist du sicher, dass du '@' vom Server kicken möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein, um fortzufahren."
BAN_CONFIRM = "Bist du sicher, dass du '@' vom Server bannen möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein, um fortzufahren."
PERM_BAN_CONFIRM = "Bist du sicher, dass du '@' dauerhaft vom Server bannen möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein, um fortzufahren."
MOD_CONFIRM = "Bist du sicher, dass du '@' zum Moderator ernennen möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein."
KICK_CONFIRM = "Bist du sicher, dass du '@' vom Server kicken möchtest?\nGib '\\#a0ffa0\\/confirm\\#fff982\\' ein, um fortzufahren."
BAN_CONFIRM = "Bist du sicher, dass du '@' vom Server bannen möchtest?\nGib '\\#a0ffa0\\/confirm\\#fff982\\' ein, um fortzufahren."
PERM_BAN_CONFIRM = "Bist du sicher, dass du '@' dauerhaft vom Server bannen möchtest?\nGib '\\#a0ffa0\\/confirm\\#fff982\\' ein, um fortzufahren."
MOD_CONFIRM = "Bist du sicher, dass du '@' zum Moderator ernennen möchtest?\nGib '\\#a0ffa0\\/confirm\\#fff982\\' ein."
PLAYERS_DESC = "/players - Zeige alle Spieler und ihre IDs."
KICK_DESC = "/kick [NAME|ID] - Kicke einen Spieler vom Server."
BAN_DESC = "/ban [NAME|ID] - Banne einen Spieler vom Server."

View file

@ -1,61 +1,61 @@
[NOTIF]
CONNECTED = "@が接続しました"
DISCONNECTED = "@が切断しました。"
LEFT_THIS_LEVEL = "@がこのコースから出ました"
ENTERED_THIS_LEVEL = "@がこのコースに入りました"
ENTERED = "@が\n#に入りました。"
SERVER_CLOSED = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ 部屋が閉じられました。"
DISCORD_ERROR = "Discordエラーが発生しました。\n解決するには、\n1. ゲームを終了し、\n2. Discordを再起動してから、\n3. もう一度ゲームを開いてください。"
CONNECTED = "@ が参加しました"
DISCONNECTED = "@ が退出しました"
LEFT_THIS_LEVEL = "@ がこのコースから出ました"
ENTERED_THIS_LEVEL = "@ がこのコースに入りました"
ENTERED = "@ が \n# に入りました"
SERVER_CLOSED = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ ルームが閉じられました。"
DISCORD_ERROR = "Discordエラーが発生しました。\n解決するには、\n1. ゲームを終了する\n2. Discordを再起動する\n3. もう一度ゲームを開く\nの手順で進めてください。"
DISCORD_DETECT = "\\#ffa0a0\\エラー:\\#dcdcdc\\ Discordを検出できませんでした。\n\\#a0a0a0\\ゲームを終了し、Discordを再起動してから、もう一度お試しください。"
DISCONNECT_FULL = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ ルームが満員です。"
DISCONNECT_KICK = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ キックされました。"
DISCONNECT_BAN = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ BANされました。"
DISCONNECT_REJOIN = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ 再参加中です…"
DISCONNECT_CLOSED = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ ホストが切断しました。"
DISCONNECT_BIG_MOD = "MODの量が多すぎます\n切断しました。"
DIED = "@がやられた"
DEBUG_FLY = "@がデバッグ飛行モードに入りました!"
IMPORT_MOD_SUCCESS = "'@'\n\\#a0ffa0\\MODを読み込みました\\#dcdcdc\\"
IMPORT_DYNOS_SUCCESS = "'@'\n\\#a0ffa0\\DynOSのパックを読み込みました\\#dcdcdc\\"
IMPORT_PALETTE_SUCCESS = "'@'\n\\#a0ffa0\\パレットのプリセットを読み込みました\\#dcdcdc\\"
IMPORT_FAIL = "'@'\n\\#ffa0a0\\読み込みに失敗しました。\\#dcdcdc\\"
IMPORT_FAIL_INGAME = "\\#ffa0a0\\ゲーム中はMODを読み込めません"
DISCONNECT_BIG_MOD = "このルームはMODの量が多すぎます。\n切断しました。"
DIED = "@がやられた"
DEBUG_FLY = "@がデバッグ飛行モードに入った"
IMPORT_MOD_SUCCESS = "\\#a0ffa0\\MODをインポートしました:\n\\#dcdcdc\\@"
IMPORT_DYNOS_SUCCESS = "\\#a0ffa0\\DynOSパックをインポートしました:\n\\#dcdcdc\\@"
IMPORT_PALETTE_SUCCESS = "\\#a0ffa0\\パレットプリセットをインポートしました:\n\\#dcdcdc\\@"
IMPORT_FAIL = "\\#ffa0a0\\インポートに失敗しました:\n\\#dcdcdc\\@"
IMPORT_FAIL_INGAME = "\\#ffa0a0\\ゲーム中はMODをインポートできません"
COOPNET_CONNECTION_FAILED = "\\#ffa0a0\\CoopNetに接続できませんでした"
COOPNET_DISCONNECTED = "\\#ffa0a0\\CoopNetとの接続が途絶えました!"
COOPNET_DISCONNECTED = "\\#ffa0a0\\CoopNetとの接続が失われました!"
LOBBY_NOT_FOUND = "\\#ffa0a0\\エラー:\\#dcdcdc\\ ルームがすでに閉じられています!"
LOBBY_JOIN_FAILED = "\\#ffa0a0\\ルームに参加できませんでした。"
LOBBY_PASSWORD_INCORRECT = "\\#ffa0a0\\パスワードが間違っています"
COOPNET_VERSION = "\\#ffa0a0\\あなたのバージョンはCoopNetに対応していません。アップデートしましょう"
PEER_FAILED = "\\#ffa0a0\\'@'への接続に失敗しました。"
LOBBY_JOIN_FAILED = "\\#ffa0a0\\ルームへの参加に失敗しました!"
LOBBY_PASSWORD_INCORRECT = "\\#ffa0a0\\パスワードが間違っています"
COOPNET_VERSION = "\\#ffa0a0\\あなたのゲームバージョンはCoopNetに対応していません。アップデートしましょう"
PEER_FAILED = "\\#ffa0a0\\プレイヤー @ への接続に失敗しました。"
UNKNOWN = "未知"
LOBBY_HOST = "部屋主"
LOBBY_HOST = "ルームのホスト"
UPDATE_AVAILABLE = "アップデートが利用可能です!"
LATEST_VERSION = "最新バージョン"
LATEST_VERSION = "最新バージョン"
YOUR_VERSION = "あなたのバージョン"
[CHAT]
KICKING = "'@'をキックしました!"
BANNING = "'@'をBANしました"
KICKING = "@ をキックしました!"
BANNING = "@ をBANしました"
SERVER_ONLY = "このコマンドはホストのみが実行できます。"
PERM_BANNING = "'@'を永久BANしました"
ADD_MODERATOR = "'@'をモデレーターにしました!"
PLAYERS = "プレイヤー"
PERM_BANNING = "@ を永久BANしました"
ADD_MODERATOR = "@ をモデレーターにしました!"
PLAYERS = "ルーム内のプレイヤー"
NO_PERMS = "このコマンドを実行する権限がありません。"
PLAYER_NOT_FOUND = "プレイヤーが見つかりませんでした。"
NAMETAGS_MISSING_PARAMETERS = "引数が不足しています: [OPTION]が必要です。"
NAMETAGS_MISSING_PARAMETERS = "引数が不足しています: [OPTION] が必要です。"
SELF_KICK = "自分自身はキックできません。"
SELF_BAN = "自分自身はBANできません。"
SELF_MOD = "自分自身をモデレーターにすることはできません。"
KICK_CONFIRM = "本当に'@'を強制退出させますか?\n実行するには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。"
BAN_CONFIRM = "本当に'@'をBANしますか\nBANするには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。"
PERM_BAN_CONFIRM = "本当に'@'を永久BANしますか\nBANするには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。"
MOD_CONFIRM = "本当に'@'をモデレーターにしますか?\n'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。"
PLAYERS_DESC = "/players - プレイヤー名とID一覧を表示します。"
KICK_DESC = "/kick [NAME|ID] - プレイヤーを現在のルームからキックします。"
BAN_DESC = "/ban [NAME|ID] - プレイヤーを現在のルームからBANします。"
PERM_BAN_DESC = "/permban [NAME|ID] - プレイヤーをあなたが今後ホストするすべてのルームからBANします。"
MOD_DESC = "/moderator [NAME|ID] - プレイヤーに/kick、/ban、/permbanのようなコマンドの使用を許可します。"
NAMETAGS_DESC = "/nametags [show-tag|show-health] - あなたの体力やネームタグの表示を変更します。"
KICK_CONFIRM = "本当に @ をキックしますか?\n実行するには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。"
BAN_CONFIRM = "本当に @ をBANしますか\nBANするには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。"
PERM_BAN_CONFIRM = "本当に @ を永久BANしますか\nBANするには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。"
MOD_CONFIRM = "本当に @ をモデレーターにしますか?\n'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。"
PLAYERS_DESC = "/players - ルーム内のプレイヤー名とID一覧を表示します。"
KICK_DESC = "/kick [プレイヤー名|ID] - 指定したプレイヤーを現在のルームからキックします。"
BAN_DESC = "/ban [プレイヤー名|ID] - 指定したプレイヤーを現在のルームからBANします。"
PERM_BAN_DESC = "/permban [プレイヤー名|ID] - 指定したプレイヤーをあなたが今後ホストするすべてのルームからBANします。"
MOD_DESC = "/moderator [プレイヤー名|ID] - 指定したプレイヤーに/kick、/ban、/permbanのようなコマンドの使用を許可します。"
NAMETAGS_DESC = "/nametags [show-tag|show-health] - あなたのネームタグ/体力の表示を変更します。"
UNRECOGNIZED = "未知のコマンドです。"
MOD_GRANTED = "\\#fff982\\あなたはモデレーターになりました。"
@ -70,8 +70,8 @@ CAMERA = "CAMERA"
FREE_CAMERA = "フリーカメラ"
ANALOG_CAMERA = "アナログカメラ"
FREE_CAMERA_TITLE = "FREE CAMERA"
FREE_CAMERA_L_CENTERING = "Lセンタリング"
FREE_CAMERA_USE_DPAD = "DPad の動作"
FREE_CAMERA_L_CENTERING = "Lボタンで前を向く"
FREE_CAMERA_USE_DPAD = "十字キー操作"
FREE_CAMERA_COLLISION = "カメラの衝突"
ROMHACK_CAMERA_TITLE = "ROMHACK\nCAMERA"
ROMHACK_CAMERA = "ロムハックカメラ"
@ -79,26 +79,25 @@ ROMHACK_CAMERA_AUTOMATIC = "自動"
ROMHACK_CAMERA_ON = "オン"
ROMHACK_CAMERA_OFF = "オフ"
ROMHACK_CAMERA_IN_BOWSER = "クッパ戦で使用"
ROMHACK_CAMERA_COLLISION = "カメラの衝突"
ROMHACK_CAMERA_L_CENTERING = "Lセンタリング"
ROMHACK_CAMERA_USE_DPAD = "DPad の動作"
ROMHACK_CAMERA_SLOW_FALL = "スローフォール"
CAMERA_TOXIC_GAS = "有毒ガスの調整"
ROMHACK_CAMERA_COLLISION = "カメラの当たり判定"
ROMHACK_CAMERA_L_CENTERING = "Lボタンで前を向く"
ROMHACK_CAMERA_USE_DPAD = "十字キー操作"
ROMHACK_CAMERA_SLOW_FALL = "低速落下"
CAMERA_TOXIC_GAS = "有毒ガス内での調整"
MOUSE_LOOK = "マウスでの操作"
INVERT_X = "X方向のカメラ反転"
INVERT_Y = "Y方向のカメラ反転"
X_SENSITIVITY = "X方向の感度"
Y_SENSITIVITY = "Y方向の感度"
AGGRESSION = "かたさ"
PAN_LEVEL = "カメラのずれ"
DECELERATION = "カメラ減速"
ROMHACK_CAMERA_OFF = "オフ"
AGGRESSION = "カメラの追従性"
PAN_LEVEL = "カメラの水平速度"
DECELERATION = "カメラ減速の強さ"
[CONTROLS]
CONTROLS = "CONTROLS"
N64_BINDS = "ニンテンドウ64の入力"
EXTRA_BINDS = "追加の入力"
N64_BINDS = "ニンテンドウ64のボタン割り当て"
EXTRA_BINDS = "追加のボタン割り当て"
BACKGROUND_GAMEPAD = "バックグラウンドでのコントローラー認識"
DISABLE_GAMEPADS = "コントローラーを無効化"
GAMEPAD = "コントローラー"
@ -106,28 +105,28 @@ DEADZONE = "デッドゾーン"
RUMBLE_STRENGTH = "振動の強さ"
CHAT = "チャット"
PLAYERS = "プレイヤーリストの表示"
PLAYERS = "プレイヤーリスト"
D_UP = "十字キー 上"
D_DOWN = "十字キー 下"
D_LEFT = "十字キー 左"
D_RIGHT = "十字キー 右"
X = "X"
Y = "Y"
X = "Xボタン"
Y = "Yボタン"
CONSOLE = "コンソール"
PREV = "前のページ"
NEXT = "次のページ"
DISCONNECT = "切断"
DISCONNECT = "ゲームから切断"
UP = "上"
DOWN = "下"
LEFT = "左"
RIGHT = "右"
A = "A"
B = "B"
START = "スタート"
L = "L"
R = "R"
Z = "Z"
UP = "3Dスティック 上"
DOWN = "3Dスティック 下"
LEFT = "3Dスティック 左"
RIGHT = "3Dスティック 右"
A = "Aボタン"
B = "Bボタン"
START = "STARTボタン"
L = "Lトリガー"
R = "Rトリガー"
Z = "Zトリガー"
C_UP = "Cボタン 上"
C_DOWN = "Cボタン 下"
C_LEFT = "Cボタン 左"
@ -135,7 +134,7 @@ C_RIGHT = "Cボタン 右"
ANALOG_STICK_OPTIONS = "アナログスティックのオプション"
ROTATE_LEFT = "左スティックを90度回転させる"
ROTATE_LEFT = "左スティックを90度回転"
INVERT_LEFT_X = "左スティックX軸の反転"
INVERT_LEFT_Y = "左スティックY軸の反転"
ROTATE_RIGHT = "右スティックを90度回転"
@ -153,7 +152,7 @@ AUTO = "自動"
MANUAL = "手動"
UNCAPPED = "無制限"
FRAME_LIMIT = "FPSの制限"
FAST = ""
FAST = "速"
ACCURATE = "正確"
INTERPOLATION = "補間"
NEAREST = "ニアレスト"
@ -196,24 +195,24 @@ LOCAL_PLAYER_MODEL_ONLY = "ローカルのキャラモデルに限定"
[HOST_MESSAGE]
INFO_TITLE = "INFO"
WARN_DISCORD = "招待したいフレンドを右クリックしてn'\\#d0d0ff\\ゲームに招待\\#dcdcdc\\'.\n\nを押すと招待できます。サーバー内のチャンネルにも、チャット横の\\#d0d0ff\\プラス\\#dcdcdc\\マークから招待メッセージを送信できます。\n\nゲーム アクティビティを\\#ffa0a0\\必ず\\#dcdcdc\\有効にしてください。\n\n\nオフラインに設定していると、招待の送信を\\#ffa0a0\\妨げる\\#dcdcdc\\可能性があります。"
WARN_DISCORD2 = "\\#ffa0a0\\エラー:\\#dcdcdc\\Discordを検出できませんでした。\n\\#a0a0a0\\ゲームを終了しDiscordを再起動してから、もう一度お試しください。"
WARN_SOCKET = "ファイアウォール設定が正しく設定されている事をご確認ください。\n直接接続には、ルータのポート転送でIPv4インバウンド接続を受信するように設定する\\#ffa0a0\\必要\\#dcdcdc\\があります。\n\nUDPポート'%d'番を開放してください。IPv6にも対応しています。"
WARN_DISCORD = "招待したいフレンドを右クリックしてn'\\#d0d0ff\\ゲームに招待\\#dcdcdc\\'.\n\nを押すと招待できます。サーバー内のチャンネルにも、チャット入力欄の横にある\\#d0d0ff\\+\\#dcdcdc\\マークから招待メッセージを送信できます。\n\nDiscordのユーザー設定からゲーム アクティビティを\\#ffa0a0\\必ず\\#dcdcdc\\有効にしてください。\n\n\nステータスをオフラインに設定していると、招待の送信が\\#ffa0a0\\妨げられる\\#dcdcdc\\可能性があります。"
WARN_DISCORD2 = "\\#ffa0a0\\エラー:\\#dcdcdc\\Discordを検出できませんでした。\n\\#a0a0a0\\ゲームを終了しDiscordを再起動してから、もう一度お試しください。"
WARN_SOCKET = "ファイアウォールの設定が正しく完了していることを確認してください。\nダイレクト接続には\\#ffa0a0\\あなた自身が\\#dcdcdc\\ルーターでIPv4の接続を受け入れるようにポートフォワーディング設定を行う必要があります。\n\nUDPポート'\\#d0d0ff\\%d\\#dcdcdc\\'を解放してください。IPv6も使用可能です。"
HOST = "ルームを作る"
[HOST_MODS]
MODS = "MODS"
CATEGORIES = "カテゴリ一覧"
WARNING = "\\#ffffa0\\<注意>\\#dcdcdc\\ MOD数が10個以上になっています。ラグや不安定を防ぐため、いくつか無効にしてください"
NO_MODS_FOUND = "MOD見つかりませんでした。"
WARNING = "\\#ffffa0\\<注意>\\#dcdcdc\\ MOD数が10個以上になっています。ラグや不安定を防ぐため、いくつか無効にしてください"
NO_MODS_FOUND = "MOD見つかりませんでした。"
[HOST_MOD_CATEGORIES]
ALL = "すべて"
MISC = "その他"
ROMHACKS = "ハックロム"
GAMEMODES = "ゲームモード"
MOVESETS = "ムーブセット"
CHARACTER_SELECT = "キャラクター選択"
ROMHACKS = "ロムハック系"
GAMEMODES = "ゲームモード"
MOVESETS = "ムーブセット"
CHARACTER_SELECT = "追加キャラクター系"
[HOST_SAVE]
SAVE_TITLE = "SAVE"
@ -222,7 +221,7 @@ CONFIRM = "本当に消しますか?"
ERASE = "消す"
EDIT = "編集"
EDIT_TITLE = "EDIT"
EDIT_NAME = "ファイル名を変更:"
EDIT_NAME = "マリオ @のおなまえ変更:"
[HOST_SETTINGS]
SETTINGS = "SETTINGS"
@ -235,7 +234,7 @@ NORMAL = "普通"
TOO_MUCH = "最強"
KNOCKBACK_STRENGTH = "ノックバックの強さ"
CLASSIC_PVP = "クラシック"
REVAMPED_PVP = "改良"
REVAMPED_PVP = "改良"
PVP_MODE = "PvPモード"
LEAVE_LEVEL = "コースを出る"
STAY_IN_LEVEL = "コースに留まる"
@ -243,14 +242,14 @@ NONSTOP = "ノンストップ"
ON_STAR_COLLECTION = "スター取得時の動作"
SKIP_INTRO_CUTSCENE = "イントロをスキップ"
ENABLE_CHEATS = "チートを有効にする"
BUBBLE_ON_DEATH = "やられた時にシャボンで復活"
BUBBLE_ON_DEATH = "ミス時にシャボンで復活"
NAMETAGS = "ネームタグを有効にする"
MOD_DEV_MODE = "MOD開発モード"
BOUNCY_BOUNDS_ON_CAP = "オン(制限付き"
BOUNCY_BOUNDS_ON_CAP = "オン(速度制限)"
BOUNCY_BOUNDS_ON = "オン"
BOUNCY_BOUNDS_OFF = "オフ"
BOUNCY_LEVEL_BOUNDS = "コース境界での跳ね返り"
AMOUNT_OF_PLAYERS = "最大人数"
AMOUNT_OF_PLAYERS = "最大ルーム人数"
PAUSE_ANYWHERE = "どこでもポーズ"
[HOST]
@ -275,7 +274,7 @@ JOINING = "JOINING"
[JOIN]
JOIN_TITLE = "JOIN"
JOIN_DISCORD = "\\#d0d0ff\\Discord\\#dcdcdc\\ロビーへの参加:\n\nゲームを開いたまま、招待メッセージの参加ボタンを押してください。\n\n「ゲームは終了しました」と表示されている場合は、招待を送信した人の名前をクリックして更新してください。"
JOIN_SOCKET = "\\#d0d0ff\\ダイレクト接続\\#dcdcdc\\のIPとポートを入力してください:"
JOIN_SOCKET = "\\#d0d0ff\\ダイレクト接続\\#dcdcdc\\のIPアドレスとポート番号を入力してください:"
JOIN = "参加する"
PUBLIC_LOBBIES = "公開ルーム"
PRIVATE_LOBBIES = "非公開ルーム"
@ -283,14 +282,14 @@ DIRECT = "ダイレクト接続"
[RULES]
RULES_TITLE = "RULES"
RULE_1 = "1. 13歳以上であること。"
RULE_2 = "2. 不快な言葉、中傷、攻撃的な言葉を使わないこと。"
RULE_3 = "3. 非公式ビルドを使わないこと。"
RULE_4 = "4. ゲームをエクスプロイトする外部ツールを使用しないこと。"
RULE_5 = "5. 作者の許可なく、非公開MODを公開しないこと。"
RULE_6 = "6. 全てのNSFWコンテンツは禁止です。"
SUBJECT_TO_CHANGE = "ルールはアップデートで変更される可能性があります。"
NOTICE = "公開ルームではルールをお守りください。"
RULE_1 = "1. CoopNetの利用は13歳以上に限ります。"
RULE_2 = "2. ハラスメント(嫌がらせ)、ヘイトスピーチ、差別用語、その他攻撃的な言動は禁止です。"
RULE_3 = "3. CoopNetでは改造改ざんされていない正規のsm64coopdxのみが使用可能です。"
RULE_4 = "4. ゲームの脆弱性を悪用するための外部ツールの使用は禁止です。"
RULE_5 = "5. 作者の許可なく、未公開MODでルームをホストしないでください。"
RULE_6 = "6. ポルやフェティッシュなコンテンツは一切禁止されています。これにはMOD、キャラクター、成人向けロールプレイなどが含まれますが、これらに限定されません。"
SUBJECT_TO_CHANGE = "これらのルールは今後のアップデートで変更される可能性があります。"
NOTICE = "公開ルームでプレイするためにCoopNetへ接続した時点で、あなたはこれらのルールを遵守することに同意したものとみなされます。"
RULES = "ルールを見る"
[MAIN]
@ -307,27 +306,27 @@ LEVEL = "コース"
STAFF_ROLL = "スタッフロール"
MUSIC = "BGM"
RANDOM_STAGE = "ランダムなステージ"
PLAY_VANILLA_DEMOS = "バニラゲームのデモを再生"
PLAY_VANILLA_DEMOS = "オリジナルゲームのデモを再生"
[MISC]
DEBUG_TITLE = "DEBUG"
FIXED_COLLISIONS = "修正された当たり判定"
LUA_PROFILER = "Luaのプロファイラー"
CTX_PROFILER = "Ctxのプロファイラー"
DEBUG_PRINT = "デバッグ情報の表示"
DEBUG_INFO = "デバッグ情報"
DEBUG_ERRORS = "デバッグエラー"
DEBUG_PRINT = "デバッグログの表示"
DEBUG_INFO = "デバッグ情報の表示"
DEBUG_ERRORS = "デバッグエラーの表示"
MISC_TITLE = "MISC"
PAUSE_IN_SINGLEPLAYER = "ソロプレイでの一時停止"
PAUSE_IN_SINGLEPLAYER = "1人プレイ中にポーズで一時停止を有効化"
DISABLE_POPUPS = "ポップアップを無効にする"
USE_STANDARD_KEY_BINDINGS_CHAT = "初期のチャット操作"
USE_STANDARD_KEY_BINDINGS_CHAT = "旧式チャット操作"
MENU_OPTIONS = "メニューの設定"
INFORMATION = "情報"
DEBUG = "デバッグ"
LANGUAGE = "言語"
COOP_COMPATIBILITY = "sm64ex-coopとの互換性を有効にする"
R_BUTTON = "Rボタン - 設定"
L_BUTTON = "Lボタン - アクティブなMODを再読み込み"
L_BUTTON = "Lボタン - 有効化されたMODを再読み込み"
[INFORMATION]
INFORMATION_TITLE = "INFO"
@ -371,7 +370,7 @@ PLAYER_TITLE = "PLAYER"
OVERALLS = "オーバーオール"
SHIRT = "シャツ"
GLOVES = "手袋"
SHOES = "くつ"
SHOES = "クツ"
HAIR = "髪"
SKIN = "肌"
CAP = "帽子"
@ -408,8 +407,8 @@ MASTER_VOLUME = "主音量"
MUSIC_VOLUME = "BGM音量"
SFX_VOLUME = "SE音量"
ENV_VOLUME = "環境音量"
FADEOUT = "遠い音のフェードアウト"
MUTE_FOCUS_LOSS = "非フォーカス時にミュート"
FADEOUT = "音の距離減衰"
MUTE_FOCUS_LOSS = "非フォーカス時に音をミュート"
[LANGUAGE]
LANGUAGE = "LANGUAGE"
@ -428,12 +427,11 @@ Spanish = "スペイン語 (Español)"
[LOBBIES]
PUBLIC_LOBBIES = "PUBLIC ROOMS"
PRIVATE_LOBBIES = "PRIVATE ROOMS"
REFRESH = "更新"
REFRESH = "更新する"
REFRESHING = "更新中…"
ENTER_PASSWORD = "部屋のパスワードを入力してください:"
ENTER_PASSWORD = "ルームのパスワードを入力してください:"
SEARCH = "検索"
NONE_FOUND = "部屋が見つかりませんでした"
NO_LOBBIES_FOUND = "ロビーは見つからなかった。"
NO_LOBBIES_FOUND = "ルームが見つかりませんでした。"
[CHANGELOG]
CHANGELOG_TITLE = "CHANGELOG"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

35
res/icon.icon/icon.json Normal file
View file

@ -0,0 +1,35 @@
{
"fill" : "automatic",
"groups" : [
{
"layers" : [
{
"image-name" : "icon.png",
"name" : "icon",
"position" : {
"scale" : 3.5,
"translation-in-points" : [
0,
0
]
}
}
],
"shadow" : {
"kind" : "neutral",
"opacity" : 0.5
},
"specular" : false,
"translucency" : {
"enabled" : false,
"value" : 0.5
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}

View file

@ -212,7 +212,7 @@ struct SequenceChannel *allocate_sequence_channel(void) {
#endif
}
}
LOG_ERROR("RAN OUT OF SEQUENCE CHANNELS FOR ALLOCATION!");
return &gSequenceChannelNone;
}
@ -281,7 +281,7 @@ void sequence_player_init_channels_extended(struct SequencePlayer* seqPlayer, u6
if (!seqPlayer) { return; }
u64 channelBits = channelBitsLower;
LOG_DEBUG("Enabling channels (extended) with corresponding bits %llX", channelBits);
for (u32 i = 0; i < CHANNELS_MAX; i++) {
if (i == sizeof(u64) * 8) {
channelBits = channelBitsUpper;
@ -350,9 +350,9 @@ void sequence_player_disable_channels_extended(struct SequencePlayer* seqPlayer,
void sequence_player_disable_all_channels(struct SequencePlayer *seqPlayer) {
if (!seqPlayer) { return; }
MUTEX_LOCK(gAudioThread);
eu_stubbed_printf_0("SUBTRACK DIM\n");
for (u32 i = 0; i < CHANNELS_MAX; i++) {
struct SequenceChannel *seqChannel = seqPlayer->channels[i];
@ -371,16 +371,16 @@ void sequence_player_disable_all_channels(struct SequencePlayer *seqPlayer) {
seqPlayer->channels[i] = &gSequenceChannelNone;
}
}
MUTEX_UNLOCK(gAudioThread);
}
void sequence_channel_enable(struct SequencePlayer *seqPlayer, u8 channelIndex, void *script) {
if (!seqPlayer) { return; }
if (channelIndex >= CHANNELS_MAX) { return; }
MUTEX_LOCK(gAudioThread);
struct SequenceChannel *seqChannel = seqPlayer->channels[channelIndex];
s32 i;
if (IS_SEQUENCE_CHANNEL_VALID(seqChannel) == FALSE) {
@ -409,19 +409,19 @@ void sequence_channel_enable(struct SequencePlayer *seqPlayer, u8 channelIndex,
seq_channel_layer_free(seqChannel, i);
}
}
LOG_DEBUG("Enabled sequence channel %d with script entry of %p", channelIndex, script);
}
MUTEX_UNLOCK(gAudioThread);
}
void sequence_player_disable(struct SequencePlayer *seqPlayer) {
if (!seqPlayer) { return; }
MUTEX_LOCK(gAudioThread);
LOG_DEBUG("Disabling sequence player %p", seqPlayer);
sequence_player_disable_all_channels(seqPlayer);
note_pool_clear(&seqPlayer->notePool);
seqPlayer->finished = TRUE;
@ -1620,7 +1620,7 @@ u8 get_instrument(struct SequenceChannel *seqChannel, u8 instId, struct Instrume
}
void set_instrument(struct SequenceChannel *seqChannel, u8 instId) {
if (instId >= 0x80) {
if (instId >= 0x80 && instId <= 0x83) {
seqChannel->instOrWave = instId;
seqChannel->instrument = NULL;
} else if (instId == 0x7f) {

View file

@ -797,7 +797,22 @@ static s32 bhv_cmd_load_collision_data(void) {
// Command 0x2D: Sets the home position of the object to its current position.
// Usage: SET_HOME()
static s32 bhv_cmd_set_home(void) {
if (!(gCurrentObject->coopFlags & (COOP_OBJ_FLAG_LUA | COOP_OBJ_FLAG_NETWORK))) {
// COOP: only set home via behavior for the following cases
if (
// if the object wasn't created via Lua
!(gCurrentObject->coopFlags & COOP_OBJ_FLAG_LUA)
// if the object wasn't created via network
// OR
// the object has never had its home set via behavior AND its home is default (e.g. (0, 0, 0))
// (this case handles an object that needs its home set via behavior after being spawned by another player)
&& (
!(gCurrentObject->coopFlags & COOP_OBJ_FLAG_NETWORK)
|| (
!gCurrentObject->setHome
&& gCurrentObject->oHomeX == 0.0f && gCurrentObject->oHomeY == 0.0f && gCurrentObject->oHomeZ == 0.0f
)
)
) {
gCurrentObject->oHomeX = gCurrentObject->oPosX;
gCurrentObject->oHomeY = gCurrentObject->oPosY;
gCurrentObject->oHomeZ = gCurrentObject->oPosZ;

View file

@ -827,7 +827,7 @@ OPTIMIZE_O3 bool mtxf_inverse_non_affine(VEC_OUT Mat4 dest, Mat4 src) {
if (fabsf(aug[i][k]) > fabsf(aug[piv][k])) { piv = i; }
}
if (fabsf(aug[piv][k]) < FLT_EPSILON) { return false; }
if (fabsf(aug[piv][k]) < __FLT_EPSILON__) { return false; }
// swap pivot row into place
if (piv != k) {

View file

@ -12,6 +12,7 @@
#include "game/hardcoded.h"
#include "pc/utils/misc.h"
#include "pc/network/network.h"
#include "pc/lua/smlua_hooks.h"
Vec3f gFindWallDirection = { 0 };
u8 gFindWallDirectionActive = false;
@ -343,6 +344,9 @@ s32 find_wall_collisions(struct WallCollisionData *colData) {
s32 numCollisions = 0;
s16 x = colData->x;
s16 z = colData->z;
f32 posX = colData->x;
f32 posY = colData->y;
f32 posZ = colData->z;
colData->numWalls = 0;
@ -371,6 +375,8 @@ s32 find_wall_collisions(struct WallCollisionData *colData) {
// Increment the debug tracker.
gNumCalls.wall += 1;
smlua_call_event_hooks(HOOK_ON_FIND_WALL_COLLISION, posX, posY, posZ, colData, &numCollisions);
return numCollisions;
}
@ -544,6 +550,8 @@ f32 find_ceil(f32 posX, f32 posY, f32 posZ, RET struct Surface **pceil) {
// Increment the debug tracker.
gNumCalls.ceil += 1;
smlua_call_event_hooks(HOOK_ON_FIND_CEIL, posX, posY, posZ, pceil, &height);
return height;
}
@ -882,6 +890,8 @@ f32 find_floor(f32 xPos, f32 yPos, f32 zPos, RET struct Surface **pfloor) {
// Increment the debug tracker.
gNumCalls.floor += 1;
smlua_call_event_hooks(HOOK_ON_FIND_FLOOR, xPos, yPos, zPos, pfloor, &height);
return height;
}
@ -922,6 +932,8 @@ f32 find_water_level(f32 x, f32 z) {
}
}
smlua_call_event_hooks(HOOK_ON_FIND_WATER_LEVEL, x, z, &waterLevel);
return waterLevel;
}
@ -963,6 +975,8 @@ f32 find_poison_gas_level(f32 x, f32 z) {
}
}
smlua_call_event_hooks(HOOK_ON_FIND_POISON_GAS_LEVEL, x, z, &gasLevel);
return gasLevel;
}
@ -1227,6 +1241,7 @@ void find_surface_on_ray(Vec3f orig, Vec3f dir, struct Surface **hit_surface, Ve
if (normalized_dir[1] >= 1.0f || normalized_dir[1] <= -1.0f)
{
find_surface_on_ray_cell(cellX, cellZ, orig, normalized_dir, dir_length, hit_surface, hit_pos, &max_length);
smlua_call_event_hooks(HOOK_ON_FIND_SURFACE_ON_RAY, orig, dir, hit_surface, hit_pos);
return;
}
@ -1249,4 +1264,6 @@ void find_surface_on_ray(Vec3f orig, Vec3f dir, struct Surface **hit_surface, Ve
cellX = (s16)fCellX;
cellZ = (s16)fCellZ;
}
smlua_call_event_hooks(HOOK_ON_FIND_SURFACE_ON_RAY, orig, dir, hit_surface, hit_pos);
}

View file

@ -271,6 +271,8 @@ static void add_surface(struct Surface *surface, s32 dynamic) {
s16 cellZ, cellX;
smlua_call_event_hooks(HOOK_ON_ADD_SURFACE, surface, dynamic);
minX = min_3(surface->vertex1[0], surface->vertex2[0], surface->vertex3[0]);
minZ = min_3(surface->vertex1[2], surface->vertex2[2], surface->vertex3[2]);
maxX = max_3(surface->vertex1[0], surface->vertex2[0], surface->vertex3[0]);
@ -287,7 +289,6 @@ static void add_surface(struct Surface *surface, s32 dynamic) {
}
}
smlua_call_event_hooks(HOOK_ON_ADD_SURFACE, surface, dynamic);
}
/**
@ -805,7 +806,10 @@ static void load_object_collision_model_internal(bool isSOC) {
for (s32 i = 0; i < MAX_PLAYERS; i++) {
f32 dist = dist_between_objects(gCurrentObject, gMarioStates[i].marioObj);
if (dist < tangibleDist) { anyPlayerInTangibleRange = TRUE; }
if (dist < tangibleDist) {
anyPlayerInTangibleRange = TRUE;
break;
}
}
// If the object collision is supposed to be loaded more than the

View file

@ -57,19 +57,19 @@ void bhv_activated_back_and_forth_platform_init(void) {
o->oActivatedBackAndForthPlatformStartYaw = o->oFaceAngleYaw;
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oPosX);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, &o->oPosZ);
sync_object_init_field(o, &o->oVelX);
sync_object_init_field(o, &o->oVelY);
sync_object_init_field(o, &o->oVelZ);
sync_object_init_field(o, &o->oActivatedBackAndForthPlatformMaxOffset);
sync_object_init_field(o, &o->oActivatedBackAndForthPlatformOffset);
sync_object_init_field(o, &o->oActivatedBackAndForthPlatformVel);
sync_object_init_field(o, &o->oActivatedBackAndForthPlatformCountdown);
sync_object_init_field(o, &o->oActivatedBackAndForthPlatformStartYaw);
sync_object_init_field(o, &o->oActivatedBackAndForthPlatformVertical);
sync_object_init_field(o, &o->oActivatedBackAndForthPlatformFlipRotation);
sync_object_init_field(o, o->oPosX);
sync_object_init_field(o, o->oPosY);
sync_object_init_field(o, o->oPosZ);
sync_object_init_field(o, o->oVelX);
sync_object_init_field(o, o->oVelY);
sync_object_init_field(o, o->oVelZ);
sync_object_init_field(o, o->oActivatedBackAndForthPlatformMaxOffset);
sync_object_init_field(o, o->oActivatedBackAndForthPlatformOffset);
sync_object_init_field(o, o->oActivatedBackAndForthPlatformVel);
sync_object_init_field(o, o->oActivatedBackAndForthPlatformCountdown);
sync_object_init_field(o, o->oActivatedBackAndForthPlatformStartYaw);
sync_object_init_field(o, o->oActivatedBackAndForthPlatformVertical);
sync_object_init_field(o, o->oActivatedBackAndForthPlatformFlipRotation);
}
/**

View file

@ -207,14 +207,14 @@ void bhv_homing_amp_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
struct SyncObject *so = sync_object_init(o, 4000.0f);
if (so) {
sync_object_init_field(o, &o->oAmpYPhase);
sync_object_init_field(o, &o->oAnimState);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, &o->oFaceAngleYaw);
sync_object_init_field(o, &o->oForwardVel);
sync_object_init_field(o, &o->oFriction);
sync_object_init_field(o, &o->oHomingAmpAvgY);
sync_object_init_field(o, &o->oHomingAmpLockedOn);
sync_object_init_field(o, o->oAmpYPhase);
sync_object_init_field(o, o->oAnimState);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->oFaceAngleYaw);
sync_object_init_field(o, o->oForwardVel);
sync_object_init_field(o, o->oFriction);
sync_object_init_field(o, o->oHomingAmpAvgY);
sync_object_init_field(o, o->oHomingAmpLockedOn);
}
}
@ -354,12 +354,12 @@ void bhv_circling_amp_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
struct SyncObject *so = sync_object_init(o, 4000.0f);
if (so) {
sync_object_init_field(o, &o->oAmpYPhase);
sync_object_init_field(o, &o->oAnimState);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, &o->oFaceAngleYaw);
sync_object_init_field(o, &o->oForwardVel);
sync_object_init_field(o, &o->oFriction);
sync_object_init_field(o, o->oAmpYPhase);
sync_object_init_field(o, o->oAnimState);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->oFaceAngleYaw);
sync_object_init_field(o, o->oForwardVel);
sync_object_init_field(o, o->oFriction);
}
}

View file

@ -62,9 +62,9 @@ void bhv_arrow_lift_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
struct SyncObject *so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
if (so) {
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, &o->oPrevAction);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->oPrevAction);
sync_object_init_field(o, o->oAction);
}
}

View file

@ -10,10 +10,10 @@
void bhv_haunted_bookshelf_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, &o->oPosX);
sync_object_init_field(o, &o->oHauntedBookshelfShouldOpen);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->oPosX);
sync_object_init_field(o, o->oHauntedBookshelfShouldOpen);
}
// oDistanceToMario is unused by this object.

View file

@ -10,6 +10,9 @@
* in the enclosure nor in the room around it.
*/
static void handle_merry_go_round_music(void) {
// COOP: raise scope of this variable since floor check is no longer strictly tied to music
u16 marioFloorType = 0;
// If the music should play, play it and check whether it still should.
// Otherwise, don't play it and check whether it should.
if (o->oMerryGoRoundMusicShouldPlay == FALSE) {
@ -23,7 +26,7 @@ static void handle_merry_go_round_music(void) {
// Get Mario's floor and floor surface type
struct Surface *marioFloor = NULL;
struct Object *marioObject = gMarioObjects[0];
u16 marioFloorType = 0;
// COOP: `marioFloorType` originally here
if (marioObject) {
find_floor(marioObject->oPosX, marioObject->oPosY, marioObject->oPosZ, &marioFloor);
@ -37,7 +40,9 @@ static void handle_merry_go_round_music(void) {
// The cur_obj_is_mario_on_platform check is redundant since the merry-go-round
// has surface type 0x1A, so Mario cannot be on the merry-go-round
// without being on a floor with surface type 0x1A (SURFACE_MGR_MUSIC).
gMarioOnMerryGoRound = cur_obj_is_any_player_on_platform();
// COOP: `gMarioOnMerryGoRound` is used to determine if the merry-go-round Boos should be active
// for co-op, this means that this check needs to be separated from the music check, since music is client-side.
if (cur_obj_is_mario_on_platform() || marioFloorType == SURFACE_MGR_MUSIC) {
// If Mario is in the merry-go-round's enclosure, play only the merry-go-round music.
play_secondary_music(SEQ_EVENT_MERRY_GO_ROUND, 0, 78, 50);
@ -60,6 +65,28 @@ static void handle_merry_go_round_music(void) {
cur_obj_play_sound_1(SOUND_ENV_MERRY_GO_ROUND_CREAKING);
}
}
// COOP: floor check happens here
// `marioFloorType` refers to the local player's character
gMarioOnMerryGoRound = marioFloorType == SURFACE_MGR_MUSIC || cur_obj_is_any_player_on_platform();
if (!gMarioOnMerryGoRound) {
// check the other Marios' floors
// starting at 1 since local player was already checked
for (s32 i = 1; i < MAX_PLAYERS; i++) {
if (!is_player_active(&gMarioStates[i])) { continue; }
struct Object *marioObject = gMarioStates[i].marioObj;
if (marioObject == NULL) { continue; }
struct Surface *marioFloor = NULL;
find_floor(marioObject->oPosX, marioObject->oPosY, marioObject->oPosZ, &marioFloor);
if (marioFloor != NULL && marioFloor->type == SURFACE_MGR_MUSIC) {
gMarioOnMerryGoRound = TRUE;
break;
}
}
}
}
/**

View file

@ -12,8 +12,8 @@ void bhv_bbh_tilting_trap_platform_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 1000.0f);
sync_object_init_field(o, &o->oAngleVelPitch);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, o->oAngleVelPitch);
sync_object_init_field(o, o->oFaceAnglePitch);
}
f32 x = 0;

View file

@ -120,12 +120,12 @@ void bhv_blue_coin_switch_init(void) {
void bhv_blue_coin_switch_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oVelY);
sync_object_init_field(o, &o->oGravity);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, &o->oHomeY);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oVelY);
sync_object_init_field(o, o->oGravity);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->oPosY);
sync_object_init_field(o, o->oHomeY);
}
// The switch's model is 1/3 size.

View file

@ -300,9 +300,9 @@ void bhv_bobomb_buddy_init(void) {
if (o->oBobombBuddyRole == BOBOMB_BUDDY_ROLE_CANNON) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oBobombBuddyHasTalkedToMario);
sync_object_init_field(o, &o->oBobombBuddyCannonStatus);
sync_object_init_field(o, &forceCannonOpen);
sync_object_init_field(o, o->oBobombBuddyHasTalkedToMario);
sync_object_init_field(o, o->oBobombBuddyCannonStatus);
sync_object_init_field(o, forceCannonOpen);
}
}

View file

@ -27,20 +27,20 @@ struct SyncObject* boo_sync_object_init(void) {
struct SyncObject *so = sync_object_init(o, 4000.0f);
if (so == NULL) { return NULL; }
so->ignore_if_true = boo_ignore_update;
sync_object_init_field(o, &o->oBooBaseScale);
sync_object_init_field(o, &o->oBooNegatedAggressiveness);
sync_object_init_field(o, &o->oBooOscillationTimer);
sync_object_init_field(o, &o->oBooTargetOpacity);
sync_object_init_field(o, &o->oBooTurningSpeed);
sync_object_init_field(o, &o->oFaceAngleRoll);
sync_object_init_field(o, &o->oFaceAngleYaw);
sync_object_init_field(o, &o->oFlags);
sync_object_init_field(o, &o->oForwardVel);
sync_object_init_field(o, &o->oHealth);
sync_object_init_field(o, &o->oInteractStatus);
sync_object_init_field(o, &o->oInteractType);
sync_object_init_field(o, &o->oOpacity);
sync_object_init_field(o, &o->oRoom);
sync_object_init_field(o, o->oBooBaseScale);
sync_object_init_field(o, o->oBooNegatedAggressiveness);
sync_object_init_field(o, o->oBooOscillationTimer);
sync_object_init_field(o, o->oBooTargetOpacity);
sync_object_init_field(o, o->oBooTurningSpeed);
sync_object_init_field(o, o->oFaceAngleRoll);
sync_object_init_field(o, o->oFaceAngleYaw);
sync_object_init_field(o, o->oFlags);
sync_object_init_field(o, o->oForwardVel);
sync_object_init_field(o, o->oHealth);
sync_object_init_field(o, o->oInteractStatus);
sync_object_init_field(o, o->oInteractType);
sync_object_init_field(o, o->oOpacity);
sync_object_init_field(o, o->oRoom);
return so;
}
@ -56,16 +56,11 @@ void bhv_boo_init(void) {
static s32 boo_should_be_stopped(void) {
if (cur_obj_has_behavior(bhvMerryGoRoundBigBoo) || cur_obj_has_behavior(bhvMerryGoRoundBoo)) {
for (s32 i = 0; i < MAX_PLAYERS; i++) {
if (!is_player_active(&gMarioStates[i])) { continue; }
if (gMarioStates[i].currentRoom != BBH_DYNAMIC_SURFACE_ROOM && gMarioStates[i].currentRoom != BBH_NEAR_MERRY_GO_ROUND_ROOM) { return TRUE; }
}
return FALSE;
/*if (!gMarioOnMerryGoRound) {
if (!gMarioOnMerryGoRound) {
return TRUE;
} else {
return FALSE;
}*/
}
} else {
if (o->activeFlags & ACTIVE_FLAG_IN_DIFFERENT_ROOM) {
return TRUE;
@ -384,9 +379,7 @@ static void boo_chase_mario(f32 a0, s16 a1, f32 a2) {
if (boo_vanish_or_appear()) {
o->oInteractType = 0x8000;
u8 isMerryGoRoundBoo = (cur_obj_has_behavior(bhvMerryGoRoundBigBoo) || cur_obj_has_behavior(bhvMerryGoRoundBoo));
if (!isMerryGoRoundBoo && cur_obj_lateral_dist_from_obj_to_home(player) > 1500.0f) {
if (cur_obj_lateral_dist_from_obj_to_home(player) > 1500.0f) {
sp1A = cur_obj_angle_to_home();
} else {
sp1A = angleToPlayer;
@ -535,7 +528,8 @@ static void (*sBooActions[])(void) = {
};
void bhv_boo_loop(void) {
if (o->oAction < 3) {
// COOP: only sync when Boo isn't in a death state
if (o->oAction < 3 || o->oAction == 5) {
if (!sync_object_is_initialized(o->oSyncID)) {
struct SyncObject* so = boo_sync_object_init();
if (so) { so->syncDeathEvent = FALSE; }
@ -862,8 +856,8 @@ void bhv_boo_with_cage_loop(void) {
void bhv_merry_go_round_boo_manager_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oMerryGoRoundBooManagerNumBoosSpawned);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oMerryGoRoundBooManagerNumBoosSpawned);
}
struct Object* player = nearest_player_to_object(o);

View file

@ -32,13 +32,13 @@ void bhv_boo_cage_init(void) {
struct SyncObject* so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
if (so == NULL) { return; }
so->on_received_post = bhv_boo_cage_on_received_post;
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oPosX);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, &o->oPosZ);
sync_object_init_field(o, &o->oVelX);
sync_object_init_field(o, &o->oVelY);
sync_object_init_field(o, &o->oVelZ);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oPosX);
sync_object_init_field(o, o->oPosY);
sync_object_init_field(o, o->oPosZ);
sync_object_init_field(o, o->oVelX);
sync_object_init_field(o, o->oVelY);
sync_object_init_field(o, o->oVelZ);
}
/**

View file

@ -53,7 +53,7 @@ void bhv_big_boulder_loop(void) {
void bhv_big_boulder_generator_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, o->oTimer);
}
struct Object *sp1C;

View file

@ -50,14 +50,14 @@ s16 D_8032F520[][3] = { { 1, 10, 40 }, { 0, 0, 74 }, { -1, -10, 114 }, { 1
void bhv_bowser_tail_anchor_init(void) {
if (!o->parentObj) { mark_obj_for_deletion(o); return; }
sync_object_init_field(o->parentObj, &o->oAction);
sync_object_init_field(o->parentObj, &o->oPrevAction);
sync_object_init_field(o->parentObj, &o->oTimer);
sync_object_init_field(o->parentObj, &o->oIntangibleTimer);
sync_object_init_field(o->parentObj, &o->oInteractStatus);
sync_object_init_field(o->parentObj, &o->header.gfx.scale[0]);
sync_object_init_field(o->parentObj, &o->header.gfx.scale[1]);
sync_object_init_field(o->parentObj, &o->header.gfx.scale[2]);
sync_object_init_field(o->parentObj, o->oAction);
sync_object_init_field(o->parentObj, o->oPrevAction);
sync_object_init_field(o->parentObj, o->oTimer);
sync_object_init_field(o->parentObj, o->oIntangibleTimer);
sync_object_init_field(o->parentObj, o->oInteractStatus);
sync_object_init_field(o->parentObj, o->header.gfx.scale[0]);
sync_object_init_field(o->parentObj, o->header.gfx.scale[1]);
sync_object_init_field(o->parentObj, o->header.gfx.scale[2]);
}
void bhv_bowser_tail_anchor_loop(void) {
@ -112,10 +112,10 @@ void bhv_bowser_flame_spawn_loop(void) {
void bhv_bowser_body_anchor_init(void) {
if (!o->parentObj) { mark_obj_for_deletion(o); return; }
sync_object_init_field(o->parentObj, &o->oInteractType);
sync_object_init_field(o->parentObj, &o->oInteractStatus);
sync_object_init_field(o->parentObj, &o->oIntangibleTimer);
sync_object_init_field(o->parentObj, &o->oDamageOrCoinValue);
sync_object_init_field(o->parentObj, o->oInteractType);
sync_object_init_field(o->parentObj, o->oInteractStatus);
sync_object_init_field(o->parentObj, o->oIntangibleTimer);
sync_object_init_field(o->parentObj, o->oDamageOrCoinValue);
}
void bhv_bowser_body_anchor_loop(void) {
@ -1077,12 +1077,12 @@ void bowser_act_dead(void) {
void bhv_tilting_bowser_lava_platform_init(void) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oAngleVelPitch);
sync_object_init_field(o, &o->oAngleVelRoll);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, &o->oFaceAngleRoll);
sync_object_init_field(o, &o->oMoveAnglePitch);
sync_object_init_field(o, &o->oMoveAngleRoll);
sync_object_init_field(o, o->oAngleVelPitch);
sync_object_init_field(o, o->oAngleVelRoll);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->oFaceAngleRoll);
sync_object_init_field(o, o->oMoveAnglePitch);
sync_object_init_field(o, o->oMoveAngleRoll);
}
void bowser_tilt_platform(struct Object* platform, s16 a1) {
@ -1445,13 +1445,13 @@ void bhv_bowser_init(void) {
so->ignore_if_true = bhv_bowser_ignore_if_true;
so->on_received_post = bhv_bowser_on_received_post;
so->fullObjectSync = TRUE;
sync_object_init_field_with_size(o, &o->header.gfx.node.flags, 16);
sync_object_init_field_with_size(o, &o->header.gfx.animInfo.animFrame, 16);
sync_object_init_field_with_size(o, &bowserCutsceneGlobalIndex, 8);
sync_object_init_field(o, &networkBowserAnimationIndex);
sync_object_init_field(o, &o->header.gfx.scale[0]);
sync_object_init_field(o, &o->header.gfx.scale[1]);
sync_object_init_field(o, &o->header.gfx.scale[2]);
sync_object_init_field(o, o->header.gfx.node.flags);
sync_object_init_field(o, o->header.gfx.animInfo.animFrame);
sync_object_init_field(o, bowserCutsceneGlobalIndex);
sync_object_init_field(o, networkBowserAnimationIndex);
sync_object_init_field(o, o->header.gfx.scale[0]);
sync_object_init_field(o, o->header.gfx.scale[1]);
sync_object_init_field(o, o->header.gfx.scale[2]);
}
}
}
@ -1692,9 +1692,9 @@ void bhv_falling_bowser_platform_loop(void) {
struct SyncObject* so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
if (so) {
so->ignore_if_true = bhv_falling_bowser_platform_ignore_if_true;
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oPrevAction);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oPrevAction);
sync_object_init_field(o, o->oTimer);
}
}

View file

@ -33,7 +33,7 @@ void bhv_bowser_bomb_loop(void) {
struct SyncObject* so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
if (so) {
so->syncDeathEvent = FALSE;
sync_object_init_field(o, &networkBowserBombHit);
sync_object_init_field(o, networkBowserBombHit);
}
}

View file

@ -132,9 +132,9 @@ void bhv_lll_bowser_puzzle_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
struct SyncObject *so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
if (so) {
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oPrevAction);
sync_object_init_field(o, &o->oBowserPuzzleCompletionFlags);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oPrevAction);
sync_object_init_field(o, o->oBowserPuzzleCompletionFlags);
}
}

View file

@ -21,10 +21,10 @@ void bhv_breakable_box_small_init(void) {
o->oAnimState = 1;
o->activeFlags |= ACTIVE_FLAG_UNK9;
sync_object_init(o, 1000.0f);
sync_object_init_field(o, &o->oBreakableBoxSmallReleased);
sync_object_init_field(o, &o->oBreakableBoxSmallFramesSinceReleased);
sync_object_init_field(o, &o->oAnimState);
sync_object_init_field(o, &o->oFlags);
sync_object_init_field(o, o->oBreakableBoxSmallReleased);
sync_object_init_field(o, o->oBreakableBoxSmallFramesSinceReleased);
sync_object_init_field(o, o->oAnimState);
sync_object_init_field(o, o->oFlags);
}
void small_breakable_box_spawn_dust(void) {

View file

@ -3,7 +3,7 @@
void bhv_wf_breakable_wall_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oBreakableWallForce);
sync_object_init_field(o, o->oBreakableWallForce);
}
if (o->oBreakableWallForce || gMarioStates[0].action == ACT_SHOT_FROM_CANNON) {

View file

@ -121,11 +121,11 @@ void bhv_bub_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
struct SyncObject *so = sync_object_init(o, 4000.0f);
if (so) {
sync_object_init_field(o, &o->oCheepCheepUnkF4);
sync_object_init_field(o, &o->oCheepCheepUnkF8);
sync_object_init_field(o, &o->oCheepCheepUnkFC);
sync_object_init_field(o, &o->oCheepCheepUnk104);
sync_object_init_field(o, &o->oCheepCheepUnk108);
sync_object_init_field(o, o->oCheepCheepUnkF4);
sync_object_init_field(o, o->oCheepCheepUnkF8);
sync_object_init_field(o, o->oCheepCheepUnkFC);
sync_object_init_field(o, o->oCheepCheepUnk104);
sync_object_init_field(o, o->oCheepCheepUnk108);
}
}

View file

@ -111,17 +111,17 @@ void bubba_act_1(void) {
void bhv_bubba_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oBubbaUnkF4);
sync_object_init_field(o, &o->oBubbaUnkF8);
sync_object_init_field(o, &o->oBubbaUnkFC);
sync_object_init_field(o, &o->oBubbaUnk100);
sync_object_init_field(o, &o->oBubbaUnk104);
sync_object_init_field(o, &o->oBubbaUnk108);
sync_object_init_field(o, &o->oBubbaUnk10C);
sync_object_init_field(o, &o->oBubbaUnk1AC);
sync_object_init_field(o, &o->oBubbaUnk1B0);
sync_object_init_field(o, &o->oAnimState);
sync_object_init_field(o, &o->oMoveAnglePitch);
sync_object_init_field(o, o->oBubbaUnkF4);
sync_object_init_field(o, o->oBubbaUnkF8);
sync_object_init_field(o, o->oBubbaUnkFC);
sync_object_init_field(o, o->oBubbaUnk100);
sync_object_init_field(o, o->oBubbaUnk104);
sync_object_init_field(o, o->oBubbaUnk108);
sync_object_init_field(o, o->oBubbaUnk10C);
sync_object_init_field(o, o->oBubbaUnk1AC);
sync_object_init_field(o, o->oBubbaUnk1B0);
sync_object_init_field(o, o->oAnimState);
sync_object_init_field(o, o->oMoveAnglePitch);
}
struct MarioState* marioState = nearest_mario_state_to_object(o);

View file

@ -9,9 +9,9 @@ void bhv_bullet_bill_init(void) {
o->oBulletBillInitialMoveYaw = o->oMoveAngleYaw;
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, &o->oFaceAngleRoll);
sync_object_init_field(o, &o->oForwardVel);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->oFaceAngleRoll);
sync_object_init_field(o, o->oForwardVel);
}
}

View file

@ -40,14 +40,14 @@ static void bhv_bully_override_ownership(u8* shouldOverride, u8* shouldOwn) {
static void bhv_bully_network_init(void) {
struct SyncObject* so = sync_object_init(o, 4000.0f);
if (so) {
sync_object_init_field(o, &o->oFlags);
sync_object_init_field(o, &o->oBullyKBTimerAndMinionKOCounter);
sync_object_init_field(o, &o->oForwardVel);
sync_object_init_field(o, &o->oBullyPrevX);
sync_object_init_field(o, &o->oBullyPrevY);
sync_object_init_field(o, &o->oBullyPrevZ);
sync_object_init_field(o, &o->oBullyMarioCollisionAngle);
sync_object_init_field(o, &o->oBullyLastNetworkPlayerIndex);
sync_object_init_field(o, o->oFlags);
sync_object_init_field(o, o->oBullyKBTimerAndMinionKOCounter);
sync_object_init_field(o, o->oForwardVel);
sync_object_init_field(o, o->oBullyPrevX);
sync_object_init_field(o, o->oBullyPrevY);
sync_object_init_field(o, o->oBullyPrevZ);
sync_object_init_field(o, o->oBullyMarioCollisionAngle);
sync_object_init_field(o, o->oBullyLastNetworkPlayerIndex);
so->syncDeathEvent = FALSE;
so->ignore_if_true = bhv_bully_ignore_if_true;
so->override_ownership = bhv_bully_override_ownership;

View file

@ -45,15 +45,15 @@ void bhv_camera_lakitu_init(void) {
so->ignore_if_true = bhv_camera_lakitu_ignore_if_true;
so->override_ownership = bhv_camera_lakitu_override_ownership;
so->on_received_post = bhv_camera_lakitu_on_received_post;
sync_object_init_field(o, &o->oAngleVelPitch);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, &o->oCameraLakituBlinkTimer);
sync_object_init_field(o, &o->oCameraLakituSpeed);
sync_object_init_field(o, &o->oCameraLakituCircleRadius);
sync_object_init_field(o, &o->oCameraLakituFinishedDialog);
sync_object_init_field(o, &o->oCameraLakituPitchVel);
sync_object_init_field(o, o->oAngleVelPitch);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->oCameraLakituBlinkTimer);
sync_object_init_field(o, o->oCameraLakituSpeed);
sync_object_init_field(o, o->oCameraLakituCircleRadius);
sync_object_init_field(o, o->oCameraLakituFinishedDialog);
sync_object_init_field(o, o->oCameraLakituPitchVel);
#ifndef VERSION_JP
sync_object_init_field(o, &o->oCameraLakituUnk104);
sync_object_init_field(o, o->oCameraLakituUnk104);
#endif
}
}

View file

@ -218,16 +218,16 @@ void bhv_cannon_base_loop(void) {
if (so) {
so->on_received_post = cannon_on_received_post;
so->override_ownership = bhv_cannon_override_ownership;
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oPrevAction);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, &o->oPosX);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, &o->oPosZ);
sync_object_init_field(o, &o->oCannonUnk10C);
sync_object_init_field(o, &o->oCannonUnk10C);
sync_object_init_field(o, &o->oCannonUnkF8);
sync_object_init_field(o, &o->oCannonUnkF4);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oPrevAction);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->oPosX);
sync_object_init_field(o, o->oPosY);
sync_object_init_field(o, o->oPosZ);
sync_object_init_field(o, o->oCannonUnk10C);
sync_object_init_field(o, o->oCannonUnk10C);
sync_object_init_field(o, o->oCannonUnkF8);
sync_object_init_field(o, o->oCannonUnkF4);
}
}

View file

@ -62,7 +62,7 @@ void (*sCapSwitchActions[])(void) = { cap_switch_act_0, cap_switch_act_1,
void bhv_cap_switch_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &capSwitchForcePress);
sync_object_init_field(o, capSwitchForcePress);
}
CUR_OBJ_CALL_ACTION_FUNCTION(sCapSwitchActions);

View file

@ -482,8 +482,8 @@ void bhv_chain_chomp_update(void) {
struct SyncObject* so = sync_object_init(o, 1000.0f);
if (so) {
so->syncDeathEvent = FALSE;
sync_object_init_field(o, &o->oChainChompUnk104);
sync_object_init_field_with_size(o, &o->header.gfx.animInfo.animFrame, 16);
sync_object_init_field(o, o->oChainChompUnk104);
sync_object_init_field(o, o->header.gfx.animInfo.animFrame);
}
}
@ -506,12 +506,12 @@ void bhv_chain_chomp_update(void) {
void bhv_wooden_post_update(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oBehParams);
sync_object_init_field(o, &o->oWoodenPostMarioPounding);
sync_object_init_field(o, &o->oWoodenPostOffsetY);
sync_object_init_field(o, &o->oWoodenPostSpeedY);
sync_object_init_field(o, &o->oWoodenPostTotalMarioAngle);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, o->oBehParams);
sync_object_init_field(o, o->oWoodenPostMarioPounding);
sync_object_init_field(o, o->oWoodenPostOffsetY);
sync_object_init_field(o, o->oWoodenPostSpeedY);
sync_object_init_field(o, o->oWoodenPostTotalMarioAngle);
sync_object_init_field(o, o->oTimer);
}
// When ground pounded by mario, drop by -45 + -20

View file

@ -227,11 +227,11 @@ void bhv_chuckya_loop(void) {
if (so != NULL) {
so->override_ownership = bhv_chuckya_override_ownership;
so->ignore_if_true = bhv_chuckya_ignore_if_true;
sync_object_init_field(o, &o->oChuckyaUnk88);
sync_object_init_field(o, &o->oChuckyaUnkF8);
sync_object_init_field(o, &o->oChuckyaUnkFC);
sync_object_init_field(o, &o->oChuckyaUnk100);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, o->oChuckyaUnk88);
sync_object_init_field(o, o->oChuckyaUnkF8);
sync_object_init_field(o, o->oChuckyaUnkFC);
sync_object_init_field(o, o->oChuckyaUnk100);
sync_object_init_field(o, o->oFaceAnglePitch);
}
}

View file

@ -58,9 +58,9 @@ void clam_act_1(void) {
void bhv_clam_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, &o->oClamUnkF4);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->oClamUnkF4);
}
o->header.gfx.scale[1] = 1.5f;

View file

@ -58,12 +58,12 @@ static void cloud_act_fwoosh_hidden(void) {
static void cloud_fwoosh_update(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->header.gfx.scale[0]);
sync_object_init_field(o, &o->oCloudCenterX);
sync_object_init_field(o, &o->oCloudCenterY);
sync_object_init_field(o, &o->oCloudBlowing);
sync_object_init_field(o, &o->oCloudGrowSpeed);
sync_object_init_field(o, &o->oCloudFwooshMovementRadius);
sync_object_init_field(o, o->header.gfx.scale[0]);
sync_object_init_field(o, o->oCloudCenterX);
sync_object_init_field(o, o->oCloudCenterY);
sync_object_init_field(o, o->oCloudBlowing);
sync_object_init_field(o, o->oCloudGrowSpeed);
sync_object_init_field(o, o->oCloudFwooshMovementRadius);
}
struct Object* player = nearest_player_to_object(o);

View file

@ -85,30 +85,30 @@ void bhv_controllable_platform_init(void) {
struct SyncObject* so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
if (so != NULL) {
so->on_received_post = bhv_controllable_platform_on_received_post;
sync_object_init_field(o, &o->oPosX);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, &o->oPosZ);
sync_object_init_field(o, &o->oVelX);
sync_object_init_field(o, &o->oVelY);
sync_object_init_field(o, &o->oVelZ);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oPrevAction);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field_with_size(o, &o->activeFlags, 16);
sync_object_init_field_with_size(o, &D_80331694, 8);
sync_object_init_field_with_size(o, &o->header.gfx.node.flags, 16);
sync_object_init_field(o, o->oPosX);
sync_object_init_field(o, o->oPosY);
sync_object_init_field(o, o->oPosZ);
sync_object_init_field(o, o->oVelX);
sync_object_init_field(o, o->oVelY);
sync_object_init_field(o, o->oVelZ);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oPrevAction);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->activeFlags);
sync_object_init_field(o, D_80331694);
sync_object_init_field(o, o->header.gfx.node.flags);
sync_object_init_field(o, &o->oControllablePlatformUnkF8);
sync_object_init_field(o, &o->oControllablePlatformUnkFC);
sync_object_init_field(o, &o->oControllablePlatformUnk100);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, &o->oFaceAngleRoll);
sync_object_init_field(o, o->oControllablePlatformUnkF8);
sync_object_init_field(o, o->oControllablePlatformUnkFC);
sync_object_init_field(o, o->oControllablePlatformUnk100);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->oFaceAngleRoll);
for (s32 i = 0; i < 4; i++) {
if (controllablePlatformSubs[i] == NULL) { continue; }
sync_object_init_field(o, &controllablePlatformSubs[i]->oAction);
sync_object_init_field(o, &controllablePlatformSubs[i]->oPrevAction);
sync_object_init_field(o, &controllablePlatformSubs[i]->oTimer);
sync_object_init_field(o, &controllablePlatformSubs[i]->oParentRelativePosY);
sync_object_init_field(o, controllablePlatformSubs[i]->oAction);
sync_object_init_field(o, controllablePlatformSubs[i]->oPrevAction);
sync_object_init_field(o, controllablePlatformSubs[i]->oTimer);
sync_object_init_field(o, controllablePlatformSubs[i]->oParentRelativePosY);
}
}
}

View file

@ -31,8 +31,8 @@ void bhv_donut_platform_spawner_update(void) {
void bhv_donut_platform_update(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oGravity);
sync_object_init_field(o, &o->oIntangibleTimer);
sync_object_init_field(o, o->oGravity);
sync_object_init_field(o, o->oIntangibleTimer);
}
struct Object* player = nearest_player_to_object(o);

View file

@ -167,12 +167,12 @@ void bhv_dorrie_update(void) {
struct SyncObject* so = sync_object_init(o, 4000.0f);
if (so) {
so->ignore_if_true = bhv_dorrie_ignore_if_true;
sync_object_init_field(o, &o->oDorrieOffsetY);
sync_object_init_field(o, &o->oDorrieVelY);
sync_object_init_field(o, &o->oDorrieYawVel);
sync_object_init_field(o, &o->oDorrieLiftingMario);
sync_object_init_field(o, &o->oDorrieNeckAngle);
sync_object_init_field(o, &o->oAngleVelYaw);
sync_object_init_field(o, o->oDorrieOffsetY);
sync_object_init_field(o, o->oDorrieVelY);
sync_object_init_field(o, o->oDorrieYawVel);
sync_object_init_field(o, o->oDorrieLiftingMario);
sync_object_init_field(o, o->oDorrieNeckAngle);
sync_object_init_field(o, o->oAngleVelYaw);
}
}

View file

@ -21,10 +21,10 @@ void bhv_lll_drawbridge_spawner_init(void) {
sync_object_init(o, 3000.0f);
for (s32 i = 0; i < 2; i++) {
if (drawbridge[i] == NULL) { continue; }
sync_object_init_field(o, &drawbridge[i]->oFaceAngleRoll);
sync_object_init_field(o, &drawbridge[i]->oAction);
sync_object_init_field(o, &drawbridge[i]->oPrevAction);
sync_object_init_field(o, &drawbridge[i]->oTimer);
sync_object_init_field(o, drawbridge[i]->oFaceAngleRoll);
sync_object_init_field(o, drawbridge[i]->oAction);
sync_object_init_field(o, drawbridge[i]->oPrevAction);
sync_object_init_field(o, drawbridge[i]->oTimer);
}
}

View file

@ -136,9 +136,9 @@ void bhv_elevator_init(void) {
}
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, &o->oVelY);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oPosY);
sync_object_init_field(o, o->oVelY);
}
void (*sElevatorActions[])(void) = { elevator_act_0, elevator_act_1, elevator_act_2, elevator_act_3,

View file

@ -245,9 +245,9 @@ void bhv_enemy_lakitu_update(void) {
// PARTIAL_UPDATE
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oEnemyLakituBlinkTimer);
sync_object_init_field(o, &o->oEnemyLakituSpinyCooldown);
sync_object_init_field(o, &o->oEnemyLakituFaceForwardCountdown);
sync_object_init_field(o, o->oEnemyLakituBlinkTimer);
sync_object_init_field(o, o->oEnemyLakituSpinyCooldown);
sync_object_init_field(o, o->oEnemyLakituFaceForwardCountdown);
}
treat_far_home_as_mario(2000.0f, NULL, NULL);

View file

@ -187,8 +187,8 @@ void bhv_exclamation_box_init(void) {
struct SyncObject* so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
if (so) {
so->syncDeathEvent = FALSE;
sync_object_init_field(o, &o->oExclamationBoxForce);
sync_object_init_field(o, &o->areaTimer);
sync_object_init_field(o, o->oExclamationBoxForce);
sync_object_init_field(o, o->areaTimer);
}
o->areaTimerType = AREA_TIMER_TYPE_MAXIMUM;

View file

@ -3,11 +3,11 @@
void bhv_wdw_express_elevator_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oPrevAction);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, &o->oVelY);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oPrevAction);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->oVelY);
sync_object_init_field(o, o->oPosY);
}
o->oVelY = 0.0f;

View file

@ -79,34 +79,34 @@ void bhv_eyerok_boss_init(void) {
so->minUpdateRate = 1.0f;
so->maxUpdateRate = 1.0f;
so->syncDeathEvent = FALSE;
sync_object_init_field(o, &o->oEyerokBossNumHands);
sync_object_init_field(o, &o->oEyerokBossUnkFC);
sync_object_init_field(o, &o->oEyerokBossActiveHand);
sync_object_init_field(o, &o->oEyerokBossUnk104);
sync_object_init_field(o, &o->oEyerokBossUnk108);
sync_object_init_field(o, &o->oEyerokBossUnk10C);
sync_object_init_field(o, &o->oEyerokBossUnk110);
sync_object_init_field(o, &o->oEyerokBossUnk1AC);
sync_object_init_field(o, o->oEyerokBossNumHands);
sync_object_init_field(o, o->oEyerokBossUnkFC);
sync_object_init_field(o, o->oEyerokBossActiveHand);
sync_object_init_field(o, o->oEyerokBossUnk104);
sync_object_init_field(o, o->oEyerokBossUnk108);
sync_object_init_field(o, o->oEyerokBossUnk10C);
sync_object_init_field(o, o->oEyerokBossUnk110);
sync_object_init_field(o, o->oEyerokBossUnk1AC);
for (s32 i = 0; i < 2; i++) {
sync_object_init_field(o, &hands[i]->oPosX);
sync_object_init_field(o, &hands[i]->oPosY);
sync_object_init_field(o, &hands[i]->oPosZ);
sync_object_init_field(o, &hands[i]->oVelX);
sync_object_init_field(o, &hands[i]->oVelY);
sync_object_init_field(o, &hands[i]->oVelZ);
sync_object_init_field(o, &hands[i]->oForwardVel);
sync_object_init_field(o, &hands[i]->oAction);
sync_object_init_field(o, &hands[i]->oPrevAction);
sync_object_init_field(o, &hands[i]->oTimer);
sync_object_init_field(o, &hands[i]->oHealth);
sync_object_init_field(o, &hands[i]->oEyerokHandWakeUpTimer);
sync_object_init_field(o, &hands[i]->oEyerokReceivedAttack);
sync_object_init_field(o, &hands[i]->oEyerokHandUnkFC);
sync_object_init_field(o, &hands[i]->oEyerokHandUnk100);
sync_object_init_field(o, &hands[i]->oFaceAngleYaw);
sync_object_init_field(o, &hands[i]->oMoveAngleYaw);
sync_object_init_field(o, &hands[i]->oGravity);
sync_object_init_field(o, &hands[i]->oAnimState);
sync_object_init_field(o, hands[i]->oPosX);
sync_object_init_field(o, hands[i]->oPosY);
sync_object_init_field(o, hands[i]->oPosZ);
sync_object_init_field(o, hands[i]->oVelX);
sync_object_init_field(o, hands[i]->oVelY);
sync_object_init_field(o, hands[i]->oVelZ);
sync_object_init_field(o, hands[i]->oForwardVel);
sync_object_init_field(o, hands[i]->oAction);
sync_object_init_field(o, hands[i]->oPrevAction);
sync_object_init_field(o, hands[i]->oTimer);
sync_object_init_field(o, hands[i]->oHealth);
sync_object_init_field(o, hands[i]->oEyerokHandWakeUpTimer);
sync_object_init_field(o, hands[i]->oEyerokReceivedAttack);
sync_object_init_field(o, hands[i]->oEyerokHandUnkFC);
sync_object_init_field(o, hands[i]->oEyerokHandUnk100);
sync_object_init_field(o, hands[i]->oFaceAngleYaw);
sync_object_init_field(o, hands[i]->oMoveAngleYaw);
sync_object_init_field(o, hands[i]->oGravity);
sync_object_init_field(o, hands[i]->oAnimState);
}
}

View file

@ -5,8 +5,8 @@ void bhv_squishable_platform_loop(void) {
struct SyncObject* so = sync_object_init(o, 4000.0f);
if (so) {
so->minUpdateRate = 5.0f;
sync_object_init_field(o, &o->oPlatformTimer);
sync_object_init_field(o, &o->header.gfx.scale[1]);
sync_object_init_field(o, o->oPlatformTimer);
sync_object_init_field(o, o->header.gfx.scale[1]);
}
}
@ -23,7 +23,7 @@ void bhv_bitfs_sinking_platform_loop(void) {
struct SyncObject* so = sync_object_init(o, 4000.0f);
if (so) {
so->minUpdateRate = 5.0f;
sync_object_init_field(o, &o->oPlatformTimer);
sync_object_init_field(o, o->oPlatformTimer);
}
}
@ -43,7 +43,7 @@ void bhv_bitfs_sinking_cage_platform_loop(void) {
struct SyncObject* so = sync_object_init(o, 4000.0f);
if (so) {
so->minUpdateRate = 5.0f;
sync_object_init_field(o, &o->oPlatformTimer);
sync_object_init_field(o, o->oPlatformTimer);
}
}

View file

@ -52,7 +52,7 @@ void bhv_ferris_wheel_axle_init(void) {
if (so) {
so->hasStandardFields = FALSE;
so->maxUpdateRate = 5.0f;
sync_object_init_field(o, &o->oFaceAngleRoll);
sync_object_init_field(o, o->oFaceAngleRoll);
}
}
@ -61,9 +61,9 @@ void bhv_ferris_wheel_platform_init(void) {
if (so) {
so->hasStandardFields = FALSE;
so->maxUpdateRate = 5.0f;
sync_object_init_field(o, &o->oPosX);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, &o->oPosZ);
sync_object_init_field(o, o->oPosX);
sync_object_init_field(o, o->oPosY);
sync_object_init_field(o, o->oPosZ);
}
}

View file

@ -46,8 +46,8 @@ void bhv_fire_piranha_plant_init(void) {
sNumActiveFirePiranhaPlants = sNumKilledFirePiranhaPlants = 0;
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &sNumActiveFirePiranhaPlants);
sync_object_init_field(o, &sNumKilledFirePiranhaPlants);
sync_object_init_field(o, sNumActiveFirePiranhaPlants);
sync_object_init_field(o, sNumKilledFirePiranhaPlants);
}
static void fire_piranha_plant_act_hide(void) {

View file

@ -49,13 +49,13 @@ void bhv_fire_spitter_update(void) {
struct SyncObject* so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
if (so) {
so->on_received_post = bhv_fire_spitter_on_received_post;
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oPrevAction);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, &o->oFireSpitterScaleVel);
sync_object_init_field(o, &o->header.gfx.scale[0]);
sync_object_init_field(o, &o->header.gfx.scale[1]);
sync_object_init_field(o, &o->header.gfx.scale[2]);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oPrevAction);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->oFireSpitterScaleVel);
sync_object_init_field(o, o->header.gfx.scale[0]);
sync_object_init_field(o, o->header.gfx.scale[1]);
sync_object_init_field(o, o->header.gfx.scale[2]);
}
}

View file

@ -36,9 +36,9 @@ void bhv_flamethrower_flame_loop(void) {
void bhv_flamethrower_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, &o->oFlameThowerUnk110);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->oFlameThowerUnk110);
}
struct MarioState* marioState = nearest_mario_state_to_object(o);
struct Object* player = marioState ? marioState->marioObj : NULL;

View file

@ -207,11 +207,11 @@ void bhv_fly_guy_update(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oFlyGuyOscTimer);
sync_object_init_field(o, &o->oFlyGuyLungeYDecel);
sync_object_init_field(o, &o->oFlyGuyLungeTargetPitch);
sync_object_init_field(o, &o->oFlyGuyTargetRoll);
sync_object_init_field(o, &o->oFlyGuyLungeTargetPitch);
sync_object_init_field(o, o->oFlyGuyOscTimer);
sync_object_init_field(o, o->oFlyGuyLungeYDecel);
sync_object_init_field(o, o->oFlyGuyLungeTargetPitch);
sync_object_init_field(o, o->oFlyGuyTargetRoll);
sync_object_init_field(o, o->oFlyGuyLungeTargetPitch);
}
if (!(o->activeFlags & ACTIVE_FLAG_IN_DIFFERENT_ROOM)) {

View file

@ -279,13 +279,13 @@ void bhv_haunted_bookshelf_manager_loop(void) {
so->syncDeathEvent = FALSE;
so->override_ownership = bhv_haunted_bookshelf_manager_override_ownership;
so->ignore_if_true = bhv_haunted_bookshelf_manager_ignore_if_true;
sync_object_init_field_with_size(o, &o->activeFlags, 16);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oBookSwitchManagerUnkF8);
sync_object_init_field(o, &o->oBookSwitchManagerUnkF4);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, &o->oPosX);
sync_object_init_field(o, &o->oForwardVel);
sync_object_init_field(o, o->activeFlags);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oBookSwitchManagerUnkF8);
sync_object_init_field(o, o->oBookSwitchManagerUnkF4);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->oPosX);
sync_object_init_field(o, o->oForwardVel);
}
}
@ -315,12 +315,12 @@ void bhv_book_switch_loop(void) {
so->override_ownership = bhv_haunted_bookshelf_manager_override_ownership;
so->ignore_if_true = bhv_haunted_bookshelf_manager_ignore_if_true;
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oBookSwitchUnkF4);
sync_object_init_field(o, &o->oIntangibleTimer);
sync_object_init_field(o, &o->oPosX);
sync_object_init_field(o, &o->oPosZ);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oBookSwitchUnkF4);
sync_object_init_field(o, o->oIntangibleTimer);
sync_object_init_field(o, o->oPosX);
sync_object_init_field(o, o->oPosZ);
sync_object_init_field(o, o->oTimer);
}
}

View file

@ -117,8 +117,8 @@ void bhv_goomba_init(void) {
o->oGravity = -8.0f / 3.0f * o->oGoombaScale;
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oGoombaTargetYaw);
sync_object_init_field(o, &o->oGoombaWalkTimer);
sync_object_init_field(o, o->oGoombaTargetYaw);
sync_object_init_field(o, o->oGoombaWalkTimer);
}
/**

View file

@ -26,27 +26,27 @@ void bhv_grand_star_init(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
struct SyncObject *so = sync_object_init(o, 4000.0f);
if (so) {
sync_object_init_field(o, &o->header.gfx.scale[0]);
sync_object_init_field(o, &o->header.gfx.scale[1]);
sync_object_init_field(o, &o->header.gfx.scale[2]);
sync_object_init_field(o, &o->oPrevAction);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oSubAction);
sync_object_init_field(o, &o->oInteractStatus);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, &o->oHomeX);
sync_object_init_field(o, &o->oHomeY);
sync_object_init_field(o, &o->oHomeZ);
sync_object_init_field(o, &o->oPosX);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, &o->oPosZ);
sync_object_init_field(o, &o->oGravity);
sync_object_init_field(o, &o->oVelY);
sync_object_init_field(o, &o->oForwardVel);
sync_object_init_field(o, &o->oAngleVelYaw);
sync_object_init_field(o, &o->oMoveAngleYaw);
sync_object_init_field(o, &o->oFaceAngleYaw);
sync_object_init_field(o, &o->oGraphYOffset);
sync_object_init_field(o, o->header.gfx.scale[0]);
sync_object_init_field(o, o->header.gfx.scale[1]);
sync_object_init_field(o, o->header.gfx.scale[2]);
sync_object_init_field(o, o->oPrevAction);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oSubAction);
sync_object_init_field(o, o->oInteractStatus);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->oHomeX);
sync_object_init_field(o, o->oHomeY);
sync_object_init_field(o, o->oHomeZ);
sync_object_init_field(o, o->oPosX);
sync_object_init_field(o, o->oPosY);
sync_object_init_field(o, o->oPosZ);
sync_object_init_field(o, o->oGravity);
sync_object_init_field(o, o->oVelY);
sync_object_init_field(o, o->oForwardVel);
sync_object_init_field(o, o->oAngleVelYaw);
sync_object_init_field(o, o->oMoveAngleYaw);
sync_object_init_field(o, o->oFaceAngleYaw);
sync_object_init_field(o, o->oGraphYOffset);
}
}
return;

View file

@ -24,15 +24,15 @@ void bhv_haunted_chair_init(void) {
}
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, &o->oFaceAngleRoll);
sync_object_init_field(o, &o->oFaceAngleYaw);
sync_object_init_field(o, &o->oHauntedChairUnk104);
sync_object_init_field(o, &o->oHauntedChairUnkF4);
sync_object_init_field(o, &o->oHauntedChairUnkF8);
sync_object_init_field(o, &o->oHauntedChairUnkFC);
sync_object_init_field(o, &o->oMoveAnglePitch);
sync_object_init_field(o, &o->oMoveAngleYaw);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->oFaceAngleRoll);
sync_object_init_field(o, o->oFaceAngleYaw);
sync_object_init_field(o, o->oHauntedChairUnk104);
sync_object_init_field(o, o->oHauntedChairUnkF4);
sync_object_init_field(o, o->oHauntedChairUnkF8);
sync_object_init_field(o, o->oHauntedChairUnkFC);
sync_object_init_field(o, o->oMoveAnglePitch);
sync_object_init_field(o, o->oMoveAngleYaw);
}
void haunted_chair_act_0(void) {

View file

@ -136,11 +136,11 @@ void bhv_heave_ho_loop(void) {
if (so != NULL) {
so->override_ownership = bhv_heave_ho_override_ownership;
so->ignore_if_true = bhv_heave_ho_ignore_if_true;
sync_object_init_field(o, &o->oHeaveHoUnk88);
sync_object_init_field(o, &o->oHeaveHoUnkF4);
sync_object_init_field(o, &o->oInteractStatus);
sync_object_init_field(o, &o->oGraphYOffset);
sync_object_init_field(o, &o->oFaceAngleYaw);
sync_object_init_field(o, o->oHeaveHoUnk88);
sync_object_init_field(o, o->oHeaveHoUnkF4);
sync_object_init_field(o, o->oInteractStatus);
sync_object_init_field(o, o->oGraphYOffset);
sync_object_init_field(o, o->oFaceAngleYaw);
}
}

View file

@ -23,12 +23,12 @@ void bhv_hidden_star_init(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
struct SyncObject *so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
if (so) {
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oHiddenStarTriggerCounter);
sync_object_init_field(o, &o->oPosX);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, &o->oPosZ);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oHiddenStarTriggerCounter);
sync_object_init_field(o, o->oPosX);
sync_object_init_field(o, o->oPosY);
sync_object_init_field(o, o->oPosZ);
sync_object_init_field(o, o->oTimer);
}
}
}

View file

@ -20,9 +20,9 @@ void bhv_hoot_init(void) {
struct SyncObject* so = sync_object_init(o, 4000.0f);
if (so) {
so->ignore_if_true = bhv_hoot_ignore_if_true;
sync_object_init_field(o, &o->oHootAvailability);
sync_object_init_field(o, &o->oMoveAnglePitch);
sync_object_init_field_with_size(o, &o->header.gfx.animInfo.animFrame, 16);
sync_object_init_field(o, o->oHootAvailability);
sync_object_init_field(o, o->oMoveAnglePitch);
sync_object_init_field(o, o->header.gfx.animInfo.animFrame);
}
}

View file

@ -3,12 +3,12 @@ void bhv_horizontal_grindel_init(void) {
o->oHorizontalGrindelTargetYaw = o->oMoveAngleYaw;
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oHorizontalGrindelOnGround);
sync_object_init_field(o, &o->oHorizontalGrindelTargetYaw);
sync_object_init_field(o, &o->oHorizontalGrindelDistToHome);
sync_object_init_field(o, &o->oMoveFlags);
sync_object_init_field(o, &o->oForwardVel);
sync_object_init_field(o, &o->oGravity);
sync_object_init_field(o, o->oHorizontalGrindelOnGround);
sync_object_init_field(o, o->oHorizontalGrindelTargetYaw);
sync_object_init_field(o, o->oHorizontalGrindelDistToHome);
sync_object_init_field(o, o->oMoveFlags);
sync_object_init_field(o, o->oForwardVel);
sync_object_init_field(o, o->oGravity);
}
void bhv_horizontal_grindel_update(void) {

View file

@ -25,9 +25,9 @@ void bhv_ship_part_3_loop(void) {
struct SyncObject* so = sync_object_init(o, 4000.0f);
if (so) {
so->maxUpdateRate = 5.0f;
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, &o->oFaceAngleRoll);
sync_object_init_field(o, &o->oShipPart3UnkF4);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->oFaceAngleRoll);
sync_object_init_field(o, o->oShipPart3UnkF4);
}
}
@ -49,13 +49,13 @@ void bhv_jrb_sliding_box_loop(void) {
struct SyncObject* so = sync_object_init(o, 4000.0f);
if (so) {
so->maxUpdateRate = 5.0f;
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, &o->oFaceAngleRoll);
sync_object_init_field(o, &o->oJrbSlidingBoxUnkF8);
sync_object_init_field(o, &o->oJrbSlidingBoxUnkFC);
sync_object_init_field(o, &o->oParentRelativePosX);
sync_object_init_field(o, &o->oParentRelativePosY);
sync_object_init_field(o, &o->oParentRelativePosZ);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->oFaceAngleRoll);
sync_object_init_field(o, o->oJrbSlidingBoxUnkF8);
sync_object_init_field(o, o->oJrbSlidingBoxUnkFC);
sync_object_init_field(o, o->oParentRelativePosX);
sync_object_init_field(o, o->oParentRelativePosY);
sync_object_init_field(o, o->oParentRelativePosZ);
}
}

View file

@ -47,7 +47,7 @@ void jumping_box_free_update(void) {
void bhv_jumping_box_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 500.0f);
sync_object_init_field(o, &o->oJumpingBoxUnkF4);
sync_object_init_field(o, o->oJumpingBoxUnkF4);
}
switch (o->oHeldState) {

View file

@ -29,14 +29,14 @@ void bhv_kickable_board_loop(void) {
struct MarioState* marioState = nearest_mario_state_to_object(o);
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oAngleVelPitch);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, &o->oKickableBoardF4);
sync_object_init_field(o, &o->oKickableBoardF8);
sync_object_init_field(o, &o->oMoveAngleYaw);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oAngleVelPitch);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->oKickableBoardF4);
sync_object_init_field(o, o->oKickableBoardF8);
sync_object_init_field(o, o->oMoveAngleYaw);
sync_object_init_field(o, o->oPosY);
sync_object_init_field(o, o->oTimer);
}
s32 sp24;
switch (o->oAction) {

View file

@ -391,10 +391,10 @@ void bhv_king_bobomb_loop(void) {
if (so) {
so->override_ownership = bhv_king_bobomb_override_ownership;
so->ignore_if_true = bhv_king_bobomb_ignore_if_true;
sync_object_init_field(o, &o->oKingBobombUnk88);
sync_object_init_field(o, &o->oFlags);
sync_object_init_field(o, &o->oHealth);
sync_object_init_field(o, &o->oInteractStatus);
sync_object_init_field(o, o->oKingBobombUnk88);
sync_object_init_field(o, o->oFlags);
sync_object_init_field(o, o->oHealth);
sync_object_init_field(o, o->oInteractStatus);
}
}

View file

@ -108,22 +108,22 @@ void bhv_klepto_init(void) {
if (so) {
so->on_received_pre = bhv_klepto_on_received_pre;
so->on_received_post = bhv_klepto_on_received_post;
sync_object_init_field(o, &o->oAnimState);
sync_object_init_field(o, &o->oFlags);
sync_object_init_field(o, &o->oKleptoDistanceToTarget);
sync_object_init_field(o, &o->oKleptoUnkF8);
sync_object_init_field(o, &o->oKleptoUnkFC);
sync_object_init_field(o, &o->oKleptoSpeed);
sync_object_init_field(o, &o->oKleptoTimeUntilTargetChange);
sync_object_init_field(o, &o->oKleptoTargetNumber);
sync_object_init_field(o, &o->oKleptoUnk1B0);
sync_object_init_field(o, &o->oSoundStateID);
sync_object_init_field(o, &o->oHomeX);
sync_object_init_field(o, &o->oHomeY);
sync_object_init_field(o, &o->oHomeZ);
sync_object_init_field(o, &o->oMoveAnglePitch);
sync_object_init_field(o, &o->oGravity);
sync_object_init_field_with_size(o, &o->globalPlayerIndex, 8);
sync_object_init_field(o, o->oAnimState);
sync_object_init_field(o, o->oFlags);
sync_object_init_field(o, o->oKleptoDistanceToTarget);
sync_object_init_field(o, o->oKleptoUnkF8);
sync_object_init_field(o, o->oKleptoUnkFC);
sync_object_init_field(o, o->oKleptoSpeed);
sync_object_init_field(o, o->oKleptoTimeUntilTargetChange);
sync_object_init_field(o, o->oKleptoTargetNumber);
sync_object_init_field(o, o->oKleptoUnk1B0);
sync_object_init_field(o, o->oSoundStateID);
sync_object_init_field(o, o->oHomeX);
sync_object_init_field(o, o->oHomeY);
sync_object_init_field(o, o->oHomeZ);
sync_object_init_field(o, o->oMoveAnglePitch);
sync_object_init_field(o, o->oGravity);
sync_object_init_field(o, o->globalPlayerIndex);
}
}

View file

@ -126,28 +126,28 @@ void bhv_koopa_init(void) {
so->on_received_post = bhv_koopa_the_quick_on_received_post;
so->on_sent_pre = bhv_koopa_the_quick_on_sent_pre;
so->override_ownership = bhv_koopa_the_quick_override_ownership;
sync_object_init_field(o, &koopaPathedStartWaypoint);
sync_object_init_field(o, &koopaPathedPrevWaypoint);
sync_object_init_field(o, &koopaShotFromCannon);
sync_object_init_field(o, &o->oPathedPrevWaypointFlags);
sync_object_init_field(o, &o->oPathedTargetPitch);
sync_object_init_field(o, &o->oPathedTargetYaw);
sync_object_init_field(o, &o->oPosX);
sync_object_init_field(o, &o->oPosY);
sync_object_init_field(o, &o->oPosZ);
sync_object_init_field(o, &o->oVelX);
sync_object_init_field(o, &o->oVelY);
sync_object_init_field(o, &o->oVelZ);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oPrevAction);
sync_object_init_field(o, &o->oSubAction);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, &o->oKoopaAgility);
sync_object_init_field(o, &o->parentObj->oKoopaRaceEndpointRaceBegun);
sync_object_init_field(o, &o->parentObj->oKoopaRaceEndpointRaceStatus);
sync_object_init_field(o, &o->oForwardVel);
sync_object_init_field(o, &o->oMoveAngleYaw);
sync_object_init_field(o, &o->areaTimer);
sync_object_init_field(o, koopaPathedStartWaypoint);
sync_object_init_field(o, koopaPathedPrevWaypoint);
sync_object_init_field(o, koopaShotFromCannon);
sync_object_init_field(o, o->oPathedPrevWaypointFlags);
sync_object_init_field(o, o->oPathedTargetPitch);
sync_object_init_field(o, o->oPathedTargetYaw);
sync_object_init_field(o, o->oPosX);
sync_object_init_field(o, o->oPosY);
sync_object_init_field(o, o->oPosZ);
sync_object_init_field(o, o->oVelX);
sync_object_init_field(o, o->oVelY);
sync_object_init_field(o, o->oVelZ);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oPrevAction);
sync_object_init_field(o, o->oSubAction);
sync_object_init_field(o, o->oTimer);
sync_object_init_field(o, o->oKoopaAgility);
sync_object_init_field(o, o->parentObj->oKoopaRaceEndpointRaceBegun);
sync_object_init_field(o, o->parentObj->oKoopaRaceEndpointRaceStatus);
sync_object_init_field(o, o->oForwardVel);
sync_object_init_field(o, o->oMoveAngleYaw);
sync_object_init_field(o, o->areaTimer);
}
o->areaTimerType = AREA_TIMER_TYPE_MAXIMUM;
o->areaTimer = 0;
@ -156,10 +156,10 @@ void bhv_koopa_init(void) {
} else {
// normal koopa
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oKoopaTargetYaw);
sync_object_init_field(o, &o->oKoopaCountdown);
sync_object_init_field(o, &o->oKoopaMovementType);
sync_object_init_field(o, &o->oKoopaUnshelledTimeUntilTurn);
sync_object_init_field(o, o->oKoopaTargetYaw);
sync_object_init_field(o, o->oKoopaCountdown);
sync_object_init_field(o, o->oKoopaMovementType);
sync_object_init_field(o, o->oKoopaUnshelledTimeUntilTurn);
}
}

View file

@ -3,7 +3,7 @@
void bhv_lll_wood_piece_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 1000.0f);
sync_object_init_field(o, &o->oLllWoodPieceOscillationTimer);
sync_object_init_field(o, o->oLllWoodPieceOscillationTimer);
}
if (o->oTimer == 0)

View file

@ -19,7 +19,7 @@ void hexagonal_ring_spawn_flames(void) {
void bhv_lll_rotating_hexagonal_ring_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oAngleVelYaw);
sync_object_init_field(o, o->oAngleVelYaw);
}
UNUSED s32 unused;
o->oCollisionDistance = 4000.0f;

View file

@ -63,10 +63,10 @@ s32 lll_octagonal_mesh_find_y_offset(s32 *a0, f32 *a1, s32 a2, s32 a3) {
void bhv_lll_moving_octagonal_mesh_platform_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oHorizontalMovementUnkF8);
sync_object_init_field(o, &o->oHorizontalMovementUnkF4);
sync_object_init_field(o, &o->oHorizontalMovementUnk100);
sync_object_init_field(o, &o->oForwardVel);
sync_object_init_field(o, o->oHorizontalMovementUnkF8);
sync_object_init_field(o, o->oHorizontalMovementUnkF4);
sync_object_init_field(o, o->oHorizontalMovementUnk100);
sync_object_init_field(o, o->oForwardVel);
}
if (o->oAction == 0) {
o->oHorizontalMovementUnkF8 = 0;

View file

@ -63,7 +63,7 @@ void (*sRotatingCwFireBarsActions[])(void) = { fire_bar_act_0, fire_bar_act_1,
void bhv_lll_rotating_block_fire_bars_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oAngleVelYaw);
sync_object_init_field(o, o->oAngleVelYaw);
}
CUR_OBJ_CALL_ACTION_FUNCTION(sRotatingCwFireBarsActions);
if (o->oBehParams2ndByte == 0)

View file

@ -17,8 +17,8 @@ void sinking_rectangular_plat_actions(f32 a0, s32 a1) {
void bhv_lll_sinking_rectangular_platform_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 1000.0f);
sync_object_init_field(o, &o->oLllWoodPieceOscillationTimer);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, o->oLllWoodPieceOscillationTimer);
sync_object_init_field(o, o->oFaceAnglePitch);
}
f32 sp1C = 0.4f;
s32 sp18 = 0x100;
@ -33,7 +33,7 @@ void bhv_lll_sinking_rectangular_platform_loop(void) {
void bhv_lll_sinking_square_platforms_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 1000.0f);
sync_object_init_field(o, &o->oLllWoodPieceOscillationTimer);
sync_object_init_field(o, o->oLllWoodPieceOscillationTimer);
}
f32 sp1C = 0.5f;
s32 sp18 = 0x100;

View file

@ -3,8 +3,8 @@
void bhv_lll_sinking_rock_block_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 1000.0f);
sync_object_init_field(o, &o->oSinkWhenSteppedOnUnk104);
sync_object_init_field(o, &o->oGraphYOffset);
sync_object_init_field(o, o->oSinkWhenSteppedOnUnk104);
sync_object_init_field(o, o->oGraphYOffset);
}
lll_octagonal_mesh_find_y_offset(&o->oSinkWhenSteppedOnUnk104, &o->oSinkWhenSteppedOnUnk108, 124, -110);
o->oGraphYOffset = 0.0f;

View file

@ -42,13 +42,13 @@ void bhv_manta_ray_init(void) {
cur_obj_scale(2.5f);
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oMantaTargetPitch);
sync_object_init_field(o, &o->oMantaTargetYaw);
sync_object_init_field(o, &o->oWaterRingSpawnerRingsCollected);
sync_object_init_field(o, &o->oMoveAnglePitch);
sync_object_init_field(o, &o->oMoveAngleRoll);
sync_object_init_field(o, o->oMantaTargetPitch);
sync_object_init_field(o, o->oMantaTargetYaw);
sync_object_init_field(o, o->oWaterRingSpawnerRingsCollected);
sync_object_init_field(o, o->oMoveAnglePitch);
sync_object_init_field(o, o->oMoveAngleRoll);
if (ringManager != NULL) {
sync_object_init_field(o, &ringManager->oWaterRingMgrNextRingIndex);
sync_object_init_field(o, ringManager->oWaterRingMgrNextRingIndex);
}
}

View file

@ -28,7 +28,7 @@ s32 check_if_moving_over_floor(f32 a0, f32 a1) {
void bhv_pushable_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, 1000.0f);
sync_object_init_field(o, &o->oMoveAngleYaw);
sync_object_init_field(o, o->oMoveAngleYaw);
}
struct MarioState* marioState = nearest_mario_state_to_object(o);

View file

@ -69,12 +69,12 @@ void bhv_mips_init(void) {
struct SyncObject* so = sync_object_init(o, 4000.0f);
if (so) {
sync_object_init_field(o, &o->oMipsStartWaypointIndex);
sync_object_init_field(o, &o->oForwardVel);
sync_object_init_field(o, &o->oMipsStarStatus);
sync_object_init_field(o, &o->oBehParams2ndByte);
sync_object_init_field(o, &o->oHeldState);
sync_object_init_field(o, &o->oFlags);
sync_object_init_field(o, o->oMipsStartWaypointIndex);
sync_object_init_field(o, o->oForwardVel);
sync_object_init_field(o, o->oMipsStarStatus);
sync_object_init_field(o, o->oBehParams2ndByte);
sync_object_init_field(o, o->oHeldState);
sync_object_init_field(o, o->oFlags);
so->on_received_pre = bhv_mips_on_received_pre;
so->on_received_post = bhv_mips_on_received_post;
}

View file

@ -32,11 +32,11 @@ void bhv_moneybag_init(void) {
o->oOpacity = 0;
sync_object_init(o, 4000.0f);
sync_object_init_field(o, &o->oHomeX);
sync_object_init_field(o, &o->oHomeY);
sync_object_init_field(o, &o->oHomeZ);
sync_object_init_field(o, &o->oMoneybagJumpState);
sync_object_init_field(o, &o->oOpacity);
sync_object_init_field(o, o->oHomeX);
sync_object_init_field(o, o->oHomeY);
sync_object_init_field(o, o->oHomeZ);
sync_object_init_field(o, o->oMoneybagJumpState);
sync_object_init_field(o, o->oOpacity);
}
void moneybag_check_mario_collision(void) {
@ -228,9 +228,9 @@ void bhv_moneybag_hidden_loop(void) {
if (!sync_object_is_initialized(o->oSyncID)) {
sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS);
sync_object_init_field(o, &o->oAction);
sync_object_init_field(o, &o->oPrevAction);
sync_object_init_field(o, &o->oTimer);
sync_object_init_field(o, o->oAction);
sync_object_init_field(o, o->oPrevAction);
sync_object_init_field(o, o->oTimer);
}
switch (o->oAction) {

View file

@ -175,15 +175,15 @@ void bhv_monty_mole_init(void) {
struct SyncObject* so = sync_object_init(o, 4000.0f);
if (so) {
so->on_received_post = bhv_monty_mole_on_received_post;
sync_object_init_field(o, &o->oMontyMoleHeightRelativeToFloor);
sync_object_init_field(o, &o->oMontyMoleHoleX);
sync_object_init_field(o, &o->oMontyMoleHoleY);
sync_object_init_field(o, &o->oMontyMoleHoleZ);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field(o, &o->oGravity);
sync_object_init_field(o, &o->oIntangibleTimer);
sync_object_init_field(o, &o->oFaceAnglePitch);
sync_object_init_field_with_size(o, &o->header.gfx.node.flags, 16);
sync_object_init_field(o, o->oMontyMoleHeightRelativeToFloor);
sync_object_init_field(o, o->oMontyMoleHoleX);
sync_object_init_field(o, o->oMontyMoleHoleY);
sync_object_init_field(o, o->oMontyMoleHoleZ);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->oGravity);
sync_object_init_field(o, o->oIntangibleTimer);
sync_object_init_field(o, o->oFaceAnglePitch);
sync_object_init_field(o, o->header.gfx.node.flags);
}
}

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