From d2d55e79dd75c931c09d226f9927cb739c7495a1 Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Mon, 16 Feb 2026 11:23:29 +1000 Subject: [PATCH 01/20] make hook errors report the culprit file --- autogen/gen_hooks.py | 2 +- src/pc/lua/smlua_hook_events_autogen.inl | 114 +++++++++++------------ 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/autogen/gen_hooks.py b/autogen/gen_hooks.py index 73d74769f..e2fe453b3 100644 --- a/autogen/gen_hooks.py +++ b/autogen/gen_hooks.py @@ -30,7 +30,7 @@ SMLUA_CALL_EVENT_HOOKS_SET_HOOK_RESULT = """ SMLUA_CALL_EVENT_HOOKS_CALLBACK = """ // call the callback if (0 != smlua_call_hook(L, {n_inputs}, {n_outputs}, 0, hook->mod[i], hook->modFile[i])) {{ - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[{hook_type}]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[{hook_type}], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; }}{set_hook_result} """ diff --git a/src/pc/lua/smlua_hook_events_autogen.inl b/src/pc/lua/smlua_hook_events_autogen.inl index eb2b7647f..8468eb4b8 100644 --- a/src/pc/lua/smlua_hook_events_autogen.inl +++ b/src/pc/lua/smlua_hook_events_autogen.inl @@ -16,7 +16,7 @@ bool smlua_call_event_hooks_HOOK_UPDATE() { // call the callback if (0 != smlua_call_hook(L, 0, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_UPDATE]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_UPDATE], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -46,7 +46,7 @@ bool smlua_call_event_hooks_HOOK_MARIO_UPDATE(struct MarioState *m) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_MARIO_UPDATE]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_MARIO_UPDATE], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -76,7 +76,7 @@ bool smlua_call_event_hooks_HOOK_BEFORE_MARIO_UPDATE(struct MarioState *m) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_BEFORE_MARIO_UPDATE]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_BEFORE_MARIO_UPDATE], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -106,7 +106,7 @@ bool smlua_call_event_hooks_HOOK_ON_SET_MARIO_ACTION(struct MarioState *m) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_SET_MARIO_ACTION]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_SET_MARIO_ACTION], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -141,7 +141,7 @@ bool smlua_call_event_hooks_HOOK_BEFORE_PHYS_STEP(struct MarioState *m, s32 step // call the callback if (0 != smlua_call_hook(L, 3, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_BEFORE_PHYS_STEP]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_BEFORE_PHYS_STEP], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } @@ -186,7 +186,7 @@ bool smlua_call_event_hooks_HOOK_ALLOW_PVP_ATTACK(struct MarioState *attacker, s // call the callback if (0 != smlua_call_hook(L, 3, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ALLOW_PVP_ATTACK]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ALLOW_PVP_ATTACK], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -230,7 +230,7 @@ bool smlua_call_event_hooks_HOOK_ON_PVP_ATTACK(struct MarioState *attacker, stru // call the callback if (0 != smlua_call_hook(L, 3, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_PVP_ATTACK]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_PVP_ATTACK], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -260,7 +260,7 @@ bool smlua_call_event_hooks_HOOK_ON_PLAYER_CONNECTED(struct MarioState *m) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_PLAYER_CONNECTED]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_PLAYER_CONNECTED], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -290,7 +290,7 @@ bool smlua_call_event_hooks_HOOK_ON_PLAYER_DISCONNECTED(struct MarioState *m) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_PLAYER_DISCONNECTED]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_PLAYER_DISCONNECTED], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -326,7 +326,7 @@ bool smlua_call_event_hooks_HOOK_ALLOW_INTERACT(struct MarioState *m, struct Obj // call the callback if (0 != smlua_call_hook(L, 3, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ALLOW_INTERACT]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ALLOW_INTERACT], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -370,7 +370,7 @@ bool smlua_call_event_hooks_HOOK_ON_INTERACT(struct MarioState *m, struct Object // call the callback if (0 != smlua_call_hook(L, 4, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_INTERACT]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_INTERACT], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -409,7 +409,7 @@ bool smlua_call_event_hooks_HOOK_ON_LEVEL_INIT(u8 warpType, s16 levelNum, u8 are // call the callback if (0 != smlua_call_hook(L, 5, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_LEVEL_INIT]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_LEVEL_INIT], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -448,7 +448,7 @@ bool smlua_call_event_hooks_HOOK_ON_WARP(u8 warpType, s16 levelNum, u8 areaIdx, // call the callback if (0 != smlua_call_hook(L, 5, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_WARP]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_WARP], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -472,7 +472,7 @@ bool smlua_call_event_hooks_HOOK_ON_SYNC_VALID() { // call the callback if (0 != smlua_call_hook(L, 0, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_SYNC_VALID]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_SYNC_VALID], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -499,7 +499,7 @@ bool smlua_call_event_hooks_HOOK_ON_OBJECT_UNLOAD(struct Object *obj) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_OBJECT_UNLOAD]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_OBJECT_UNLOAD], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -526,7 +526,7 @@ bool smlua_call_event_hooks_HOOK_ON_SYNC_OBJECT_UNLOAD(struct Object *obj) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_SYNC_OBJECT_UNLOAD]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_SYNC_OBJECT_UNLOAD], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -553,7 +553,7 @@ bool smlua_call_event_hooks_HOOK_ON_PAUSE_EXIT(bool usedExitToCastle, bool *allo // call the callback if (0 != smlua_call_hook(L, 1, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_PAUSE_EXIT]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_PAUSE_EXIT], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -581,7 +581,7 @@ bool smlua_call_event_hooks_HOOK_GET_STAR_COLLECTION_DIALOG(s32 *dialogID) { // call the callback if (0 != smlua_call_hook(L, 0, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_GET_STAR_COLLECTION_DIALOG]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_GET_STAR_COLLECTION_DIALOG], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } @@ -619,7 +619,7 @@ bool smlua_call_event_hooks_HOOK_ON_SET_CAMERA_MODE(struct Camera *c, s16 mode, // call the callback if (0 != smlua_call_hook(L, 3, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_SET_CAMERA_MODE]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_SET_CAMERA_MODE], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -651,7 +651,7 @@ bool smlua_call_event_hooks_HOOK_ON_OBJECT_RENDER(struct Object *obj) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_OBJECT_RENDER]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_OBJECT_RENDER], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -681,7 +681,7 @@ bool smlua_call_event_hooks_HOOK_ON_DEATH(struct MarioState *m, bool *allowDeath // call the callback if (0 != smlua_call_hook(L, 1, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_DEATH]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_DEATH], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -714,7 +714,7 @@ bool smlua_call_event_hooks_HOOK_ON_PACKET_RECEIVE(s32 modIndex, s32 valueIndex) // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_PACKET_RECEIVE]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_PACKET_RECEIVE], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -740,7 +740,7 @@ bool smlua_call_event_hooks_HOOK_USE_ACT_SELECT(s32 levelNum, bool *useActSelect // call the callback if (0 != smlua_call_hook(L, 1, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_USE_ACT_SELECT]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_USE_ACT_SELECT], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } @@ -773,7 +773,7 @@ bool smlua_call_event_hooks_HOOK_ON_CHANGE_CAMERA_ANGLE(s32 camAngleType, bool * // call the callback if (0 != smlua_call_hook(L, 1, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_CHANGE_CAMERA_ANGLE]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_CHANGE_CAMERA_ANGLE], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -805,7 +805,7 @@ bool smlua_call_event_hooks_HOOK_ON_SCREEN_TRANSITION(s32 transitionType, bool * // call the callback if (0 != smlua_call_hook(L, 1, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_SCREEN_TRANSITION]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_SCREEN_TRANSITION], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -843,7 +843,7 @@ bool smlua_call_event_hooks_HOOK_ALLOW_HAZARD_SURFACE(struct MarioState *m, s32 // call the callback if (0 != smlua_call_hook(L, 2, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ALLOW_HAZARD_SURFACE]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ALLOW_HAZARD_SURFACE], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -881,7 +881,7 @@ bool smlua_call_event_hooks_HOOK_ON_CHAT_MESSAGE(struct MarioState *m, const cha // call the callback if (0 != smlua_call_hook(L, 2, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_CHAT_MESSAGE]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_CHAT_MESSAGE], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -919,7 +919,7 @@ bool smlua_call_event_hooks_HOOK_OBJECT_SET_MODEL(struct Object *obj, s32 modelI // call the callback if (0 != smlua_call_hook(L, 3, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_OBJECT_SET_MODEL]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_OBJECT_SET_MODEL], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -951,7 +951,7 @@ bool smlua_call_event_hooks_HOOK_CHARACTER_SOUND(struct MarioState *m, enum Char // call the callback if (0 != smlua_call_hook(L, 2, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_CHARACTER_SOUND]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_CHARACTER_SOUND], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } @@ -993,7 +993,7 @@ bool smlua_call_event_hooks_HOOK_BEFORE_SET_MARIO_ACTION(struct MarioState *m, u // call the callback if (0 != smlua_call_hook(L, 3, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_BEFORE_SET_MARIO_ACTION]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_BEFORE_SET_MARIO_ACTION], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1022,7 +1022,7 @@ bool smlua_call_event_hooks_HOOK_JOINED_GAME() { // call the callback if (0 != smlua_call_hook(L, 0, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_JOINED_GAME]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_JOINED_GAME], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1049,7 +1049,7 @@ bool smlua_call_event_hooks_HOOK_ON_OBJECT_ANIM_UPDATE(struct Object *obj) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_OBJECT_ANIM_UPDATE]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_OBJECT_ANIM_UPDATE], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1076,7 +1076,7 @@ bool smlua_call_event_hooks_HOOK_ON_DIALOG(s32 dialogID, bool *openDialogBox, co // call the callback if (0 != smlua_call_hook(L, 1, 2, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_DIALOG]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_DIALOG], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1110,7 +1110,7 @@ bool smlua_call_event_hooks_HOOK_ON_EXIT() { // call the callback if (0 != smlua_call_hook(L, 0, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_EXIT]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_EXIT], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1136,7 +1136,7 @@ bool smlua_call_event_hooks_HOOK_DIALOG_SOUND(s32 speaker, s32 *speakerOverride) // call the callback if (0 != smlua_call_hook(L, 1, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_DIALOG_SOUND]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_DIALOG_SOUND], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } @@ -1172,7 +1172,7 @@ bool smlua_call_event_hooks_HOOK_ON_COLLIDE_LEVEL_BOUNDS(struct MarioState *m) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_COLLIDE_LEVEL_BOUNDS]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_COLLIDE_LEVEL_BOUNDS], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1202,7 +1202,7 @@ bool smlua_call_event_hooks_HOOK_MIRROR_MARIO_RENDER(struct GraphNodeObject *mir // call the callback if (0 != smlua_call_hook(L, 2, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_MIRROR_MARIO_RENDER]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_MIRROR_MARIO_RENDER], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1231,7 +1231,7 @@ bool smlua_call_event_hooks_HOOK_MARIO_OVERRIDE_PHYS_STEP_DEFACTO_SPEED(struct M // call the callback if (0 != smlua_call_hook(L, 1, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_MARIO_OVERRIDE_PHYS_STEP_DEFACTO_SPEED]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_MARIO_OVERRIDE_PHYS_STEP_DEFACTO_SPEED], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } @@ -1263,7 +1263,7 @@ bool smlua_call_event_hooks_HOOK_ON_OBJECT_LOAD(struct Object *obj) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_OBJECT_LOAD]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_OBJECT_LOAD], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1293,7 +1293,7 @@ bool smlua_call_event_hooks_HOOK_ON_PLAY_SOUND(s32 soundBits, Vec3f pos, s32 *so // call the callback if (0 != smlua_call_hook(L, 2, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_PLAY_SOUND]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_PLAY_SOUND], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } @@ -1331,7 +1331,7 @@ bool smlua_call_event_hooks_HOOK_ON_SEQ_LOAD(u32 seqPlayer, u32 seqId, s32 loadA // call the callback if (0 != smlua_call_hook(L, 3, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_SEQ_LOAD]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_SEQ_LOAD], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } @@ -1373,7 +1373,7 @@ bool smlua_call_event_hooks_HOOK_ON_ATTACK_OBJECT(struct MarioState *m, struct O // call the callback if (0 != smlua_call_hook(L, 3, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_ATTACK_OBJECT]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_ATTACK_OBJECT], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1400,7 +1400,7 @@ bool smlua_call_event_hooks_HOOK_ON_LANGUAGE_CHANGED(const char *langName) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_LANGUAGE_CHANGED]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_LANGUAGE_CHANGED], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1424,7 +1424,7 @@ bool smlua_call_event_hooks_HOOK_ON_MODS_LOADED() { // call the callback if (0 != smlua_call_hook(L, 0, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_MODS_LOADED]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_MODS_LOADED], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1448,7 +1448,7 @@ bool smlua_call_event_hooks_HOOK_ON_DJUI_THEME_CHANGED() { // call the callback if (0 != smlua_call_hook(L, 0, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_DJUI_THEME_CHANGED]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_DJUI_THEME_CHANGED], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1478,7 +1478,7 @@ bool smlua_call_event_hooks_HOOK_ON_GEO_PROCESS(struct GraphNode *node, s32 matS // call the callback if (0 != smlua_call_hook(L, 2, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_GEO_PROCESS]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_GEO_PROCESS], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1508,7 +1508,7 @@ bool smlua_call_event_hooks_HOOK_BEFORE_GEO_PROCESS(struct GraphNode *node, s32 // call the callback if (0 != smlua_call_hook(L, 2, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_BEFORE_GEO_PROCESS]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_BEFORE_GEO_PROCESS], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1538,7 +1538,7 @@ bool smlua_call_event_hooks_HOOK_ON_GEO_PROCESS_CHILDREN(struct GraphNode *paren // call the callback if (0 != smlua_call_hook(L, 2, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_GEO_PROCESS_CHILDREN]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_GEO_PROCESS_CHILDREN], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1568,7 +1568,7 @@ bool smlua_call_event_hooks_HOOK_MARIO_OVERRIDE_GEOMETRY_INPUTS(struct MarioStat // call the callback if (0 != smlua_call_hook(L, 1, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_MARIO_OVERRIDE_GEOMETRY_INPUTS]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_MARIO_OVERRIDE_GEOMETRY_INPUTS], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1603,7 +1603,7 @@ bool smlua_call_event_hooks_HOOK_ON_INTERACTIONS(struct MarioState *m) { // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_INTERACTIONS]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_INTERACTIONS], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1636,7 +1636,7 @@ bool smlua_call_event_hooks_HOOK_ALLOW_FORCE_WATER_ACTION(struct MarioState *m, // call the callback if (0 != smlua_call_hook(L, 2, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ALLOW_FORCE_WATER_ACTION]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ALLOW_FORCE_WATER_ACTION], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1676,7 +1676,7 @@ bool smlua_call_event_hooks_HOOK_BEFORE_WARP(s16 destLevel, s16 destArea, s16 de // call the callback if (0 != smlua_call_hook(L, 4, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_BEFORE_WARP]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_BEFORE_WARP], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } @@ -1734,7 +1734,7 @@ bool smlua_call_event_hooks_HOOK_ON_INSTANT_WARP(u8 areaIdx, u8 nodeId, Vec3s di // call the callback if (0 != smlua_call_hook(L, 3, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_INSTANT_WARP]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_INSTANT_WARP], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1766,7 +1766,7 @@ bool smlua_call_event_hooks_HOOK_MARIO_OVERRIDE_FLOOR_CLASS(struct MarioState *m // call the callback if (0 != smlua_call_hook(L, 2, 1, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_MARIO_OVERRIDE_FLOOR_CLASS]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_MARIO_OVERRIDE_FLOOR_CLASS], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } @@ -1802,7 +1802,7 @@ bool smlua_call_event_hooks_HOOK_ON_ADD_SURFACE(struct Surface *surface, bool dy // call the callback if (0 != smlua_call_hook(L, 2, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_ADD_SURFACE]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_ADD_SURFACE], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1826,7 +1826,7 @@ bool smlua_call_event_hooks_HOOK_ON_CLEAR_AREAS() { // call the callback if (0 != smlua_call_hook(L, 0, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_CLEAR_AREAS]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_CLEAR_AREAS], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; @@ -1854,7 +1854,7 @@ bool smlua_call_event_hooks_HOOK_ON_PACKET_BYTESTRING_RECEIVE(s32 modIndex, s32 // call the callback if (0 != smlua_call_hook(L, 1, 0, 0, hook->mod[i], hook->modFile[i])) { - LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_PACKET_BYTESTRING_RECEIVE]); + LOG_LUA("Failed to call the callback for hook %s - '%s/%s'", sLuaHookedEventTypeName[HOOK_ON_PACKET_BYTESTRING_RECEIVE], hook->mod[i]->relativePath, hook->modFile[i]->relativePath); continue; } hookResult = true; From d0f18d101ea3bcf7ed3b0fff7bf029f3b3a04fca Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Tue, 17 Feb 2026 17:28:28 +1000 Subject: [PATCH 02/20] increase the number of djui hud renders you can do per frame to 10,000 --- src/pc/djui/djui_hud_utils.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pc/djui/djui_hud_utils.c b/src/pc/djui/djui_hud_utils.c index 65e1acb31..5d7a06d5b 100644 --- a/src/pc/djui/djui_hud_utils.c +++ b/src/pc/djui/djui_hud_utils.c @@ -376,7 +376,7 @@ f32 djui_hud_measure_text(const char* message) { void djui_hud_print_text(const char* message, f32 x, f32 y, f32 scale) { if (message == NULL) { return; } - gDjuiHudUtilsZ += 0.01f; + gDjuiHudUtilsZ += 0.001f; if (sLegacy) { scale *= 0.5f; } @@ -426,7 +426,7 @@ void djui_hud_print_text(const char* message, f32 x, f32 y, f32 scale) { void djui_hud_print_text_interpolated(const char* message, f32 prevX, f32 prevY, f32 prevScale, f32 x, f32 y, f32 scale) { if (message == NULL) { return; } f32 savedZ = gDjuiHudUtilsZ; - gDjuiHudUtilsZ += 0.01f; + gDjuiHudUtilsZ += 0.001f; if (sLegacy) { prevScale *= 0.5f; @@ -507,7 +507,7 @@ static void djui_hud_render_texture_raw(const Texture* texture, u32 width, u32 h if (!texture) { return; } - gDjuiHudUtilsZ += 0.01f; + gDjuiHudUtilsZ += 0.001f; // translate position f32 translatedX = x; @@ -541,7 +541,7 @@ static void djui_hud_render_texture_raw(const Texture* texture, u32 width, u32 h static void djui_hud_render_texture_tile_raw(const Texture* texture, u32 width, u32 height, u8 fmt, u8 siz, f32 x, f32 y, f32 scaleW, f32 scaleH, u32 tileX, u32 tileY, u32 tileW, u32 tileH) { if (!texture) { return; } - gDjuiHudUtilsZ += 0.01f; + gDjuiHudUtilsZ += 0.001f; if (width != 0) { scaleW *= (f32) tileW / (f32) width; } if (height != 0) { scaleH *= (f32) tileH / (f32) height; } @@ -648,7 +648,7 @@ void djui_hud_render_texture_tile_interpolated(struct TextureInfo* texInfo, f32 } void djui_hud_render_rect(f32 x, f32 y, f32 width, f32 height) { - gDjuiHudUtilsZ += 0.01f; + gDjuiHudUtilsZ += 0.001f; // translate position f32 translatedX = x; From 00cb6461f96f927ba428f685498c90175a604342 Mon Sep 17 00:00:00 2001 From: Cooliokid956 <68075390+Cooliokid956@users.noreply.github.com> Date: Tue, 17 Feb 2026 15:47:49 -0600 Subject: [PATCH 03/20] Add various interpolation skipping functions + `get_time_stop_flags()` (#1064) ## `void geo_skip_interpolation(struct GraphNode *node, struct GraphNodeObject *obj)` Skips graph node interpolation for a frame feed it a graph node and its corresponding object ## `void obj_skip_interpolation(struct Object *o)` Skips object interpolation for a frame takes care of only the object transform, otherwise you need to use ## `void obj_anim_skip_interpolation(struct Object *o)` Skips animation interpolation for a frame useful for choppy animation ------------ ## `u32 get_time_stop_flags(void)` Gets the current time stop state --- autogen/convert_functions.py | 10 +- autogen/lua_definitions/functions.lua | 35 +- docs/lua/functions-7.md | 101 ++++- docs/lua/functions.md | 4 + src/game/rendering_graph_node.c | 9 +- src/game/rendering_graph_node.h | 9 + src/pc/lua/smlua_functions_autogen.c | 544 ++++---------------------- src/pc/lua/utils/smlua_misc_utils.c | 13 + src/pc/lua/utils/smlua_misc_utils.h | 20 +- src/pc/lua/utils/smlua_obj_utils.c | 8 + src/pc/lua/utils/smlua_obj_utils.h | 5 + 11 files changed, 253 insertions(+), 505 deletions(-) diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py index 5a12779b7..5f2cb8aea 100644 --- a/autogen/convert_functions.py +++ b/autogen/convert_functions.py @@ -120,14 +120,14 @@ override_disallowed_functions = { "src/game/sound_init.h": [ "_loop_", "thread4_", "set_sound_mode" ], "src/pc/network/network_utils.h": [ "network_get_player_text_color[^_]" ], "src/pc/network/network_player.h": [ "_init", "_connected[^_]", "_shutdown", "_disconnected", "_update", "construct_player_popup", "network_player_name_valid" ], - "src/game/object_helpers.c": [ "spawn_obj", "^bhv_", "abs[fi]", "^bit_shift", "_debug$", "^stub_", "_set_model", "cur_obj_set_direction_table", "cur_obj_progress_direction_table" ], - "src/game/obj_behaviors.c": [ "debug_", "turn_obj_away_from_surface" ], + "src/game/object_helpers.c": [ "spawn_obj", "^bhv_", "geo_", "abs[fi]", "^bit_shift", "_debug$", "^stub_", "_set_model", "cur_obj_set_direction_table", "cur_obj_progress_direction_table" ], + "src/game/obj_behaviors.c": [ "debug_", "geo_", "turn_obj_away_from_surface"], "src/game/obj_behaviors_2.c": [ "wiggler_jumped_on_attack_handler", "huge_goomba_weakly_attacked" ], "src/game/spawn_sound.h": [ "exec_anim_sound_state" ], "src/game/level_info.h": [ "_name_table", "convert_string_" ], "src/pc/lua/utils/smlua_obj_utils.h": [ "spawn_object_remember_field" ], - "src/game/camera.h": [ "update_camera", "init_camera", "stub_camera", "^reset_camera", "move_point_along_spline", "romhack_camera_init_settings", "romhack_camera_reset_settings" ], - "src/game/behavior_actions.h": [ "bhv_dust_smoke_loop", "bhv_init_room" ], + "src/game/camera.h": [ "geo_", "update_camera", "init_camera", "stub_camera", "^reset_camera", "move_point_along_spline", "romhack_camera_init_settings", "romhack_camera_reset_settings" ], + "src/game/behavior_actions.h": [ "bhv_dust_smoke_loop", "bhv_init_room", "geo_" ], "src/pc/lua/utils/smlua_audio_utils.h": [ "smlua_audio_utils_override", "audio_custom_shutdown", "smlua_audio_custom_deinit", "audio_sample_destroy_pending_copies", "audio_custom_update_volume" ], "src/pc/lua/utils/smlua_level_utils.h": [ "smlua_level_util_reset" ], "src/pc/lua/utils/smlua_text_utils.h": [ "smlua_text_utils_init", "smlua_text_utils_shutdown", "smlua_text_utils_dialog_get_unmodified"], @@ -825,7 +825,7 @@ def build_param(fid, param, i): lot = translate_type_to_lot(ptype) s = ' %s %s = (%s)smlua_to_cobject(L, %d, %s);' % (ptype, pid, ptype, i, lot) - if '???' in lot or "GRAPHNODE" in lot: + if '???' in lot: s = '//' + s + ' <--- UNIMPLEMENTED' else: s = ' ' + s diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index 816cc8018..cc10149fe 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -11516,6 +11516,12 @@ function get_dialog_response() -- ... end +--- @return integer +--- Gets the active time stop flags, used to freeze specific objects during cutscenes +function get_time_stop_flags() + -- ... +end + --- @return string --- Gets the local discord ID if it isn't disabled, otherwise "0" is returned function get_local_discord_id() @@ -11622,35 +11628,42 @@ function get_os_name() end --- @return GraphNodeRoot ---- Gets the current GraphNodeRoot +--- Gets the current root node being processed function geo_get_current_root() -- ... end --- @return GraphNodeMasterList ---- Gets the current GraphNodeMasterList +--- Gets the current master list node being processed function geo_get_current_master_list() -- ... end --- @return GraphNodePerspective ---- Gets the current GraphNodePerspective +--- Gets the current perspective node being processed function geo_get_current_perspective() -- ... end --- @return GraphNodeCamera ---- Gets the current GraphNodeCamera +--- Gets the current camera node being processed function geo_get_current_camera() -- ... end --- @return GraphNodeHeldObject ---- Gets the current GraphNodeHeldObject +--- Gets the current held object node being processed function geo_get_current_held_object() -- ... end +--- @param node GraphNode +--- @param obj GraphNodeObject +--- Skips graph node interpolation for a frame +function geo_skip_interpolation(node, obj) + -- ... +end + --- @param tex Pointer_Texture --- @return table --- Converts a texture's pixels to a Lua table. Returns nil if failed. Otherwise, returns a 1-indexed table of RGBA pixels @@ -12062,6 +12075,18 @@ function set_whirlpools(x, y, z, strength, area, index) -- ... end +--- @param o Object +--- Skips object interpolation for a frame +function obj_skip_interpolation(o) + -- ... +end + +--- @param o Object +--- Skips animation interpolation for a frame +function obj_anim_skip_interpolation(o) + -- ... +end + --- Resets every modified dialog back to vanilla function smlua_text_utils_reset_all() -- ... diff --git a/docs/lua/functions-7.md b/docs/lua/functions-7.md index 3373d70ee..207edbb6f 100644 --- a/docs/lua/functions-7.md +++ b/docs/lua/functions-7.md @@ -1775,6 +1775,27 @@ Gets the choice selected inside of a dialog box (0-1)
+## [get_time_stop_flags](#get_time_stop_flags) + +### Description +Gets the active time stop flags, used to freeze specific objects during cutscenes + +### Lua Example +`local integerValue = get_time_stop_flags()` + +### Parameters +- None + +### Returns +- `integer` + +### C Prototype +`u32 get_time_stop_flags(void);` + +[:arrow_up_small:](#) + +
+ ## [get_local_discord_id](#get_local_discord_id) ### Description @@ -2154,7 +2175,7 @@ Gets the name of the operating system the game is running on ## [geo_get_current_root](#geo_get_current_root) ### Description -Gets the current GraphNodeRoot +Gets the current root node being processed ### Lua Example `local graphNodeRootValue = geo_get_current_root()` @@ -2175,7 +2196,7 @@ Gets the current GraphNodeRoot ## [geo_get_current_master_list](#geo_get_current_master_list) ### Description -Gets the current GraphNodeMasterList +Gets the current master list node being processed ### Lua Example `local graphNodeMasterListValue = geo_get_current_master_list()` @@ -2196,7 +2217,7 @@ Gets the current GraphNodeMasterList ## [geo_get_current_perspective](#geo_get_current_perspective) ### Description -Gets the current GraphNodePerspective +Gets the current perspective node being processed ### Lua Example `local graphNodePerspectiveValue = geo_get_current_perspective()` @@ -2217,7 +2238,7 @@ Gets the current GraphNodePerspective ## [geo_get_current_camera](#geo_get_current_camera) ### Description -Gets the current GraphNodeCamera +Gets the current camera node being processed ### Lua Example `local graphNodeCameraValue = geo_get_current_camera()` @@ -2238,7 +2259,7 @@ Gets the current GraphNodeCamera ## [geo_get_current_held_object](#geo_get_current_held_object) ### Description -Gets the current GraphNodeHeldObject +Gets the current held object node being processed ### Lua Example `local graphNodeHeldObjectValue = geo_get_current_held_object()` @@ -2256,6 +2277,30 @@ Gets the current GraphNodeHeldObject
+## [geo_skip_interpolation](#geo_skip_interpolation) + +### Description +Skips graph node interpolation for a frame + +### Lua Example +`geo_skip_interpolation(node, obj)` + +### Parameters +| Field | Type | +| ----- | ---- | +| node | [GraphNode](structs.md#GraphNode) | +| obj | [GraphNodeObject](structs.md#GraphNodeObject) | + +### Returns +- None + +### C Prototype +`void geo_skip_interpolation(struct GraphNode *node, struct GraphNodeObject *obj);` + +[:arrow_up_small:](#) + +
+ ## [texture_to_lua_table](#texture_to_lua_table) ### Description @@ -3531,6 +3576,52 @@ Sets the parameters of one of the two whirlpools (0-indexed) in an area
+## [obj_skip_interpolation](#obj_skip_interpolation) + +### Description +Skips object interpolation for a frame + +### Lua Example +`obj_skip_interpolation(o)` + +### Parameters +| Field | Type | +| ----- | ---- | +| o | [Object](structs.md#Object) | + +### Returns +- None + +### C Prototype +`void obj_skip_interpolation(struct Object *o);` + +[:arrow_up_small:](#) + +
+ +## [obj_anim_skip_interpolation](#obj_anim_skip_interpolation) + +### Description +Skips animation interpolation for a frame + +### Lua Example +`obj_anim_skip_interpolation(o)` + +### Parameters +| Field | Type | +| ----- | ---- | +| o | [Object](structs.md#Object) | + +### Returns +- None + +### C Prototype +`void obj_anim_skip_interpolation(struct Object *o);` + +[:arrow_up_small:](#) + +
+ --- # functions from smlua_text_utils.h diff --git a/docs/lua/functions.md b/docs/lua/functions.md index e2cff77bf..ef8fb4125 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -2047,6 +2047,7 @@ - [set_override_envfx](functions-7.md#set_override_envfx) - [get_global_timer](functions-7.md#get_global_timer) - [get_dialog_response](functions-7.md#get_dialog_response) + - [get_time_stop_flags](functions-7.md#get_time_stop_flags) - [get_local_discord_id](functions-7.md#get_local_discord_id) - [get_coopnet_id](functions-7.md#get_coopnet_id) - [get_volume_master](functions-7.md#get_volume_master) @@ -2069,6 +2070,7 @@ - [geo_get_current_perspective](functions-7.md#geo_get_current_perspective) - [geo_get_current_camera](functions-7.md#geo_get_current_camera) - [geo_get_current_held_object](functions-7.md#geo_get_current_held_object) + - [geo_skip_interpolation](functions-7.md#geo_skip_interpolation) - [texture_to_lua_table](functions-7.md#texture_to_lua_table) - [get_texture_name](functions-7.md#get_texture_name) @@ -2130,6 +2132,8 @@ - [obj_set_vel](functions-7.md#obj_set_vel) - [obj_move_xyz](functions-7.md#obj_move_xyz) - [set_whirlpools](functions-7.md#set_whirlpools) + - [obj_skip_interpolation](functions-7.md#obj_skip_interpolation) + - [obj_anim_skip_interpolation](functions-7.md#obj_anim_skip_interpolation)
diff --git a/src/game/rendering_graph_node.c b/src/game/rendering_graph_node.c index e68cb7c66..43c3c1f0e 100644 --- a/src/game/rendering_graph_node.c +++ b/src/game/rendering_graph_node.c @@ -384,16 +384,9 @@ void patch_mtx_interpolated(f32 delta) { * Graph node interpolation */ -struct GraphNodeInterpData { - Vec3s translation; - Vec3s rotation; - Vec3f scale; - u32 timestamp; -}; - static void *sGraphNodeInterpDataMap = NULL; -static struct GraphNodeInterpData *geo_get_interp_data(void *node, struct GraphNodeObject *obj) { +struct GraphNodeInterpData *geo_get_interp_data(void *node, struct GraphNodeObject *obj) { // Map for nodes if (!sGraphNodeInterpDataMap) { diff --git a/src/game/rendering_graph_node.h b/src/game/rendering_graph_node.h index c345c9e34..f30ea4a5d 100644 --- a/src/game/rendering_graph_node.h +++ b/src/game/rendering_graph_node.h @@ -43,6 +43,15 @@ extern f32 gOverrideFar; void geo_process_node_and_siblings(struct GraphNode *firstNode); void geo_process_root(struct GraphNodeRoot *node, Vp *b, Vp *c, s32 clearColor); + +struct GraphNodeInterpData { + Vec3s translation; + Vec3s rotation; + Vec3f scale; + u32 timestamp; +}; + +struct GraphNodeInterpData *geo_get_interp_data(void *node, struct GraphNodeObject *obj); void geo_clear_interp_data(); struct ShadowInterp { diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 60ced0477..5ed2cd525 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -9729,219 +9729,6 @@ int smlua_func_bhv_point_light_loop(UNUSED lua_State* L) { return 1; } -/* -int smlua_func_geo_move_mario_part_from_parent(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_move_mario_part_from_parent", 3, top); - return 0; - } - - s32 run = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_move_mario_part_from_parent"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_move_mario_part_from_parent"); return 0; } - - Mat4 mtx; - smlua_get_mat4(mtx, 3); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_move_mario_part_from_parent"); return 0; } - - smlua_push_object(L, LOT_GFX, geo_move_mario_part_from_parent(run, node, mtx), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_bits_bowser_coloring(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_bits_bowser_coloring", 3, top); - return 0; - } - - s32 run = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_bits_bowser_coloring"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_bits_bowser_coloring"); return 0; } - s32 a2 = smlua_to_integer(L, 3); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_bits_bowser_coloring"); return 0; } - - smlua_push_object(L, LOT_GFX, geo_bits_bowser_coloring(run, node, a2), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_update_body_rot_from_parent(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_update_body_rot_from_parent", 3, top); - return 0; - } - - s32 run = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_update_body_rot_from_parent"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_update_body_rot_from_parent"); return 0; } - - Mat4 mtx; - smlua_get_mat4(mtx, 3); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_update_body_rot_from_parent"); return 0; } - - smlua_push_object(L, LOT_GFX, geo_update_body_rot_from_parent(run, node, mtx), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_switch_bowser_eyes(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_switch_bowser_eyes", 3, top); - return 0; - } - - s32 run = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_switch_bowser_eyes"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_switch_bowser_eyes"); return 0; } - Mat4 * mtx = (Mat4 *)smlua_to_cobject(L, 3, LOT_MAT4); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_switch_bowser_eyes"); return 0; } - - smlua_push_object(L, LOT_GFX, geo_switch_bowser_eyes(run, node, mtx), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_switch_tuxie_mother_eyes(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_switch_tuxie_mother_eyes", 3, top); - return 0; - } - - s32 run = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_switch_tuxie_mother_eyes"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_switch_tuxie_mother_eyes"); return 0; } - Mat4 * mtx = (Mat4 *)smlua_to_cobject(L, 3, LOT_MAT4); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_switch_tuxie_mother_eyes"); return 0; } - - smlua_push_object(L, LOT_GFX, geo_switch_tuxie_mother_eyes(run, node, mtx), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_update_held_mario_pos(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_update_held_mario_pos", 3, top); - return 0; - } - - s32 run = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_update_held_mario_pos"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_update_held_mario_pos"); return 0; } - - Mat4 mtx; - smlua_get_mat4(mtx, 3); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_update_held_mario_pos"); return 0; } - - smlua_push_object(L, LOT_GFX, geo_update_held_mario_pos(run, node, mtx), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_snufit_move_mask(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_snufit_move_mask", 3, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_snufit_move_mask"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_snufit_move_mask"); return 0; } - Mat4 * c = (Mat4 *)smlua_to_cobject(L, 3, LOT_MAT4); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_snufit_move_mask"); return 0; } - - smlua_push_object(L, LOT_GFX, geo_snufit_move_mask(callContext, node, c), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_snufit_scale_body(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_snufit_scale_body", 3, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_snufit_scale_body"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_snufit_scale_body"); return 0; } - Mat4 * c = (Mat4 *)smlua_to_cobject(L, 3, LOT_MAT4); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_snufit_scale_body"); return 0; } - - smlua_push_object(L, LOT_GFX, geo_snufit_scale_body(callContext, node, c), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_scale_bowser_key(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_scale_bowser_key", 3, top); - return 0; - } - - s32 run = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_scale_bowser_key"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_scale_bowser_key"); return 0; } - f32 mtx[4][4] = smlua_to_number(L, 3); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_scale_bowser_key"); return 0; } - - smlua_push_object(L, LOT_GFX, geo_scale_bowser_key(run, node, mtx[4][4]), NULL); - - return 1; -} -*/ - int smlua_func_spawn_default_star(lua_State* L) { if (L == NULL) { return 0; } @@ -10387,29 +10174,6 @@ int smlua_func_select_mario_cam_mode(UNUSED lua_State* L) { return 1; } -/* -int smlua_func_geo_camera_main(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_camera_main", 3, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_camera_main"); return 0; } -// struct GraphNode* g = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_camera_main"); return 0; } -// void * context = (void *)smlua_to_cobject(L, 3, LOT_???); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_camera_main"); return 0; } - - smlua_push_object(L, LOT_GFX, geo_camera_main(callContext, g, context), NULL); - - return 1; -} -*/ - int smlua_func_object_pos_to_vec3f(lua_State* L) { if (L == NULL) { return 0; } @@ -12153,29 +11917,6 @@ int smlua_func_obj_rotate_towards_point(lua_State* L) { return 1; } -/* -int smlua_func_geo_camera_fov(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_camera_fov", 3, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_camera_fov"); return 0; } -// struct GraphNode* g = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_camera_fov"); return 0; } -// void * context = (void *)smlua_to_cobject(L, 3, LOT_???); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_camera_fov"); return 0; } - - smlua_push_object(L, LOT_GFX, geo_camera_fov(callContext, g, context), NULL); - - return 1; -} -*/ - int smlua_func_set_camera_mode_fixed(lua_State* L) { if (L == NULL) { return 0; } @@ -23724,30 +23465,6 @@ int smlua_func_set_yoshi_as_not_dead(UNUSED lua_State* L) { return 1; } -/* -int smlua_func_geo_obj_transparency_something(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_obj_transparency_something", 3, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_obj_transparency_something"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_obj_transparency_something"); return 0; } - Mat4 * mtx = (Mat4 *)smlua_to_cobject(L, 3, LOT_MAT4); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_obj_transparency_something"); return 0; } - - extern Gfx UNUSED *geo_obj_transparency_something(s32 callContext, struct GraphNode *node, UNUSED Mat4 *mtx); - smlua_push_object(L, LOT_GFX, geo_obj_transparency_something(callContext, node, mtx), NULL); - - return 1; -} -*/ - int smlua_func_absf_2(lua_State* L) { if (L == NULL) { return 0; } @@ -25474,78 +25191,6 @@ int smlua_func_clear_move_flag(lua_State* L) { return 2; } -/* -int smlua_func_geo_update_projectile_pos_from_parent(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_update_projectile_pos_from_parent", 3, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_update_projectile_pos_from_parent"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_update_projectile_pos_from_parent"); return 0; } - - Mat4 mtx; - smlua_get_mat4(mtx, 3); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_update_projectile_pos_from_parent"); return 0; } - - extern Gfx *geo_update_projectile_pos_from_parent(s32 callContext, UNUSED struct GraphNode *node, Mat4 mtx); - smlua_push_object(L, LOT_GFX, geo_update_projectile_pos_from_parent(callContext, node, mtx), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_update_layer_transparency(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_update_layer_transparency", 3, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_update_layer_transparency"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_update_layer_transparency"); return 0; } -// void * context = (void *)smlua_to_cobject(L, 3, LOT_???); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_update_layer_transparency"); return 0; } - - extern Gfx *geo_update_layer_transparency(s32 callContext, struct GraphNode *node, UNUSED void *context); - smlua_push_object(L, LOT_GFX, geo_update_layer_transparency(callContext, node, context), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_switch_anim_state(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 2) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_switch_anim_state", 2, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_switch_anim_state"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_switch_anim_state"); return 0; } - - extern Gfx *geo_switch_anim_state(s32 callContext, struct GraphNode *node); - smlua_push_object(L, LOT_GFX, geo_switch_anim_state(callContext, node), NULL); - - return 1; -} -*/ - int smlua_func_set_room_override(lua_State* L) { if (L == NULL) { return 0; } @@ -25564,54 +25209,6 @@ int smlua_func_set_room_override(lua_State* L) { return 1; } -/* -int smlua_func_geo_switch_area(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 2) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_switch_area", 2, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_switch_area"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_switch_area"); return 0; } - - extern Gfx *geo_switch_area(s32 callContext, struct GraphNode *node); - smlua_push_object(L, LOT_GFX, geo_switch_area(callContext, node), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_choose_area_ext(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_choose_area_ext", 3, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_choose_area_ext"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_choose_area_ext"); return 0; } - - Mat4 mtx; - smlua_get_mat4(mtx, 3); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_choose_area_ext"); return 0; } - - extern Gfx *geo_choose_area_ext(UNUSED s32 callContext, struct GraphNode *node, UNUSED Mat4 mtx); - smlua_push_object(L, LOT_GFX, geo_choose_area_ext(callContext, node, mtx), NULL); - - return 1; -} -*/ - int smlua_func_obj_update_pos_from_parent_transformation(lua_State* L) { if (L == NULL) { return 0; } @@ -29354,56 +28951,6 @@ int smlua_func_cur_obj_hide_if_mario_far_away_y(lua_State* L) { return 1; } -/* -int smlua_func_geo_offset_klepto_held_object(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_offset_klepto_held_object", 3, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_offset_klepto_held_object"); return 0; } -// struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_offset_klepto_held_object"); return 0; } - - Mat4 mtx; - smlua_get_mat4(mtx, 3); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_offset_klepto_held_object"); return 0; } - - extern Gfx *geo_offset_klepto_held_object(s32 callContext, struct GraphNode *node, UNUSED Mat4 mtx); - smlua_push_object(L, LOT_GFX, geo_offset_klepto_held_object(callContext, node, mtx), NULL); - - return 1; -} -*/ - -/* -int smlua_func_geo_offset_klepto_debug(lua_State* L) { - if (L == NULL) { return 0; } - - int top = lua_gettop(L); - if (top != 3) { - LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_offset_klepto_debug", 3, top); - return 0; - } - - s32 callContext = smlua_to_integer(L, 1); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_offset_klepto_debug"); return 0; } -// struct GraphNode* a1 = (struct GraphNode*)smlua_to_cobject(L, 2, LOT_GRAPHNODE); <--- UNIMPLEMENTED - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_offset_klepto_debug"); return 0; } - s32 sp8 = smlua_to_integer(L, 3); - if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "geo_offset_klepto_debug"); return 0; } - - extern s32 geo_offset_klepto_debug(s32 callContext, struct GraphNode *a1, UNUSED s32 sp8); - lua_pushinteger(L, geo_offset_klepto_debug(callContext, a1, sp8)); - - return 1; -} -*/ - int smlua_func_obj_is_hidden(lua_State* L) { if (L == NULL) { return 0; } @@ -34401,6 +33948,21 @@ int smlua_func_get_dialog_response(UNUSED lua_State* L) { return 1; } +int smlua_func_get_time_stop_flags(UNUSED lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 0) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "get_time_stop_flags", 0, top); + return 0; + } + + + lua_pushinteger(L, get_time_stop_flags()); + + return 1; +} + int smlua_func_get_local_discord_id(UNUSED lua_State* L) { if (L == NULL) { return 0; } @@ -34751,6 +34313,25 @@ int smlua_func_geo_get_current_held_object(UNUSED lua_State* L) { return 1; } +int smlua_func_geo_skip_interpolation(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 2) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "geo_skip_interpolation", 2, top); + return 0; + } + + struct GraphNode* node = (struct GraphNode*)smlua_to_cobject(L, 1, LOT_GRAPHNODE); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "geo_skip_interpolation"); return 0; } + struct GraphNodeObject* obj = (struct GraphNodeObject*)smlua_to_cobject(L, 2, LOT_GRAPHNODEOBJECT); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "geo_skip_interpolation"); return 0; } + + geo_skip_interpolation(node, obj); + + return 1; +} + int smlua_func_texture_to_lua_table(lua_State* L) { if (L == NULL) { return 0; } @@ -35760,6 +35341,40 @@ int smlua_func_set_whirlpools(lua_State* L) { return 1; } +int smlua_func_obj_skip_interpolation(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 1) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "obj_skip_interpolation", 1, top); + return 0; + } + + struct Object* o = (struct Object*)smlua_to_cobject(L, 1, LOT_OBJECT); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "obj_skip_interpolation"); return 0; } + + obj_skip_interpolation(o); + + return 1; +} + +int smlua_func_obj_anim_skip_interpolation(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 1) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "obj_anim_skip_interpolation", 1, top); + return 0; + } + + struct Object* o = (struct Object*)smlua_to_cobject(L, 1, LOT_OBJECT); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "obj_anim_skip_interpolation"); return 0; } + + obj_anim_skip_interpolation(o); + + return 1; +} + //////////////////////// // smlua_text_utils.h // //////////////////////// @@ -37592,15 +37207,6 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "bhv_ambient_light_update", smlua_func_bhv_ambient_light_update); smlua_bind_function(L, "bhv_point_light_init", smlua_func_bhv_point_light_init); smlua_bind_function(L, "bhv_point_light_loop", smlua_func_bhv_point_light_loop); - //smlua_bind_function(L, "geo_move_mario_part_from_parent", smlua_func_geo_move_mario_part_from_parent); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_bits_bowser_coloring", smlua_func_geo_bits_bowser_coloring); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_update_body_rot_from_parent", smlua_func_geo_update_body_rot_from_parent); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_switch_bowser_eyes", smlua_func_geo_switch_bowser_eyes); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_switch_tuxie_mother_eyes", smlua_func_geo_switch_tuxie_mother_eyes); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_update_held_mario_pos", smlua_func_geo_update_held_mario_pos); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_snufit_move_mask", smlua_func_geo_snufit_move_mask); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_snufit_scale_body", smlua_func_geo_snufit_scale_body); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_scale_bowser_key", smlua_func_geo_scale_bowser_key); <--- UNIMPLEMENTED smlua_bind_function(L, "spawn_default_star", smlua_func_spawn_default_star); smlua_bind_function(L, "spawn_red_coin_cutscene_star", smlua_func_spawn_red_coin_cutscene_star); smlua_bind_function(L, "spawn_no_exit_star", smlua_func_spawn_no_exit_star); @@ -37632,7 +37238,6 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "soft_reset_camera", smlua_func_soft_reset_camera); smlua_bind_function(L, "reset_camera", smlua_func_reset_camera); smlua_bind_function(L, "select_mario_cam_mode", smlua_func_select_mario_cam_mode); - //smlua_bind_function(L, "geo_camera_main", smlua_func_geo_camera_main); <--- UNIMPLEMENTED smlua_bind_function(L, "object_pos_to_vec3f", smlua_func_object_pos_to_vec3f); smlua_bind_function(L, "vec3f_to_object_pos", smlua_func_vec3f_to_object_pos); smlua_bind_function(L, "object_face_angle_to_vec3s", smlua_func_object_face_angle_to_vec3s); @@ -37712,7 +37317,6 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "cutscene_set_fov_shake_preset", smlua_func_cutscene_set_fov_shake_preset); smlua_bind_function(L, "set_fov_shake_from_point_preset", smlua_func_set_fov_shake_from_point_preset); smlua_bind_function(L, "obj_rotate_towards_point", smlua_func_obj_rotate_towards_point); - //smlua_bind_function(L, "geo_camera_fov", smlua_func_geo_camera_fov); <--- UNIMPLEMENTED smlua_bind_function(L, "set_camera_mode_fixed", smlua_func_set_camera_mode_fixed); smlua_bind_function(L, "snap_to_45_degrees", smlua_func_snap_to_45_degrees); smlua_bind_function(L, "camera_set_use_course_specific_settings", smlua_func_camera_set_use_course_specific_settings); @@ -38355,7 +37959,6 @@ void smlua_bind_functions_autogen(void) { // obj_behaviors.c smlua_bind_function(L, "set_yoshi_as_not_dead", smlua_func_set_yoshi_as_not_dead); - //smlua_bind_function(L, "geo_obj_transparency_something", smlua_func_geo_obj_transparency_something); <--- UNIMPLEMENTED smlua_bind_function(L, "absf_2", smlua_func_absf_2); smlua_bind_function(L, "obj_find_wall", smlua_func_obj_find_wall); smlua_bind_function(L, "turn_obj_away_from_steep_floor", smlua_func_turn_obj_away_from_steep_floor); @@ -38443,12 +38046,7 @@ void smlua_bind_functions_autogen(void) { // object_helpers.c smlua_bind_function(L, "clear_move_flag", smlua_func_clear_move_flag); - //smlua_bind_function(L, "geo_update_projectile_pos_from_parent", smlua_func_geo_update_projectile_pos_from_parent); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_update_layer_transparency", smlua_func_geo_update_layer_transparency); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_switch_anim_state", smlua_func_geo_switch_anim_state); <--- UNIMPLEMENTED smlua_bind_function(L, "set_room_override", smlua_func_set_room_override); - //smlua_bind_function(L, "geo_switch_area", smlua_func_geo_switch_area); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_choose_area_ext", smlua_func_geo_choose_area_ext); <--- UNIMPLEMENTED smlua_bind_function(L, "obj_update_pos_from_parent_transformation", smlua_func_obj_update_pos_from_parent_transformation); smlua_bind_function(L, "obj_apply_scale_to_matrix", smlua_func_obj_apply_scale_to_matrix); smlua_bind_function(L, "create_transformation_from_matrices", smlua_func_create_transformation_from_matrices); @@ -38644,8 +38242,6 @@ void smlua_bind_functions_autogen(void) { //smlua_bind_function(L, "obj_set_collision_data", smlua_func_obj_set_collision_data); <--- UNIMPLEMENTED smlua_bind_function(L, "cur_obj_if_hit_wall_bounce_away", smlua_func_cur_obj_if_hit_wall_bounce_away); smlua_bind_function(L, "cur_obj_hide_if_mario_far_away_y", smlua_func_cur_obj_hide_if_mario_far_away_y); - //smlua_bind_function(L, "geo_offset_klepto_held_object", smlua_func_geo_offset_klepto_held_object); <--- UNIMPLEMENTED - //smlua_bind_function(L, "geo_offset_klepto_debug", smlua_func_geo_offset_klepto_debug); <--- UNIMPLEMENTED smlua_bind_function(L, "obj_is_hidden", smlua_func_obj_is_hidden); smlua_bind_function(L, "enable_time_stop", smlua_func_enable_time_stop); smlua_bind_function(L, "enable_time_stop_if_alone", smlua_func_enable_time_stop_if_alone); @@ -38957,6 +38553,7 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "set_override_envfx", smlua_func_set_override_envfx); smlua_bind_function(L, "get_global_timer", smlua_func_get_global_timer); smlua_bind_function(L, "get_dialog_response", smlua_func_get_dialog_response); + smlua_bind_function(L, "get_time_stop_flags", smlua_func_get_time_stop_flags); smlua_bind_function(L, "get_local_discord_id", smlua_func_get_local_discord_id); smlua_bind_function(L, "get_coopnet_id", smlua_func_get_coopnet_id); smlua_bind_function(L, "get_volume_master", smlua_func_get_volume_master); @@ -38979,6 +38576,7 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "geo_get_current_perspective", smlua_func_geo_get_current_perspective); smlua_bind_function(L, "geo_get_current_camera", smlua_func_geo_get_current_camera); smlua_bind_function(L, "geo_get_current_held_object", smlua_func_geo_get_current_held_object); + smlua_bind_function(L, "geo_skip_interpolation", smlua_func_geo_skip_interpolation); smlua_bind_function(L, "texture_to_lua_table", smlua_func_texture_to_lua_table); smlua_bind_function(L, "get_texture_name", smlua_func_get_texture_name); @@ -39036,6 +38634,8 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "obj_set_vel", smlua_func_obj_set_vel); smlua_bind_function(L, "obj_move_xyz", smlua_func_obj_move_xyz); smlua_bind_function(L, "set_whirlpools", smlua_func_set_whirlpools); + smlua_bind_function(L, "obj_skip_interpolation", smlua_func_obj_skip_interpolation); + smlua_bind_function(L, "obj_anim_skip_interpolation", smlua_func_obj_anim_skip_interpolation); // smlua_text_utils.h smlua_bind_function(L, "smlua_text_utils_reset_all", smlua_func_smlua_text_utils_reset_all); diff --git a/src/pc/lua/utils/smlua_misc_utils.c b/src/pc/lua/utils/smlua_misc_utils.c index bff36cbbf..de447b3d1 100644 --- a/src/pc/lua/utils/smlua_misc_utils.c +++ b/src/pc/lua/utils/smlua_misc_utils.c @@ -490,6 +490,12 @@ s32 get_dialog_response(void) { /// +u32 get_time_stop_flags(void) { + return gTimeStopState; +} + +/// + const char* get_local_discord_id(void) { #ifdef DISCORD_SDK if (gDiscordInitialized) { @@ -651,6 +657,13 @@ struct GraphNodeHeldObject* geo_get_current_held_object(void) { return gCurGraphNodeHeldObject; } +void geo_skip_interpolation(struct GraphNode *node, struct GraphNodeObject *obj) { + struct GraphNodeInterpData *interp = geo_get_interp_data(node, obj); + if (interp) { interp->timestamp = 0; } +} + +/// + LuaTable texture_to_lua_table(const Texture *tex) { lua_State *L = gLuaState; if (!L) { return 0; } diff --git a/src/pc/lua/utils/smlua_misc_utils.h b/src/pc/lua/utils/smlua_misc_utils.h index 5171af3ee..e4bb3c1eb 100644 --- a/src/pc/lua/utils/smlua_misc_utils.h +++ b/src/pc/lua/utils/smlua_misc_utils.h @@ -212,6 +212,9 @@ u32 get_global_timer(void); /* |description|Gets the choice selected inside of a dialog box (0-1)|descriptionEnd| */ s32 get_dialog_response(void); +/* |description|Gets the active time stop flags, used to freeze specific objects during cutscenes|descriptionEnd| */ +u32 get_time_stop_flags(void); + /* |description|Gets the local discord ID if it isn't disabled, otherwise "0" is returned|descriptionEnd| */ const char* get_local_discord_id(void); /* |description|Gets the CoopNet ID of a player with `localIndex` if CoopNet is being used and the player is connected, otherwise "-1" is returned|descriptionEnd| */ @@ -252,24 +255,21 @@ void reset_window_title(void); /* |description|Gets the name of the operating system the game is running on|descriptionEnd| */ const char* get_os_name(void); -/* |description|Gets the current GraphNodeRoot|descriptionEnd|*/ +/* |description|Gets the current root node being processed|descriptionEnd|*/ struct GraphNodeRoot* geo_get_current_root(void); - -/* |description|Gets the current GraphNodeMasterList|descriptionEnd|*/ +/* |description|Gets the current master list node being processed|descriptionEnd|*/ struct GraphNodeMasterList* geo_get_current_master_list(void); - -/* |description|Gets the current GraphNodePerspective|descriptionEnd|*/ +/* |description|Gets the current perspective node being processed|descriptionEnd|*/ struct GraphNodePerspective* geo_get_current_perspective(void); - -/* |description|Gets the current GraphNodeCamera|descriptionEnd|*/ +/* |description|Gets the current camera node being processed|descriptionEnd|*/ struct GraphNodeCamera* geo_get_current_camera(void); - -/* |description|Gets the current GraphNodeHeldObject|descriptionEnd|*/ +/* |description|Gets the current held object node being processed|descriptionEnd|*/ struct GraphNodeHeldObject* geo_get_current_held_object(void); +/* |description|Skips graph node interpolation for a frame|descriptionEnd|*/ +void geo_skip_interpolation(struct GraphNode *node, struct GraphNodeObject *obj); /* |description|Converts a texture's pixels to a Lua table. Returns nil if failed. Otherwise, returns a 1-indexed table of RGBA pixels|descriptionEnd|*/ LuaTable texture_to_lua_table(const Texture *tex); - /* |description|Gets the name of the provided texture pointer `tex`|descriptionEnd|*/ const char *get_texture_name(const Texture *tex); diff --git a/src/pc/lua/utils/smlua_obj_utils.c b/src/pc/lua/utils/smlua_obj_utils.c index 6ddc020f8..aa71c422d 100644 --- a/src/pc/lua/utils/smlua_obj_utils.c +++ b/src/pc/lua/utils/smlua_obj_utils.c @@ -522,6 +522,14 @@ void set_whirlpools(f32 x, f32 y, f32 z, s16 strength, s16 area, s32 index) { gAreas[area].whirlpools[index]->strength = strength; } +void obj_skip_interpolation(struct Object *o) { + if (o) { o->header.gfx.skipInterpolationTimestamp = gGlobalTimer + 1; } +} + +void obj_anim_skip_interpolation(struct Object *o) { + if (o) { o->header.gfx.animInfo.prevAnimFrameTimestamp = 0; } +} + #ifdef DEVELOPMENT void obj_randomize(struct Object* o) { if (!o) { return; } diff --git a/src/pc/lua/utils/smlua_obj_utils.h b/src/pc/lua/utils/smlua_obj_utils.h index b0e75fbb0..518e3b193 100644 --- a/src/pc/lua/utils/smlua_obj_utils.h +++ b/src/pc/lua/utils/smlua_obj_utils.h @@ -155,4 +155,9 @@ void obj_move_xyz(struct Object *o, f32 dx, f32 dy, f32 dz); /* |description|Sets the parameters of one of the two whirlpools (0-indexed) in an area|descriptionEnd| */ void set_whirlpools(f32 x, f32 y, f32 z, s16 strength, s16 area, s32 index); +/* |description|Skips object interpolation for a frame|descriptionEnd|*/ +void obj_skip_interpolation(struct Object *o); +/* |description|Skips animation interpolation for a frame|descriptionEnd| */ +void obj_anim_skip_interpolation(struct Object *o); + #endif From 1680c715fd63f12d50d8a38d539f7341d3f0fe87 Mon Sep 17 00:00:00 2001 From: Altiami Date: Tue, 17 Feb 2026 14:03:30 -0800 Subject: [PATCH 04/20] fix character pitch being cumulative (#1107) --- src/audio/external.c | 3 +++ src/game/characters.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/audio/external.c b/src/audio/external.c index c411aee8b..6cc466ba5 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -1694,6 +1694,9 @@ static void update_game_sound(void) { break; case SOUND_BANK_ACTION: case SOUND_BANK_MARIO_VOICE: + case SOUND_BANK_LUIGI_VOICE: + case SOUND_BANK_WARIO_VOICE: + case SOUND_BANK_TOAD_VOICE: #if defined(VERSION_EU) || defined(VERSION_SH) queue_audio_cmd_s8(AUDIO_CMD_ARGS(AUDIO_CMD_REVERB, SEQ_PLAYER_SFX, channelIndex, 0), get_sound_reverb(bank, soundIndex, channelIndex)); diff --git a/src/game/characters.c b/src/game/characters.c index 9e359ebef..40689a8d0 100644 --- a/src/game/characters.c +++ b/src/game/characters.c @@ -248,7 +248,7 @@ struct Character gCharacters[CT_MAX] = { .animOffsetEnabled = false, // sounds - .soundFreqScale = 0.99f, + .soundFreqScale = 0.88f, .soundYahWahHoo = SOUND_LUIGI_YAH_WAH_HOO, .soundHoohoo = SOUND_LUIGI_HOOHOO, .soundYahoo = SOUND_LUIGI_YAHOO, From 0ce41635197009962f866f08ff6011e28ee7de03 Mon Sep 17 00:00:00 2001 From: Agent X <44549182+AgentXLP@users.noreply.github.com> Date: Wed, 18 Feb 2026 01:43:44 -0500 Subject: [PATCH 05/20] Lighting Engine refactor (up to 10x perf increase) (#1098) * C++ lighting engine Runs better using my new system for storing and iterating through lights. I removed the lighting ctx profiler because after I've realized its very inaccurate and was probably programmed incorrectly from the start. Although I remember it working fine before and not constantly showing 20 ms or higher when I'm in an extremely simple level with extremely simple lights and the FPS is way too high for it to be taking 20 ms. * Whoops * Make some optimizations * Fix small bug with LE inside graphics vertex function I also brought back the lighting profiler because it's better than nothing. * Some optimizations * Cache active lights and 4 lights per vertex limit Less branching and less iterating with the limit * Peachy changes --- autogen/lua_definitions/constants.lua | 2 +- autogen/lua_definitions/functions.lua | 6 + docs/lua/functions-4.md | 23 ++ docs/lua/functions.md | 1 + src/engine/lighting_engine.c | 382 ---------------------- src/engine/lighting_engine.cpp | 444 ++++++++++++++++++++++++++ src/engine/lighting_engine.h | 13 +- src/pc/gfx/gfx_pc.c | 10 +- src/pc/lua/smlua_constants_autogen.c | 2 +- src/pc/lua/smlua_functions_autogen.c | 18 ++ src/pc/mods/mod_storage.h | 4 +- 11 files changed, 513 insertions(+), 392 deletions(-) delete mode 100644 src/engine/lighting_engine.c create mode 100644 src/engine/lighting_engine.cpp diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index d981a171e..0950df1e2 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -3635,7 +3635,7 @@ HUD_DISPLAY_DEFAULT = HUD_DISPLAY_FLAG_LIVES | HUD_DISPLAY_FLAG_CO --- | `HUD_DISPLAY_DEFAULT` --- @type integer -LE_MAX_LIGHTS = 512 +LE_MAX_LIGHTS = 1024 LE_MODE_AFFECT_ALL_SHADED_AND_COLORED = 0 --- @type LEMode LE_MODE_AFFECT_ALL_SHADED = 1 --- @type LEMode diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index cc10149fe..700781429 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -5103,6 +5103,12 @@ function le_set_ambient_color(r, g, b) -- ... end +--- @param count integer +--- Sets the max amount of lights that can affect a vertex +function le_set_max_lights_per_vertex(count) + -- ... +end + --- @param pos Vec3f --- @param out Color --- @param lightIntensityScalar number diff --git a/docs/lua/functions-4.md b/docs/lua/functions-4.md index 545c0d19f..18fa49891 100644 --- a/docs/lua/functions-4.md +++ b/docs/lua/functions-4.md @@ -147,6 +147,29 @@ Sets the lighting engine ambient color
+## [le_set_max_lights_per_vertex](#le_set_max_lights_per_vertex) + +### Description +Sets the max amount of lights that can affect a vertex + +### Lua Example +`le_set_max_lights_per_vertex(count)` + +### Parameters +| Field | Type | +| ----- | ---- | +| count | `integer` | + +### Returns +- None + +### C Prototype +`void le_set_max_lights_per_vertex(u8 count);` + +[:arrow_up_small:](#) + +
+ ## [le_calculate_lighting_color](#le_calculate_lighting_color) ### Description diff --git a/docs/lua/functions.md b/docs/lua/functions.md index ef8fb4125..6407c26ed 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -976,6 +976,7 @@ - [le_set_tone_mapping](functions-4.md#le_set_tone_mapping) - [le_get_ambient_color](functions-4.md#le_get_ambient_color) - [le_set_ambient_color](functions-4.md#le_set_ambient_color) + - [le_set_max_lights_per_vertex](functions-4.md#le_set_max_lights_per_vertex) - [le_calculate_lighting_color](functions-4.md#le_calculate_lighting_color) - [le_calculate_lighting_color_with_normal](functions-4.md#le_calculate_lighting_color_with_normal) - [le_calculate_lighting_dir](functions-4.md#le_calculate_lighting_dir) diff --git a/src/engine/lighting_engine.c b/src/engine/lighting_engine.c deleted file mode 100644 index 7466a5d80..000000000 --- a/src/engine/lighting_engine.c +++ /dev/null @@ -1,382 +0,0 @@ -#include "lighting_engine.h" -#include "math_util.h" - -struct LELight -{ - f32 posX; - f32 posY; - f32 posZ; - u8 colorR; - u8 colorG; - u8 colorB; - f32 radius; - f32 intensity; - bool added; - bool useSurfaceNormals; -}; - -Color gLEAmbientColor = { 127, 127, 127 }; -static struct LELight sLights[LE_MAX_LIGHTS] = { 0 }; -static enum LEMode sMode = LE_MODE_AFFECT_ALL_SHADED_AND_COLORED; -static enum LEToneMapping sToneMapping = LE_TONE_MAPPING_WEIGHTED; -static bool sEnabled = false; - -static inline void color_set(Color color, u8 r, u8 g, u8 b) { - color[0] = r; - color[1] = g; - color[2] = b; -} - -static inline void color_copy(Color dest, Color src) { - dest[0] = src[0]; - dest[1] = src[1]; - dest[2] = src[2]; -} - -bool le_is_enabled(void) { - // this is needed because we don't want to make vanilla darker, - // and we don't want to set the ambient color to { 255, 255, 255 } - // because then no one could see the effect of their lights - return sEnabled; -} - -void le_set_mode(enum LEMode mode) { - sMode = mode; -} - -enum LEMode le_get_mode(void) { - return sMode; -} - -void le_set_tone_mapping(enum LEToneMapping toneMapping) { - sToneMapping = toneMapping; -} - -void le_get_ambient_color(VEC_OUT Color out) { - color_copy(out, gLEAmbientColor); -} - -void le_set_ambient_color(u8 r, u8 g, u8 b) { - color_set(gLEAmbientColor, r, g, b); - sEnabled = true; -} - -static inline void le_tone_map_total_weighted(Color out, Color inAmbient, Vec3f inColor, float weight) { - out[0] = clamp((inAmbient[0] + inColor[0]) / weight, 0, 255); - out[1] = clamp((inAmbient[1] + inColor[1]) / weight, 0, 255); - out[2] = clamp((inAmbient[2] + inColor[2]) / weight, 0, 255); -} - -static inline void le_tone_map_weighted(Color out, Color inAmbient, Vec3f inColor, float weight) { - out[0] = clamp(inAmbient[0] + (inColor[0] / weight), 0, 255); - out[1] = clamp(inAmbient[1] + (inColor[1] / weight), 0, 255); - out[2] = clamp(inAmbient[2] + (inColor[2] / weight), 0, 255); -} - -static inline void le_tone_map_clamp(Color out, Color inAmbient, Vec3f inColor) { - out[0] = clamp(inAmbient[0] + inColor[0], 0, 255); - out[1] = clamp(inAmbient[1] + inColor[1], 0, 255); - out[2] = clamp(inAmbient[2] + inColor[2], 0, 255); -} - -static inline void le_tone_map_reinhard(Color out, Color inAmbient, Vec3f inColor) { - inColor[0] += inAmbient[0]; - inColor[1] += inAmbient[1]; - inColor[2] += inAmbient[2]; - - out[0] = clamp((inColor[0] / (inColor[0] + 255.0f)) * 255.0f, 0, 255); - out[1] = clamp((inColor[1] / (inColor[1] + 255.0f)) * 255.0f, 0, 255); - out[2] = clamp((inColor[2] / (inColor[2] + 255.0f)) * 255.0f, 0, 255); -} - -static inline void le_tone_map(Color out, Color inAmbient, Vec3f inColor, float weight) { - switch (sToneMapping) { - case LE_TONE_MAPPING_TOTAL_WEIGHTED: le_tone_map_total_weighted(out, inAmbient, inColor, weight); break; - case LE_TONE_MAPPING_WEIGHTED: le_tone_map_weighted(out, inAmbient, inColor, weight); break; - case LE_TONE_MAPPING_CLAMP: le_tone_map_clamp(out, inAmbient, inColor); break; - case LE_TONE_MAPPING_REINHARD: le_tone_map_reinhard(out, inAmbient, inColor); break; - } -} - -static inline void le_calculate_light_contribution(struct LELight* light, Vec3f pos, Vec3f normal, f32 lightIntensityScalar, Vec3f out_color, f32* weight) { - // skip 'inactive' lights - if (light->intensity <= 0 || light->radius <= 0) { return; } - - // vector to light - f32 diffX = light->posX - pos[0]; - f32 diffY = light->posY - pos[1]; - f32 diffZ = light->posZ - pos[2]; - - // squared distance check - f32 dist2 = (diffX * diffX) + (diffY * diffY) + (diffZ * diffZ); - f32 radius2 = light->radius * light->radius; - if (dist2 > radius2 || dist2 <= 0) { return; } - - // attenuation & intensity - f32 att = 1.0f - (dist2 / radius2); - f32 brightness = att * light->intensity * lightIntensityScalar; - - // normalize diff - f32 invLen = 1.0f / sqrtf(dist2); - diffX *= invLen; - diffY *= invLen; - diffZ *= invLen; - - if (light->useSurfaceNormals && normal) { - // lambert term - f32 nl = (normal[0] * diffX) + (normal[1] * diffY) + (normal[2] * diffZ); - if (nl <= 0.0f) { return; } - - // modulate by normal - brightness *= nl; - } - - // accumulate - out_color[0] += light->colorR * brightness; - out_color[1] += light->colorG * brightness; - out_color[2] += light->colorB * brightness; - *weight += brightness; -} - -void le_calculate_vertex_lighting(Vtx_t* v, Vec3f pos, Color out) { - // clear color - Vec3f color = { 0 }; - - // accumulate lighting - f32 weight = 1.0f; - for (s16 i = 0; i < LE_MAX_LIGHTS; i++) { - struct LELight* light = &sLights[i]; - if (!light->added) { continue; } - - le_calculate_light_contribution(light, pos, NULL, 1.0f, color, &weight); - } - - // tone map and output - Color vtxAmbient = { - v->cn[0] * (gLEAmbientColor[0] / 255.0f), - v->cn[1] * (gLEAmbientColor[1] / 255.0f), - v->cn[2] * (gLEAmbientColor[2] / 255.0f), - }; - le_tone_map(out, vtxAmbient, color, weight); -} - -void le_calculate_lighting_color(Vec3f pos, Color out, f32 lightIntensityScalar) { - // clear color - Vec3f color = { 0 }; - - // accumulate lighting - f32 weight = 1.0f; - for (s16 i = 0; i < LE_MAX_LIGHTS; i++) { - struct LELight* light = &sLights[i]; - if (!light->added) { continue; } - - le_calculate_light_contribution(light, pos, NULL, lightIntensityScalar, color, &weight); - } - - // tone map and output - le_tone_map(out, gLEAmbientColor, color, weight); -} - -void le_calculate_lighting_color_with_normal(Vec3f pos, Vec3f normal, Color out, f32 lightIntensityScalar) { - // normalize normal - if (normal) { vec3f_normalize(normal); } - - // clear color - Vec3f color = { 0 }; - - // accumulate lighting - f32 weight = 1.0f; - for (s16 i = 0; i < LE_MAX_LIGHTS; i++) { - struct LELight* light = &sLights[i]; - if (!light->added) { continue; } - - le_calculate_light_contribution(light, pos, normal, lightIntensityScalar, color, &weight); - } - - // tone map and output - le_tone_map(out, gLEAmbientColor, color, weight); -} - -void le_calculate_lighting_dir(Vec3f pos, Vec3f out) { - Vec3f lightingDir = { 0, 0, 0 }; - s16 count = 1; - - for (s16 i = 0; i < LE_MAX_LIGHTS; i++) { - struct LELight* light = &sLights[i]; - if (!light->added) { continue; } - - f32 diffX = light->posX - pos[0]; - f32 diffY = light->posY - pos[1]; - f32 diffZ = light->posZ - pos[2]; - f32 dist = (diffX * diffX) + (diffY * diffY) + (diffZ * diffZ); - f32 radius = light->radius * light->radius; - if (dist > radius) { continue; } - - Vec3f dir = { - pos[0] - light->posX, - pos[1] - light->posY, - pos[2] - light->posZ, - }; - vec3f_normalize(dir); - - f32 intensity = (1 - (dist / radius)) * light->intensity; - lightingDir[0] += dir[0] * intensity; - lightingDir[1] += dir[1] * intensity; - lightingDir[2] += dir[2] * intensity; - - count++; - } - - out[0] = lightingDir[0] / (f32)(count); - out[1] = lightingDir[1] / (f32)(count); - out[2] = lightingDir[2] / (f32)(count); - vec3f_normalize(out); -} - -s16 le_add_light(f32 x, f32 y, f32 z, u8 r, u8 g, u8 b, f32 radius, f32 intensity) { - struct LELight* newLight = NULL; - s16 lightID = -1; - - for (s16 i = 0; i < LE_MAX_LIGHTS; i++) { - struct LELight* light = &sLights[i]; - if (!light->added) { - newLight = light; - lightID = i; - break; - } - } - if (newLight == NULL) { return -1; } - - newLight->posX = x; - newLight->posY = y; - newLight->posZ = z; - newLight->colorR = r; - newLight->colorG = g; - newLight->colorB = b; - newLight->radius = radius; - newLight->intensity = intensity; - newLight->added = true; - newLight->useSurfaceNormals = true; - - sEnabled = true; - return lightID; -} - -void le_remove_light(s16 id) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return; } - - memset(&sLights[id], 0, sizeof(struct LELight)); -} - -s16 le_get_light_count(void) { - s16 count = 0; - for (s16 i = 0; i < LE_MAX_LIGHTS; i++) { - if (sLights[i].added) { count++; } - } - - return count; -} - -bool le_light_exists(s16 id) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return false; } - return sLights[id].added; -} - -void le_get_light_pos(s16 id, VEC_OUT Vec3f out) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return; } - - struct LELight* light = &sLights[id]; - if (!light->added) { return; } - vec3f_set(out, light->posX, light->posY, light->posZ); -} - -void le_set_light_pos(s16 id, f32 x, f32 y, f32 z) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return; } - - struct LELight* light = &sLights[id]; - if (!light->added) { return; } - light->posX = x; - light->posY = y; - light->posZ = z; -} - -void le_get_light_color(s16 id, VEC_OUT Color out) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return; } - - struct LELight* light = &sLights[id]; - if (!light->added) { return; } - color_set(out, light->colorR, light->colorG, light->colorB); -} - -void le_set_light_color(s16 id, u8 r, u8 g, u8 b) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return; } - - struct LELight* light = &sLights[id]; - if (!light->added) { return; } - light->colorR = r; - light->colorG = g; - light->colorB = b; -} - -f32 le_get_light_radius(s16 id) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return 0.0f; } - - struct LELight* light = &sLights[id]; - if (!light->added) { return 0.0f; } - return light->radius; -} - -void le_set_light_radius(s16 id, f32 radius) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return; } - - struct LELight* light = &sLights[id]; - if (!light->added) { return; } - light->radius = radius; -} - -f32 le_get_light_intensity(s16 id) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return 0.0f; } - - struct LELight* light = &sLights[id]; - if (!light->added) { return 0.0f; } - return light->intensity; -} - -void le_set_light_intensity(s16 id, f32 intensity) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return; } - - struct LELight* light = &sLights[id]; - if (!light->added) { return; } - light->intensity = intensity; -} - -bool le_get_light_use_surface_normals(s16 id) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return false; } - - struct LELight* light = &sLights[id]; - if (!light->added) { return false; } - return light->useSurfaceNormals; -} - -void le_set_light_use_surface_normals(s16 id, bool useSurfaceNormals) { - if (id < 0 || id >= LE_MAX_LIGHTS) { return; } - - struct LELight* light = &sLights[id]; - if (!light->added) { return; } - light->useSurfaceNormals = useSurfaceNormals; -} - -void le_clear(void) { - memset(&sLights, 0, sizeof(struct LELight) * LE_MAX_LIGHTS); - - gLEAmbientColor[0] = 127; - gLEAmbientColor[1] = 127; - gLEAmbientColor[2] = 127; -} - -void le_shutdown(void) { - sEnabled = false; - sMode = LE_MODE_AFFECT_ALL_SHADED_AND_COLORED; - sToneMapping = LE_TONE_MAPPING_WEIGHTED; - le_clear(); -} diff --git a/src/engine/lighting_engine.cpp b/src/engine/lighting_engine.cpp new file mode 100644 index 000000000..0a12b55d5 --- /dev/null +++ b/src/engine/lighting_engine.cpp @@ -0,0 +1,444 @@ +#include "lighting_engine.h" +extern "C" { +#include "math_util.h" +#include "pc/lua/smlua.h" +} +#undef clamp +#undef min +#undef max +#include +#include +#ifdef __SSE__ +#include +#endif + +#define C_FIELD extern "C" + +struct LELight +{ + s16 id; + Vec3f pos; + Color color; + f32 radius; + f32 intensity; + bool useSurfaceNormals; +}; + +Color gLEAmbientColor = { 127, 127, 127 }; +static std::vector sLightPool; +static std::vector sActiveLights; +static s16 sLightID = -1; +static enum LEMode sMode = LE_MODE_AFFECT_ALL_SHADED_AND_COLORED; +static enum LEToneMapping sToneMapping = LE_TONE_MAPPING_WEIGHTED; +static bool sEnabled = false; +static u8 sMaxLightsPerVertex = 4; + +static inline f32 rsqrt(f32 value) { +#ifdef __SSE__ + return _mm_cvtss_f32(_mm_rsqrt_ss(_mm_set_ss(value))); +#else + return 1.0f / sqrtf(value); +#endif +} + +static inline void color_set(Color color, u8 r, u8 g, u8 b) { + color[0] = r; + color[1] = g; + color[2] = b; +} + +static inline void color_copy(Color dest, Color src) { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; +} + +static inline u8 clamp_u8(f32 value) { + s32 v = (s32)value; + v = v < 0 ? 0 : v; + v = v > 255 ? 255 : v; + return (u8)v; +} + +C_FIELD bool le_is_enabled(void) { + // this is needed because we don't want to make vanilla darker, + // and we don't want to set the ambient color to { 255, 255, 255 } + // because then no one could see the effect of their lights + return sEnabled; +} + +C_FIELD void le_set_mode(enum LEMode mode) { + sMode = mode; +} + +C_FIELD enum LEMode le_get_mode(void) { + return sMode; +} + +C_FIELD void le_set_tone_mapping(enum LEToneMapping toneMapping) { + sToneMapping = toneMapping; +} + +C_FIELD void le_get_ambient_color(VEC_OUT Color out) { + color_copy(out, gLEAmbientColor); +} + +C_FIELD void le_set_ambient_color(u8 r, u8 g, u8 b) { + color_set(gLEAmbientColor, r, g, b); + sEnabled = true; +} + +C_FIELD void le_set_max_lights_per_vertex(u8 count) { + sMaxLightsPerVertex = count; +} + +static inline void le_tone_map_total_weighted(Color out, Color inAmbient, Vec3f inColor, f32 weight) { + out[0] = clamp_u8((inAmbient[0] + inColor[0]) / weight); + out[1] = clamp_u8((inAmbient[1] + inColor[1]) / weight); + out[2] = clamp_u8((inAmbient[2] + inColor[2]) / weight); +} + +static inline void le_tone_map_weighted(Color out, Color inAmbient, Vec3f inColor, f32 weight) { + out[0] = clamp_u8(inAmbient[0] + (inColor[0] / weight)); + out[1] = clamp_u8(inAmbient[1] + (inColor[1] / weight)); + out[2] = clamp_u8(inAmbient[2] + (inColor[2] / weight)); +} + +static inline void le_tone_map_clamp(Color out, Color inAmbient, Vec3f inColor) { + out[0] = clamp_u8(inAmbient[0] + inColor[0]); + out[1] = clamp_u8(inAmbient[1] + inColor[1]); + out[2] = clamp_u8(inAmbient[2] + inColor[2]); +} + +static inline void le_tone_map_reinhard(Color out, Color inAmbient, Vec3f inColor) { + inColor[0] += inAmbient[0]; + inColor[1] += inAmbient[1]; + inColor[2] += inAmbient[2]; + + out[0] = clamp_u8((inColor[0] / (inColor[0] + 255.0f)) * 255.0f); + out[1] = clamp_u8((inColor[1] / (inColor[1] + 255.0f)) * 255.0f); + out[2] = clamp_u8((inColor[2] / (inColor[2] + 255.0f)) * 255.0f); +} + +static void le_tone_map(Color out, Color inAmbient, Vec3f inColor, f32 weight) { + switch (sToneMapping) { + case LE_TONE_MAPPING_TOTAL_WEIGHTED: le_tone_map_total_weighted(out, inAmbient, inColor, weight); break; + case LE_TONE_MAPPING_WEIGHTED: le_tone_map_weighted(out, inAmbient, inColor, weight); break; + case LE_TONE_MAPPING_CLAMP: le_tone_map_clamp(out, inAmbient, inColor); break; + case LE_TONE_MAPPING_REINHARD: le_tone_map_reinhard(out, inAmbient, inColor); break; + } +} + +static void le_update_active_lights() { + sActiveLights.clear(); + for (auto& light : sLightPool) { + if (light.intensity > 0.0f && light.radius > 0.0f) { + sActiveLights.push_back(&light); + } + } +} + +static inline OPTIMIZE_O3 void le_calculate_light_contribution(const LELight& light, Vec3f pos, Vec3f normal, f32 lightIntensityScalar, Vec3f outColor, f32& weight, u8& contribution) { + // vector to light + f32 diffX = light.pos[0] - pos[0]; + f32 diffY = light.pos[1] - pos[1]; + f32 diffZ = light.pos[2] - pos[2]; + + // squared distance check + f32 dist2 = (diffX * diffX) + (diffY * diffY) + (diffZ * diffZ); + f32 radius2 = light.radius * light.radius; + if (dist2 > radius2 || dist2 <= 0) { return; } + + // attenuation & intensity + f32 att = 1.0f - (dist2 / radius2); + f32 brightness = att * light.intensity * lightIntensityScalar; + + if (light.useSurfaceNormals && normal) { + // normalize diff + f32 invLen = rsqrt(dist2); + diffX *= invLen; + diffY *= invLen; + diffZ *= invLen; + + // lambert term + f32 nl = (normal[0] * diffX) + (normal[1] * diffY) + (normal[2] * diffZ); + if (nl <= 0.0f) { return; } + + // modulate by normal + brightness *= nl; + } + + // accumulate + outColor[0] += light.color[0] * brightness; + outColor[1] += light.color[1] * brightness; + outColor[2] += light.color[2] * brightness; + weight += brightness; + contribution++; +} + +C_FIELD OPTIMIZE_O3 void le_calculate_vertex_lighting(const Vtx_t* v, Vec3f pos, VEC_OUT Color out) { + // clear color + Vec3f color = { 0 }; + + // accumulate lighting + f32 weight = 1.0f; + u8 contribution = 0; + for (LELight* light : sActiveLights) { + le_calculate_light_contribution(*light, pos, NULL, 1.0f, color, weight, contribution); + if (contribution == sMaxLightsPerVertex) { break; } + } + + // tone map and output + Color vtxAmbient = { + (u8)(v->cn[0] * (gLEAmbientColor[0] / 255.0f)), + (u8)(v->cn[1] * (gLEAmbientColor[1] / 255.0f)), + (u8)(v->cn[2] * (gLEAmbientColor[2] / 255.0f)), + }; + le_tone_map(out, vtxAmbient, color, weight); +} + +C_FIELD OPTIMIZE_O3 void le_calculate_lighting_color(Vec3f pos, VEC_OUT Color out, f32 lightIntensityScalar) { + // clear color + Vec3f color = { 0 }; + + // accumulate lighting + f32 weight = 1.0f; + u8 contribution = 0; + for (LELight* light : sActiveLights) { + le_calculate_light_contribution(*light, pos, NULL, lightIntensityScalar, color, weight, contribution); + if (contribution == sMaxLightsPerVertex) { break; } + } + + // tone map and output + le_tone_map(out, gLEAmbientColor, color, weight); +} + +C_FIELD OPTIMIZE_O3 void le_calculate_lighting_color_with_normal(Vec3f pos, Vec3f normal, VEC_OUT Color out, f32 lightIntensityScalar) { + // normalize normal + if (normal) { vec3f_normalize(normal); } + + // clear color + Vec3f color = { 0 }; + + // accumulate lighting + f32 weight = 1.0f; + u8 contribution = 0; + for (LELight* light : sActiveLights) { + le_calculate_light_contribution(*light, pos, normal, lightIntensityScalar, color, weight, contribution); + if (contribution == sMaxLightsPerVertex) { break; } + } + + // tone map and output + le_tone_map(out, gLEAmbientColor, color, weight); +} + +C_FIELD void le_calculate_lighting_dir(Vec3f pos, VEC_OUT Vec3f out) { + Vec3f lightingDir = { 0, 0, 0 }; + s16 count = 1; + + for (LELight* light : sActiveLights) { + f32 diffX = light->pos[0] - pos[0]; + f32 diffY = light->pos[1] - pos[1]; + f32 diffZ = light->pos[2] - pos[2]; + f32 dist = (diffX * diffX) + (diffY * diffY) + (diffZ * diffZ); + f32 radius = light->radius * light->radius; + if (dist > radius) { continue; } + + Vec3f dir = { + pos[0] - light->pos[0], + pos[1] - light->pos[1], + pos[2] - light->pos[2], + }; + vec3f_normalize(dir); + + f32 intensity = (1 - (dist / radius)) * light->intensity; + lightingDir[0] += dir[0] * intensity; + lightingDir[1] += dir[1] * intensity; + lightingDir[2] += dir[2] * intensity; + + count++; + } + + out[0] = lightingDir[0] / (f32)(count); + out[1] = lightingDir[1] / (f32)(count); + out[2] = lightingDir[2] / (f32)(count); + vec3f_normalize(out); +} + +C_FIELD s16 le_add_light(f32 x, f32 y, f32 z, u8 r, u8 g, u8 b, f32 radius, f32 intensity) { + if (sLightPool.size() >= LE_MAX_LIGHTS) { + LOG_LUA_LINE("LE light count cannot exceed %d lights!", LE_MAX_LIGHTS); + return -1; + } + + LELight newLight; + newLight.id = ++sLightID; + newLight.pos[0] = x; + newLight.pos[1] = y; + newLight.pos[2] = z; + newLight.color[0] = r; + newLight.color[1] = g; + newLight.color[2] = b; + newLight.radius = radius; + newLight.intensity = intensity; + newLight.useSurfaceNormals = true; + + sLightPool.push_back(newLight); + + le_update_active_lights(); + + sEnabled = true; + return sLightID; +} + +C_FIELD void le_remove_light(s16 id) { + if (id < 0) { return; } + + auto it = std::find_if(sLightPool.begin(), sLightPool.end(), + [id](const LELight& light) { + return light.id == id; + } + ); + + if (it != sLightPool.end()) { + sLightPool.erase(it); + } + + le_update_active_lights(); +} + +C_FIELD s16 le_get_light_count(void) { + return sLightPool.size(); +} + +C_FIELD bool le_light_exists(s16 id) { + if (id < 0) { return false; } + + return std::any_of(sLightPool.begin(), sLightPool.end(), + [id](const LELight& light) { + return light.id == id; + } + ); +} + +static LELight* le_find_light(s16 id) { + if (id < 0) { return nullptr; } + + auto it = std::find_if(sLightPool.begin(), sLightPool.end(), + [id](const LELight& light) { + return light.id == id; + } + ); + + // kinda cursed syntax but it works + return (it != sLightPool.end()) ? &(*it) : nullptr; +} + +C_FIELD void le_get_light_pos(s16 id, VEC_OUT Vec3f out) { + if (id < 0) { return; } + + if (auto* light = le_find_light(id)) { + vec3f_set(out, light->pos[0], light->pos[1], light->pos[2]); + } +} + +C_FIELD void le_set_light_pos(s16 id, f32 x, f32 y, f32 z) { + if (id < 0) { return; } + + if (auto* light = le_find_light(id)) { + light->pos[0] = x; + light->pos[1] = y; + light->pos[2] = z; + } +} + +C_FIELD void le_get_light_color(s16 id, VEC_OUT Color out) { + if (id < 0) { return; } + + if (auto* light = le_find_light(id)) { + color_set(out, light->color[0], light->color[1], light->color[2]); + } +} + +C_FIELD void le_set_light_color(s16 id, u8 r, u8 g, u8 b) { + if (id < 0) { return; } + + if (auto* light = le_find_light(id)) { + light->color[0] = r; + light->color[1] = g; + light->color[2] = b; + } +} + +C_FIELD f32 le_get_light_radius(s16 id) { + if (id < 0) { return 0.0f; } + + if (auto* light = le_find_light(id)) { + return light->radius; + } + + return 0.0f; +} + +C_FIELD void le_set_light_radius(s16 id, f32 radius) { + if (id < 0) { return; } + + if (auto* light = le_find_light(id)) { + light->radius = radius; + } + + le_update_active_lights(); +} + +C_FIELD f32 le_get_light_intensity(s16 id) { + if (id < 0) { return 0.0f; } + + if (auto* light = le_find_light(id)) { + return light->intensity; + } + + return 0.0f; +} + +C_FIELD void le_set_light_intensity(s16 id, f32 intensity) { + if (id < 0) { return; } + + if (auto* light = le_find_light(id)) { + light->intensity = intensity; + } + + le_update_active_lights(); +} + +C_FIELD bool le_get_light_use_surface_normals(s16 id) { + if (id < 0) { return false; } + + if (auto* light = le_find_light(id)) { + return light->useSurfaceNormals; + } + + return false; +} + +C_FIELD void le_set_light_use_surface_normals(s16 id, bool useSurfaceNormals) { + if (id < 0) { return; } + + if (auto* light = le_find_light(id)) { + light->useSurfaceNormals = useSurfaceNormals; + } +} + +void le_clear(void) { + sLightPool.clear(); + sLightID = -1; + + color_set(gLEAmbientColor, 127, 127, 127); +} + +void le_shutdown(void) { + sEnabled = false; + sMode = LE_MODE_AFFECT_ALL_SHADED_AND_COLORED; + sToneMapping = LE_TONE_MAPPING_WEIGHTED; + sMaxLightsPerVertex = 4; + le_clear(); +} diff --git a/src/engine/lighting_engine.h b/src/engine/lighting_engine.h index 669e31d63..cc0d4d725 100644 --- a/src/engine/lighting_engine.h +++ b/src/engine/lighting_engine.h @@ -1,9 +1,12 @@ #ifndef LIGHTING_ENGINE_H #define LIGHTING_ENGINE_H +#ifdef __cplusplus +extern "C" { +#endif #include "types.h" -#define LE_MAX_LIGHTS 512 +#define LE_MAX_LIGHTS 1024 enum LEMode { LE_MODE_AFFECT_ALL_SHADED_AND_COLORED, @@ -32,8 +35,10 @@ void le_set_tone_mapping(enum LEToneMapping toneMapping); void le_get_ambient_color(VEC_OUT Color out); /* |description|Sets the lighting engine ambient color|descriptionEnd| */ void le_set_ambient_color(u8 r, u8 g, u8 b); +/* |description|Sets the max amount of lights that can affect a vertex|descriptionEnd| */ +void le_set_max_lights_per_vertex(u8 count); -void le_calculate_vertex_lighting(Vtx_t* v, Vec3f pos, VEC_OUT Color out); +void le_calculate_vertex_lighting(const Vtx_t* v, Vec3f pos, VEC_OUT Color out); /* |description|Calculates the lighting with `lightIntensityScalar` at a position and outputs the color in `out`|descriptionEnd|*/ void le_calculate_lighting_color(Vec3f pos, VEC_OUT Color out, f32 lightIntensityScalar); /* |description|Calculates the lighting with `lightIntensityScalar` at a position and with a normal and outputs the color in `out`|descriptionEnd|*/ @@ -71,4 +76,8 @@ void le_set_light_use_surface_normals(s16 id, bool useSurfaceNormals); void le_clear(void); void le_shutdown(void); +#ifdef __cplusplus +} +#endif + #endif // LIGHTING_ENGINE_H diff --git a/src/pc/gfx/gfx_pc.c b/src/pc/gfx/gfx_pc.c index a89bcac74..1184eaba1 100644 --- a/src/pc/gfx/gfx_pc.c +++ b/src/pc/gfx/gfx_pc.c @@ -892,13 +892,14 @@ static void OPTIMIZE_O3 gfx_sp_vertex(size_t n_vertices, size_t dest_index, cons } // if lighting engine is enabled and either we want to affect all shaded surfaces or the lighting engine geometry mode is on - if (le_is_enabled() && ((le_get_mode() != LE_MODE_AFFECT_ONLY_GEOMETRY_MODE) || (rsp.geometry_mode & G_LIGHTING_ENGINE_EXT))) { + if (le_is_enabled() && luaVertexColor && ((le_get_mode() != LE_MODE_AFFECT_ONLY_GEOMETRY_MODE) || (rsp.geometry_mode & G_LIGHTING_ENGINE_EXT))) { Color color = { gLEAmbientColor[0], gLEAmbientColor[1], gLEAmbientColor[2] }; - CTX_BEGIN(CTX_LIGHTING); Vec3f vpos = { v->ob[0], v->ob[1], v->ob[2] }; Vec3f vnormal = { nx, ny, nz }; + CTX_BEGIN(CTX_LIGHTING); + // transform vpos and vnormal to world space gfx_local_to_world_space(vpos, vnormal); @@ -913,10 +914,11 @@ static void OPTIMIZE_O3 gfx_sp_vertex(size_t n_vertices, size_t dest_index, cons // if lighting engine is enabled and we should affect all vertex colored surfaces or the lighting engine geometry mode is on } else if (le_is_enabled() && !(rsp.geometry_mode & G_LIGHT_MAP_EXT) && (affectAllVertexColored || (rsp.geometry_mode & G_LIGHTING_ENGINE_EXT))) { Color color = { gLEAmbientColor[0], gLEAmbientColor[1], gLEAmbientColor[2] }; - CTX_BEGIN(CTX_LIGHTING); Vec3f vpos = { v->ob[0], v->ob[1], v->ob[2] }; + CTX_BEGIN(CTX_LIGHTING); + // transform vpos to world space gfx_local_to_world_space(vpos, NULL); @@ -927,7 +929,7 @@ static void OPTIMIZE_O3 gfx_sp_vertex(size_t n_vertices, size_t dest_index, cons if (affectAllVertexColored && !(rsp.geometry_mode & G_LIGHTING_ENGINE_EXT)) { le_calculate_lighting_color(vpos, color, 1.0f); } else { - le_calculate_vertex_lighting((Vtx_t*)v, vpos, color); + le_calculate_vertex_lighting(v, vpos, color); } CTX_END(CTX_LIGHTING); diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index 129a8f876..6936315ef 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -1794,7 +1794,7 @@ char gSmluaConstants[] = "" "HUD_DISPLAY_FLAG_EMPHASIZE_POWER=0x8000\n" "HUD_DISPLAY_NONE=0x0000\n" "HUD_DISPLAY_DEFAULT=HUD_DISPLAY_FLAG_LIVES | HUD_DISPLAY_FLAG_COIN_COUNT | HUD_DISPLAY_FLAG_STAR_COUNT | HUD_DISPLAY_FLAG_CAMERA_AND_POWER | HUD_DISPLAY_FLAG_CAMERA | HUD_DISPLAY_FLAG_POWER | HUD_DISPLAY_FLAG_KEYS | HUD_DISPLAY_FLAG_UNKNOWN_0020\n" -"LE_MAX_LIGHTS=512\n" +"LE_MAX_LIGHTS=1024\n" "LE_MODE_AFFECT_ALL_SHADED_AND_COLORED=0\n" "LE_MODE_AFFECT_ALL_SHADED=1\n" "LE_MODE_AFFECT_ONLY_GEOMETRY_MODE=2\n" diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 5ed2cd525..559c81c63 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -15509,6 +15509,23 @@ int smlua_func_le_set_ambient_color(lua_State* L) { return 1; } +int smlua_func_le_set_max_lights_per_vertex(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 1) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "le_set_max_lights_per_vertex", 1, top); + return 0; + } + + u8 count = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "le_set_max_lights_per_vertex"); return 0; } + + le_set_max_lights_per_vertex(count); + + return 1; +} + int smlua_func_le_calculate_lighting_color(lua_State* L) { if (L == NULL) { return 0; } @@ -37539,6 +37556,7 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "le_set_tone_mapping", smlua_func_le_set_tone_mapping); smlua_bind_function(L, "le_get_ambient_color", smlua_func_le_get_ambient_color); smlua_bind_function(L, "le_set_ambient_color", smlua_func_le_set_ambient_color); + smlua_bind_function(L, "le_set_max_lights_per_vertex", smlua_func_le_set_max_lights_per_vertex); smlua_bind_function(L, "le_calculate_lighting_color", smlua_func_le_calculate_lighting_color); smlua_bind_function(L, "le_calculate_lighting_color_with_normal", smlua_func_le_calculate_lighting_color_with_normal); smlua_bind_function(L, "le_calculate_lighting_dir", smlua_func_le_calculate_lighting_dir); diff --git a/src/pc/mods/mod_storage.h b/src/pc/mods/mod_storage.h index a3762e3f7..ee41af4a4 100644 --- a/src/pc/mods/mod_storage.h +++ b/src/pc/mods/mod_storage.h @@ -1,11 +1,11 @@ #ifndef MOD_STORAGE_H #define MOD_STORAGE_H -#include - #ifdef __cplusplus extern "C" { #endif +#include + #include "pc/lua/smlua_utils.h" #define MAX_KEYS 4096 From 692c61f361d3a9ec8881b49287476c68ddcc6a7d Mon Sep 17 00:00:00 2001 From: PeachyPeachSM64 <72323920+PeachyPeachSM64@users.noreply.github.com> Date: Thu, 19 Feb 2026 18:45:42 +0100 Subject: [PATCH 06/20] autogen --- autogen/lua_definitions/constants.lua | 3 +++ autogen/lua_definitions/functions.lua | 2 +- docs/lua/constants.md | 1 + docs/lua/functions-3.md | 2 +- src/pc/lua/smlua_constants_autogen.c | 1 + 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index 0950df1e2..b1fd233f5 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -8191,6 +8191,9 @@ HOOK_MAX = 60 --- @type LuaHookedEventType --- | `HOOK_ON_PACKET_BYTESTRING_RECEIVE` --- | `HOOK_MAX` +--- @type integer +MAX_HOOKED_BEHAVIORS = 1024 + HUD_DISPLAY_LIVES = 0 --- @type HudDisplayValue HUD_DISPLAY_COINS = 1 --- @type HudDisplayValue HUD_DISPLAY_STARS = 2 --- @type HudDisplayValue diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index 700781429..29ab49c53 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -3030,7 +3030,7 @@ end --- @param name string --- @return BehaviorId ---- gets a behavior ID from a behavior name +--- Gets a behavior ID from a behavior name function get_id_from_behavior_name(name) -- ... end diff --git a/docs/lua/constants.md b/docs/lua/constants.md index 664556031..8f49768aa 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -3525,6 +3525,7 @@ | HOOK_ON_CLEAR_AREAS | 58 | | HOOK_ON_PACKET_BYTESTRING_RECEIVE | 59 | | HOOK_MAX | 60 | +- MAX_HOOKED_BEHAVIORS [:arrow_up_small:](#) diff --git a/docs/lua/functions-3.md b/docs/lua/functions-3.md index 4c256ee21..7b1704e71 100644 --- a/docs/lua/functions-3.md +++ b/docs/lua/functions-3.md @@ -261,7 +261,7 @@ Gets a behavior name from a behavior ID (bhvMyGreatMODCustom004) ## [get_id_from_behavior_name](#get_id_from_behavior_name) ### Description -gets a behavior ID from a behavior name +Gets a behavior ID from a behavior name ### Lua Example `local enumValue = get_id_from_behavior_name(name)` diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index 6936315ef..c7fde7802 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -3493,6 +3493,7 @@ char gSmluaConstants[] = "" "HOOK_ON_CLEAR_AREAS=58\n" "HOOK_ON_PACKET_BYTESTRING_RECEIVE=59\n" "HOOK_MAX=60\n" +"MAX_HOOKED_BEHAVIORS=1024\n" "HUD_DISPLAY_LIVES=0\n" "HUD_DISPLAY_COINS=1\n" "HUD_DISPLAY_STARS=2\n" From f6f5434dda9b23113d3705e3a4df797d2b4d31d9 Mon Sep 17 00:00:00 2001 From: Blockyyy <88585273+Blockyyy@users.noreply.github.com> Date: Fri, 20 Feb 2026 01:34:25 +0100 Subject: [PATCH 07/20] set_sound_bank_override (#1046) --- autogen/convert_functions.py | 2 ++ autogen/lua_definitions/functions.lua | 6 ++++++ docs/lua/functions-4.md | 29 +++++++++++++++++++++++++++ docs/lua/functions.md | 5 +++++ src/audio/load.c | 11 ++++++++++ src/audio/load.h | 4 ++++ src/pc/lua/smlua_functions_autogen.c | 25 +++++++++++++++++++++++ src/pc/lua/utils/smlua_audio_utils.c | 3 +++ src/pc/network/network.c | 2 ++ 9 files changed, 87 insertions(+) diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py index 5f2cb8aea..8846db56f 100644 --- a/autogen/convert_functions.py +++ b/autogen/convert_functions.py @@ -80,6 +80,7 @@ in_files = [ "src/audio/seqplayer.h", "src/engine/lighting_engine.h", "src/pc/network/sync_object.h", + "src/audio/load.h", ] override_allowed_functions = { @@ -99,6 +100,7 @@ override_allowed_functions = { "src/game/ingame_menu.h": [ "set_min_dialog_width", "set_dialog_override_pos", "reset_dialog_override_pos", "set_dialog_override_color", "reset_dialog_override_color", "set_menu_mode", "create_dialog_box", "create_dialog_box_with_var", "create_dialog_inverted_box", "create_dialog_box_with_response", "reset_dialog_render_state", "set_dialog_box_state", "handle_special_dialog_text" ], "src/audio/seqplayer.h": [ "sequence_player_set_tempo", "sequence_player_set_tempo_acc", "sequence_player_set_transposition", "sequence_player_get_tempo", "sequence_player_get_tempo_acc", "sequence_player_get_transposition", "sequence_player_get_volume", "sequence_player_get_fade_volume", "sequence_player_get_mute_volume_scale" ], "src/pc/network/sync_object.h": [ "sync_object_is_initialized", "sync_object_is_owned_locally", "sync_object_get_object" ], + "src/audio/load.h": [ "set_sound_bank_override" ], } override_disallowed_functions = { diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index 29ab49c53..f7b0aa63d 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -5240,6 +5240,12 @@ function le_set_light_use_surface_normals(id, useSurfaceNormals) -- ... end +--- @param bank integer +--- Overrides the soundbank, set to -1 to reset +function set_sound_bank_override(bank) + -- ... +end + --- @param m MarioState --- @return integer --- Checks if Mario's current animation has reached its final frame (i.e., the last valid frame in the animation). Useful for deciding when to transition out of an animation-driven action diff --git a/docs/lua/functions-4.md b/docs/lua/functions-4.md index 18fa49891..6c8cb8c8b 100644 --- a/docs/lua/functions-4.md +++ b/docs/lua/functions-4.md @@ -583,6 +583,35 @@ Sets whether a lighting engine point light will use a surface's normals to deter
+--- +# functions from load.h + +
+ + +## [set_sound_bank_override](#set_sound_bank_override) + +### Description +Overrides the soundbank, set to -1 to reset + +### Lua Example +`set_sound_bank_override(bank)` + +### Parameters +| Field | Type | +| ----- | ---- | +| bank | `integer` | + +### Returns +- None + +### C Prototype +`void set_sound_bank_override(s32 bank);` + +[:arrow_up_small:](#) + +
+ --- # functions from mario.h diff --git a/docs/lua/functions.md b/docs/lua/functions.md index 6407c26ed..e2f94b46b 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -997,6 +997,11 @@
+- load.h + - [set_sound_bank_override](functions-4.md#set_sound_bank_override) + +
+ - mario.h - [is_anim_at_end](functions-4.md#is_anim_at_end) - [is_anim_past_end](functions-4.md#is_anim_past_end) diff --git a/src/audio/load.c b/src/audio/load.c index 14498b196..9ad0a479b 100644 --- a/src/audio/load.c +++ b/src/audio/load.c @@ -1481,6 +1481,13 @@ u8 get_missing_bank(u32 seqId, s32 *nonNullCount, s32 *nullCount) { #endif #ifndef VERSION_SH + +s32 gOverrideBank = -1; + +void set_sound_bank_override(s32 bank) { + gOverrideBank = bank; +} + struct AudioBank *load_banks_immediate(s32 seqId, u8 *arg1) { void *ret = NULL; u32 bankId = 0; @@ -1498,6 +1505,10 @@ struct AudioBank *load_banks_immediate(s32 seqId, u8 *arg1) { bankId = gAlBankSets[offset - 1]; #endif + if (gOverrideBank > 0) { + bankId = gOverrideBank; + } + if (IS_BANK_LOAD_COMPLETE(bankId) == TRUE) { #ifdef VERSION_EU ret = get_bank_or_seq(&gBankLoadedPool, 2, bankId); diff --git a/src/audio/load.h b/src/audio/load.h index 36ad4ecf4..df8bb55aa 100644 --- a/src/audio/load.h +++ b/src/audio/load.h @@ -53,6 +53,7 @@ extern s32 gMinAiBufferLength; extern s16 gTempoInternalToExternal; extern s8 gAudioUpdatesPerFrame; // = 4 extern s8 gSoundMode; +extern s32 gOverrideBank; #ifdef VERSION_SH extern OSMesgQueue gUnkQueue1; @@ -95,6 +96,9 @@ void preload_sequence(u32 seqId, u8 preloadMask); #endif void load_sequence(u32 player, u32 seqId, s32 loadAsync); +/* |description|Overrides the soundbank, set to -1 to reset|descriptionEnd| */ +void set_sound_bank_override(s32 bank); + #ifdef VERSION_SH void func_sh_802f3158(s32 index, s32 arg1, s32 arg2, OSMesgQueue *retQueue); u8 *func_sh_802f3220(u32 index, u32 *a1); diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 559c81c63..c4b6b4f0e 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -54,6 +54,7 @@ #include "src/audio/seqplayer.h" #include "src/engine/lighting_engine.h" #include "src/pc/network/sync_object.h" +#include "src/audio/load.h" /////////////// @@ -15889,6 +15890,27 @@ int smlua_func_le_set_light_use_surface_normals(lua_State* L) { return 1; } + //////////// + // load.h // +//////////// + +int smlua_func_set_sound_bank_override(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 1) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "set_sound_bank_override", 1, top); + return 0; + } + + s32 bank = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "set_sound_bank_override"); return 0; } + + set_sound_bank_override(bank); + + return 1; +} + ///////////// // mario.h // ///////////// @@ -37575,6 +37597,9 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "le_get_light_use_surface_normals", smlua_func_le_get_light_use_surface_normals); smlua_bind_function(L, "le_set_light_use_surface_normals", smlua_func_le_set_light_use_surface_normals); + // load.h + smlua_bind_function(L, "set_sound_bank_override", smlua_func_set_sound_bank_override); + // mario.h smlua_bind_function(L, "is_anim_at_end", smlua_func_is_anim_at_end); smlua_bind_function(L, "is_anim_past_end", smlua_func_is_anim_past_end); diff --git a/src/pc/lua/utils/smlua_audio_utils.c b/src/pc/lua/utils/smlua_audio_utils.c index e692476f4..80aeca7fc 100644 --- a/src/pc/lua/utils/smlua_audio_utils.c +++ b/src/pc/lua/utils/smlua_audio_utils.c @@ -18,6 +18,7 @@ #include "pc/debuglog.h" #include "pc/pc_main.h" #include "pc/fs/fmem.h" +#include "audio/load.h" struct AudioOverride { bool enabled; @@ -73,6 +74,8 @@ bool smlua_audio_utils_override(u8 sequenceId, s32* bankId, void** seqData) { struct AudioOverride* override = &sAudioOverrides[sequenceId]; if (!override->enabled) { return false; } + if (gOverrideBank > -1) { override->bank = gOverrideBank; } + if (override->loaded) { *seqData = override->buffer; *bankId = override->bank; diff --git a/src/pc/network/network.c b/src/pc/network/network.c index d267d7cb8..6bd1d4882 100644 --- a/src/pc/network/network.c +++ b/src/pc/network/network.c @@ -36,6 +36,7 @@ #include "game/mario.h" #include "engine/math_util.h" #include "engine/lighting_engine.h" +#include "src/audio/load.h" #ifdef DISCORD_SDK #include "pc/discord/discord.h" @@ -711,6 +712,7 @@ void network_shutdown(bool sendLeaving, bool exiting, bool popup, bool reconnect gOverrideFar = 0; gOverrideFOV = 0; gRoomOverride = -1; + gOverrideBank = -1; gCurrActStarNum = 0; gCurrActNum = 0; gCurrCreditsEntry = NULL; From 2fcf14d08d8887aa38235d7c4522570301833107 Mon Sep 17 00:00:00 2001 From: EmeraldLockdown <86802223+EmeraldLoc@users.noreply.github.com> Date: Sun, 22 Feb 2026 16:35:53 -0600 Subject: [PATCH 08/20] Add backwards compatibility for older versions of macOS and add new macOS Icon (#957) Here are the changes: - Update each runner to their respective latest versions (Arm is macOS-26 preview, and intel is macOS-15-intel) - Compiled glew and sdl2 manually, specifically targeting 11 (big sur) on arm and 10.15 (catalina) on intel - Recompiled arm lua libs to support Big Sur - Add new icon designed for macOS 26 (tahoe), including backwards compatibility support for versions prior to tahoe Few things to note are - Vscode automatically removed white lines in the workflow for actions, if I need to revert it lmk. - I tested this in a vm on macOS 11 (Monterey), and it appeared to work. If someone on intel is on macOS 10.15 (Catalina) or someone on arm is on macOS 11 (Big Sur), it would be greatly appreciated if you could test this. Even if you're on a slightly newer version that isn't supported in the current version, that would be appreciated. You can find the zipped builds [here](https://github.com/EmeraldLoc/random-files) --- .github/workflows/build-coop.yaml | 57 ++++++++++++++++++++++++------ Makefile | 31 ++++++++-------- lib/lua/mac_arm/liblua53.a | Bin 345232 -> 343016 bytes res/icon.icns | Bin 482415 -> 72743 bytes res/icon.icon/Assets/icon.png | Bin 0 -> 59524 bytes res/icon.icon/icon.json | 35 ++++++++++++++++++ 6 files changed, 98 insertions(+), 25 deletions(-) create mode 100644 res/icon.icon/Assets/icon.png create mode 100644 res/icon.icon/icon.json diff --git a/.github/workflows/build-coop.yaml b/.github/workflows/build-coop.yaml index 88d47db15..166809e60 100644 --- a/.github/workflows/build-coop.yaml +++ b/.github/workflows/build-coop.yaml @@ -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: diff --git a/Makefile b/Makefile index 66b02100f..e1549b294 100644 --- a/Makefile +++ b/Makefile @@ -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 '' > $(APP_CONTENTS_DIR)/Info.plist; \ echo '' >> $(APP_CONTENTS_DIR)/Info.plist; \ @@ -1623,7 +1624,7 @@ all: echo ' CFBundleIconFile' >> $(APP_CONTENTS_DIR)/Info.plist; \ echo ' icon' >> $(APP_CONTENTS_DIR)/Info.plist; \ echo ' CFBundleIconName' >> $(APP_CONTENTS_DIR)/Info.plist; \ - echo ' AppIcon' >> $(APP_CONTENTS_DIR)/Info.plist; \ + echo ' icon' >> $(APP_CONTENTS_DIR)/Info.plist; \ echo ' CFBundleDisplayName' >> $(APP_CONTENTS_DIR)/Info.plist; \ echo ' sm64coopdx' >> $(APP_CONTENTS_DIR)/Info.plist; \ echo ' ' >> $(APP_CONTENTS_DIR)/Info.plist; \ diff --git a/lib/lua/mac_arm/liblua53.a b/lib/lua/mac_arm/liblua53.a index 8a3e6558b9992b771f6e5a93b230aaef9a5dde9e..505bb1ccddd95634083e83a4e5a0eed5cbafd604 100644 GIT binary patch delta 135316 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 diff --git a/res/icon.icns b/res/icon.icns index 1f20f4d2ef96dda376c11e753374b59be4a6ddfc..af1d170e89558711484133222a3e38ef85e1c235 100644 GIT binary patch literal 72743 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

7({$Dn% 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 M07*qoM6N<$f=7#C00000 literal 482415 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

_-k6ym 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

{k@-@1x@2nxWgZT9--ohRG8D} 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%0A#tz8V@8C8=Ti|x{BoT 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 diff --git a/res/icon.icon/Assets/icon.png b/res/icon.icon/Assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3846e675a6b9457b2c2f4fcd2f90a2ac592cf71f GIT binary patch literal 59524 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�u9Nk(nSD;~ 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ð_g7CFYCwDi5ElwrGmd~*r}2mSm0)4JL}qhI@(I(VqPb?U&*=>v^7 zf8(*|R_x;}s_2p_x?xFSpV{w$)zAZSvD&8hy|4cC%p>pBW!ldS4-KAjyiN@W2&@XY zPQdL$?i>s&2&C7Jc?^VLkX}IItStowf&g*Ar+&b)p@?vLOCp5pdaOY^z(Wh+xeUuV zy*Yk*cb^w{^ex2Ba$iUNSvkAC&g-}Oo}Zm>@0gz5yysx!otqwc?iu#zJA6rj_rgoM z&;HK(J@BG?fM7sjRtEYy?x#guF6SRuJ2ukRZN%DSUKuD5aJ@hQzybo-4W!KVTowoV zEdv>1rH~9pK)|?pB2I3*O23JK|MPo>5dh5b<>=h1<%rL6e^HPl{=E2h#OJ9#IsBZC z{>sHX7~OLyI+C-EYq>G#}H4JU@Nn#Hs&y?cI0t1c}9%)zInv0I(WHpwyRe82rp7Z@Qp1(7sI1P+g(p{+sk7*_eLusHWIZjp$T?I|}Izub(Cm5LC|23fTB6 zfcF+y@^iH396vdKam4rAdOGSK(n{d*X0vsxezD=!8}5Jd0dLrkO*iqqwa(o@{YlpP>*H50+_UdBa zP6dXo3KjZ!g~sEfgUwyn-o2IEw#Q`Z2Y_R8*!q=T!5(-apIEg=@)hilzUh7s^n0M+ z1N|Q8_dve~`aRI^fqoD4d!XL~{T}G|K)(lG20ie9ccDyFc|6p{00000NkvXXu0mjf DeYU)` literal 0 HcmV?d00001 diff --git a/res/icon.icon/icon.json b/res/icon.icon/icon.json new file mode 100644 index 000000000..3a112c289 --- /dev/null +++ b/res/icon.icon/icon.json @@ -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" + } +} \ No newline at end of file From fa3bad71778c8a61ef92702923ec8a89c84f911e Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Thu, 26 Feb 2026 12:18:17 +1000 Subject: [PATCH 09/20] handle smlua text utils crashing --- src/game/level_info.c | 2 +- src/pc/lua/utils/smlua_text_utils.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/game/level_info.c b/src/game/level_info.c index 0482d4866..b752fdc28 100644 --- a/src/game/level_info.c +++ b/src/game/level_info.c @@ -153,7 +153,7 @@ static const char *ascii_to_sm64_char(u8 *str64, const char *strAscii, bool menu if (menu && !ch->menu) { continue; } - if (memcmp(strAscii, ch->str, ch->len) == 0) { + if (strncmp(strAscii, ch->str, ch->len) == 0) { *str64 = ch->c; return strAscii + ch->len; } diff --git a/src/pc/lua/utils/smlua_text_utils.c b/src/pc/lua/utils/smlua_text_utils.c index 328530b45..4843ae178 100644 --- a/src/pc/lua/utils/smlua_text_utils.c +++ b/src/pc/lua/utils/smlua_text_utils.c @@ -112,7 +112,8 @@ static u8* smlua_text_utils_convert(const char* str) { // Checks the first 3 characters static bool str_starts_with_spaces(const char* str) { for (u8 i = 0; i < 3; i++) { - if (str[i] != ' ') { return false; } + if (str[i] == '\0') { return false; } + if (str[i] != ' ') { return false; } } return true; } From 1272c0d733db2fbc749f5fe55b93c02907e5d3ff Mon Sep 17 00:00:00 2001 From: PeachyPeachSM64 <72323920+PeachyPeachSM64@users.noreply.github.com> Date: Sun, 1 Mar 2026 23:28:19 +0100 Subject: [PATCH 10/20] Add easing functions autocompletion for math.tween Remove redundant check in `str_starts_with_spaces` --- autogen/lua_constants/built-in.lua | 45 ++++++++++++++++++++++++++- autogen/lua_definitions/constants.lua | 45 ++++++++++++++++++++++++++- src/pc/lua/smlua_constants_autogen.c | 44 +++++++++++++++++++++++++- src/pc/lua/utils/smlua_text_utils.c | 3 +- 4 files changed, 132 insertions(+), 5 deletions(-) diff --git a/autogen/lua_constants/built-in.lua b/autogen/lua_constants/built-in.lua index f60dd6f47..58b436d3a 100644 --- a/autogen/lua_constants/built-in.lua +++ b/autogen/lua_constants/built-in.lua @@ -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 diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index b1fd233f5..fef72a27c 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -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 diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index c7fde7802..bc67f2ae0 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -288,6 +288,48 @@ char gSmluaConstants[] = "" "---@param x number\n" "---@return number\n" "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\n" +"--- @alias EasingFunction\n" +"--- | `IN_SINE`\n" +"--- | `OUT_SINE`\n" +"--- | `IN_OUT_SINE`\n" +"--- | `OUT_IN_SINE`\n" +"--- | `IN_QUAD`\n" +"--- | `OUT_QUAD`\n" +"--- | `IN_OUT_QUAD`\n" +"--- | `OUT_IN_QUAD`\n" +"--- | `IN_CUBIC`\n" +"--- | `OUT_CUBIC`\n" +"--- | `IN_OUT_CUBIC`\n" +"--- | `OUT_IN_CUBIC`\n" +"--- | `IN_QUART`\n" +"--- | `OUT_QUART`\n" +"--- | `IN_OUT_QUART`\n" +"--- | `OUT_IN_QUART`\n" +"--- | `IN_QUINT`\n" +"--- | `OUT_QUINT`\n" +"--- | `IN_OUT_QUINT`\n" +"--- | `OUT_IN_QUINT`\n" +"--- | `IN_EXPO`\n" +"--- | `OUT_EXPO`\n" +"--- | `IN_OUT_EXPO`\n" +"--- | `OUT_IN_EXPO`\n" +"--- | `IN_CIRC`\n" +"--- | `OUT_CIRC`\n" +"--- | `IN_OUT_CIRC`\n" +"--- | `OUT_IN_CIRC`\n" +"--- | `IN_BACK`\n" +"--- | `OUT_BACK`\n" +"--- | `IN_OUT_BACK`\n" +"--- | `OUT_IN_BACK`\n" +"--- | `IN_ELASTIC`\n" +"--- | `OUT_ELASTIC`\n" +"--- | `IN_OUT_ELASTIC`\n" +"--- | `OUT_IN_ELASTIC`\n" +"--- | `IN_BOUNCE`\n" +"--- | `OUT_BOUNCE`\n" +"--- | `IN_OUT_BOUNCE`\n" +"--- | `OUT_IN_BOUNCE`\n" +"--- | fun(x: number): number\n" "--------------------\n" "-- math functions --\n" "--------------------\n" @@ -357,7 +399,7 @@ char gSmluaConstants[] = "" "function math.round(x)\n" "return x > 0 and __math_floor(x + 0.5) or __math_ceil(x - 0.5)\n" "end\n" -"--- @param t function | number\n" +"--- @param t EasingFunction | number\n" "--- @param a number\n" "--- @param b number\n" "--- @param x number\n" diff --git a/src/pc/lua/utils/smlua_text_utils.c b/src/pc/lua/utils/smlua_text_utils.c index 4843ae178..328530b45 100644 --- a/src/pc/lua/utils/smlua_text_utils.c +++ b/src/pc/lua/utils/smlua_text_utils.c @@ -112,8 +112,7 @@ static u8* smlua_text_utils_convert(const char* str) { // Checks the first 3 characters static bool str_starts_with_spaces(const char* str) { for (u8 i = 0; i < 3; i++) { - if (str[i] == '\0') { return false; } - if (str[i] != ' ') { return false; } + if (str[i] != ' ') { return false; } } return true; } From a9f0b5c99ca1cd518a7f24fe58cc40a09e90cabc Mon Sep 17 00:00:00 2001 From: djoslin0 Date: Sun, 1 Mar 2026 14:43:44 -0800 Subject: [PATCH 11/20] Move HOOK_ON_ADD_SURFACE to before cell calculation (#1124) Moving it before the cell calculation should allow more possibilities in runtime collision modification Co-authored-by: MysterD --- src/engine/surface_load.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/engine/surface_load.c b/src/engine/surface_load.c index e5296490e..d78d7999d 100644 --- a/src/engine/surface_load.c +++ b/src/engine/surface_load.c @@ -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); } /** From d0b4c6027d16fe8d022081bda1dac7d66c91a173 Mon Sep 17 00:00:00 2001 From: Cooliokid956 <68075390+Cooliokid956@users.noreply.github.com> Date: Mon, 2 Mar 2026 02:17:08 -0600 Subject: [PATCH 12/20] Restore proper squish death (#1127) --- src/game/mario_actions_cutscene.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/game/mario_actions_cutscene.c b/src/game/mario_actions_cutscene.c index 8d598b313..9162cd84a 100644 --- a/src/game/mario_actions_cutscene.c +++ b/src/game/mario_actions_cutscene.c @@ -1825,11 +1825,17 @@ s32 act_squished(struct MarioState *m) { if (m->actionTimer >= 15) { // 1 unit of health if (m->health < 0x0100) { - //level_trigger_warp(m, WARP_OP_DEATH); - // woosh, he's gone! - //set_mario_action(m, ACT_DISAPPEARED, 0); - drop_and_set_mario_action(m, ACT_DEATH_ON_BACK, 0); - m->squishTimer = 0; + bool allowDeath = true; + smlua_call_event_hooks(HOOK_ON_DEATH, m, &allowDeath); + if (!allowDeath) { return FALSE; } + + if (mario_can_bubble(m)) { + mario_set_bubbled(m); + } else { + level_trigger_warp(m, WARP_OP_DEATH); + // woosh, he's gone! + set_mario_action(m, ACT_DISAPPEARED, 0); + } } else if (m->hurtCounter == 0) { // un-squish animation m->squishTimer = 30; From dd838ad97960245e8cd9d42fa0571809f18150e5 Mon Sep 17 00:00:00 2001 From: PeachyPeach <72323920+PeachyPeachSM64@users.noreply.github.com> Date: Mon, 2 Mar 2026 19:25:22 +0100 Subject: [PATCH 13/20] Fix oob read/write caused to sync_object_init_field (#1117) --- src/game/behaviors/activated_bf_plat.inc.c | 26 +++---- src/game/behaviors/amp.inc.c | 28 ++++---- src/game/behaviors/arrow_lift.inc.c | 6 +- .../behaviors/bbh_haunted_bookshelf.inc.c | 8 +-- src/game/behaviors/bbh_tilting_trap.inc.c | 4 +- src/game/behaviors/blue_coin.inc.c | 12 ++-- src/game/behaviors/bobomb.inc.c | 6 +- src/game/behaviors/boo.inc.c | 32 ++++----- src/game/behaviors/boo_cage.inc.c | 14 ++-- src/game/behaviors/boulder.inc.c | 2 +- src/game/behaviors/bowser.inc.c | 56 +++++++-------- src/game/behaviors/bowser_bomb.inc.c | 2 +- src/game/behaviors/bowser_puzzle_piece.inc.c | 6 +- src/game/behaviors/breakable_box_small.inc.c | 8 +-- src/game/behaviors/breakable_wall.inc.c | 2 +- src/game/behaviors/bub.inc.c | 10 +-- src/game/behaviors/bubba.inc.c | 22 +++--- src/game/behaviors/bullet_bill.inc.c | 6 +- src/game/behaviors/bully.inc.c | 16 ++--- src/game/behaviors/camera_lakitu.inc.c | 16 ++--- src/game/behaviors/cannon.inc.c | 20 +++--- src/game/behaviors/capswitch.inc.c | 2 +- src/game/behaviors/chain_chomp.inc.c | 16 ++--- src/game/behaviors/chuckya.inc.c | 10 +-- src/game/behaviors/clam.inc.c | 6 +- src/game/behaviors/cloud.inc.c | 12 ++-- .../behaviors/controllable_platform.inc.c | 42 +++++------ src/game/behaviors/donut_platform.inc.c | 4 +- src/game/behaviors/dorrie.inc.c | 12 ++-- src/game/behaviors/drawbridge.inc.c | 8 +-- src/game/behaviors/elevator.inc.c | 6 +- src/game/behaviors/enemy_lakitu.inc.c | 6 +- src/game/behaviors/exclamation_box.inc.c | 4 +- src/game/behaviors/express_elevator.inc.c | 10 +-- src/game/behaviors/eyerok.inc.c | 54 +++++++------- .../behaviors/falling_rising_platform.inc.c | 8 +-- src/game/behaviors/ferris_wheel.inc.c | 8 +-- src/game/behaviors/fire_piranha_plant.inc.c | 4 +- src/game/behaviors/fire_spitter.inc.c | 14 ++-- src/game/behaviors/flamethrower.inc.c | 6 +- src/game/behaviors/fly_guy.inc.c | 10 +-- .../behaviors/flying_bookend_switch.inc.c | 26 +++---- src/game/behaviors/goomba.inc.c | 4 +- src/game/behaviors/grand_star.inc.c | 42 +++++------ src/game/behaviors/haunted_chair.inc.c | 18 ++--- src/game/behaviors/heave_ho.inc.c | 10 +-- src/game/behaviors/hidden_star.inc.c | 12 ++-- src/game/behaviors/hoot.inc.c | 6 +- src/game/behaviors/horizontal_grindel.inc.c | 12 ++-- src/game/behaviors/jrb_ship.inc.c | 20 +++--- src/game/behaviors/jumping_box.inc.c | 2 +- src/game/behaviors/kickable_board.inc.c | 16 ++--- src/game/behaviors/king_bobomb.inc.c | 8 +-- src/game/behaviors/klepto.inc.c | 32 ++++----- src/game/behaviors/koopa.inc.c | 52 +++++++------- .../behaviors/lll_floating_wood_piece.inc.c | 2 +- src/game/behaviors/lll_hexagonal_ring.inc.c | 2 +- .../lll_octagonal_rotating_mesh.inc.c | 8 +-- .../behaviors/lll_rotating_hex_flame.inc.c | 2 +- .../behaviors/lll_sinking_rectangle.inc.c | 6 +- .../behaviors/lll_sinking_rock_block.inc.c | 4 +- src/game/behaviors/manta_ray.inc.c | 12 ++-- src/game/behaviors/metal_box.inc.c | 2 +- src/game/behaviors/mips.inc.c | 12 ++-- src/game/behaviors/moneybag.inc.c | 16 ++--- src/game/behaviors/monty_mole.inc.c | 18 ++--- src/game/behaviors/mr_blizzard.inc.c | 24 +++---- src/game/behaviors/mushroom_1up.inc.c | 48 ++++++------- src/game/behaviors/piranha_plant.inc.c | 14 ++-- src/game/behaviors/platform_on_track.inc.c | 16 ++--- src/game/behaviors/pokey.inc.c | 12 ++-- src/game/behaviors/purple_switch.inc.c | 4 +- src/game/behaviors/pyramid_elevator.inc.c | 10 +-- src/game/behaviors/pyramid_top.inc.c | 8 +-- src/game/behaviors/racing_penguin.inc.c | 42 +++++------ src/game/behaviors/rolling_log.inc.c | 20 +++--- src/game/behaviors/scuttlebug.inc.c | 22 +++--- src/game/behaviors/seesaw_platform.inc.c | 4 +- src/game/behaviors/skeeter.inc.c | 16 ++--- src/game/behaviors/sl_snowman_wind.inc.c | 8 +-- src/game/behaviors/sl_walking_penguin.inc.c | 14 ++-- src/game/behaviors/sliding_platform_2.inc.c | 8 +-- src/game/behaviors/snow_mound.inc.c | 6 +- src/game/behaviors/snowman.inc.c | 6 +- src/game/behaviors/snufit.inc.c | 20 +++--- src/game/behaviors/sparkle_spawn_star.inc.c | 6 +- src/game/behaviors/spawn_star.inc.c | 16 ++--- src/game/behaviors/spindel.inc.c | 8 +-- src/game/behaviors/spindrift.inc.c | 2 +- src/game/behaviors/spiny.inc.c | 18 ++--- .../behaviors/square_platform_cycle.inc.c | 22 +++--- src/game/behaviors/sushi.inc.c | 2 +- src/game/behaviors/swing_platform.inc.c | 8 +-- src/game/behaviors/swoop.inc.c | 12 ++-- src/game/behaviors/thi_top.inc.c | 8 +-- src/game/behaviors/thwomp.inc.c | 10 +-- src/game/behaviors/tower_platform.inc.c | 6 +- src/game/behaviors/tox_box.inc.c | 10 +-- src/game/behaviors/treasure_chest.inc.c | 72 +++++++++---------- src/game/behaviors/ttc_2d_rotator.inc.c | 12 ++-- src/game/behaviors/ttc_cog.inc.c | 8 +-- src/game/behaviors/ttc_elevator.inc.c | 4 +- src/game/behaviors/ttc_moving_bar.inc.c | 10 +-- src/game/behaviors/ttc_pendulum.inc.c | 12 ++-- src/game/behaviors/ttc_pit_block.inc.c | 4 +- src/game/behaviors/ttc_rotating_solid.inc.c | 12 ++-- src/game/behaviors/ttc_spinner.inc.c | 8 +-- src/game/behaviors/ttc_treadmill.inc.c | 6 +- src/game/behaviors/tumbling_bridge.inc.c | 24 +++---- src/game/behaviors/tuxie.inc.c | 4 +- src/game/behaviors/tweester.inc.c | 10 +-- src/game/behaviors/ukiki.inc.c | 10 +-- src/game/behaviors/unagi.inc.c | 30 ++++---- src/game/behaviors/water_bomb.inc.c | 4 +- src/game/behaviors/water_pillar.inc.c | 8 +-- src/game/behaviors/water_ring.inc.c | 8 +-- src/game/behaviors/wdw_water_level.inc.c | 2 +- src/game/behaviors/whomp.inc.c | 10 +-- src/game/behaviors/wiggler.inc.c | 24 +++---- src/game/behaviors/yoshi.inc.c | 12 ++-- src/pc/lua/smlua_cobject.c | 3 +- src/pc/lua/smlua_functions.c | 31 +++++--- src/pc/network/packets/packet_object.c | 4 +- src/pc/network/sync_object.c | 29 ++------ src/pc/network/sync_object.h | 9 ++- 125 files changed, 842 insertions(+), 846 deletions(-) diff --git a/src/game/behaviors/activated_bf_plat.inc.c b/src/game/behaviors/activated_bf_plat.inc.c index 98a40cdf3..003c4ddb5 100644 --- a/src/game/behaviors/activated_bf_plat.inc.c +++ b/src/game/behaviors/activated_bf_plat.inc.c @@ -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); } /** diff --git a/src/game/behaviors/amp.inc.c b/src/game/behaviors/amp.inc.c index c6c7e8b9c..e797f6a69 100644 --- a/src/game/behaviors/amp.inc.c +++ b/src/game/behaviors/amp.inc.c @@ -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); } } diff --git a/src/game/behaviors/arrow_lift.inc.c b/src/game/behaviors/arrow_lift.inc.c index fa49985de..86e6e7d72 100644 --- a/src/game/behaviors/arrow_lift.inc.c +++ b/src/game/behaviors/arrow_lift.inc.c @@ -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); } } diff --git a/src/game/behaviors/bbh_haunted_bookshelf.inc.c b/src/game/behaviors/bbh_haunted_bookshelf.inc.c index 359d8c240..9ab34072a 100644 --- a/src/game/behaviors/bbh_haunted_bookshelf.inc.c +++ b/src/game/behaviors/bbh_haunted_bookshelf.inc.c @@ -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. diff --git a/src/game/behaviors/bbh_tilting_trap.inc.c b/src/game/behaviors/bbh_tilting_trap.inc.c index f80b9a65a..3a810522b 100644 --- a/src/game/behaviors/bbh_tilting_trap.inc.c +++ b/src/game/behaviors/bbh_tilting_trap.inc.c @@ -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; diff --git a/src/game/behaviors/blue_coin.inc.c b/src/game/behaviors/blue_coin.inc.c index 2aa0225a2..156806de2 100644 --- a/src/game/behaviors/blue_coin.inc.c +++ b/src/game/behaviors/blue_coin.inc.c @@ -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. diff --git a/src/game/behaviors/bobomb.inc.c b/src/game/behaviors/bobomb.inc.c index 762eaabb6..fbf15cb66 100644 --- a/src/game/behaviors/bobomb.inc.c +++ b/src/game/behaviors/bobomb.inc.c @@ -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); } } diff --git a/src/game/behaviors/boo.inc.c b/src/game/behaviors/boo.inc.c index acdab4961..37bd4b6fe 100644 --- a/src/game/behaviors/boo.inc.c +++ b/src/game/behaviors/boo.inc.c @@ -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; } @@ -862,8 +862,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); diff --git a/src/game/behaviors/boo_cage.inc.c b/src/game/behaviors/boo_cage.inc.c index 5487e6ba4..11c2f6745 100644 --- a/src/game/behaviors/boo_cage.inc.c +++ b/src/game/behaviors/boo_cage.inc.c @@ -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); } /** diff --git a/src/game/behaviors/boulder.inc.c b/src/game/behaviors/boulder.inc.c index 13acba88c..b278b22a4 100644 --- a/src/game/behaviors/boulder.inc.c +++ b/src/game/behaviors/boulder.inc.c @@ -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; diff --git a/src/game/behaviors/bowser.inc.c b/src/game/behaviors/bowser.inc.c index 52c474577..1d7dab87d 100644 --- a/src/game/behaviors/bowser.inc.c +++ b/src/game/behaviors/bowser.inc.c @@ -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); } } diff --git a/src/game/behaviors/bowser_bomb.inc.c b/src/game/behaviors/bowser_bomb.inc.c index 5acd83ae4..18427e6c5 100644 --- a/src/game/behaviors/bowser_bomb.inc.c +++ b/src/game/behaviors/bowser_bomb.inc.c @@ -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); } } diff --git a/src/game/behaviors/bowser_puzzle_piece.inc.c b/src/game/behaviors/bowser_puzzle_piece.inc.c index 7d57014f8..85474573b 100644 --- a/src/game/behaviors/bowser_puzzle_piece.inc.c +++ b/src/game/behaviors/bowser_puzzle_piece.inc.c @@ -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); } } diff --git a/src/game/behaviors/breakable_box_small.inc.c b/src/game/behaviors/breakable_box_small.inc.c index bcb132a85..26066e57f 100644 --- a/src/game/behaviors/breakable_box_small.inc.c +++ b/src/game/behaviors/breakable_box_small.inc.c @@ -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) { diff --git a/src/game/behaviors/breakable_wall.inc.c b/src/game/behaviors/breakable_wall.inc.c index ba116266e..2441d9cd1 100644 --- a/src/game/behaviors/breakable_wall.inc.c +++ b/src/game/behaviors/breakable_wall.inc.c @@ -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) { diff --git a/src/game/behaviors/bub.inc.c b/src/game/behaviors/bub.inc.c index 5e165e534..d4875e040 100644 --- a/src/game/behaviors/bub.inc.c +++ b/src/game/behaviors/bub.inc.c @@ -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); } } diff --git a/src/game/behaviors/bubba.inc.c b/src/game/behaviors/bubba.inc.c index 8401ff249..2b2e2f5c2 100644 --- a/src/game/behaviors/bubba.inc.c +++ b/src/game/behaviors/bubba.inc.c @@ -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); diff --git a/src/game/behaviors/bullet_bill.inc.c b/src/game/behaviors/bullet_bill.inc.c index 8260f1fa5..767a3e032 100644 --- a/src/game/behaviors/bullet_bill.inc.c +++ b/src/game/behaviors/bullet_bill.inc.c @@ -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); } } diff --git a/src/game/behaviors/bully.inc.c b/src/game/behaviors/bully.inc.c index d174c1d3a..d0f702e9e 100644 --- a/src/game/behaviors/bully.inc.c +++ b/src/game/behaviors/bully.inc.c @@ -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; diff --git a/src/game/behaviors/camera_lakitu.inc.c b/src/game/behaviors/camera_lakitu.inc.c index 51eea7490..702d36216 100644 --- a/src/game/behaviors/camera_lakitu.inc.c +++ b/src/game/behaviors/camera_lakitu.inc.c @@ -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 } } diff --git a/src/game/behaviors/cannon.inc.c b/src/game/behaviors/cannon.inc.c index 1f147c50f..9450aac0c 100644 --- a/src/game/behaviors/cannon.inc.c +++ b/src/game/behaviors/cannon.inc.c @@ -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); } } diff --git a/src/game/behaviors/capswitch.inc.c b/src/game/behaviors/capswitch.inc.c index ead66868c..9fada0a72 100644 --- a/src/game/behaviors/capswitch.inc.c +++ b/src/game/behaviors/capswitch.inc.c @@ -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); diff --git a/src/game/behaviors/chain_chomp.inc.c b/src/game/behaviors/chain_chomp.inc.c index ac4ee0fa3..d89b324cf 100644 --- a/src/game/behaviors/chain_chomp.inc.c +++ b/src/game/behaviors/chain_chomp.inc.c @@ -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 diff --git a/src/game/behaviors/chuckya.inc.c b/src/game/behaviors/chuckya.inc.c index eb5a91c6c..9b1a25ae8 100644 --- a/src/game/behaviors/chuckya.inc.c +++ b/src/game/behaviors/chuckya.inc.c @@ -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); } } diff --git a/src/game/behaviors/clam.inc.c b/src/game/behaviors/clam.inc.c index 297be2237..32f571a28 100644 --- a/src/game/behaviors/clam.inc.c +++ b/src/game/behaviors/clam.inc.c @@ -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; diff --git a/src/game/behaviors/cloud.inc.c b/src/game/behaviors/cloud.inc.c index fb31ca3e5..f34c63dd0 100644 --- a/src/game/behaviors/cloud.inc.c +++ b/src/game/behaviors/cloud.inc.c @@ -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); diff --git a/src/game/behaviors/controllable_platform.inc.c b/src/game/behaviors/controllable_platform.inc.c index 11fcc00aa..e1b8583ff 100644 --- a/src/game/behaviors/controllable_platform.inc.c +++ b/src/game/behaviors/controllable_platform.inc.c @@ -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); } } } diff --git a/src/game/behaviors/donut_platform.inc.c b/src/game/behaviors/donut_platform.inc.c index 7e13bc126..10981196a 100644 --- a/src/game/behaviors/donut_platform.inc.c +++ b/src/game/behaviors/donut_platform.inc.c @@ -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); diff --git a/src/game/behaviors/dorrie.inc.c b/src/game/behaviors/dorrie.inc.c index 5b88ff723..3625267db 100644 --- a/src/game/behaviors/dorrie.inc.c +++ b/src/game/behaviors/dorrie.inc.c @@ -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); } } diff --git a/src/game/behaviors/drawbridge.inc.c b/src/game/behaviors/drawbridge.inc.c index 9b62c1beb..61c6019e2 100644 --- a/src/game/behaviors/drawbridge.inc.c +++ b/src/game/behaviors/drawbridge.inc.c @@ -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); } } diff --git a/src/game/behaviors/elevator.inc.c b/src/game/behaviors/elevator.inc.c index b0302e6b4..47190e840 100644 --- a/src/game/behaviors/elevator.inc.c +++ b/src/game/behaviors/elevator.inc.c @@ -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, diff --git a/src/game/behaviors/enemy_lakitu.inc.c b/src/game/behaviors/enemy_lakitu.inc.c index 0a70d676f..cfaf81760 100644 --- a/src/game/behaviors/enemy_lakitu.inc.c +++ b/src/game/behaviors/enemy_lakitu.inc.c @@ -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); diff --git a/src/game/behaviors/exclamation_box.inc.c b/src/game/behaviors/exclamation_box.inc.c index 2beff18ab..c90bc48a6 100644 --- a/src/game/behaviors/exclamation_box.inc.c +++ b/src/game/behaviors/exclamation_box.inc.c @@ -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; diff --git a/src/game/behaviors/express_elevator.inc.c b/src/game/behaviors/express_elevator.inc.c index 406d07175..34268bf68 100644 --- a/src/game/behaviors/express_elevator.inc.c +++ b/src/game/behaviors/express_elevator.inc.c @@ -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; diff --git a/src/game/behaviors/eyerok.inc.c b/src/game/behaviors/eyerok.inc.c index fb3523fbe..60bbb14a1 100644 --- a/src/game/behaviors/eyerok.inc.c +++ b/src/game/behaviors/eyerok.inc.c @@ -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); } } diff --git a/src/game/behaviors/falling_rising_platform.inc.c b/src/game/behaviors/falling_rising_platform.inc.c index eebca7d79..098960145 100644 --- a/src/game/behaviors/falling_rising_platform.inc.c +++ b/src/game/behaviors/falling_rising_platform.inc.c @@ -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); } } diff --git a/src/game/behaviors/ferris_wheel.inc.c b/src/game/behaviors/ferris_wheel.inc.c index 30928da03..a7b4adb7d 100644 --- a/src/game/behaviors/ferris_wheel.inc.c +++ b/src/game/behaviors/ferris_wheel.inc.c @@ -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); } } diff --git a/src/game/behaviors/fire_piranha_plant.inc.c b/src/game/behaviors/fire_piranha_plant.inc.c index c98ffab89..049667f3e 100644 --- a/src/game/behaviors/fire_piranha_plant.inc.c +++ b/src/game/behaviors/fire_piranha_plant.inc.c @@ -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) { diff --git a/src/game/behaviors/fire_spitter.inc.c b/src/game/behaviors/fire_spitter.inc.c index b6e2ff9fd..1afb63580 100644 --- a/src/game/behaviors/fire_spitter.inc.c +++ b/src/game/behaviors/fire_spitter.inc.c @@ -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]); } } diff --git a/src/game/behaviors/flamethrower.inc.c b/src/game/behaviors/flamethrower.inc.c index 7dd48aa59..b69ecb236 100644 --- a/src/game/behaviors/flamethrower.inc.c +++ b/src/game/behaviors/flamethrower.inc.c @@ -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; diff --git a/src/game/behaviors/fly_guy.inc.c b/src/game/behaviors/fly_guy.inc.c index aaf336770..537b4c549 100644 --- a/src/game/behaviors/fly_guy.inc.c +++ b/src/game/behaviors/fly_guy.inc.c @@ -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)) { diff --git a/src/game/behaviors/flying_bookend_switch.inc.c b/src/game/behaviors/flying_bookend_switch.inc.c index 9815b9ad1..e48acf338 100644 --- a/src/game/behaviors/flying_bookend_switch.inc.c +++ b/src/game/behaviors/flying_bookend_switch.inc.c @@ -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); } } diff --git a/src/game/behaviors/goomba.inc.c b/src/game/behaviors/goomba.inc.c index 7779f792f..209e1def7 100644 --- a/src/game/behaviors/goomba.inc.c +++ b/src/game/behaviors/goomba.inc.c @@ -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); } /** diff --git a/src/game/behaviors/grand_star.inc.c b/src/game/behaviors/grand_star.inc.c index 28ffe18a4..5b7ac0e40 100644 --- a/src/game/behaviors/grand_star.inc.c +++ b/src/game/behaviors/grand_star.inc.c @@ -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; diff --git a/src/game/behaviors/haunted_chair.inc.c b/src/game/behaviors/haunted_chair.inc.c index 2cb77724d..57cc82dcc 100644 --- a/src/game/behaviors/haunted_chair.inc.c +++ b/src/game/behaviors/haunted_chair.inc.c @@ -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) { diff --git a/src/game/behaviors/heave_ho.inc.c b/src/game/behaviors/heave_ho.inc.c index 62f27e81e..159676e8f 100644 --- a/src/game/behaviors/heave_ho.inc.c +++ b/src/game/behaviors/heave_ho.inc.c @@ -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); } } diff --git a/src/game/behaviors/hidden_star.inc.c b/src/game/behaviors/hidden_star.inc.c index 9cbadffac..61a864436 100644 --- a/src/game/behaviors/hidden_star.inc.c +++ b/src/game/behaviors/hidden_star.inc.c @@ -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); } } } diff --git a/src/game/behaviors/hoot.inc.c b/src/game/behaviors/hoot.inc.c index 0e60ff6bb..8285f86b6 100644 --- a/src/game/behaviors/hoot.inc.c +++ b/src/game/behaviors/hoot.inc.c @@ -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); } } diff --git a/src/game/behaviors/horizontal_grindel.inc.c b/src/game/behaviors/horizontal_grindel.inc.c index 838d5d758..e2f001de2 100644 --- a/src/game/behaviors/horizontal_grindel.inc.c +++ b/src/game/behaviors/horizontal_grindel.inc.c @@ -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) { diff --git a/src/game/behaviors/jrb_ship.inc.c b/src/game/behaviors/jrb_ship.inc.c index 5c84b1b96..9500272dc 100644 --- a/src/game/behaviors/jrb_ship.inc.c +++ b/src/game/behaviors/jrb_ship.inc.c @@ -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); } } diff --git a/src/game/behaviors/jumping_box.inc.c b/src/game/behaviors/jumping_box.inc.c index cee7b6fd6..4490b3b74 100644 --- a/src/game/behaviors/jumping_box.inc.c +++ b/src/game/behaviors/jumping_box.inc.c @@ -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) { diff --git a/src/game/behaviors/kickable_board.inc.c b/src/game/behaviors/kickable_board.inc.c index 9ab23b777..c9a1812e0 100644 --- a/src/game/behaviors/kickable_board.inc.c +++ b/src/game/behaviors/kickable_board.inc.c @@ -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) { diff --git a/src/game/behaviors/king_bobomb.inc.c b/src/game/behaviors/king_bobomb.inc.c index d3074d062..80945aca1 100644 --- a/src/game/behaviors/king_bobomb.inc.c +++ b/src/game/behaviors/king_bobomb.inc.c @@ -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); } } diff --git a/src/game/behaviors/klepto.inc.c b/src/game/behaviors/klepto.inc.c index b99306799..27161e5ba 100644 --- a/src/game/behaviors/klepto.inc.c +++ b/src/game/behaviors/klepto.inc.c @@ -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); } } diff --git a/src/game/behaviors/koopa.inc.c b/src/game/behaviors/koopa.inc.c index e7d79b8cc..5b67aeece 100644 --- a/src/game/behaviors/koopa.inc.c +++ b/src/game/behaviors/koopa.inc.c @@ -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); } } diff --git a/src/game/behaviors/lll_floating_wood_piece.inc.c b/src/game/behaviors/lll_floating_wood_piece.inc.c index 95aa742ed..f80abe1aa 100644 --- a/src/game/behaviors/lll_floating_wood_piece.inc.c +++ b/src/game/behaviors/lll_floating_wood_piece.inc.c @@ -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) diff --git a/src/game/behaviors/lll_hexagonal_ring.inc.c b/src/game/behaviors/lll_hexagonal_ring.inc.c index f81abf4ba..4e2d3b968 100644 --- a/src/game/behaviors/lll_hexagonal_ring.inc.c +++ b/src/game/behaviors/lll_hexagonal_ring.inc.c @@ -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; diff --git a/src/game/behaviors/lll_octagonal_rotating_mesh.inc.c b/src/game/behaviors/lll_octagonal_rotating_mesh.inc.c index 58afca1d9..2c64ef4ea 100644 --- a/src/game/behaviors/lll_octagonal_rotating_mesh.inc.c +++ b/src/game/behaviors/lll_octagonal_rotating_mesh.inc.c @@ -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; diff --git a/src/game/behaviors/lll_rotating_hex_flame.inc.c b/src/game/behaviors/lll_rotating_hex_flame.inc.c index 41c103a85..a99ba269f 100644 --- a/src/game/behaviors/lll_rotating_hex_flame.inc.c +++ b/src/game/behaviors/lll_rotating_hex_flame.inc.c @@ -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) diff --git a/src/game/behaviors/lll_sinking_rectangle.inc.c b/src/game/behaviors/lll_sinking_rectangle.inc.c index 3c3f38a1c..ea7ceea6e 100644 --- a/src/game/behaviors/lll_sinking_rectangle.inc.c +++ b/src/game/behaviors/lll_sinking_rectangle.inc.c @@ -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; diff --git a/src/game/behaviors/lll_sinking_rock_block.inc.c b/src/game/behaviors/lll_sinking_rock_block.inc.c index a207c8dda..eacc1461c 100644 --- a/src/game/behaviors/lll_sinking_rock_block.inc.c +++ b/src/game/behaviors/lll_sinking_rock_block.inc.c @@ -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; diff --git a/src/game/behaviors/manta_ray.inc.c b/src/game/behaviors/manta_ray.inc.c index 1cfbb44ea..3cf3a6675 100644 --- a/src/game/behaviors/manta_ray.inc.c +++ b/src/game/behaviors/manta_ray.inc.c @@ -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); } } diff --git a/src/game/behaviors/metal_box.inc.c b/src/game/behaviors/metal_box.inc.c index 48891454a..ddc24ce85 100644 --- a/src/game/behaviors/metal_box.inc.c +++ b/src/game/behaviors/metal_box.inc.c @@ -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); diff --git a/src/game/behaviors/mips.inc.c b/src/game/behaviors/mips.inc.c index 451d1c8b7..24fcb578c 100644 --- a/src/game/behaviors/mips.inc.c +++ b/src/game/behaviors/mips.inc.c @@ -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; } diff --git a/src/game/behaviors/moneybag.inc.c b/src/game/behaviors/moneybag.inc.c index fa2d9b4f1..3082c1550 100644 --- a/src/game/behaviors/moneybag.inc.c +++ b/src/game/behaviors/moneybag.inc.c @@ -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) { diff --git a/src/game/behaviors/monty_mole.inc.c b/src/game/behaviors/monty_mole.inc.c index dfe821888..f7821d558 100644 --- a/src/game/behaviors/monty_mole.inc.c +++ b/src/game/behaviors/monty_mole.inc.c @@ -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); } } diff --git a/src/game/behaviors/mr_blizzard.inc.c b/src/game/behaviors/mr_blizzard.inc.c index a37f78da8..a38c3c2e7 100644 --- a/src/game/behaviors/mr_blizzard.inc.c +++ b/src/game/behaviors/mr_blizzard.inc.c @@ -49,14 +49,14 @@ void bhv_mr_blizzard_init(void) { o->oMrBlizzardTargetMoveYaw = o->oMoveAngleYaw; sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); - sync_object_init_field(o, &o->oMrBlizzardTargetMoveYaw); - sync_object_init_field(o, &o->oMrBlizzardTimer); - sync_object_init_field(o, &o->oMrBlizzardDistFromHome); - sync_object_init_field(o, &o->oForwardVel); - sync_object_init_field(o, &o->oVelY); - 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->oMrBlizzardTargetMoveYaw); + sync_object_init_field(o, o->oMrBlizzardTimer); + sync_object_init_field(o, o->oMrBlizzardDistFromHome); + sync_object_init_field(o, o->oForwardVel); + sync_object_init_field(o, o->oVelY); + sync_object_init_field(o, o->oPosX); + sync_object_init_field(o, o->oPosY); + sync_object_init_field(o, o->oPosZ); } else { if (o->oBehParams2ndByte != MR_BLIZZARD_STYPE_NO_CAP) { // Cap wearing Mr. Blizzard from SL. @@ -70,10 +70,10 @@ void bhv_mr_blizzard_init(void) { o->oMrBlizzardHeldObj = NULL; sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); - sync_object_init_field(o, &o->oMrBlizzardTargetMoveYaw); - sync_object_init_field(o, &o->oAction); - sync_object_init_field(o, &o->oMrBlizzardGraphYOffset); - sync_object_init_field(o, &o->oMoveAngleYaw); + sync_object_init_field(o, o->oMrBlizzardTargetMoveYaw); + sync_object_init_field(o, o->oAction); + sync_object_init_field(o, o->oMrBlizzardGraphYOffset); + sync_object_init_field(o, o->oMoveAngleYaw); } } diff --git a/src/game/behaviors/mushroom_1up.inc.c b/src/game/behaviors/mushroom_1up.inc.c index cab0c2852..1488cbd18 100644 --- a/src/game/behaviors/mushroom_1up.inc.c +++ b/src/game/behaviors/mushroom_1up.inc.c @@ -231,18 +231,18 @@ void bhv_1up_jump_on_approach_loop(void) { void bhv_1up_hidden_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { 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->oAction); - sync_object_init_field(o, &o->oForwardVel); - sync_object_init_field(o, &o->o1UpHiddenUnkF4); - sync_object_init_field(o, &o->oIntangibleTimer); - sync_object_init_field_with_size(o, &o->activeFlags, 16); - 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->oForwardVel); + sync_object_init_field(o, o->o1UpHiddenUnkF4); + sync_object_init_field(o, o->oIntangibleTimer); + sync_object_init_field(o, o->activeFlags); + sync_object_init_field(o, o->header.gfx.node.flags); } s16 sp26; @@ -294,7 +294,7 @@ void bhv_1up_hidden_loop(void) { void bhv_1up_hidden_trigger_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); - sync_object_init_field_with_size(o, &o->activeFlags, 16); + sync_object_init_field(o, o->activeFlags); } struct Object* player = nearest_player_to_object(o); @@ -312,15 +312,15 @@ void bhv_1up_hidden_trigger_loop(void) { void bhv_1up_hidden_in_pole_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); - 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->oForwardVel); - sync_object_init_field(o, &o->o1UpHiddenUnkF4); - sync_object_init_field(o, &o->oIntangibleTimer); - sync_object_init_field_with_size(o, &o->activeFlags, 16); - sync_object_init_field_with_size(o, &o->header.gfx.node.flags, 16); + 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->oForwardVel); + sync_object_init_field(o, o->o1UpHiddenUnkF4); + sync_object_init_field(o, o->oIntangibleTimer); + sync_object_init_field(o, o->activeFlags); + sync_object_init_field(o, o->header.gfx.node.flags); } UNUSED s16 sp26; @@ -365,7 +365,7 @@ void bhv_1up_hidden_in_pole_loop(void) { void bhv_1up_hidden_in_pole_trigger_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); - sync_object_init_field_with_size(o, &o->activeFlags, 16); + sync_object_init_field(o, o->activeFlags); } struct Object* player = nearest_player_to_object(o); @@ -383,7 +383,7 @@ void bhv_1up_hidden_in_pole_trigger_loop(void) { void bhv_1up_hidden_in_pole_spawner_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); - sync_object_init_field_with_size(o, &o->activeFlags, 16); + sync_object_init_field(o, o->activeFlags); } if (gNetworkAreaSyncing || !gNetworkAreaLoaded) { diff --git a/src/game/behaviors/piranha_plant.inc.c b/src/game/behaviors/piranha_plant.inc.c index 826802f9c..628bfcb01 100644 --- a/src/game/behaviors/piranha_plant.inc.c +++ b/src/game/behaviors/piranha_plant.inc.c @@ -363,13 +363,13 @@ void (*TablePiranhaPlantActions[])(void) = { void bhv_piranha_plant_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, 2000.0f); - sync_object_init_field(o, &o->oAction); - sync_object_init_field(o, &o->oInteractStatus); - sync_object_init_field(o, &o->oInteractType); - sync_object_init_field(o, &o->oMoveAngleYaw); - sync_object_init_field(o, &o->oPiranhaPlantScale); - sync_object_init_field(o, &o->oPiranhaPlantSleepMusicState); - sync_object_init_field(o, &o->oTimer); + sync_object_init_field(o, o->oAction); + sync_object_init_field(o, o->oInteractStatus); + sync_object_init_field(o, o->oInteractType); + sync_object_init_field(o, o->oMoveAngleYaw); + sync_object_init_field(o, o->oPiranhaPlantScale); + sync_object_init_field(o, o->oPiranhaPlantSleepMusicState); + sync_object_init_field(o, o->oTimer); } CUR_OBJ_CALL_ACTION_FUNCTION(TablePiranhaPlantActions); diff --git a/src/game/behaviors/platform_on_track.inc.c b/src/game/behaviors/platform_on_track.inc.c index 3816cf2e1..6aa588fcc 100644 --- a/src/game/behaviors/platform_on_track.inc.c +++ b/src/game/behaviors/platform_on_track.inc.c @@ -76,14 +76,14 @@ void bhv_platform_on_track_init(void) { so->on_sent_pre = bhv_platform_track_on_sent_pre; so->on_received_post = bhv_platform_track_on_received_post; so->maxUpdateRate = 5.0f; - sync_object_init_field(o, &platformTrackPathedPrevWaypoint); - sync_object_init_field(o, &o->oPlatformOnTrackBaseBallIndex); - sync_object_init_field(o, &o->oPlatformOnTrackDistMovedSinceLastBall); - sync_object_init_field(o, &o->oPlatformOnTrackSkiLiftRollVel); - sync_object_init_field(o, &o->oPlatformOnTrackPrevWaypointFlags); - sync_object_init_field(o, &o->oPlatformOnTrackPitch); - sync_object_init_field(o, &o->oPlatformOnTrackYaw); - sync_object_init_field(o, &o->oPlatformOnTrackOffsetY); + sync_object_init_field(o, platformTrackPathedPrevWaypoint); + sync_object_init_field(o, o->oPlatformOnTrackBaseBallIndex); + sync_object_init_field(o, o->oPlatformOnTrackDistMovedSinceLastBall); + sync_object_init_field(o, o->oPlatformOnTrackSkiLiftRollVel); + sync_object_init_field(o, o->oPlatformOnTrackPrevWaypointFlags); + sync_object_init_field(o, o->oPlatformOnTrackPitch); + sync_object_init_field(o, o->oPlatformOnTrackYaw); + sync_object_init_field(o, o->oPlatformOnTrackOffsetY); } } diff --git a/src/game/behaviors/pokey.inc.c b/src/game/behaviors/pokey.inc.c index 5eb0262af..17181df57 100644 --- a/src/game/behaviors/pokey.inc.c +++ b/src/game/behaviors/pokey.inc.c @@ -197,12 +197,12 @@ static void pokey_act_uninitialized(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->oPokeyAliveBodyPartFlags); - sync_object_init_field(o, &o->oPokeyNumAliveBodyParts); - sync_object_init_field(o, &o->oPokeyHeadWasKilled); - sync_object_init_field(o, &o->oPokeyTargetYaw); - sync_object_init_field(o, &o->oPokeyChangeTargetTimer); - sync_object_init_field(o, &o->oPokeyTurningAwayFromWall); + sync_object_init_field(o, o->oPokeyAliveBodyPartFlags); + sync_object_init_field(o, o->oPokeyNumAliveBodyParts); + sync_object_init_field(o, o->oPokeyHeadWasKilled); + sync_object_init_field(o, o->oPokeyTargetYaw); + sync_object_init_field(o, o->oPokeyChangeTargetTimer); + sync_object_init_field(o, o->oPokeyTurningAwayFromWall); so->on_received_pre = pokey_on_received_pre; so->on_received_post = pokey_on_received_post; } diff --git a/src/game/behaviors/purple_switch.inc.c b/src/game/behaviors/purple_switch.inc.c index 87235feff..b15150ca9 100644 --- a/src/game/behaviors/purple_switch.inc.c +++ b/src/game/behaviors/purple_switch.inc.c @@ -9,8 +9,8 @@ void bhv_purple_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->oTimer); + sync_object_init_field(o, o->oAction); + sync_object_init_field(o, o->oTimer); } u8 anyPlayerOnPlatform = FALSE; diff --git a/src/game/behaviors/pyramid_elevator.inc.c b/src/game/behaviors/pyramid_elevator.inc.c index 262580574..18a780d36 100644 --- a/src/game/behaviors/pyramid_elevator.inc.c +++ b/src/game/behaviors/pyramid_elevator.inc.c @@ -19,11 +19,11 @@ void bhv_pyramid_elevator_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->oPrevAction); - sync_object_init_field(o, &o->oAction); - sync_object_init_field(o, &o->oTimer); - sync_object_init_field(o, &o->oPosY); - sync_object_init_field(o, &o->oVelY); + 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->oPosY); + sync_object_init_field(o, o->oVelY); } } } diff --git a/src/game/behaviors/pyramid_top.inc.c b/src/game/behaviors/pyramid_top.inc.c index 2a4644473..805194425 100644 --- a/src/game/behaviors/pyramid_top.inc.c +++ b/src/game/behaviors/pyramid_top.inc.c @@ -91,10 +91,10 @@ void bhv_pyramid_top_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_with_size(o, &o->activeFlags, 16); - 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, o->oAction); + sync_object_init_field(o, o->oPrevAction); + sync_object_init_field(o, o->oTimer); } } diff --git a/src/game/behaviors/racing_penguin.inc.c b/src/game/behaviors/racing_penguin.inc.c index 28137e7b5..44df93047 100644 --- a/src/game/behaviors/racing_penguin.inc.c +++ b/src/game/behaviors/racing_penguin.inc.c @@ -56,27 +56,27 @@ void bhv_racing_penguin_init(void) { so->on_received_post = bhv_racing_penguin_the_quick_on_received_post; so->on_sent_pre = bhv_racing_penguin_the_quick_on_sent_pre; so->override_ownership = bhv_racing_penguin_the_quick_override_ownership; - sync_object_init_field(o, &penguinPathedStartWaypoint); - sync_object_init_field(o, &penguinPathedPrevWaypoint); - 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->oForwardVel); - sync_object_init_field(o, &o->oMoveAngleYaw); - sync_object_init_field(o, &o->oRacingPenguinWeightedNewTargetSpeed); - sync_object_init_field(o, &o->oRacingPenguinMarioWon); - sync_object_init_field(o, &o->oRacingPenguinReachedBottom); - sync_object_init_field(o, &o->areaTimer); + sync_object_init_field(o, penguinPathedStartWaypoint); + sync_object_init_field(o, penguinPathedPrevWaypoint); + 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->oForwardVel); + sync_object_init_field(o, o->oMoveAngleYaw); + sync_object_init_field(o, o->oRacingPenguinWeightedNewTargetSpeed); + sync_object_init_field(o, o->oRacingPenguinMarioWon); + sync_object_init_field(o, o->oRacingPenguinReachedBottom); + sync_object_init_field(o, o->areaTimer); } o->areaTimerType = AREA_TIMER_TYPE_MAXIMUM; o->areaTimer = 0; diff --git a/src/game/behaviors/rolling_log.inc.c b/src/game/behaviors/rolling_log.inc.c index 4ee2d9b12..3cc6c9dfa 100644 --- a/src/game/behaviors/rolling_log.inc.c +++ b/src/game/behaviors/rolling_log.inc.c @@ -10,13 +10,13 @@ static void bhv_rolling_log_network_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->oAngleVelPitch); - sync_object_init_field(o, &o->oFaceAnglePitch); - sync_object_init_field(o, &o->oMoveAnglePitch); - sync_object_init_field(o, &o->oPitouneUnkF4); - sync_object_init_field(o, &o->oPitouneUnkF8); - sync_object_init_field(o, &o->oPitouneUnkFC); - sync_object_init_field(o, &o->oForwardVel); + sync_object_init_field(o, o->oAngleVelPitch); + sync_object_init_field(o, o->oFaceAnglePitch); + sync_object_init_field(o, o->oMoveAnglePitch); + sync_object_init_field(o, o->oPitouneUnkF4); + sync_object_init_field(o, o->oPitouneUnkF8); + sync_object_init_field(o, o->oPitouneUnkFC); + sync_object_init_field(o, o->oForwardVel); } } } @@ -149,9 +149,9 @@ void bhv_volcano_trap_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { struct SyncObject *so = sync_object_init(o, 2000.0f); if (so) { - sync_object_init_field(o, &o->oRollingLogUnkF4); - sync_object_init_field(o, &o->oAngleVelPitch); - sync_object_init_field(o, &o->oFaceAnglePitch); + sync_object_init_field(o, o->oRollingLogUnkF4); + sync_object_init_field(o, o->oAngleVelPitch); + sync_object_init_field(o, o->oFaceAnglePitch); } } diff --git a/src/game/behaviors/scuttlebug.inc.c b/src/game/behaviors/scuttlebug.inc.c index 0f96a6ac4..4082f05dd 100644 --- a/src/game/behaviors/scuttlebug.inc.c +++ b/src/game/behaviors/scuttlebug.inc.c @@ -28,13 +28,13 @@ void bhv_scuttlebug_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->oFlags); - sync_object_init_field(o, &o->oForwardVel); - 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->oInteractStatus); - sync_object_init_field(o, &o->oScuttlebugUnkF4); + sync_object_init_field(o, o->oFlags); + sync_object_init_field(o, o->oForwardVel); + 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->oInteractStatus); + sync_object_init_field(o, o->oScuttlebugUnkF4); } } @@ -141,10 +141,10 @@ void bhv_scuttlebug_spawn_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->oTimer); - sync_object_init_field(o, &o->oScuttlebugSpawnerUnkF4); - sync_object_init_field(o, &o->oScuttlebugSpawnerUnk88); + sync_object_init_field(o, o->oAction); + sync_object_init_field(o, o->oTimer); + sync_object_init_field(o, o->oScuttlebugSpawnerUnkF4); + sync_object_init_field(o, o->oScuttlebugSpawnerUnk88); } } diff --git a/src/game/behaviors/seesaw_platform.inc.c b/src/game/behaviors/seesaw_platform.inc.c index 85c807b56..c603bcf58 100644 --- a/src/game/behaviors/seesaw_platform.inc.c +++ b/src/game/behaviors/seesaw_platform.inc.c @@ -29,8 +29,8 @@ void bhv_seesaw_platform_init(void) { if (!sync_object_is_initialized(o->oSyncID)) { struct SyncObject *so = sync_object_init(o, 1000.0f); if (so) { - sync_object_init_field(o, &o->oSeesawPlatformPitchVel); - sync_object_init_field(o, &o->oFaceAnglePitch); + sync_object_init_field(o, o->oSeesawPlatformPitchVel); + sync_object_init_field(o, o->oFaceAnglePitch); } } } diff --git a/src/game/behaviors/skeeter.inc.c b/src/game/behaviors/skeeter.inc.c index 344794e31..9a5ecfe0b 100644 --- a/src/game/behaviors/skeeter.inc.c +++ b/src/game/behaviors/skeeter.inc.c @@ -143,14 +143,14 @@ static void skeeter_act_walk(void) { void bhv_skeeter_update(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, 4000.0f); - sync_object_init_field(o, &o->oSkeeterTargetAngle); - sync_object_init_field(o, &o->oSkeeterUnkF8); - sync_object_init_field(o, &o->oSkeeterUnkFC); - sync_object_init_field(o, &o->oSkeeterWaitTime); - sync_object_init_field(o, &o->oSkeeterUnk1AC); - sync_object_init_field(o, &o->oMoveAngleYaw); - sync_object_init_field(o, &o->oFaceAngleYaw); - sync_object_init_field(o, &o->oFlags); + sync_object_init_field(o, o->oSkeeterTargetAngle); + sync_object_init_field(o, o->oSkeeterUnkF8); + sync_object_init_field(o, o->oSkeeterUnkFC); + sync_object_init_field(o, o->oSkeeterWaitTime); + sync_object_init_field(o, o->oSkeeterUnk1AC); + sync_object_init_field(o, o->oMoveAngleYaw); + sync_object_init_field(o, o->oFaceAngleYaw); + sync_object_init_field(o, o->oFlags); } o->oDeathSound = SOUND_OBJ_SNUFIT_SKEETER_DEATH; diff --git a/src/game/behaviors/sl_snowman_wind.inc.c b/src/game/behaviors/sl_snowman_wind.inc.c index baa7bb9ea..a55c9b1fe 100644 --- a/src/game/behaviors/sl_snowman_wind.inc.c +++ b/src/game/behaviors/sl_snowman_wind.inc.c @@ -6,10 +6,10 @@ void bhv_sl_snowman_wind_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->oTimer); - sync_object_init_field(o, &o->oSubAction); + 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->oSubAction); } } diff --git a/src/game/behaviors/sl_walking_penguin.inc.c b/src/game/behaviors/sl_walking_penguin.inc.c index d23a030c1..6031381b7 100644 --- a/src/game/behaviors/sl_walking_penguin.inc.c +++ b/src/game/behaviors/sl_walking_penguin.inc.c @@ -40,13 +40,13 @@ void bhv_sl_walking_penguin_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->oTimer); - sync_object_init_field(o, &o->oAction); - sync_object_init_field(o, &o->oPrevAction); - sync_object_init_field(o, &o->oSLWalkingPenguinCurStep); - sync_object_init_field(o, &o->oSLWalkingPenguinCurStepTimer); - sync_object_init_field(o, &o->oSLWalkingPenguinWindCollisionXPos); - sync_object_init_field(o, &o->oSLWalkingPenguinWindCollisionZPos); + 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->oSLWalkingPenguinCurStep); + sync_object_init_field(o, o->oSLWalkingPenguinCurStepTimer); + sync_object_init_field(o, o->oSLWalkingPenguinWindCollisionXPos); + sync_object_init_field(o, o->oSLWalkingPenguinWindCollisionZPos); } } diff --git a/src/game/behaviors/sliding_platform_2.inc.c b/src/game/behaviors/sliding_platform_2.inc.c index b7d3a94f5..1569293e4 100644 --- a/src/game/behaviors/sliding_platform_2.inc.c +++ b/src/game/behaviors/sliding_platform_2.inc.c @@ -38,10 +38,10 @@ void bhv_sliding_plat_2_loop(void) { struct SyncObject* so = sync_object_init(o, 4000.0f); if (so) { so->minUpdateRate = 5.0f; - sync_object_init_field(o, &o->oBackAndForthPlatformDirection); - sync_object_init_field(o, &o->oBackAndForthPlatformPathLength); - sync_object_init_field(o, &o->oBackAndForthPlatformDistance); - sync_object_init_field(o, &o->oBackAndForthPlatformVel); + sync_object_init_field(o, o->oBackAndForthPlatformDirection); + sync_object_init_field(o, o->oBackAndForthPlatformPathLength); + sync_object_init_field(o, o->oBackAndForthPlatformDistance); + sync_object_init_field(o, o->oBackAndForthPlatformVel); } } diff --git a/src/game/behaviors/snow_mound.inc.c b/src/game/behaviors/snow_mound.inc.c index 20993d072..849e37adc 100644 --- a/src/game/behaviors/snow_mound.inc.c +++ b/src/game/behaviors/snow_mound.inc.c @@ -37,9 +37,9 @@ void bhv_snow_mound_spawn_loop(void) { struct SyncObject* so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); if (so) { so->override_ownership = bhv_snow_mound_spawn_override_ownership; - 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); + sync_object_init_field(o, o->oAction); + sync_object_init_field(o, o->oPrevAction); } } diff --git a/src/game/behaviors/snowman.inc.c b/src/game/behaviors/snowman.inc.c index cfea111ae..00eeef110 100644 --- a/src/game/behaviors/snowman.inc.c +++ b/src/game/behaviors/snowman.inc.c @@ -34,8 +34,8 @@ void bhv_snowmans_bottom_init(void) { spawn_object_abs_with_rot(o, 0, MODEL_NONE, bhvSnowmansBodyCheckpoint, -402, 461, -2898, 0, 0, 0); sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); - sync_object_init_field(o, &o->oAction); - sync_object_init_field(o, &o->oForwardVel); + sync_object_init_field(o, o->oAction); + sync_object_init_field(o, o->oForwardVel); } void set_rolling_sphere_hitbox(void) { @@ -198,7 +198,7 @@ void bhv_snowmans_head_init(void) { } sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); - sync_object_init_field(o, &o->oAction); + sync_object_init_field(o, o->oAction); } static u8 bhv_snowmans_head_action_0_continue_dialog(void) { diff --git a/src/game/behaviors/snufit.inc.c b/src/game/behaviors/snufit.inc.c index c18825bfe..f78a73186 100644 --- a/src/game/behaviors/snufit.inc.c +++ b/src/game/behaviors/snufit.inc.c @@ -134,16 +134,16 @@ void snufit_act_shoot(void) { void bhv_snufit_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, 4000.0f); - sync_object_init_field(o, &o->oSnufitBullets); - sync_object_init_field(o, &o->oSnufitRecoil); - sync_object_init_field(o, &o->oSnufitYOffset); - sync_object_init_field(o, &o->oSnufitZOffset); - sync_object_init_field(o, &o->oSnufitScale); - sync_object_init_field(o, &o->oSnufitBodyScale); - sync_object_init_field(o, &o->oMoveAnglePitch); - sync_object_init_field(o, &o->oFaceAnglePitch); - sync_object_init_field(o, &o->oGravity); - sync_object_init_field(o, &o->oDeathSound); + sync_object_init_field(o, o->oSnufitBullets); + sync_object_init_field(o, o->oSnufitRecoil); + sync_object_init_field(o, o->oSnufitYOffset); + sync_object_init_field(o, o->oSnufitZOffset); + sync_object_init_field(o, o->oSnufitScale); + sync_object_init_field(o, o->oSnufitBodyScale); + sync_object_init_field(o, o->oMoveAnglePitch); + sync_object_init_field(o, o->oFaceAnglePitch); + sync_object_init_field(o, o->oGravity); + sync_object_init_field(o, o->oDeathSound); } struct MarioState* marioState = nearest_mario_state_to_object(o); diff --git a/src/game/behaviors/sparkle_spawn_star.inc.c b/src/game/behaviors/sparkle_spawn_star.inc.c index ee36a360b..99a6b8f6a 100644 --- a/src/game/behaviors/sparkle_spawn_star.inc.c +++ b/src/game/behaviors/sparkle_spawn_star.inc.c @@ -84,9 +84,9 @@ void slow_star_rotation(void) { void bhv_spawned_star_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, 4000); - sync_object_init_field(o, &o->oBehParams); - sync_object_init_field(o, &o->oAction); - sync_object_init_field(o, &o->oStarSpawnExtCutsceneFlags); + sync_object_init_field(o, o->oBehParams); + sync_object_init_field(o, o->oAction); + sync_object_init_field(o, o->oStarSpawnExtCutsceneFlags); } if (o->oAction == 0) { diff --git a/src/game/behaviors/spawn_star.inc.c b/src/game/behaviors/spawn_star.inc.c index a14022a39..71783e743 100644 --- a/src/game/behaviors/spawn_star.inc.c +++ b/src/game/behaviors/spawn_star.inc.c @@ -108,9 +108,9 @@ void bhv_star_spawn_init(void) { void bhv_star_spawn_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, 4000); - sync_object_init_field(o, &o->oBehParams); - sync_object_init_field(o, &o->oAction); - sync_object_init_field(o, &o->oStarSpawnExtCutsceneFlags); + sync_object_init_field(o, o->oBehParams); + sync_object_init_field(o, o->oAction); + sync_object_init_field(o, o->oStarSpawnExtCutsceneFlags); } switch (o->oAction) { @@ -320,11 +320,11 @@ void bhv_hidden_red_coin_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->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); } } } diff --git a/src/game/behaviors/spindel.inc.c b/src/game/behaviors/spindel.inc.c index c77861ea1..7ee1cd609 100644 --- a/src/game/behaviors/spindel.inc.c +++ b/src/game/behaviors/spindel.inc.c @@ -6,10 +6,10 @@ void bhv_spindel_init(void) { o->oSpindelUnkF8 = 0; sync_object_init(o, 4000.0f); - sync_object_init_field(o, &o->oSpindelUnkF4); - sync_object_init_field(o, &o->oSpindelUnkF8); - sync_object_init_field(o, &o->oAngleVelPitch); - sync_object_init_field(o, &o->oMoveAnglePitch); + sync_object_init_field(o, o->oSpindelUnkF4); + sync_object_init_field(o, o->oSpindelUnkF8); + sync_object_init_field(o, o->oAngleVelPitch); + sync_object_init_field(o, o->oMoveAnglePitch); } void bhv_spindel_loop(void) { diff --git a/src/game/behaviors/spindrift.inc.c b/src/game/behaviors/spindrift.inc.c index 42a3fcd04..d1354761b 100644 --- a/src/game/behaviors/spindrift.inc.c +++ b/src/game/behaviors/spindrift.inc.c @@ -15,7 +15,7 @@ struct ObjectHitbox sSpindriftHitbox = { void bhv_spindrift_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, 4000.0f); - sync_object_init_field(o, &o->oFlags); + sync_object_init_field(o, o->oFlags); } struct Object* player = nearest_player_to_object(o); diff --git a/src/game/behaviors/spiny.inc.c b/src/game/behaviors/spiny.inc.c index a35a399a7..7b8559e03 100644 --- a/src/game/behaviors/spiny.inc.c +++ b/src/game/behaviors/spiny.inc.c @@ -241,15 +241,15 @@ void bhv_spiny_update(void) { so->on_sent_pre = bhv_spiny_on_sent_pre; so->override_ownership = bhv_spiny_override_ownership; - sync_object_init_field(o, &o->oGraphYOffset); - sync_object_init_field(o, &o->oFaceAngleYaw); - sync_object_init_field(o, &o->oSpinyTimeUntilTurn); - sync_object_init_field(o, &o->oSpinyTargetYaw); - sync_object_init_field(o, &o->oSpinyTurningAwayFromWall); - sync_object_init_field(o, &o->oMoveFlags); - sync_object_init_field(o, &o->oInteractType); - sync_object_init_field(o, &o->oFaceAnglePitch); - sync_object_init_field(o, &spinyAnimCache); + sync_object_init_field(o, o->oGraphYOffset); + sync_object_init_field(o, o->oFaceAngleYaw); + sync_object_init_field(o, o->oSpinyTimeUntilTurn); + sync_object_init_field(o, o->oSpinyTargetYaw); + sync_object_init_field(o, o->oSpinyTurningAwayFromWall); + sync_object_init_field(o, o->oMoveFlags); + sync_object_init_field(o, o->oInteractType); + sync_object_init_field(o, o->oFaceAnglePitch); + sync_object_init_field(o, spinyAnimCache); } diff --git a/src/game/behaviors/square_platform_cycle.inc.c b/src/game/behaviors/square_platform_cycle.inc.c index 9facd8e06..7af35bf7a 100644 --- a/src/game/behaviors/square_platform_cycle.inc.c +++ b/src/game/behaviors/square_platform_cycle.inc.c @@ -23,17 +23,17 @@ void bhv_squarish_path_parent_init(void) { square->oPosY = o->oPosY; square->oPosZ = o->oPosZ + offset; square->oAction = action; - sync_object_init_field(o, &square->oMoveAngleYaw); - sync_object_init_field(o, &square->oForwardVel); - sync_object_init_field(o, &square->oPosX); - sync_object_init_field(o, &square->oPosY); - sync_object_init_field(o, &square->oPosZ); - sync_object_init_field(o, &square->oVelX); - sync_object_init_field(o, &square->oVelY); - sync_object_init_field(o, &square->oVelZ); - sync_object_init_field(o, &square->oAction); - sync_object_init_field(o, &square->oPrevAction); - sync_object_init_field(o, &square->oTimer); + sync_object_init_field(o, square->oMoveAngleYaw); + sync_object_init_field(o, square->oForwardVel); + sync_object_init_field(o, square->oPosX); + sync_object_init_field(o, square->oPosY); + sync_object_init_field(o, square->oPosZ); + sync_object_init_field(o, square->oVelX); + sync_object_init_field(o, square->oVelY); + sync_object_init_field(o, square->oVelZ); + sync_object_init_field(o, square->oAction); + sync_object_init_field(o, square->oPrevAction); + sync_object_init_field(o, square->oTimer); } } diff --git a/src/game/behaviors/sushi.inc.c b/src/game/behaviors/sushi.inc.c index a6245c35f..af9990529 100644 --- a/src/game/behaviors/sushi.inc.c +++ b/src/game/behaviors/sushi.inc.c @@ -6,7 +6,7 @@ void bhv_sushi_shark_collision_loop(void) { void bhv_sushi_shark_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, 4000.0f); - sync_object_init_field(o, &o->oSushiSharkUnkF4); + sync_object_init_field(o, o->oSushiSharkUnkF4); } struct Object* player = nearest_player_to_object(o); diff --git a/src/game/behaviors/swing_platform.inc.c b/src/game/behaviors/swing_platform.inc.c index 2b3e311b5..83ba99df7 100644 --- a/src/game/behaviors/swing_platform.inc.c +++ b/src/game/behaviors/swing_platform.inc.c @@ -5,10 +5,10 @@ void bhv_swing_platform_init(void) { struct SyncObject* so = sync_object_init(o, 4000.0f); if (so) { so->minUpdateRate = 5.0f; - sync_object_init_field(o, &o->oSwingPlatformAngle); - sync_object_init_field(o, &o->oFaceAngleRoll); - sync_object_init_field(o, &o->oSwingPlatformSpeed); - sync_object_init_field(o, &o->oAngleVelRoll); + sync_object_init_field(o, o->oSwingPlatformAngle); + sync_object_init_field(o, o->oFaceAngleRoll); + sync_object_init_field(o, o->oSwingPlatformSpeed); + sync_object_init_field(o, o->oAngleVelRoll); } } diff --git a/src/game/behaviors/swoop.inc.c b/src/game/behaviors/swoop.inc.c index 2cebec928..fdaa6af7e 100644 --- a/src/game/behaviors/swoop.inc.c +++ b/src/game/behaviors/swoop.inc.c @@ -107,12 +107,12 @@ static void swoop_act_move(void) { void bhv_swoop_update(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, 4000.0f); - sync_object_init_field(o, &o->oFaceAngleRoll); - sync_object_init_field(o, &o->header.gfx.scale[0]); - sync_object_init_field(o, &o->oSwoopBonkCountdown); - sync_object_init_field(o, &o->oSwoopTargetPitch); - sync_object_init_field(o, &o->oSwoopTargetYaw); - sync_object_init_field(o, &o->oDeathSound); + sync_object_init_field(o, o->oFaceAngleRoll); + sync_object_init_field(o, o->header.gfx.scale[0]); + sync_object_init_field(o, o->oSwoopBonkCountdown); + sync_object_init_field(o, o->oSwoopTargetPitch); + sync_object_init_field(o, o->oSwoopTargetYaw); + sync_object_init_field(o, o->oDeathSound); } // No partial update (only appears in roomed levels) diff --git a/src/game/behaviors/thi_top.inc.c b/src/game/behaviors/thi_top.inc.c index b5e87b14b..e045ab830 100644 --- a/src/game/behaviors/thi_top.inc.c +++ b/src/game/behaviors/thi_top.inc.c @@ -19,10 +19,10 @@ void bhv_thi_huge_island_top_loop(void) { void bhv_thi_tiny_island_top_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_with_size(o, &o->header.gfx.node.flags, 16); + 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->header.gfx.node.flags); } struct MarioState* marioState = nearest_mario_state_to_object(o); diff --git a/src/game/behaviors/thwomp.inc.c b/src/game/behaviors/thwomp.inc.c index 51d711508..3c3101090 100644 --- a/src/game/behaviors/thwomp.inc.c +++ b/src/game/behaviors/thwomp.inc.c @@ -57,11 +57,11 @@ void (*sGrindelThwompActions[])(void) = { grindel_thwomp_act_0, grindel_thwomp_a void bhv_grindel_thwomp_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->oPosY); - sync_object_init_field(o, &o->oThwompRandomTimer); - sync_object_init_field(o, &o->oTimer); - 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->oThwompRandomTimer); + sync_object_init_field(o, o->oTimer); + sync_object_init_field(o, o->oVelY); } CUR_OBJ_CALL_ACTION_FUNCTION(sGrindelThwompActions); } diff --git a/src/game/behaviors/tower_platform.inc.c b/src/game/behaviors/tower_platform.inc.c index 3fa9f045c..e063d5de4 100644 --- a/src/game/behaviors/tower_platform.inc.c +++ b/src/game/behaviors/tower_platform.inc.c @@ -14,9 +14,9 @@ void bhv_wf_solid_tower_platform_loop(void) { void bhv_wf_elevator_tower_platform_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->oPosY); - sync_object_init_field(o, &o->oTimer); + sync_object_init_field(o, o->oAction); + sync_object_init_field(o, o->oPosY); + sync_object_init_field(o, o->oTimer); } switch (o->oAction) { diff --git a/src/game/behaviors/tox_box.inc.c b/src/game/behaviors/tox_box.inc.c index e0916f6a6..d6fb61c18 100644 --- a/src/game/behaviors/tox_box.inc.c +++ b/src/game/behaviors/tox_box.inc.c @@ -83,11 +83,11 @@ void bhv_tox_box_loop(void) { struct SyncObject* so = sync_object_init(o, 3000.0f); if (so) { so->maxUpdateRate = 10.0f; - sync_object_init_field(o, &o->oForwardVel); - sync_object_init_field(o, &o->oUnkC0); - sync_object_init_field(o, &o->oFaceAnglePitch); - sync_object_init_field(o, &o->oFaceAngleRoll); - sync_object_init_field(o, &o->oToxBoxMovementStep); + sync_object_init_field(o, o->oForwardVel); + sync_object_init_field(o, o->oUnkC0); + sync_object_init_field(o, o->oFaceAnglePitch); + sync_object_init_field(o, o->oFaceAngleRoll); + sync_object_init_field(o, o->oToxBoxMovementStep); } } CUR_OBJ_CALL_ACTION_FUNCTION(sToxBoxActions); diff --git a/src/game/behaviors/treasure_chest.inc.c b/src/game/behaviors/treasure_chest.inc.c index d1cafc6b4..5dff3770a 100644 --- a/src/game/behaviors/treasure_chest.inc.c +++ b/src/game/behaviors/treasure_chest.inc.c @@ -153,20 +153,20 @@ void bhv_treasure_chest_ship_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->oPrevAction); - sync_object_init_field(o, &o->oTimer); - sync_object_init_field(o, &o->oTreasureChestCurrentAnswer); - sync_object_init_field(o, &o->oTreasureChestIsLastInteractionIncorrect); - sync_object_init_field(o, &o->oTreasureChestIsAboveWater); - sync_object_init_field(o, &o->oTreasureChestSound); - sync_object_init_field(o, &o->oTreasureChestLastNetworkPlayerIndex); + 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->oTreasureChestCurrentAnswer); + sync_object_init_field(o, o->oTreasureChestIsLastInteractionIncorrect); + sync_object_init_field(o, o->oTreasureChestIsAboveWater); + sync_object_init_field(o, o->oTreasureChestSound); + sync_object_init_field(o, o->oTreasureChestLastNetworkPlayerIndex); for (s32 i = 0; i < 4; i++) { struct Object *chest = chests[i]; - sync_object_init_field(o, &chest->oAction); - sync_object_init_field(o, &chest->oPrevAction); - sync_object_init_field(o, &chest->oTimer); - sync_object_init_field(o, &chest->oIntangibleTimer); + sync_object_init_field(o, chest->oAction); + sync_object_init_field(o, chest->oPrevAction); + sync_object_init_field(o, chest->oTimer); + sync_object_init_field(o, chest->oIntangibleTimer); } } } @@ -223,20 +223,20 @@ void bhv_treasure_chest_jrb_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->oPrevAction); - sync_object_init_field(o, &o->oTimer); - sync_object_init_field(o, &o->oTreasureChestCurrentAnswer); - sync_object_init_field(o, &o->oTreasureChestIsLastInteractionIncorrect); - sync_object_init_field(o, &o->oTreasureChestIsAboveWater); - sync_object_init_field(o, &o->oTreasureChestSound); - sync_object_init_field(o, &o->oTreasureChestLastNetworkPlayerIndex); + 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->oTreasureChestCurrentAnswer); + sync_object_init_field(o, o->oTreasureChestIsLastInteractionIncorrect); + sync_object_init_field(o, o->oTreasureChestIsAboveWater); + sync_object_init_field(o, o->oTreasureChestSound); + sync_object_init_field(o, o->oTreasureChestLastNetworkPlayerIndex); for (s32 i = 0; i < 4; i++) { struct Object *chest = chests[i]; - sync_object_init_field(o, &chest->oAction); - sync_object_init_field(o, &chest->oPrevAction); - sync_object_init_field(o, &chest->oTimer); - sync_object_init_field(o, &chest->oIntangibleTimer); + sync_object_init_field(o, chest->oAction); + sync_object_init_field(o, chest->oPrevAction); + sync_object_init_field(o, chest->oTimer); + sync_object_init_field(o, chest->oIntangibleTimer); } } } @@ -291,20 +291,20 @@ void bhv_treasure_chest_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->oPrevAction); - sync_object_init_field(o, &o->oTimer); - sync_object_init_field(o, &o->oTreasureChestCurrentAnswer); - sync_object_init_field(o, &o->oTreasureChestIsLastInteractionIncorrect); - sync_object_init_field(o, &o->oTreasureChestIsAboveWater); - sync_object_init_field(o, &o->oTreasureChestSound); - sync_object_init_field(o, &o->oTreasureChestLastNetworkPlayerIndex); + 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->oTreasureChestCurrentAnswer); + sync_object_init_field(o, o->oTreasureChestIsLastInteractionIncorrect); + sync_object_init_field(o, o->oTreasureChestIsAboveWater); + sync_object_init_field(o, o->oTreasureChestSound); + sync_object_init_field(o, o->oTreasureChestLastNetworkPlayerIndex); for (s32 i = 0; i < 4; i++) { struct Object *chest = chests[i]; - sync_object_init_field(o, &chest->oAction); - sync_object_init_field(o, &chest->oPrevAction); - sync_object_init_field(o, &chest->oTimer); - sync_object_init_field(o, &chest->oIntangibleTimer); + sync_object_init_field(o, chest->oAction); + sync_object_init_field(o, chest->oPrevAction); + sync_object_init_field(o, chest->oTimer); + sync_object_init_field(o, chest->oIntangibleTimer); } } } diff --git a/src/game/behaviors/ttc_2d_rotator.inc.c b/src/game/behaviors/ttc_2d_rotator.inc.c index c4b04cc17..fa619de4d 100644 --- a/src/game/behaviors/ttc_2d_rotator.inc.c +++ b/src/game/behaviors/ttc_2d_rotator.inc.c @@ -45,12 +45,12 @@ void bhv_ttc_2d_rotator_init(void) { struct SyncObject* so = sync_object_init(o, 4000.0f); if (so) { so->minUpdateRate = 5.0f; - sync_object_init_field(o, &o->oTTC2DRotatorMinTimeUntilNextTurn); - sync_object_init_field(o, &o->oTTC2DRotatorTargetYaw); - sync_object_init_field(o, &o->oTTC2DRotatorIncrement); - sync_object_init_field(o, &o->oTTC2DRotatorRandomDirTimer); - sync_object_init_field(o, &o->oFaceAngleYaw); - sync_object_init_field(o, &o->oAngleVelYaw); + sync_object_init_field(o, o->oTTC2DRotatorMinTimeUntilNextTurn); + sync_object_init_field(o, o->oTTC2DRotatorTargetYaw); + sync_object_init_field(o, o->oTTC2DRotatorIncrement); + sync_object_init_field(o, o->oTTC2DRotatorRandomDirTimer); + sync_object_init_field(o, o->oFaceAngleYaw); + sync_object_init_field(o, o->oAngleVelYaw); } } diff --git a/src/game/behaviors/ttc_cog.inc.c b/src/game/behaviors/ttc_cog.inc.c index 28e8cea9c..8e40d1c60 100644 --- a/src/game/behaviors/ttc_cog.inc.c +++ b/src/game/behaviors/ttc_cog.inc.c @@ -33,10 +33,10 @@ void bhv_ttc_cog_init(void) { struct SyncObject* so = sync_object_init(o, 4000.0f); if (so) { so->minUpdateRate = 5.0f; - sync_object_init_field(o, &o->oTTCCogSpeed); - sync_object_init_field(o, &o->oTTCCogTargetVel); - sync_object_init_field(o, &o->oAngleVelYaw); - sync_object_init_field(o, &o->oFaceAngleYaw); + sync_object_init_field(o, o->oTTCCogSpeed); + sync_object_init_field(o, o->oTTCCogTargetVel); + sync_object_init_field(o, o->oAngleVelYaw); + sync_object_init_field(o, o->oFaceAngleYaw); } } diff --git a/src/game/behaviors/ttc_elevator.inc.c b/src/game/behaviors/ttc_elevator.inc.c index dae353564..622af0649 100644 --- a/src/game/behaviors/ttc_elevator.inc.c +++ b/src/game/behaviors/ttc_elevator.inc.c @@ -27,8 +27,8 @@ void bhv_ttc_elevator_init(void) { struct SyncObject* so = sync_object_init(o, 4000.0f); if (so) { so->minUpdateRate = 5.0f; - sync_object_init_field(o, &o->oTTCElevatorDir); - sync_object_init_field(o, &o->oTTCElevatorMoveTime); + sync_object_init_field(o, o->oTTCElevatorDir); + sync_object_init_field(o, o->oTTCElevatorMoveTime); } } diff --git a/src/game/behaviors/ttc_moving_bar.inc.c b/src/game/behaviors/ttc_moving_bar.inc.c index dbe28ecad..c6583ec23 100644 --- a/src/game/behaviors/ttc_moving_bar.inc.c +++ b/src/game/behaviors/ttc_moving_bar.inc.c @@ -37,11 +37,11 @@ void bhv_ttc_moving_bar_init(void) { struct SyncObject* so = sync_object_init(o, 4000.0f); if (so) { so->minUpdateRate = 5.0f; - sync_object_init_field(o, &o->oTTCMovingBarDelay); - sync_object_init_field(o, &o->oTTCMovingBarStoppedTimer); - sync_object_init_field(o, &o->oTTCMovingBarOffset); - sync_object_init_field(o, &o->oTTCMovingBarSpeed); - sync_object_init_field(o, &o->oTTCMovingBarStartOffset); + sync_object_init_field(o, o->oTTCMovingBarDelay); + sync_object_init_field(o, o->oTTCMovingBarStoppedTimer); + sync_object_init_field(o, o->oTTCMovingBarOffset); + sync_object_init_field(o, o->oTTCMovingBarSpeed); + sync_object_init_field(o, o->oTTCMovingBarStartOffset); } } diff --git a/src/game/behaviors/ttc_pendulum.inc.c b/src/game/behaviors/ttc_pendulum.inc.c index 1fd4e0edc..0f743ae03 100644 --- a/src/game/behaviors/ttc_pendulum.inc.c +++ b/src/game/behaviors/ttc_pendulum.inc.c @@ -28,12 +28,12 @@ void bhv_ttc_pendulum_init(void) { struct SyncObject* so = sync_object_init(o, 4000.0f); if (so) { so->minUpdateRate = 5.0f; - sync_object_init_field(o, &o->oTTCPendulumAccelDir); - sync_object_init_field(o, &o->oTTCPendulumAngle); - sync_object_init_field(o, &o->oTTCPendulumAngleVel); - sync_object_init_field(o, &o->oTTCPendulumAngleAccel); - sync_object_init_field(o, &o->oTTCPendulumDelay); - sync_object_init_field(o, &o->oTTCPendulumSoundTimer); + sync_object_init_field(o, o->oTTCPendulumAccelDir); + sync_object_init_field(o, o->oTTCPendulumAngle); + sync_object_init_field(o, o->oTTCPendulumAngleVel); + sync_object_init_field(o, o->oTTCPendulumAngleAccel); + sync_object_init_field(o, o->oTTCPendulumDelay); + sync_object_init_field(o, o->oTTCPendulumSoundTimer); } } diff --git a/src/game/behaviors/ttc_pit_block.inc.c b/src/game/behaviors/ttc_pit_block.inc.c index 62a902c9c..c0789e6c4 100644 --- a/src/game/behaviors/ttc_pit_block.inc.c +++ b/src/game/behaviors/ttc_pit_block.inc.c @@ -50,8 +50,8 @@ void bhv_ttc_pit_block_init(void) { struct SyncObject* so = sync_object_init(o, 4000.0f); if (so) { so->minUpdateRate = 5.0f; - sync_object_init_field(o, &o->oTTCPitBlockDir); - sync_object_init_field(o, &o->oTTCPitBlockWaitTime); + sync_object_init_field(o, o->oTTCPitBlockDir); + sync_object_init_field(o, o->oTTCPitBlockWaitTime); } } diff --git a/src/game/behaviors/ttc_rotating_solid.inc.c b/src/game/behaviors/ttc_rotating_solid.inc.c index 98673092f..f15a94a85 100644 --- a/src/game/behaviors/ttc_rotating_solid.inc.c +++ b/src/game/behaviors/ttc_rotating_solid.inc.c @@ -37,12 +37,12 @@ void bhv_ttc_rotating_solid_init(void) { struct SyncObject* so = sync_object_init(o, 4000.0f); if (so) { so->minUpdateRate = 5.0f; - sync_object_init_field(o, &o->oTTCRotatingSolidNumTurns); - sync_object_init_field(o, &o->oTTCRotatingSolidRotationDelay); - sync_object_init_field(o, &o->oTTCRotatingSolidVelY); - sync_object_init_field(o, &o->oTTCChangeDirTimer); - sync_object_init_field(o, &o->oAngleVelRoll); - sync_object_init_field(o, &o->oFaceAngleRoll); + sync_object_init_field(o, o->oTTCRotatingSolidNumTurns); + sync_object_init_field(o, o->oTTCRotatingSolidRotationDelay); + sync_object_init_field(o, o->oTTCRotatingSolidVelY); + sync_object_init_field(o, o->oTTCChangeDirTimer); + sync_object_init_field(o, o->oAngleVelRoll); + sync_object_init_field(o, o->oFaceAngleRoll); } } diff --git a/src/game/behaviors/ttc_spinner.inc.c b/src/game/behaviors/ttc_spinner.inc.c index 7840f0a21..70a90132a 100644 --- a/src/game/behaviors/ttc_spinner.inc.c +++ b/src/game/behaviors/ttc_spinner.inc.c @@ -21,10 +21,10 @@ void bhv_ttc_spinner_update(void) { struct SyncObject* so = sync_object_init(o, 4000.0f); if (so) { so->minUpdateRate = 5.0f; - sync_object_init_field(o, &o->oAngleVelPitch); - sync_object_init_field(o, &o->oFaceAnglePitch); - sync_object_init_field(o, &o->oTTCSpinnerDir); - sync_object_init_field(o, &o->oTTCChangeDirTimer); + sync_object_init_field(o, o->oAngleVelPitch); + sync_object_init_field(o, o->oFaceAnglePitch); + sync_object_init_field(o, o->oTTCSpinnerDir); + sync_object_init_field(o, o->oTTCChangeDirTimer); } } diff --git a/src/game/behaviors/ttc_treadmill.inc.c b/src/game/behaviors/ttc_treadmill.inc.c index e5fe34446..b504f53f7 100644 --- a/src/game/behaviors/ttc_treadmill.inc.c +++ b/src/game/behaviors/ttc_treadmill.inc.c @@ -37,9 +37,9 @@ void bhv_ttc_treadmill_init(void) { struct SyncObject* so = sync_object_init(o, 4000.0f); if (so) { so->minUpdateRate = 5.0f; - sync_object_init_field(o, &o->oTTCTreadmillSpeed); - sync_object_init_field(o, &o->oTTCTreadmillTargetSpeed); - sync_object_init_field(o, &o->oTTCTreadmillTimeUntilSwitch); + sync_object_init_field(o, o->oTTCTreadmillSpeed); + sync_object_init_field(o, o->oTTCTreadmillTargetSpeed); + sync_object_init_field(o, o->oTTCTreadmillTimeUntilSwitch); } } diff --git a/src/game/behaviors/tumbling_bridge.inc.c b/src/game/behaviors/tumbling_bridge.inc.c index 9c1dd40e6..b90368657 100644 --- a/src/game/behaviors/tumbling_bridge.inc.c +++ b/src/game/behaviors/tumbling_bridge.inc.c @@ -17,17 +17,17 @@ void bhv_tumbling_bridge_platform_loop(void) { if (isLLL && !sync_object_is_initialized(o->oSyncID)) { struct SyncObject* so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); if (so) { - sync_object_init_field_with_size(o, &o->activeFlags, 16); - 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->oFaceAnglePitch); - sync_object_init_field(o, &o->oFaceAngleYaw); - sync_object_init_field(o, &o->oFaceAngleRoll); + sync_object_init_field(o, o->activeFlags); + 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->oFaceAnglePitch); + sync_object_init_field(o, o->oFaceAngleYaw); + sync_object_init_field(o, o->oFaceAngleRoll); } } @@ -161,7 +161,7 @@ void bhv_tumbling_bridge_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->oIntangibleTimer); + sync_object_init_field(o, o->oIntangibleTimer); } } diff --git a/src/game/behaviors/tuxie.inc.c b/src/game/behaviors/tuxie.inc.c index d7df6d94f..56f2338f8 100644 --- a/src/game/behaviors/tuxie.inc.c +++ b/src/game/behaviors/tuxie.inc.c @@ -155,8 +155,8 @@ void (*sTuxiesMotherActions[])(void) = { tuxies_mother_act_0, tuxies_mother_act_ void bhv_tuxies_mother_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->oSubAction); + sync_object_init_field(o, o->oAction); + sync_object_init_field(o, o->oSubAction); } o->activeFlags |= ACTIVE_FLAG_UNK10; cur_obj_update_floor_and_walls(); diff --git a/src/game/behaviors/tweester.inc.c b/src/game/behaviors/tweester.inc.c index 854b0d43f..950d48bf6 100644 --- a/src/game/behaviors/tweester.inc.c +++ b/src/game/behaviors/tweester.inc.c @@ -141,11 +141,11 @@ void (*sTweesterActions[])(void) = { tweester_act_idle, tweester_act_chase, twee void bhv_tweester_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, 4000.0f); - sync_object_init_field(o, &o->oForwardVel); - sync_object_init_field(o, &o->oTweesterScaleTimer); - 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->oForwardVel); + sync_object_init_field(o, o->oTweesterScaleTimer); + 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]); } obj_set_hitbox(o, &sTweesterHitbox); diff --git a/src/game/behaviors/ukiki.inc.c b/src/game/behaviors/ukiki.inc.c index 18db835ef..94124d606 100644 --- a/src/game/behaviors/ukiki.inc.c +++ b/src/game/behaviors/ukiki.inc.c @@ -659,11 +659,11 @@ void bhv_ukiki_init(void) { } sync_object_init(o, 4000.0f); - sync_object_init_field(o, &o->oUkikiTauntCounter); - sync_object_init_field(o, &o->oUkikiChaseFleeRange); - sync_object_init_field(o, &o->oUkikiCageSpinTimer); - sync_object_init_field(o, &o->oIntangibleTimer); - sync_object_init_field_with_size(o, &o->globalPlayerIndex, 8); + sync_object_init_field(o, o->oUkikiTauntCounter); + sync_object_init_field(o, o->oUkikiChaseFleeRange); + sync_object_init_field(o, o->oUkikiCageSpinTimer); + sync_object_init_field(o, o->oIntangibleTimer); + sync_object_init_field(o, o->globalPlayerIndex); } /** diff --git a/src/game/behaviors/unagi.inc.c b/src/game/behaviors/unagi.inc.c index 4f8db9715..e925f5a98 100644 --- a/src/game/behaviors/unagi.inc.c +++ b/src/game/behaviors/unagi.inc.c @@ -31,21 +31,21 @@ void bhv_unagi_init(void) { o->oPathedPrevWaypoint = o->oPathedStartWaypoint; 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->oForwardVel); - sync_object_init_field(o, &o->oMoveAnglePitch); - 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->oSoundStateID); - sync_object_init_field(o, &o->oUnagiUnk110); - sync_object_init_field(o, &o->oUnagiUnk1AC); - sync_object_init_field(o, &o->oUnagiUnkF4); - sync_object_init_field(o, &o->oUnagiUnkF8); - sync_object_init_field(o, &o->oVelX); - sync_object_init_field(o, &o->oVelZ); + 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->oForwardVel); + sync_object_init_field(o, o->oMoveAnglePitch); + 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->oSoundStateID); + sync_object_init_field(o, o->oUnagiUnk110); + sync_object_init_field(o, o->oUnagiUnk1AC); + sync_object_init_field(o, o->oUnagiUnkF4); + sync_object_init_field(o, o->oUnagiUnkF8); + sync_object_init_field(o, o->oVelX); + sync_object_init_field(o, o->oVelZ); } void unagi_act_0(void) { diff --git a/src/game/behaviors/water_bomb.inc.c b/src/game/behaviors/water_bomb.inc.c index fe6c0488e..18931143f 100644 --- a/src/game/behaviors/water_bomb.inc.c +++ b/src/game/behaviors/water_bomb.inc.c @@ -34,8 +34,8 @@ void bhv_water_bomb_spawner_update(void) { if (so) { so->fullObjectSync = TRUE; so->maxUpdateRate = 5.0f; - sync_object_init_field(o, &o->oWaterBombSpawnerBombActive); - sync_object_init_field(o, &o->oWaterBombSpawnerTimeToSpawn); + sync_object_init_field(o, o->oWaterBombSpawnerBombActive); + sync_object_init_field(o, o->oWaterBombSpawnerTimeToSpawn); } } diff --git a/src/game/behaviors/water_pillar.inc.c b/src/game/behaviors/water_pillar.inc.c index aced8cb05..70d1bf897 100644 --- a/src/game/behaviors/water_pillar.inc.c +++ b/src/game/behaviors/water_pillar.inc.c @@ -69,10 +69,10 @@ void bhv_water_level_pillar_init(void) { struct SyncObject* so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); if (so) { so->ignore_if_true = bhv_water_level_pillar_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->oWaterLevelPillarDrained); + 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->oWaterLevelPillarDrained); } } diff --git a/src/game/behaviors/water_ring.inc.c b/src/game/behaviors/water_ring.inc.c index 9e9a33680..07e69e8cb 100644 --- a/src/game/behaviors/water_ring.inc.c +++ b/src/game/behaviors/water_ring.inc.c @@ -186,10 +186,10 @@ void water_ring_spawner_act_inactive(void) { void bhv_jet_stream_ring_spawner_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); - sync_object_init_field(o, &o->oWaterRingSpawnerRingsCollected); - 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->oWaterRingSpawnerRingsCollected); + sync_object_init_field(o, o->oAction); + sync_object_init_field(o, o->oPrevAction); + sync_object_init_field(o, o->oTimer); } switch (o->oAction) { diff --git a/src/game/behaviors/wdw_water_level.inc.c b/src/game/behaviors/wdw_water_level.inc.c index d3dd7c2f5..95e292afa 100644 --- a/src/game/behaviors/wdw_water_level.inc.c +++ b/src/game/behaviors/wdw_water_level.inc.c @@ -18,7 +18,7 @@ void bhv_init_changing_water_level_loop(void) { struct SyncObject* so = sync_object_init(o, SYNC_DISTANCE_ONLY_EVENTS); if (so != NULL) { so->on_received_post = bhv_init_changing_water_level_on_received_post; - sync_object_init_field(o, &sWaterDiamondPicked); + sync_object_init_field(o, sWaterDiamondPicked); } } diff --git a/src/game/behaviors/whomp.inc.c b/src/game/behaviors/whomp.inc.c index 3c8f89790..ba00e33a2 100644 --- a/src/game/behaviors/whomp.inc.c +++ b/src/game/behaviors/whomp.inc.c @@ -276,11 +276,11 @@ void (*sWhompActions[])(void) = { void bhv_whomp_loop(void) { if (!sync_object_is_initialized(o->oSyncID)) { sync_object_init(o, 4000.0f); - sync_object_init_field(o, &o->oAngleVelPitch); - sync_object_init_field(o, &o->oFaceAnglePitch); - sync_object_init_field(o, &o->oForwardVel); - sync_object_init_field(o, &o->oHealth); - sync_object_init_field(o, &o->oFaceAnglePitch); + sync_object_init_field(o, o->oAngleVelPitch); + sync_object_init_field(o, o->oFaceAnglePitch); + sync_object_init_field(o, o->oForwardVel); + sync_object_init_field(o, o->oHealth); + sync_object_init_field(o, o->oFaceAnglePitch); } cur_obj_update_floor_and_walls(); diff --git a/src/game/behaviors/wiggler.inc.c b/src/game/behaviors/wiggler.inc.c index 59a4ac9b1..3a60b91ac 100644 --- a/src/game/behaviors/wiggler.inc.c +++ b/src/game/behaviors/wiggler.inc.c @@ -468,18 +468,18 @@ void bhv_wiggler_update(void) { so->ignore_if_true = bhv_wiggler_ignore_if_true; so->on_received_pre = bhv_wiggler_on_received_pre; so->on_received_post = bhv_wiggler_on_received_post; - sync_object_init_field(o, &o->oFaceAnglePitch); - sync_object_init_field(o, &o->oWigglerFallThroughFloorsHeight); - sync_object_init_field(o, &o->oWigglerWalkAnimSpeed); - sync_object_init_field(o, &o->oWigglerSquishSpeed); - sync_object_init_field(o, &o->oWigglerTimeUntilRandomTurn); - sync_object_init_field(o, &o->oWigglerTargetYaw); - sync_object_init_field(o, &o->oWigglerWalkAwayFromWallTimer); - sync_object_init_field(o, &o->oHealth); - 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->oFaceAngleYaw); + sync_object_init_field(o, o->oFaceAnglePitch); + sync_object_init_field(o, o->oWigglerFallThroughFloorsHeight); + sync_object_init_field(o, o->oWigglerWalkAnimSpeed); + sync_object_init_field(o, o->oWigglerSquishSpeed); + sync_object_init_field(o, o->oWigglerTimeUntilRandomTurn); + sync_object_init_field(o, o->oWigglerTargetYaw); + sync_object_init_field(o, o->oWigglerWalkAwayFromWallTimer); + sync_object_init_field(o, o->oHealth); + 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->oFaceAngleYaw); } } diff --git a/src/game/behaviors/yoshi.inc.c b/src/game/behaviors/yoshi.inc.c index b385e4687..3bcf898c8 100644 --- a/src/game/behaviors/yoshi.inc.c +++ b/src/game/behaviors/yoshi.inc.c @@ -23,12 +23,12 @@ void bhv_yoshi_init(void) { } sync_object_init(o, 4000.0f); - sync_object_init_field(o, &o->oYoshiBlinkTimer); - sync_object_init_field(o, &o->oYoshiChosenHome); - sync_object_init_field(o, &o->oYoshiTargetYaw); - 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->oYoshiBlinkTimer); + sync_object_init_field(o, o->oYoshiChosenHome); + sync_object_init_field(o, o->oYoshiTargetYaw); + sync_object_init_field(o, o->oHomeX); + sync_object_init_field(o, o->oHomeY); + sync_object_init_field(o, o->oHomeZ); } void yoshi_walk_loop(void) { diff --git a/src/pc/lua/smlua_cobject.c b/src/pc/lua/smlua_cobject.c index 104c02074..83f3e1542 100644 --- a/src/pc/lua/smlua_cobject.c +++ b/src/pc/lua/smlua_cobject.c @@ -343,8 +343,7 @@ struct LuaObjectField* smlua_get_custom_field(lua_State* L, u32 lot, int keyInde lua_rawget(L, -2); u32 lvt = smlua_to_integer(L, -1); lua_pop(L, 1); - bool validLvt = (lvt == LVT_U32 || lvt == LVT_S32 || lvt == LVT_F32); - if (!gSmLuaConvertSuccess || !validLvt) { + if (!gSmLuaConvertSuccess || smlua_get_custom_field_type_name(lvt) == NULL) { lua_pop(L, 1); // pop value table lua_pop(L, 1); // pop _custom_fields LUA_STACK_CHECK_END(L); diff --git a/src/pc/lua/smlua_functions.c b/src/pc/lua/smlua_functions.c index 155fcb1a0..cdbd868c0 100644 --- a/src/pc/lua/smlua_functions.c +++ b/src/pc/lua/smlua_functions.c @@ -221,21 +221,32 @@ int smlua_func_network_init_object(lua_State* L) { struct LuaObjectField* data = smlua_get_object_field(LOT_OBJECT, fieldIdentifier); if (data == NULL) { data = smlua_get_custom_field(L, LOT_OBJECT, lua_gettop(L)); + if (data == NULL) { + LOG_LUA_LINE("Unknown field passed to network_init_object(): %s", fieldIdentifier); + lua_pop(L, 1); // pop value + continue; + } } - u8 lvtSize = 0; - if ((data->valueType == LVT_U32) || (data->valueType == LVT_S32) || (data->valueType == LVT_F32)) { lvtSize = 32; } - if ((data->valueType == LVT_U16) || (data->valueType == LVT_S16)) { lvtSize = 16; } - if ((data->valueType == LVT_U8) || (data->valueType == LVT_S8)) { lvtSize = 8; } - - if (data == NULL || lvtSize == 0) { - LOG_LUA_LINE("Invalid field passed to network_init_object(): %s", fieldIdentifier); - lua_pop(L, 1); // pop value - continue; + // These types are the only ones allowed for `network_init_object` + u8 lvtSizeBytes = 0; + switch (data->valueType) { + case LVT_U8: lvtSizeBytes = sizeof(u8); break; + case LVT_U16: lvtSizeBytes = sizeof(u16); break; + case LVT_U32: lvtSizeBytes = sizeof(u32); break; + case LVT_S8: lvtSizeBytes = sizeof(s8); break; + case LVT_S16: lvtSizeBytes = sizeof(s16); break; + case LVT_S32: lvtSizeBytes = sizeof(s32); break; + case LVT_F32: lvtSizeBytes = sizeof(f32); break; + default: { + LOG_LUA_LINE("Invalid field passed to network_init_object(): %s", fieldIdentifier); + lua_pop(L, 1); // pop value + continue; + } } u8* field = ((u8*)(intptr_t)obj) + data->valueOffset; - sync_object_init_field_with_size(obj, field, lvtSize); + sync_object_init_field_with_size(obj, field, lvtSizeBytes); lua_pop(L, 1); // pop value } diff --git a/src/pc/network/packets/packet_object.c b/src/pc/network/packets/packet_object.c index 7cdb6c460..f6f1b7bbe 100644 --- a/src/pc/network/packets/packet_object.c +++ b/src/pc/network/packets/packet_object.c @@ -220,7 +220,7 @@ static void packet_write_object_extra_fields(struct Packet* p, struct Object* o) // write the extra field for (u8 i = 0; i < so->extraFieldCount; i++) { SOFT_ASSERT(so->extraFields[i] != NULL); - packet_write(p, so->extraFields[i], so->extraFieldsSize[i] / 8); + packet_write(p, so->extraFields[i], so->extraFieldsSizeBytes[i]); } } @@ -240,7 +240,7 @@ static void packet_read_object_extra_fields(struct Packet* p, struct Object* o) // read the extra fields for (u8 i = 0; i < extraFieldsCount; i++) { SOFT_ASSERT(so->extraFields[i] != NULL); - packet_read(p, so->extraFields[i], so->extraFieldsSize[i] / 8); + packet_read(p, so->extraFields[i], so->extraFieldsSizeBytes[i]); } } diff --git a/src/pc/network/sync_object.c b/src/pc/network/sync_object.c index 74e0fd48b..25d6505f9 100644 --- a/src/pc/network/sync_object.c +++ b/src/pc/network/sync_object.c @@ -182,8 +182,8 @@ struct SyncObject* sync_object_init(struct Object *o, float maxSyncDistance) { so->extendedModelId = 0xFFFF; } so->randomSeed = (u16)(o->oSyncID * 7951); - memset(so->extraFields, 0, sizeof(void*) * MAX_SYNC_OBJECT_FIELDS); - memset(so->extraFieldsSize, 0, sizeof(u8) * MAX_SYNC_OBJECT_FIELDS); + memset(so->extraFields, 0, sizeof(so->extraFields)); + memset(so->extraFieldsSizeBytes, 0, sizeof(so->extraFieldsSizeBytes)); so->lastReliablePacket.error = true; o->coopFlags |= COOP_OBJ_FLAG_INITIALIZED; @@ -191,10 +191,12 @@ struct SyncObject* sync_object_init(struct Object *o, float maxSyncDistance) { return so; } -void sync_object_init_field(struct Object *o, void* field) { +void sync_object_init_field_with_size(struct Object *o, void *field, u8 sizeBytes) { if (o->coopFlags & COOP_OBJ_FLAG_NON_SYNC) { return; } if (o->oSyncID == 0) { return; } + SOFT_ASSERT(sizeBytes > 0); + // remember to synchronize this extra field struct SyncObject* so = sync_object_get(o->oSyncID); if (!so) { return; } @@ -205,26 +207,7 @@ void sync_object_init_field(struct Object *o, void* field) { return; } so->extraFields[index] = field; - so->extraFieldsSize[index] = 32; -} - -void sync_object_init_field_with_size(struct Object *o, void* field, u8 size) { - if (o->coopFlags & COOP_OBJ_FLAG_NON_SYNC) { return; } - if (o->oSyncID == 0) { return; } - - SOFT_ASSERT(size == 8 || size == 16 || size == 32 || size == 64); - - // remember to synchronize this extra field - struct SyncObject* so = sync_object_get(o->oSyncID); - if (!so) { return; } - u32 index = so->extraFieldCount++; - if (so->extraFieldCount >= MAX_SYNC_OBJECT_FIELDS) { - so->extraFieldCount = MAX_SYNC_OBJECT_FIELDS - 1; - LOG_ERROR("Sync Object %u tried to set too many extra fields!", o->oSyncID); - return; - } - so->extraFields[index] = field; - so->extraFieldsSize[index] = size; + so->extraFieldsSizeBytes[index] = sizeBytes; } ///////////// diff --git a/src/pc/network/sync_object.h b/src/pc/network/sync_object.h index 203aa9da6..203f62134 100644 --- a/src/pc/network/sync_object.h +++ b/src/pc/network/sync_object.h @@ -30,7 +30,7 @@ struct SyncObject { void (*override_ownership)(u8* shouldOverride, u8* shouldOwn); void (*on_forget)(void); void* extraFields[MAX_SYNC_OBJECT_FIELDS]; - u8 extraFieldsSize[MAX_SYNC_OBJECT_FIELDS]; + u8 extraFieldsSizeBytes[MAX_SYNC_OBJECT_FIELDS]; bool rememberLastReliablePacket; bool lastReliablePacketIsStale; u16 extendedModelId; @@ -43,14 +43,17 @@ struct SyncObject { //////////// // system // //////////// + void sync_objects_init_system(void); void sync_objects_update(void); void sync_objects_clear(void); void sync_object_forget(u32 syncId); void sync_object_forget_last_reliable_packet(u32 syncId); struct SyncObject* sync_object_init(struct Object *o, float maxSyncDistance); -void sync_object_init_field(struct Object *o, void* field); -void sync_object_init_field_with_size(struct Object *o, void* field, u8 size); +void sync_object_init_field_with_size(struct Object *o, void *field, u8 sizeBytes); + +#define sync_object_init_field(o, field) \ + sync_object_init_field_with_size(o, &field, sizeof(field)) ///////////// // getters // From 3b53952767802d390922d5a2a216d78c8cef76e6 Mon Sep 17 00:00:00 2001 From: PeachyPeach <72323920+PeachyPeachSM64@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:38:24 +0100 Subject: [PATCH 14/20] DJUI Text improvements and bug fixes (#1131) - Drastically improve and optimize display list usage for text - Add text alignment with and without interpolation, and color codes, new lines and tabs are now handled properly - Restored alpha color code (`#RGBA` or `#RRGGBBAA`) for `djui_print_text` functions (regular DJUI text allows alpha color codes, but ignores the alpha component) - Add constants for common text alignment and rotation pivot values - Fix interpolation issues with all `djui_hud` elements - A few autogen fixes (missing `number` type for constants, missing return values for some functions) - Fix recolorable hud font offsets on `e`, `i` and `o` letters --- autogen/convert_constants.py | 2 + autogen/convert_functions.py | 2 +- autogen/lua_definitions/constants.lua | 54 +- autogen/lua_definitions/functions.lua | 27 +- autogen/lua_definitions/structs.lua | 8 - docs/lua/constants.md | 13 + docs/lua/functions-3.md | 89 ++- docs/lua/functions-4.md | 4 +- docs/lua/functions-5.md | 7 +- docs/lua/functions-6.md | 2 +- docs/lua/functions.md | 3 + docs/lua/structs.md | 16 - src/pc/crash_handler.c | 3 + src/pc/discord/discord_activity.c | 8 +- src/pc/djui/djui.c | 3 +- src/pc/djui/djui_font.c | 62 +- src/pc/djui/djui_font.h | 6 +- src/pc/djui/djui_gfx.c | 105 ++- src/pc/djui/djui_gfx.h | 10 +- src/pc/djui/djui_hud_utils.c | 704 +++++++++++------- src/pc/djui/djui_hud_utils.h | 40 +- src/pc/djui/djui_inputbox.c | 3 + src/pc/djui/djui_panel_mod_menu.c | 4 +- src/pc/djui/djui_text.c | 250 +++++-- src/pc/djui/djui_text.h | 5 + src/pc/djui/djui_unicode.c | 14 +- src/pc/djui/djui_unicode.h | 10 +- src/pc/lua/smlua_cobject_autogen.c | 14 +- src/pc/lua/smlua_cobject_autogen.h | 1 - src/pc/lua/smlua_constants_autogen.c | 13 + src/pc/lua/smlua_functions.c | 2 +- src/pc/lua/smlua_functions_autogen.c | 84 ++- src/pc/lua/smlua_hooks.c | 2 +- src/pc/mods/mod.c | 36 +- src/pc/mods/mod.h | 7 +- src/pc/mods/mods.c | 21 +- src/pc/network/packets/packet_download.c | 10 +- src/pc/network/packets/packet_mod_list.c | 7 +- src/pc/utils/misc.c | 15 - src/pc/utils/misc.h | 1 - .../custom_font_hud_recolor.rgba32.png | Bin 25778 -> 39601 bytes 41 files changed, 1133 insertions(+), 534 deletions(-) diff --git a/autogen/convert_constants.py b/autogen/convert_constants.py index 46b521710..409cd8427 100644 --- a/autogen/convert_constants.py +++ b/autogen/convert_constants.py @@ -535,6 +535,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]) diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py index 8846db56f..0ec22b12c 100644 --- a/autogen/convert_functions.py +++ b/autogen/convert_functions.py @@ -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) diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index fef72a27c..8e160c5d4 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -2760,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 @@ -2778,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` diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index f7b0aa63d..746a8f4c4 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -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() diff --git a/autogen/lua_definitions/structs.lua b/autogen/lua_definitions/structs.lua index c971ce2ff..5441e7424 100644 --- a/autogen/lua_definitions/structs.lua +++ b/autogen/lua_definitions/structs.lua @@ -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 diff --git a/docs/lua/constants.md b/docs/lua/constants.md index 8f49768aa..0c92edac9 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -1149,6 +1149,18 @@
## [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 | @@ -1167,6 +1179,7 @@ ### [enum DjuiFontType](#DjuiFontType) | Identifier | Value | | :--------- | :---- | +| FONT_LEGACY | -1 | | FONT_NORMAL | 0 | | FONT_MENU | 1 | | FONT_HUD | 2 | diff --git a/docs/lua/functions-3.md b/docs/lua/functions-3.md index 7b1704e71..8e4f8c230 100644 --- a/docs/lua/functions-3.md +++ b/docs/lua/functions-3.md @@ -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:](#) + +
+ +## [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:](#) + +
+ +## [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:](#) + +
+ +## [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:](#) diff --git a/docs/lua/functions-4.md b/docs/lua/functions-4.md index 6c8cb8c8b..4bd956272 100644 --- a/docs/lua/functions-4.md +++ b/docs/lua/functions-4.md @@ -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);` diff --git a/docs/lua/functions-5.md b/docs/lua/functions-5.md index 507dd7401..91636f399 100644 --- a/docs/lua/functions-5.md +++ b/docs/lua/functions-5.md @@ -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);` diff --git a/docs/lua/functions-6.md b/docs/lua/functions-6.md index afd96447e..41b220737 100644 --- a/docs/lua/functions-6.md +++ b/docs/lua/functions-6.md @@ -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);` diff --git a/docs/lua/functions.md b/docs/lua/functions.md index e2f94b46b..4076375df 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -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) diff --git a/docs/lua/structs.md b/docs/lua/structs.md index f189b286d..79c6d19ff 100644 --- a/docs/lua/structs.md +++ b/docs/lua/structs.md @@ -53,7 +53,6 @@ - [GraphNodeSwitchCase](#GraphNodeSwitchCase) - [GraphNodeTranslation](#GraphNodeTranslation) - [GraphNodeTranslationRotation](#GraphNodeTranslationRotation) -- [HudUtilsRotation](#HudUtilsRotation) - [InstantWarp](#InstantWarp) - [LakituState](#LakituState) - [LevelValues](#LevelValues) @@ -1427,21 +1426,6 @@
-## [HudUtilsRotation](#HudUtilsRotation) - -| Field | Type | Access | -| ----- | ---- | ------ | -| rotation | `number` | | -| rotationDiff | `number` | | -| prevPivotX | `number` | | -| prevPivotY | `number` | | -| pivotX | `number` | | -| pivotY | `number` | | - -[:arrow_up_small:](#) - -
- ## [InstantWarp](#InstantWarp) | Field | Type | Access | diff --git a/src/pc/crash_handler.c b/src/pc/crash_handler.c index 23301f0f2..470f4e2e6 100644 --- a/src/pc/crash_handler.c +++ b/src/pc/crash_handler.c @@ -235,6 +235,8 @@ static void crash_handler_produce_one_frame_callback(void) { // render the line f32 addX = 0; char* c = text->s; + + font->render_begin(); while (*c != '\0') { f32 charWidth = 0.4f; @@ -253,6 +255,7 @@ static void crash_handler_produce_one_frame_callback(void) { create_dl_translation_matrix(DJUI_MTX_NOPUSH, charWidth, 0, 0); c = djui_unicode_next_char(c); } + font->render_end(); // pop gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); diff --git a/src/pc/discord/discord_activity.c b/src/pc/discord/discord_activity.c index 510ac440e..36745701c 100644 --- a/src/pc/discord/discord_activity.c +++ b/src/pc/discord/discord_activity.c @@ -122,11 +122,9 @@ void discord_activity_update(void) { // HACK: give the detail population more space than the Discord details can fit so it gets truncated without cutting off the largest strings char details[512] = { 0 }; - discord_populate_details(details, 512); - char* detailsNoColor = str_remove_color_codes(details); - - snprintf(sCurActivity.details, 128, "%s", detailsNoColor); - free(detailsNoColor); + discord_populate_details(details, ARRAY_COUNT(details)); + djui_text_remove_colors(details); + snprintf(sCurActivity.details, 128, "%s", details); if (!app.activities) { LOG_INFO("no activities"); diff --git a/src/pc/djui/djui.c b/src/pc/djui/djui.c index 5c79ff3c6..3bd9fc8b1 100644 --- a/src/pc/djui/djui.c +++ b/src/pc/djui/djui.c @@ -168,7 +168,8 @@ void djui_lua_error_clear(void) { void djui_reset_hud_params(void) { djui_hud_set_resolution(RESOLUTION_DJUI); djui_hud_set_font(FONT_NORMAL); - djui_hud_set_rotation(0, 0, 0); + djui_hud_set_rotation(0, ROTATION_PIVOT_X_LEFT, ROTATION_PIVOT_Y_TOP); + djui_hud_set_text_alignment(TEXT_HALIGN_LEFT, TEXT_VALIGN_TOP); djui_hud_reset_color(); djui_hud_set_filter(FILTER_NEAREST); djui_hud_reset_viewport(); diff --git a/src/pc/djui/djui_font.c b/src/pc/djui/djui_font.c index f2d88cc88..4b649d784 100644 --- a/src/pc/djui/djui_font.c +++ b/src/pc/djui/djui_font.c @@ -7,7 +7,7 @@ // font 0 (built-in normal font) // /////////////////////////////////// -static void djui_font_normal_render_char(char* c) { +static void djui_font_normal_render_char(const char* c) { // replace undisplayable characters if (*c == ' ') { return; } @@ -18,16 +18,16 @@ static void djui_font_normal_render_char(char* c) { u32 tx = index % 64; u32 ty = index / 64; extern ALIGNED8 const Texture texture_font_jp[]; - djui_gfx_render_texture_tile(texture_font_jp, 512, 1024, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 8, ty * 16, 8, 16, false, true); + djui_gfx_render_texture_tile_font(texture_font_jp, 512, 1024, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 8, ty * 16, 8, 16); } else { u32 tx = index % 32; u32 ty = index / 32; extern ALIGNED8 const Texture texture_font_normal[]; - djui_gfx_render_texture_tile(texture_font_normal, 256, 128, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 8, ty * 16, 8, 16, false, true); + djui_gfx_render_texture_tile_font(texture_font_normal, 256, 128, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 8, ty * 16, 8, 16); } } -static f32 djui_font_normal_char_width(char* c) { +static f32 djui_font_normal_char_width(const char* c) { if (*c == ' ') { return configExCoopTheme ? 6 / 32.0f : 0.30f; } extern const f32 font_normal_widths[]; return djui_unicode_get_sprite_width(c, font_normal_widths, 32.0f); @@ -41,7 +41,9 @@ static const struct DjuiFont sDjuiFontNormal = { .yOffset = 0.0f, .defaultFontScale = 32.0f, .textBeginDisplayList = NULL, + .render_begin = djui_gfx_render_texture_tile_font_begin, .render_char = djui_font_normal_render_char, + .render_end = djui_gfx_render_texture_tile_font_end, .char_width = djui_font_normal_char_width, }; @@ -49,7 +51,7 @@ static const struct DjuiFont sDjuiFontNormal = { // font 1 (custom title font) // //////////////////////////////// -static void djui_font_title_render_char(char* c) { +static void djui_font_title_render_char(const char* c) { // replace undisplayable characters if (*c == ' ') { return; } @@ -64,10 +66,10 @@ static void djui_font_title_render_char(char* c) { u32 ty = index / 16; extern ALIGNED8 const Texture texture_font_title[]; - djui_gfx_render_texture_tile(texture_font_title, 1024, 512, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 64, ty * 64, 64, 64, false, true); + djui_gfx_render_texture_tile_font(texture_font_title, 1024, 512, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 64, ty * 64, 64, 64); } -static f32 djui_font_title_char_width(char* text) { +static f32 djui_font_title_char_width(const char* text) { char c = *text; if (c == ' ') { return 0.30f; } c = djui_unicode_get_base_char(text); @@ -83,7 +85,9 @@ static const struct DjuiFont sDjuiFontTitle = { .yOffset = 0.0f, .defaultFontScale = 64.0f, .textBeginDisplayList = NULL, + .render_begin = djui_gfx_render_texture_tile_font_begin, .render_char = djui_font_title_render_char, + .render_end = djui_gfx_render_texture_tile_font_end, .char_width = djui_font_title_char_width, }; @@ -124,27 +128,29 @@ static u8 djui_font_hud_index(char c) { return c; } -static void djui_font_hud_render_char(char* text) { +static void djui_font_hud_render_char(const char* text) { char c = *text; if (c == ' ') { return; } c = djui_unicode_get_base_char(text); u8 index = djui_font_hud_index(c); - djui_gfx_render_texture(main_hud_lut[index], 16, 16, G_IM_FMT_RGBA, G_IM_SIZ_16b, djui_hud_get_filter()); + djui_gfx_render_texture_font(main_hud_lut[index], 16, 16, G_IM_FMT_RGBA, G_IM_SIZ_16b); } -static f32 djui_font_hud_char_width(UNUSED char* text) { +static f32 djui_font_hud_char_width(UNUSED const char* text) { return 0.75f; } static const struct DjuiFont sDjuiFontHud = { .charWidth = 1.0f, .charHeight = 0.9f, - .lineHeight = 0.7f, + .lineHeight = 1.25f, .xOffset = 0.0f, .yOffset = 0.0f, .defaultFontScale = 16.0f, .textBeginDisplayList = NULL, + .render_begin = djui_gfx_render_texture_font_begin, .render_char = djui_font_hud_render_char, + .render_end = djui_gfx_render_texture_font_end, .char_width = djui_font_hud_char_width, }; @@ -152,7 +158,7 @@ static const struct DjuiFont sDjuiFontHud = { // font 3 (DJ's aliased font) // //////////////////////////////// -static void djui_font_aliased_render_char(char* c) { +static void djui_font_aliased_render_char(const char* c) { // replace undisplayable characters if (*c == ' ') { return; } @@ -163,16 +169,16 @@ static void djui_font_aliased_render_char(char* c) { u32 tx = index % 64; u32 ty = index / 64; extern ALIGNED8 const Texture texture_font_jp_aliased[]; - djui_gfx_render_texture_tile(texture_font_jp_aliased, 1024, 2048, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 16, ty * 32, 16, 32, false, true); + djui_gfx_render_texture_tile_font(texture_font_jp_aliased, 1024, 2048, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 16, ty * 32, 16, 32); } else { u32 tx = index % 32; u32 ty = index / 32; extern ALIGNED8 const Texture texture_font_aliased[]; - djui_gfx_render_texture_tile(texture_font_aliased, 512, 256, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 16, ty * 32, 16, 32, false, true); + djui_gfx_render_texture_tile_font(texture_font_aliased, 512, 256, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 16, ty * 32, 16, 32); } } -static f32 djui_font_aliased_char_width(char* c) { +static f32 djui_font_aliased_char_width(const char* c) { if (*c == ' ') { return 6 / 32.0f; } extern const f32 font_aliased_widths[]; return djui_unicode_get_sprite_width(c, font_aliased_widths, 1.0f) / 32.0f; @@ -186,7 +192,9 @@ static const struct DjuiFont sDjuiFontAliased = { .lineHeight = 0.8125f, .defaultFontScale = 32.0f, .textBeginDisplayList = NULL, + .render_begin = djui_gfx_render_texture_tile_font_begin, .render_char = djui_font_aliased_render_char, + .render_end = djui_gfx_render_texture_tile_font_end, .char_width = djui_font_aliased_char_width, }; @@ -194,7 +202,7 @@ static const struct DjuiFont sDjuiFontAliased = { // font 4/5 (custom hud font/recolor) // //////////////////////////////////////// -static void djui_font_custom_hud_render_char(char* c) { +static void djui_font_custom_hud_render_char(const char* c) { // replace undisplayable characters if (*c == ' ') { return; } @@ -204,10 +212,10 @@ static void djui_font_custom_hud_render_char(char* c) { u32 ty = index / 16; extern ALIGNED8 const Texture texture_font_hud[]; - djui_gfx_render_texture_tile(texture_font_hud, 512, 512, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 32, ty * 32, 32, 32, false, true); + djui_gfx_render_texture_tile_font(texture_font_hud, 512, 512, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 32, ty * 32, 32, 32); } -static void djui_font_custom_hud_recolor_render_char(char* c) { +static void djui_font_custom_hud_recolor_render_char(const char* c) { // replace undisplayable characters if (*c == ' ') { return; } @@ -217,10 +225,10 @@ static void djui_font_custom_hud_recolor_render_char(char* c) { u32 ty = index / 16; extern ALIGNED8 const Texture texture_font_hud_recolor[]; - djui_gfx_render_texture_tile(texture_font_hud_recolor, 512, 512, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 32, ty * 32, 32, 32, false, true); + djui_gfx_render_texture_tile_font(texture_font_hud_recolor, 512, 512, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 32, ty * 32, 32, 32); } -static f32 djui_font_custom_hud_char_width(char* text) { +static f32 djui_font_custom_hud_char_width(const char* text) { char c = *text; if (c == ' ') { return 0.3750f; } c = djui_unicode_get_base_char(text); @@ -236,7 +244,9 @@ static const struct DjuiFont sDjuiFontCustomHud = { .yOffset = -10.25f, .defaultFontScale = 32.0f, .textBeginDisplayList = NULL, + .render_begin = djui_gfx_render_texture_tile_font_begin, .render_char = djui_font_custom_hud_render_char, + .render_end = djui_gfx_render_texture_tile_font_end, .char_width = djui_font_custom_hud_char_width, }; @@ -248,7 +258,9 @@ static const struct DjuiFont sDjuiFontCustomHudRecolor = { .yOffset = -10.25f, .defaultFontScale = 32.0f, .textBeginDisplayList = NULL, + .render_begin = djui_gfx_render_texture_tile_font_begin, .render_char = djui_font_custom_hud_recolor_render_char, + .render_end = djui_gfx_render_texture_tile_font_end, .char_width = djui_font_custom_hud_char_width, }; @@ -256,7 +268,7 @@ static const struct DjuiFont sDjuiFontCustomHudRecolor = { // font 6 (special font) // /////////////////////////// -static void djui_font_special_render_char(char* c) { +static void djui_font_special_render_char(const char* c) { // replace undisplayable characters if (*c == ' ') { return; } @@ -266,17 +278,17 @@ static void djui_font_special_render_char(char* c) { u32 tx = index % 64; u32 ty = index / 64; extern ALIGNED8 const Texture texture_font_jp[]; - djui_gfx_render_texture_tile(texture_font_jp, 512, 1024, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 8, ty * 16, 8, 16, false, true); + djui_gfx_render_texture_tile_font(texture_font_jp, 512, 1024, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 8, ty * 16, 8, 16); } else { u32 tx = index % 32; u32 ty = index / 32; extern ALIGNED8 const Texture texture_font_special[]; - djui_gfx_render_texture_tile(texture_font_special, 256, 128, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 8, ty * 16, 8, 16, false, true); + djui_gfx_render_texture_tile_font(texture_font_special, 256, 128, G_IM_FMT_RGBA, G_IM_SIZ_32b, tx * 8, ty * 16, 8, 16); } } -static f32 djui_font_special_char_width(char* c) { +static f32 djui_font_special_char_width(const char* c) { if (*c == ' ') { return 0.5f; } extern const f32 font_special_widths[]; return djui_unicode_get_sprite_width(c, font_special_widths, 32.0f); @@ -290,7 +302,9 @@ static const struct DjuiFont sDjuiFontSpecial = { .yOffset = 0.0f, .defaultFontScale = 32.0f, .textBeginDisplayList = NULL, + .render_begin = djui_gfx_render_texture_tile_font_begin, .render_char = djui_font_special_render_char, + .render_end = djui_gfx_render_texture_tile_font_end, .char_width = djui_font_special_char_width, }; diff --git a/src/pc/djui/djui_font.h b/src/pc/djui/djui_font.h index 02d3eef8a..7acf72a28 100644 --- a/src/pc/djui/djui_font.h +++ b/src/pc/djui/djui_font.h @@ -9,8 +9,10 @@ struct DjuiFont { f32 yOffset; f32 defaultFontScale; const Gfx* textBeginDisplayList; - void (*render_char)(char*); - f32 (*char_width)(char*); + void (*render_begin)(); + void (*render_char)(const char*); + void (*render_end)(); + f32 (*char_width)(const char*); }; extern const struct DjuiFont* gDjuiFonts[]; diff --git a/src/pc/djui/djui_gfx.c b/src/pc/djui/djui_gfx.c index 8ebd6c488..4319782c3 100644 --- a/src/pc/djui/djui_gfx.c +++ b/src/pc/djui/djui_gfx.c @@ -1,6 +1,7 @@ #include #include "sm64.h" #include "djui.h" +#include "djui_hud_utils.h" #include "game/ingame_menu.h" #include "game/segment2.h" #include "pc/pc_main.h" @@ -118,7 +119,93 @@ void djui_gfx_render_texture(const Texture* texture, u32 w, u32 h, u8 fmt, u8 si gSPDisplayList(gDisplayListHead++, dl_djui_image); } -void djui_gfx_render_texture_tile(const Texture* texture, u32 w, u32 h, u8 fmt, u8 siz, u32 tileX, u32 tileY, u32 tileW, u32 tileH, bool filter, bool font) { +void djui_gfx_render_texture_tile(const Texture* texture, u32 w, u32 h, u8 fmt, u8 siz, u32 tileX, u32 tileY, u32 tileW, u32 tileH, bool filter) { + if (!gDisplayListHead) { + LOG_ERROR("Retrieved a null displaylist head"); + return; + } + + if (!texture) { + LOG_ERROR("Attempted to render null texture"); + return; + } + + Vtx *vtx = alloc_display_list(sizeof(Vtx) * 4); + if (!vtx) { + LOG_ERROR("Failed to allocate vertices"); + return; + } + + f32 aspect = tileH ? ((f32)tileW / (f32)tileH) : 1; + + vtx[0] = (Vtx) {{{ 0, -1, 0 }, 0, { ( tileX * 2048.0f) / (f32)w + 1, ((tileY + tileH) * 2048.0f) / (f32)h + 1 }, { 0xff, 0xff, 0xff, 0xff }}}; + vtx[2] = (Vtx) {{{ 1 * aspect, 0, 0 }, 0, { ((tileX + tileW) * 2048.0f) / (f32)w + 1, ( tileY * 2048.0f) / (f32)h + 1 }, { 0xff, 0xff, 0xff, 0xff }}}; + vtx[1] = (Vtx) {{{ 1 * aspect, -1, 0 }, 0, { ((tileX + tileW) * 2048.0f) / (f32)w + 1, ((tileY + tileH) * 2048.0f) / (f32)h + 1 }, { 0xff, 0xff, 0xff, 0xff }}}; + vtx[3] = (Vtx) {{{ 0, 0, 0 }, 0, { ( tileX * 2048.0f) / (f32)w + 1, ( tileY * 2048.0f) / (f32)h + 1 }, { 0xff, 0xff, 0xff, 0xff }}}; + + gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING | G_CULL_BOTH); + gDPSetCombineMode(gDisplayListHead++, G_CC_FADEA, G_CC_FADEA); + gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetTextureFilter(gDisplayListHead++, filter ? G_TF_BILERP : G_TF_POINT); + + gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); + + gDPSetTextureOverrideDjui(gDisplayListHead++, texture, djui_gfx_power_of_two(w), djui_gfx_power_of_two(h), fmt, siz); + gDPLoadTextureBlockWithoutTexture(gDisplayListHead++, NULL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 64, 0, G_TX_CLAMP, G_TX_CLAMP, 0, 0, 0, 0); + + *(gDisplayListHead++) = (Gfx) gsSPExecuteDjui(G_TEXOVERRIDE_DJUI); + + gSPVertexNonGlobal(gDisplayListHead++, vtx, 4, 0); + *(gDisplayListHead++) = (Gfx) gsSPExecuteDjui(G_TEXCLIP_DJUI); + gSP2TrianglesDjui(gDisplayListHead++, 0, 1, 2, 0x0, 0, 2, 3, 0x0); + + gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF); + gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE); + gSPSetGeometryMode(gDisplayListHead++, G_LIGHTING | G_CULL_BACK); +} + +void djui_gfx_render_texture_font_begin() { + gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING | G_CULL_BOTH); + gDPSetCombineMode(gDisplayListHead++, G_CC_FADEA, G_CC_FADEA); + gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetTextureFilter(gDisplayListHead++, djui_hud_get_filter() ? G_TF_BILERP : G_TF_POINT); + gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); + gDPLoadTextureBlockWithoutTexture(gDisplayListHead++, NULL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 64, 0, G_TX_CLAMP, G_TX_CLAMP, 0, 0, 0, 0); +} + +void djui_gfx_render_texture_font(const Texture* texture, u32 w, u32 h, u8 fmt, u8 siz) { + if (!gDisplayListHead) { + LOG_ERROR("Retrieved a null displaylist head"); + return; + } + + if (!texture) { + LOG_ERROR("Attempted to render null texture"); + return; + } + + gDPSetTextureOverrideDjui(gDisplayListHead++, texture, djui_gfx_power_of_two(w), djui_gfx_power_of_two(h), fmt, siz); + *(gDisplayListHead++) = (Gfx) gsSPExecuteDjui(G_TEXOVERRIDE_DJUI); + gSPVertexNonGlobal(gDisplayListHead++, vertex_djui_image, 4, 0); + gSP2Triangles(gDisplayListHead++, 0, 1, 2, 0x0, 0, 2, 3, 0x0); +} + +void djui_gfx_render_texture_font_end() { + gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF); + gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE); + gSPSetGeometryMode(gDisplayListHead++, G_LIGHTING | G_CULL_BACK); +} + +void djui_gfx_render_texture_tile_font_begin() { + gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING | G_CULL_BOTH); + gDPSetCombineMode(gDisplayListHead++, G_CC_FADEA, G_CC_FADEA); + gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetTextureFilter(gDisplayListHead++, G_TF_POINT); + gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); + gDPLoadTextureBlockWithoutTexture(gDisplayListHead++, NULL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 64, 0, G_TX_CLAMP, G_TX_CLAMP, 0, 0, 0, 0); +} + +void djui_gfx_render_texture_tile_font(const Texture* texture, u32 w, u32 h, u8 fmt, u8 siz, u32 tileX, u32 tileY, u32 tileW, u32 tileH) { if (!gDisplayListHead) { LOG_ERROR("Retrieved a null displaylist head"); return; @@ -139,29 +226,21 @@ void djui_gfx_render_texture_tile(const Texture* texture, u32 w, u32 h, u8 fmt, // I don't know why adding 1 to all of the UVs seems to fix rendering, but it does... // this should be tested carefully. it definitely fixes some stuff, but what does it break? - f32 offsetX = (font ? -1024.0f / (f32)w : 0) + 1; - f32 offsetY = (font ? -1024.0f / (f32)h : 0) + 1; + f32 offsetX = (-1024.0f / (f32)w) + 1; + f32 offsetY = (-1024.0f / (f32)h) + 1; vtx[0] = (Vtx) {{{ 0, -1, 0 }, 0, { ( tileX * 2048.0f) / (f32)w + offsetX, ((tileY + tileH) * 2048.0f) / (f32)h + offsetY }, { 0xff, 0xff, 0xff, 0xff }}}; vtx[2] = (Vtx) {{{ 1 * aspect, 0, 0 }, 0, { ((tileX + tileW) * 2048.0f) / (f32)w + offsetX, ( tileY * 2048.0f) / (f32)h + offsetY }, { 0xff, 0xff, 0xff, 0xff }}}; vtx[1] = (Vtx) {{{ 1 * aspect, -1, 0 }, 0, { ((tileX + tileW) * 2048.0f) / (f32)w + offsetX, ((tileY + tileH) * 2048.0f) / (f32)h + offsetY }, { 0xff, 0xff, 0xff, 0xff }}}; vtx[3] = (Vtx) {{{ 0, 0, 0 }, 0, { ( tileX * 2048.0f) / (f32)w + offsetX, ( tileY * 2048.0f) / (f32)h + offsetY }, { 0xff, 0xff, 0xff, 0xff }}}; - gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING | G_CULL_BOTH); - gDPSetCombineMode(gDisplayListHead++, G_CC_FADEA, G_CC_FADEA); - gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2); - gDPSetTextureFilter(gDisplayListHead++, filter ? G_TF_BILERP : G_TF_POINT); - - gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); - gDPSetTextureOverrideDjui(gDisplayListHead++, texture, djui_gfx_power_of_two(w), djui_gfx_power_of_two(h), fmt, siz); - gDPLoadTextureBlockWithoutTexture(gDisplayListHead++, NULL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 64, 0, G_TX_CLAMP, G_TX_CLAMP, 0, 0, 0, 0); - *(gDisplayListHead++) = (Gfx) gsSPExecuteDjui(G_TEXOVERRIDE_DJUI); - gSPVertexNonGlobal(gDisplayListHead++, vtx, 4, 0); *(gDisplayListHead++) = (Gfx) gsSPExecuteDjui(G_TEXCLIP_DJUI); gSP2TrianglesDjui(gDisplayListHead++, 0, 1, 2, 0x0, 0, 2, 3, 0x0); +} +void djui_gfx_render_texture_tile_font_end() { gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF); gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE); gSPSetGeometryMode(gDisplayListHead++, G_LIGHTING | G_CULL_BACK); diff --git a/src/pc/djui/djui_gfx.h b/src/pc/djui/djui_gfx.h index 8da361e3f..743ca4460 100644 --- a/src/pc/djui/djui_gfx.h +++ b/src/pc/djui/djui_gfx.h @@ -16,7 +16,15 @@ void djui_gfx_displaylist_end(void); f32 djui_gfx_get_scale(void); void djui_gfx_render_texture(const Texture* texture, u32 w, u32 h, u8 fmt, u8 siz, bool filter); -void djui_gfx_render_texture_tile(const Texture* texture, u32 w, u32 h, u8 fmt, u8 siz, u32 tileX, u32 tileY, u32 tileW, u32 tileH, bool filter, bool font); +void djui_gfx_render_texture_tile(const Texture* texture, u32 w, u32 h, u8 fmt, u8 siz, u32 tileX, u32 tileY, u32 tileW, u32 tileH, bool filter); + +void djui_gfx_render_texture_font_begin(); +void djui_gfx_render_texture_font(const Texture* texture, u32 w, u32 h, u8 fmt, u8 siz); +void djui_gfx_render_texture_font_end(); + +void djui_gfx_render_texture_tile_font_begin(); +void djui_gfx_render_texture_tile_font(const Texture* texture, u32 w, u32 h, u8 fmt, u8 siz, u32 tileX, u32 tileY, u32 tileW, u32 tileH); +void djui_gfx_render_texture_tile_font_end(); void gfx_get_dimensions(u32* width, u32* height); diff --git a/src/pc/djui/djui_hud_utils.c b/src/pc/djui/djui_hud_utils.c index 5d7a06d5b..8ad0a5b15 100644 --- a/src/pc/djui/djui_hud_utils.c +++ b/src/pc/djui/djui_hud_utils.c @@ -24,13 +24,45 @@ #include "engine/math_util.h" -static enum HudUtilsResolution sResolution = RESOLUTION_DJUI; -static enum HudUtilsFilter sFilter = FILTER_NEAREST; -static enum DjuiFontType sFont = FONT_NORMAL; -static struct HudUtilsRotation sRotation = { 0, 0, 0, 0, 0, 0 }; -static struct DjuiColor sColor = { 255, 255, 255, 255 }; +#define INTERP_INIT(v) {v, v} + +typedef struct { + f32 prev, curr; +} InterpFieldF32; + +struct HudUtilsState { + enum HudUtilsResolution resolution; + enum HudUtilsFilter filter; + enum DjuiFontType font; + struct DjuiColor color; + struct { + InterpFieldF32 degrees; + InterpFieldF32 pivotX; + InterpFieldF32 pivotY; + } rotation; + struct { + InterpFieldF32 h; + InterpFieldF32 v; + } textAlignment; +}; + +static struct HudUtilsState sHudUtilsState = { + .resolution = RESOLUTION_DJUI, + .filter = FILTER_NEAREST, + .font = FONT_NORMAL, + .color = { 255, 255, 255, 255 }, + .rotation = { + .degrees = INTERP_INIT(0), + .pivotX = INTERP_INIT(ROTATION_PIVOT_X_LEFT), + .pivotY = INTERP_INIT(ROTATION_PIVOT_Y_TOP), + }, + .textAlignment = { + .h = INTERP_INIT(TEXT_HALIGN_LEFT), + .v = INTERP_INIT(TEXT_VALIGN_TOP), + }, +}; + static struct DjuiColor sRefColor = { 255, 255, 255, 255 }; -static bool sLegacy = false; f32 gDjuiHudUtilsZ = 0; bool gDjuiHudLockMouse = false; @@ -67,8 +99,16 @@ struct GlobalTextures gGlobalTextures = { .wario_head = { .texture = texture_hud_char_wario_head, "texture_hud_char_wario_head", .width = 16, .height = 16, .format = G_IM_FMT_RGBA, .size = G_IM_SIZ_16b } }; +static inline const struct DjuiFont *djui_hud_get_text_font() { + return gDjuiFonts[sHudUtilsState.font < 0 ? FONT_NORMAL : sHudUtilsState.font]; +} + +static inline bool djui_hud_text_font_is_legacy() { + return sHudUtilsState.font < 0; +} + static void djui_hud_position_translate(f32* x, f32* y) { - if (sResolution == RESOLUTION_DJUI) { + if (sHudUtilsState.resolution == RESOLUTION_DJUI) { djui_gfx_position_translate(x, y); } else { *x = GFX_DIMENSIONS_FROM_LEFT_EDGE(0) + *x; @@ -77,7 +117,7 @@ static void djui_hud_position_translate(f32* x, f32* y) { } static void djui_hud_size_translate(f32* size) { - if (sResolution == RESOLUTION_DJUI) { + if (sHudUtilsState.resolution == RESOLUTION_DJUI) { djui_gfx_size_translate(size); } } @@ -90,7 +130,7 @@ static void djui_hud_translate_positions(f32 *outX, f32 *outY, f32 *outW, f32 *o *outY -= SCREEN_HEIGHT; // translate scale - if (sResolution == RESOLUTION_DJUI) { + if (sHudUtilsState.resolution == RESOLUTION_DJUI) { u32 windowWidth, windowHeight; gfx_get_dimensions(&windowWidth, &windowHeight); f32 screenWidth = (f32) windowWidth / djui_gfx_get_scale(); @@ -105,22 +145,31 @@ static void djui_hud_translate_positions(f32 *outX, f32 *outY, f32 *outW, f32 *o //////////// #define MAX_INTERP_HUD 512 -struct InterpHud { - Gfx* headPos; - f32 z; - f32 prevX; - f32 prevY; - f32 x; - f32 y; - f32 prevScaleW; - f32 prevScaleH; - f32 scaleW; - f32 scaleH; - f32 width; - f32 height; - enum HudUtilsResolution resolution; - struct HudUtilsRotation rotation; + +enum InterpHudType { + INTERP_HUD_TRANSLATION, + INTERP_HUD_ROTATION, + INTERP_HUD_SCALE, + INTERP_HUD_HALIGN, + INTERP_HUD_VALIGN, + INTERP_HUD_NEW_LINE, }; + +typedef struct { + enum InterpHudType type; + Gfx *pos; + f32 params[1]; // we don't need more for now +} InterpHudGfx; + +struct InterpHud { + f32 z; + InterpFieldF32 posX, posY; + InterpFieldF32 scaleX, scaleY; + f32 width, height; + struct HudUtilsState state; + struct GrowingArray *gfx; +}; + static struct InterpHud sInterpHuds[MAX_INTERP_HUD] = { 0 }; static u16 sInterpHudCount = 0; static u8 sColorAltered = FALSE; @@ -132,140 +181,211 @@ void patch_djui_hud_before(void) { void patch_djui_hud(f32 delta) { f32 savedZ = gDjuiHudUtilsZ; Gfx* savedHeadPos = gDisplayListHead; - enum HudUtilsResolution savedResolution = sResolution; - struct HudUtilsRotation savedRotation = sRotation; + struct HudUtilsState savedState = sHudUtilsState; + for (u16 i = 0; i < sInterpHudCount; i++) { struct InterpHud* interp = &sInterpHuds[i]; - f32 x = delta_interpolate_f32(interp->prevX, interp->x, delta); - f32 y = delta_interpolate_f32(interp->prevY, interp->y, delta); - f32 scaleW = delta_interpolate_f32(interp->prevScaleW, interp->scaleW, delta); - f32 scaleH = delta_interpolate_f32(interp->prevScaleH, interp->scaleH, delta); - sResolution = interp->resolution; - sRotation = interp->rotation; + f32 x = delta_interpolate_f32(interp->posX.prev, interp->posX.curr, delta); + f32 y = delta_interpolate_f32(interp->posY.prev, interp->posY.curr, delta); + f32 scaleW = delta_interpolate_f32(interp->scaleX.prev, interp->scaleX.curr, delta); + f32 scaleH = delta_interpolate_f32(interp->scaleY.prev, interp->scaleY.curr, delta); + sHudUtilsState = interp->state; gDjuiHudUtilsZ = interp->z; - gDisplayListHead = interp->headPos; - // translate position - f32 translatedX = x; - f32 translatedY = y; - djui_hud_position_translate(&translatedX, &translatedY); - create_dl_translation_matrix(DJUI_MTX_PUSH, translatedX, translatedY, gDjuiHudUtilsZ); + for (u32 j = 0; j != interp->gfx->count; ++j) { + const InterpHudGfx *gfx = interp->gfx->buffer[j]; + gDisplayListHead = gfx->pos; - // rotate - f32 translatedW = scaleW; - f32 translatedH = scaleH; - djui_hud_size_translate(&translatedW); - djui_hud_size_translate(&translatedH); - if (sRotation.rotationDiff != 0 || sRotation.rotation != 0) { - s32 rotation = delta_interpolate_s32(sRotation.rotation - sRotation.rotationDiff, sRotation.rotation, delta); - f32 pivotX = delta_interpolate_f32(sRotation.prevPivotX, sRotation.pivotX, delta); - f32 pivotY = delta_interpolate_f32(sRotation.prevPivotY, sRotation.pivotY, delta); - f32 pivotTranslationX = interp->width * translatedW * pivotX; - f32 pivotTranslationY = interp->height * translatedH * pivotY; - create_dl_translation_matrix(DJUI_MTX_NOPUSH, +pivotTranslationX, -pivotTranslationY, 0); - create_dl_rotation_matrix(DJUI_MTX_NOPUSH, rotation, 0, 0, 1); - create_dl_translation_matrix(DJUI_MTX_NOPUSH, -pivotTranslationX, +pivotTranslationY, 0); + switch (gfx->type) { + case INTERP_HUD_TRANSLATION: { + f32 translatedX = x; + f32 translatedY = y; + djui_hud_position_translate(&translatedX, &translatedY); + create_dl_translation_matrix(DJUI_MTX_PUSH, translatedX, translatedY, gDjuiHudUtilsZ); + } break; + + case INTERP_HUD_ROTATION: { + if (sHudUtilsState.rotation.degrees.prev != 0 || sHudUtilsState.rotation.degrees.curr != 0) { + f32 translatedW = scaleW; + f32 translatedH = scaleH; + djui_hud_size_translate(&translatedW); + djui_hud_size_translate(&translatedH); + s16 rotPrev = degrees_to_sm64(sHudUtilsState.rotation.degrees.prev); + s16 rotCurr = degrees_to_sm64(sHudUtilsState.rotation.degrees.curr); + s32 normalizedDiff = (((s32) rotCurr - (s32) rotPrev + 0x8000) & 0xFFFF) - 0x8000; // Fix modular overflow/underflow + s32 rotation = delta_interpolate_s32(rotCurr - normalizedDiff, rotCurr, delta); + f32 pivotX = delta_interpolate_f32(sHudUtilsState.rotation.pivotX.prev, sHudUtilsState.rotation.pivotX.curr, delta); + f32 pivotY = delta_interpolate_f32(sHudUtilsState.rotation.pivotY.prev, sHudUtilsState.rotation.pivotY.curr, delta); + f32 pivotTranslationX = interp->width * translatedW * pivotX; + f32 pivotTranslationY = interp->height * translatedH * pivotY; + create_dl_translation_matrix(DJUI_MTX_NOPUSH, +pivotTranslationX, -pivotTranslationY, 0); + create_dl_rotation_matrix(DJUI_MTX_NOPUSH, sm64_to_degrees(rotation), 0, 0, 1); + create_dl_translation_matrix(DJUI_MTX_NOPUSH, -pivotTranslationX, +pivotTranslationY, 0); + } + } break; + + case INTERP_HUD_SCALE: { + f32 translatedW = scaleW; + f32 translatedH = scaleH; + djui_hud_size_translate(&translatedW); + djui_hud_size_translate(&translatedH); + create_dl_scale_matrix(DJUI_MTX_NOPUSH, interp->width * translatedW, interp->height * translatedH, 1.0f); + } break; + + case INTERP_HUD_HALIGN: { + f32 textHAlign = delta_interpolate_f32(sHudUtilsState.textAlignment.h.prev, sHudUtilsState.textAlignment.h.curr, delta); + f32 lineWidth = gfx->params[0]; + create_dl_translation_matrix(DJUI_MTX_NOPUSH, -lineWidth * textHAlign, 0, 0); + } break; + + case INTERP_HUD_VALIGN: { + f32 textVAlign = delta_interpolate_f32(sHudUtilsState.textAlignment.v.prev, sHudUtilsState.textAlignment.v.curr, delta); + f32 textHeight = gfx->params[0]; + create_dl_translation_matrix(DJUI_MTX_NOPUSH, 0, textHeight * textVAlign, 0); + } break; + + case INTERP_HUD_NEW_LINE: { + const struct DjuiFont *font = djui_hud_get_text_font(); + f32 textHAlign = delta_interpolate_f32(sHudUtilsState.textAlignment.h.prev, sHudUtilsState.textAlignment.h.curr, delta); + f32 lineWidth = gfx->params[0]; + create_dl_translation_matrix(DJUI_MTX_NOPUSH, -lineWidth * (1.f - textHAlign), -font->lineHeight, 0); + } break; + } } - - // scale - create_dl_scale_matrix(DJUI_MTX_NOPUSH, interp->width * translatedW, interp->height * translatedH, 1.0f); } - sResolution = savedResolution; - sRotation = savedRotation; + + sHudUtilsState = savedState; gDisplayListHead = savedHeadPos; gDjuiHudUtilsZ = savedZ; } +struct InterpHud *djui_hud_create_interp() { + if (sInterpHudCount >= MAX_INTERP_HUD) { return NULL; } + + struct InterpHud *interp = &sInterpHuds[sInterpHudCount++]; + interp->z = gDjuiHudUtilsZ; + interp->state = sHudUtilsState; + if (!interp->gfx) { + interp->gfx = growing_array_init(NULL, 8, malloc, free); + } else { + interp->gfx->count = 0; + } + + return interp; +} + +InterpHudGfx *djui_hud_create_interp_gfx(struct InterpHud *interp, enum InterpHudType type) { + if (!interp) { return NULL; } + + InterpHudGfx *gfx = growing_array_alloc(interp->gfx, sizeof(InterpHudGfx)); + gfx->type = type; + gfx->pos = gDisplayListHead; + return gfx; +} + //////////// // others // //////////// u8 djui_hud_get_resolution(void) { - return sResolution; + return sHudUtilsState.resolution; } void djui_hud_set_resolution(enum HudUtilsResolution resolutionType) { if (resolutionType >= RESOLUTION_COUNT) { return; } - sResolution = resolutionType; + sHudUtilsState.resolution = resolutionType; } u8 djui_hud_get_filter(void) { - return sFilter; + return sHudUtilsState.filter; } void djui_hud_set_filter(enum HudUtilsFilter filterType) { if (filterType >= FILTER_COUNT) { return; } - sFilter = filterType; + sHudUtilsState.filter = filterType; } -u8 djui_hud_get_font(void) { - return sFont; +s8 djui_hud_get_font(void) { + return sHudUtilsState.font; } void djui_hud_set_font(s8 fontType) { if (fontType >= FONT_COUNT || fontType < -1) { return; } - sLegacy = fontType == -1; - if (sLegacy) { fontType = 0; } - sFont = fontType; + sHudUtilsState.font = fontType; } struct DjuiColor* djui_hud_get_color(void) { - sRefColor.r = sColor.r; - sRefColor.g = sColor.g; - sRefColor.b = sColor.b; - sRefColor.a = sColor.a; + sRefColor.r = sHudUtilsState.color.r; + sRefColor.g = sHudUtilsState.color.g; + sRefColor.b = sHudUtilsState.color.b; + sRefColor.a = sHudUtilsState.color.a; return &sRefColor; } void djui_hud_set_color(u8 r, u8 g, u8 b, u8 a) { - sColor.r = r; - sColor.g = g; - sColor.b = b; - sColor.a = a; + sHudUtilsState.color.r = r; + sHudUtilsState.color.g = g; + sHudUtilsState.color.b = b; + sHudUtilsState.color.a = a; sColorAltered = TRUE; gDPSetEnvColor(gDisplayListHead++, r, g, b, a); } void djui_hud_reset_color(void) { if (sColorAltered) { - sColor.r = 255; - sColor.g = 255; - sColor.b = 255; - sColor.a = 255; + sHudUtilsState.color.r = 255; + sHudUtilsState.color.g = 255; + sHudUtilsState.color.b = 255; + sHudUtilsState.color.a = 255; sColorAltered = FALSE; gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, 255); } } -struct HudUtilsRotation* djui_hud_get_rotation(void) { - return &sRotation; +void djui_hud_get_rotation(RET s16 *rotation, RET f32 *pivotX, RET f32 *pivotY) { + *rotation = degrees_to_sm64(sHudUtilsState.rotation.degrees.curr); + *pivotX = sHudUtilsState.rotation.pivotX.curr; + *pivotY = sHudUtilsState.rotation.pivotY.curr; } void djui_hud_set_rotation(s16 rotation, f32 pivotX, f32 pivotY) { - sRotation.rotationDiff = 0; - sRotation.prevPivotX = pivotX; - sRotation.prevPivotY = pivotY; - sRotation.rotation = (rotation * 180.f) / 0x8000; - sRotation.pivotX = pivotX; - sRotation.pivotY = pivotY; + sHudUtilsState.rotation.degrees.prev = sHudUtilsState.rotation.degrees.curr = sm64_to_degrees(rotation); + sHudUtilsState.rotation.pivotX.prev = sHudUtilsState.rotation.pivotX.curr = pivotX; + sHudUtilsState.rotation.pivotY.prev = sHudUtilsState.rotation.pivotY.curr = pivotY; } -void djui_hud_set_rotation_interpolated(s32 prevRotation, f32 prevPivotX, f32 prevPivotY, s32 rotation, f32 pivotX, f32 pivotY) { - f32 normalizedDiff = ((rotation - prevRotation + 0x8000) & 0xFFFF) - 0x8000; // Fix modular overflow/underflow - sRotation.rotationDiff = (normalizedDiff * 180.f) / 0x8000; - sRotation.prevPivotX = prevPivotX; - sRotation.prevPivotY = prevPivotY; - sRotation.rotation = (rotation * 180.f) / 0x8000; - sRotation.pivotX = pivotX; - sRotation.pivotY = pivotY; +void djui_hud_set_rotation_interpolated(s16 prevRotation, f32 prevPivotX, f32 prevPivotY, s16 rotation, f32 pivotX, f32 pivotY) { + sHudUtilsState.rotation.degrees.prev = sm64_to_degrees(prevRotation); + sHudUtilsState.rotation.degrees.curr = sm64_to_degrees(rotation); + sHudUtilsState.rotation.pivotX.prev = prevPivotX; + sHudUtilsState.rotation.pivotX.curr = pivotX; + sHudUtilsState.rotation.pivotY.prev = prevPivotY; + sHudUtilsState.rotation.pivotY.curr = pivotY; +} + +void djui_hud_get_text_alignment(RET f32 *textHAlign, RET f32 *textVAlign) { + *textHAlign = sHudUtilsState.textAlignment.h.curr; + *textVAlign = sHudUtilsState.textAlignment.v.curr; +} + +void djui_hud_set_text_alignment(f32 textHAlign, f32 textVAlign) { + sHudUtilsState.textAlignment.h.prev = sHudUtilsState.textAlignment.h.curr = textHAlign; + sHudUtilsState.textAlignment.v.prev = sHudUtilsState.textAlignment.v.curr = textVAlign; +} + +void djui_hud_set_text_alignment_interpolated(f32 prevTextHAlign, f32 prevTextVAlign, f32 textHAlign, f32 textVAlign) { + sHudUtilsState.textAlignment.h.prev = prevTextHAlign; + sHudUtilsState.textAlignment.h.curr = textHAlign; + sHudUtilsState.textAlignment.v.prev = prevTextVAlign; + sHudUtilsState.textAlignment.v.curr = textVAlign; } u32 djui_hud_get_screen_width(void) { u32 windowWidth, windowHeight; gfx_get_dimensions(&windowWidth, &windowHeight); - return (sResolution == RESOLUTION_N64) + return (sHudUtilsState.resolution == RESOLUTION_N64) ? GFX_DIMENSIONS_ASPECT_RATIO * SCREEN_HEIGHT : (windowWidth / djui_gfx_get_scale()); } @@ -274,7 +394,7 @@ u32 djui_hud_get_screen_height(void) { u32 windowWidth, windowHeight; gfx_get_dimensions(&windowWidth, &windowHeight); - return (sResolution == RESOLUTION_N64) + return (sHudUtilsState.resolution == RESOLUTION_N64) ? SCREEN_HEIGHT : (windowHeight / djui_gfx_get_scale()); } @@ -364,23 +484,58 @@ void djui_hud_reset_scissor(void) { f32 djui_hud_measure_text(const char* message) { if (message == NULL) { return 0; } - const struct DjuiFont* font = gDjuiFonts[sFont]; - f32 width = 0; - const char* c = message; - while(*c != '\0') { - width += font->char_width((char*)c) * (sLegacy ? 0.5f : 1.0f); - c = djui_unicode_next_char((char*)c); + const struct DjuiFont* font = djui_hud_get_text_font(); + f32 width = 0, maxWidth = 0; + char *c = (char *) message; + const char *end = message + strlen(message); + while (*c != '\0') { + + // check color code + if (djui_text_parse_color(c, end, false, NULL, &c, NULL)) { + continue; + } + + // new line + if (*c == '\n') { + maxWidth = max(width, maxWidth); + width = 0; + } + + // tab: align to the next (4 x space width) + else if (*c == '\t') { + f32 tabWidth = 4 * font->char_width(" ") * (djui_hud_text_font_is_legacy() ? 0.5f : 1.0f); + width += tabWidth - fmodf(width, tabWidth); + } + + // unprintable chars + else if (!djui_text_is_printable(c)) { + // treat them as empty + } + + // regular chars + else { + width += font->char_width(c) * (djui_hud_text_font_is_legacy() ? 0.5f : 1.0f); + } + + c = djui_unicode_next_char(c); } - return width * font->defaultFontScale; + return max(width, maxWidth) * font->defaultFontScale; } -void djui_hud_print_text(const char* message, f32 x, f32 y, f32 scale) { +static Mtx *allocate_dl_translation_matrix() { + Mtx *matrix = (Mtx *) alloc_display_list(sizeof(Mtx)); + if (matrix == NULL) { return NULL; } + gSPMatrix(gDisplayListHead++, matrix, G_MTX_MODELVIEW | G_MTX_MUL | G_MTX_NOPUSH); + return matrix; +} + +static void djui_hud_print_text_internal(const char* message, f32 x, f32 y, f32 scale, struct InterpHud *interp) { if (message == NULL) { return; } gDjuiHudUtilsZ += 0.001f; - if (sLegacy) { scale *= 0.5f; } + if (djui_hud_text_font_is_legacy()) { scale *= 0.5f; } - const struct DjuiFont* font = gDjuiFonts[sFont]; + const struct DjuiFont* font = djui_hud_get_text_font(); f32 fontScale = font->defaultFontScale * scale; // setup display list @@ -389,117 +544,147 @@ void djui_hud_print_text(const char* message, f32 x, f32 y, f32 scale) { } // translate position + djui_hud_create_interp_gfx(interp, INTERP_HUD_TRANSLATION); f32 translatedX = x + (font->xOffset * scale); f32 translatedY = y + (font->yOffset * scale); djui_hud_position_translate(&translatedX, &translatedY); create_dl_translation_matrix(DJUI_MTX_PUSH, translatedX, translatedY, gDjuiHudUtilsZ); - // compute font size + // rotate f32 translatedFontSize = fontScale; djui_hud_size_translate(&translatedFontSize); + if (sHudUtilsState.rotation.degrees.prev != 0 || sHudUtilsState.rotation.degrees.curr != 0) { + djui_hud_create_interp_gfx(interp, INTERP_HUD_ROTATION); + f32 pivotTranslationX = font->defaultFontScale * translatedFontSize * sHudUtilsState.rotation.pivotX.curr; + f32 pivotTranslationY = font->defaultFontScale * translatedFontSize * sHudUtilsState.rotation.pivotY.curr; + create_dl_translation_matrix(DJUI_MTX_NOPUSH, +pivotTranslationX, -pivotTranslationY, 0); + create_dl_rotation_matrix(DJUI_MTX_NOPUSH, sHudUtilsState.rotation.degrees.curr, 0, 0, 1); + create_dl_translation_matrix(DJUI_MTX_NOPUSH, -pivotTranslationX, +pivotTranslationY, 0); + } + + // compute font size + djui_hud_create_interp_gfx(interp, INTERP_HUD_SCALE); create_dl_scale_matrix(DJUI_MTX_NOPUSH, translatedFontSize, translatedFontSize, 1.0f); - // render the line - f32 addX = 0; - char* c = (char*)message; - while (*c != '\0') { - f32 charWidth = font->char_width(c); + // allocate the translation matrix for the vertical alignment + InterpHudGfx *valignGfx = djui_hud_create_interp_gfx(interp, INTERP_HUD_VALIGN); + Mtx *valignMatrix = allocate_dl_translation_matrix(); + if (valignMatrix == NULL) { return; } - if (*c == '\n' && *c == ' ') { - addX += charWidth; - c++; + // allocate the translation matrix for the horizontal alignment + InterpHudGfx *halignGfx = djui_hud_create_interp_gfx(interp, INTERP_HUD_HALIGN); + Mtx *halignMatrix = allocate_dl_translation_matrix(); + if (halignMatrix == NULL) { return; } + + // render the line + char* c = (char*)message; + const char *end = message + strlen(message); + f32 lineWidth = 0; + f32 textHeight = font->lineHeight; + + font->render_begin(); + while (*c != '\0') { + + // check color code + struct DjuiColor parsedColor; + if (djui_text_parse_color(c, end, false, &sHudUtilsState.color, &c, &parsedColor)) { + gDPSetEnvColor(gDisplayListHead++, parsedColor.r, parsedColor.g, parsedColor.b, parsedColor.a); + continue; + } + + // new line + if (*c == '\n') { + + // compute the horizontal alignment matrix for the current line + guTranslate(halignMatrix, -lineWidth * sHudUtilsState.textAlignment.h.curr, 0, 0); + if (halignGfx) { halignGfx->params[0] = lineWidth; } + + // allocate a new translation matrix for the next line + halignGfx = djui_hud_create_interp_gfx(interp, INTERP_HUD_HALIGN); + halignMatrix = allocate_dl_translation_matrix(); + if (halignMatrix == NULL) { return; } + + // cancel out the line translation and move to the next line + // this is needed because otherwise the text would be rendered in a staircase way + InterpHudGfx *newlineGfx = djui_hud_create_interp_gfx(interp, INTERP_HUD_NEW_LINE); + create_dl_translation_matrix(DJUI_MTX_NOPUSH, -lineWidth * (1.f - sHudUtilsState.textAlignment.h.curr), -font->lineHeight, 0); + if (newlineGfx) { newlineGfx->params[0] = lineWidth; } + lineWidth = 0; + textHeight += font->lineHeight; + c = djui_unicode_next_char(c); + continue; + } + + // tab: align to the next (4 x space width) + else if (*c == '\t') { + f32 tabWidth = 4 * font->char_width(" "); + f32 newLineWidth = lineWidth + tabWidth - fmodf(lineWidth, tabWidth); + create_dl_translation_matrix(DJUI_MTX_NOPUSH, newLineWidth - lineWidth, 0, 0); + lineWidth = newLineWidth; + c = djui_unicode_next_char(c); + continue; + } + + // unprintable chars + if (!djui_text_is_printable(c)) { + c = djui_unicode_next_char(c); continue; } // render + f32 charWidth = font->char_width(c); font->render_char(c); - create_dl_translation_matrix(DJUI_MTX_NOPUSH, charWidth + addX, 0, 0); - addX = 0; + create_dl_translation_matrix(DJUI_MTX_NOPUSH, charWidth, 0, 0); + lineWidth += charWidth; c = djui_unicode_next_char(c); } + font->render_end(); + + // compute the horizontal alignment matrix for the last line + guTranslate(halignMatrix, -lineWidth * sHudUtilsState.textAlignment.h.curr, 0, 0); + if (halignGfx) { halignGfx->params[0] = lineWidth; } + + // compute the vertical alignment matrix + guTranslate(valignMatrix, 0, textHeight * sHudUtilsState.textAlignment.v.curr, 0); + if (valignGfx) { valignGfx->params[0] = textHeight; } // pop gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); } +void djui_hud_print_text(const char* message, f32 x, f32 y, f32 scale) { + djui_hud_print_text_internal(message, x, y, scale, NULL); +} + void djui_hud_print_text_interpolated(const char* message, f32 prevX, f32 prevY, f32 prevScale, f32 x, f32 y, f32 scale) { if (message == NULL) { return; } - f32 savedZ = gDjuiHudUtilsZ; - gDjuiHudUtilsZ += 0.001f; - if (sLegacy) { - prevScale *= 0.5f; - scale *= 0.5f; + if (djui_hud_text_font_is_legacy()) { prevScale *= 0.5f; } + + struct InterpHud *interp = djui_hud_create_interp(); + if (interp) { + const struct DjuiFont* font = djui_hud_get_text_font(); + interp->posX.prev = prevX; + interp->posY.prev = prevY; + interp->posX.curr = x; + interp->posY.curr = y; + interp->scaleX.prev = prevScale; + interp->scaleY.prev = prevScale; + interp->scaleX.curr = scale; + interp->scaleY.curr = scale; + interp->width = font->defaultFontScale; + interp->height = font->defaultFontScale; } - const struct DjuiFont* font = gDjuiFonts[sFont]; - f32 fontScale = font->defaultFontScale * scale; - - // setup display list - if (font->textBeginDisplayList != NULL) { - gSPDisplayList(gDisplayListHead++, font->textBeginDisplayList); - } - - Gfx* savedHeadPos = gDisplayListHead; - - // translate position - f32 translatedX = x + (font->xOffset * scale); - f32 translatedY = y + (font->yOffset * scale); - djui_hud_position_translate(&translatedX, &translatedY); - create_dl_translation_matrix(DJUI_MTX_PUSH, translatedX, translatedY, gDjuiHudUtilsZ); - - // compute font size - f32 translatedFontSize = fontScale; - djui_hud_size_translate(&translatedFontSize); - create_dl_scale_matrix(DJUI_MTX_NOPUSH, translatedFontSize, translatedFontSize, 1.0f); - - // render the line - f32 addX = 0; - char* c = (char*)message; - while (*c != '\0') { - f32 charWidth = font->char_width(c); - - if (*c == '\n' && *c == ' ') { - addX += charWidth; - c++; - continue; - } - - // render - font->render_char(c); - create_dl_translation_matrix(DJUI_MTX_NOPUSH, charWidth + addX, 0, 0); - addX = 0; - - c = djui_unicode_next_char(c); - } - - // pop - gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); - - if (sInterpHudCount >= MAX_INTERP_HUD) { return; } - struct InterpHud* interp = &sInterpHuds[sInterpHudCount++]; - interp->headPos = savedHeadPos; - interp->prevX = prevX; - interp->prevY = prevY; - interp->prevScaleW = prevScale; - interp->prevScaleH = prevScale; - interp->x = x; - interp->y = y; - interp->scaleW = scale; - interp->scaleH = scale; - interp->width = font->defaultFontScale; - interp->height = font->defaultFontScale; - interp->z = savedZ; - interp->resolution = sResolution; - interp->rotation = sRotation; + djui_hud_print_text_internal(message, x, y, scale, interp); } static inline bool is_power_of_two(u32 n) { return (n > 0) && ((n & (n - 1)) == 0); } -static void djui_hud_render_texture_raw(const Texture* texture, u32 width, u32 height, u8 fmt, u8 siz, f32 x, f32 y, f32 scaleW, f32 scaleH) { +static void djui_hud_render_texture_raw(const Texture* texture, u32 width, u32 height, u8 fmt, u8 siz, f32 x, f32 y, f32 scaleW, f32 scaleH, struct InterpHud *interp) { if (!is_power_of_two(width) || !is_power_of_two(height)) { LOG_LUA_LINE("Tried to render DJUI HUD texture with NPOT width or height"); return; @@ -510,6 +695,7 @@ static void djui_hud_render_texture_raw(const Texture* texture, u32 width, u32 h gDjuiHudUtilsZ += 0.001f; // translate position + djui_hud_create_interp_gfx(interp, INTERP_HUD_TRANSLATION); f32 translatedX = x; f32 translatedY = y; djui_hud_position_translate(&translatedX, &translatedY); @@ -520,25 +706,27 @@ static void djui_hud_render_texture_raw(const Texture* texture, u32 width, u32 h f32 translatedH = scaleH; djui_hud_size_translate(&translatedW); djui_hud_size_translate(&translatedH); - if (sRotation.rotation != 0) { - f32 pivotTranslationX = width * translatedW * sRotation.pivotX; - f32 pivotTranslationY = height * translatedH * sRotation.pivotY; + if (sHudUtilsState.rotation.degrees.prev != 0 || sHudUtilsState.rotation.degrees.curr != 0) { + djui_hud_create_interp_gfx(interp, INTERP_HUD_ROTATION); + f32 pivotTranslationX = width * translatedW * sHudUtilsState.rotation.pivotX.curr; + f32 pivotTranslationY = height * translatedH * sHudUtilsState.rotation.pivotY.curr; create_dl_translation_matrix(DJUI_MTX_NOPUSH, +pivotTranslationX, -pivotTranslationY, 0); - create_dl_rotation_matrix(DJUI_MTX_NOPUSH, sRotation.rotation, 0, 0, 1); + create_dl_rotation_matrix(DJUI_MTX_NOPUSH, sHudUtilsState.rotation.degrees.curr, 0, 0, 1); create_dl_translation_matrix(DJUI_MTX_NOPUSH, -pivotTranslationX, +pivotTranslationY, 0); } // translate scale + djui_hud_create_interp_gfx(interp, INTERP_HUD_SCALE); create_dl_scale_matrix(DJUI_MTX_NOPUSH, width * translatedW, height * translatedH, 1.0f); // render - djui_gfx_render_texture(texture, width, height, fmt, siz, sFilter); + djui_gfx_render_texture(texture, width, height, fmt, siz, sHudUtilsState.filter); // pop gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); } -static void djui_hud_render_texture_tile_raw(const Texture* texture, u32 width, u32 height, u8 fmt, u8 siz, f32 x, f32 y, f32 scaleW, f32 scaleH, u32 tileX, u32 tileY, u32 tileW, u32 tileH) { +static void djui_hud_render_texture_tile_raw(const Texture* texture, u32 width, u32 height, u8 fmt, u8 siz, f32 x, f32 y, f32 scaleW, f32 scaleH, u32 tileX, u32 tileY, u32 tileW, u32 tileH, struct InterpHud *interp) { if (!texture) { return; } gDjuiHudUtilsZ += 0.001f; @@ -546,6 +734,7 @@ static void djui_hud_render_texture_tile_raw(const Texture* texture, u32 width, if (height != 0) { scaleH *= (f32) tileH / (f32) height; } // translate position + djui_hud_create_interp_gfx(interp, INTERP_HUD_TRANSLATION); f32 translatedX = x; f32 translatedY = y; djui_hud_position_translate(&translatedX, &translatedY); @@ -556,20 +745,22 @@ static void djui_hud_render_texture_tile_raw(const Texture* texture, u32 width, f32 translatedH = scaleH; djui_hud_size_translate(&translatedW); djui_hud_size_translate(&translatedH); - if (sRotation.rotation != 0) { + if (sHudUtilsState.rotation.degrees.prev != 0 || sHudUtilsState.rotation.degrees.curr != 0) { + djui_hud_create_interp_gfx(interp, INTERP_HUD_ROTATION); f32 aspect = tileH ? ((f32) tileW / (f32) tileH) : 1.f; - f32 pivotTranslationX = width * translatedW * aspect * sRotation.pivotX; - f32 pivotTranslationY = height * translatedH * sRotation.pivotY; + f32 pivotTranslationX = width * translatedW * aspect * sHudUtilsState.rotation.pivotX.curr; + f32 pivotTranslationY = height * translatedH * sHudUtilsState.rotation.pivotY.curr; create_dl_translation_matrix(DJUI_MTX_NOPUSH, +pivotTranslationX, -pivotTranslationY, 0); - create_dl_rotation_matrix(DJUI_MTX_NOPUSH, sRotation.rotation, 0, 0, 1); + create_dl_rotation_matrix(DJUI_MTX_NOPUSH, sHudUtilsState.rotation.degrees.curr, 0, 0, 1); create_dl_translation_matrix(DJUI_MTX_NOPUSH, -pivotTranslationX, +pivotTranslationY, 0); } // translate scale + djui_hud_create_interp_gfx(interp, INTERP_HUD_SCALE); create_dl_scale_matrix(DJUI_MTX_NOPUSH, width * translatedW, height * translatedH, 1.0f); // render - djui_gfx_render_texture_tile(texture, width, height, fmt, siz, tileX, tileY, tileW, tileH, sFilter, false); + djui_gfx_render_texture_tile(texture, width, height, fmt, siz, tileX, tileY, tileW, tileH, sHudUtilsState.filter); // pop gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -577,44 +768,35 @@ static void djui_hud_render_texture_tile_raw(const Texture* texture, u32 width, void djui_hud_render_texture(struct TextureInfo* texInfo, f32 x, f32 y, f32 scaleW, f32 scaleH) { if (!texInfo) { return; } - djui_hud_render_texture_raw(texInfo->texture, texInfo->width, texInfo->height, texInfo->format, texInfo->size, x, y, scaleW, scaleH); + djui_hud_render_texture_raw(texInfo->texture, texInfo->width, texInfo->height, texInfo->format, texInfo->size, x, y, scaleW, scaleH, NULL); } void djui_hud_render_texture_tile(struct TextureInfo* texInfo, f32 x, f32 y, f32 scaleW, f32 scaleH, u32 tileX, u32 tileY, u32 tileW, u32 tileH) { if (!texInfo) { return; } - djui_hud_render_texture_tile_raw(texInfo->texture, texInfo->width, texInfo->height, texInfo->format, texInfo->size, x, y, scaleW, scaleH, tileX, tileY, tileW, tileH); + djui_hud_render_texture_tile_raw(texInfo->texture, texInfo->width, texInfo->height, texInfo->format, texInfo->size, x, y, scaleW, scaleH, tileX, tileY, tileW, tileH, NULL); } void djui_hud_render_texture_interpolated(struct TextureInfo* texInfo, f32 prevX, f32 prevY, f32 prevScaleW, f32 prevScaleH, f32 x, f32 y, f32 scaleW, f32 scaleH) { - Gfx* savedHeadPos = gDisplayListHead; - f32 savedZ = gDjuiHudUtilsZ; - if (!texInfo) { return; } - djui_hud_render_texture_raw(texInfo->texture, texInfo->width, texInfo->height, texInfo->format, texInfo->size, prevX, prevY, prevScaleW, prevScaleH); + struct InterpHud *interp = djui_hud_create_interp(); + if (interp) { + interp->posX.prev = prevX; + interp->posY.prev = prevY; + interp->posX.curr = x; + interp->posY.curr = y; + interp->scaleX.prev = prevScaleW; + interp->scaleY.prev = prevScaleH; + interp->scaleX.curr = scaleW; + interp->scaleY.curr = scaleH; + interp->width = texInfo->width; + interp->height = texInfo->height; + } - if (sInterpHudCount >= MAX_INTERP_HUD) { return; } - struct InterpHud* interp = &sInterpHuds[sInterpHudCount++]; - interp->headPos = savedHeadPos; - interp->prevX = prevX; - interp->prevY = prevY; - interp->prevScaleW = prevScaleW; - interp->prevScaleH = prevScaleH; - interp->x = x; - interp->y = y; - interp->scaleW = scaleW; - interp->scaleH = scaleH; - interp->width = texInfo->width; - interp->height = texInfo->height; - interp->z = savedZ; - interp->resolution = sResolution; - interp->rotation = sRotation; + djui_hud_render_texture_raw(texInfo->texture, texInfo->width, texInfo->height, texInfo->format, texInfo->size, prevX, prevY, prevScaleW, prevScaleH, interp); } void djui_hud_render_texture_tile_interpolated(struct TextureInfo* texInfo, f32 prevX, f32 prevY, f32 prevScaleW, f32 prevScaleH, f32 x, f32 y, f32 scaleW, f32 scaleH, u32 tileX, u32 tileY, u32 tileW, u32 tileH) { - Gfx* savedHeadPos = gDisplayListHead; - f32 savedZ = gDjuiHudUtilsZ; - if (!texInfo) { return; } // apply scale correction for tiles @@ -627,30 +809,28 @@ void djui_hud_render_texture_tile_interpolated(struct TextureInfo* texInfo, f32 prevScaleH *= ((f32)tileH / (f32)texInfo->height); } - djui_hud_render_texture_tile_raw(texInfo->texture, texInfo->width, texInfo->height, texInfo->format, texInfo->size, prevX, prevY, prevScaleW, prevScaleH, tileX, tileY, tileW, tileH); + struct InterpHud *interp = djui_hud_create_interp(); + if (interp) { + interp->posX.prev = prevX; + interp->posY.prev = prevY; + interp->posX.curr = x; + interp->posY.curr = y; + interp->scaleX.prev = prevScaleW; + interp->scaleY.prev = prevScaleH; + interp->scaleX.curr = scaleW; + interp->scaleY.curr = scaleH; + interp->width = texInfo->width; + interp->height = texInfo->height; + } - if (sInterpHudCount >= MAX_INTERP_HUD) { return; } - struct InterpHud* interp = &sInterpHuds[sInterpHudCount++]; - interp->headPos = savedHeadPos; - interp->prevX = prevX; - interp->prevY = prevY; - interp->prevScaleW = prevScaleW; - interp->prevScaleH = prevScaleH; - interp->x = x; - interp->y = y; - interp->scaleW = scaleW; - interp->scaleH = scaleH; - interp->width = texInfo->width; - interp->height = texInfo->height; - interp->z = savedZ; - interp->resolution = sResolution; - interp->rotation = sRotation; + djui_hud_render_texture_tile_raw(texInfo->texture, texInfo->width, texInfo->height, texInfo->format, texInfo->size, prevX, prevY, prevScaleW, prevScaleH, tileX, tileY, tileW, tileH, interp); } -void djui_hud_render_rect(f32 x, f32 y, f32 width, f32 height) { +static void djui_hud_render_rect_internal(f32 x, f32 y, f32 width, f32 height, struct InterpHud *interp) { gDjuiHudUtilsZ += 0.001f; // translate position + djui_hud_create_interp_gfx(interp, INTERP_HUD_TRANSLATION); f32 translatedX = x; f32 translatedY = y; djui_hud_position_translate(&translatedX, &translatedY); @@ -661,15 +841,17 @@ void djui_hud_render_rect(f32 x, f32 y, f32 width, f32 height) { f32 translatedH = height; djui_hud_size_translate(&translatedW); djui_hud_size_translate(&translatedH); - if (sRotation.rotation != 0) { - f32 pivotTranslationX = translatedW * sRotation.pivotX; - f32 pivotTranslationY = translatedH * sRotation.pivotY; + if (sHudUtilsState.rotation.degrees.prev != 0 || sHudUtilsState.rotation.degrees.curr != 0) { + djui_hud_create_interp_gfx(interp, INTERP_HUD_ROTATION); + f32 pivotTranslationX = translatedW * sHudUtilsState.rotation.pivotX.curr; + f32 pivotTranslationY = translatedH * sHudUtilsState.rotation.pivotY.curr; create_dl_translation_matrix(DJUI_MTX_NOPUSH, +pivotTranslationX, -pivotTranslationY, 0); - create_dl_rotation_matrix(DJUI_MTX_NOPUSH, sRotation.rotation, 0, 0, 1); + create_dl_rotation_matrix(DJUI_MTX_NOPUSH, sHudUtilsState.rotation.degrees.curr, 0, 0, 1); create_dl_translation_matrix(DJUI_MTX_NOPUSH, -pivotTranslationX, +pivotTranslationY, 0); } // translate scale + djui_hud_create_interp_gfx(interp, INTERP_HUD_SCALE); create_dl_scale_matrix(DJUI_MTX_NOPUSH, translatedW, translatedH, 1.0f); // render @@ -679,28 +861,26 @@ void djui_hud_render_rect(f32 x, f32 y, f32 width, f32 height) { gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); } +void djui_hud_render_rect(f32 x, f32 y, f32 width, f32 height) { + djui_hud_render_rect_internal(x, y, width, height, NULL); +} + void djui_hud_render_rect_interpolated(f32 prevX, f32 prevY, f32 prevWidth, f32 prevHeight, f32 x, f32 y, f32 width, f32 height) { - Gfx* savedHeadPos = gDisplayListHead; - f32 savedZ = gDjuiHudUtilsZ; + struct InterpHud *interp = djui_hud_create_interp(); + if (interp) { + interp->posX.prev = prevX; + interp->posY.prev = prevY; + interp->posX.curr = x; + interp->posY.curr = y; + interp->scaleX.prev = prevWidth; + interp->scaleY.prev = prevHeight; + interp->scaleX.curr = width; + interp->scaleY.curr = height; + interp->width = 1; + interp->height = 1; + } - djui_hud_render_rect(prevX, prevY, prevWidth, prevHeight); - - if (sInterpHudCount >= MAX_INTERP_HUD) { return; } - struct InterpHud* interp = &sInterpHuds[sInterpHudCount++]; - interp->headPos = savedHeadPos; - interp->prevX = prevX; - interp->prevY = prevY; - interp->prevScaleW = prevWidth; - interp->prevScaleH = prevHeight; - interp->x = x; - interp->y = y; - interp->scaleW = width; - interp->scaleH = height; - interp->width = 1; - interp->height = 1; - interp->z = savedZ; - interp->resolution = sResolution; - interp->rotation = sRotation; + djui_hud_render_rect_internal(prevX, prevY, prevWidth, prevHeight, interp); } void djui_hud_render_line(f32 p1X, f32 p1Y, f32 p2X, f32 p2Y, f32 size) { @@ -752,7 +932,7 @@ bool djui_hud_world_pos_to_screen_pos(Vec3f pos, VEC_OUT Vec3f out) { out[1] *= fovCoeff; f32 screenWidth, screenHeight; - if (sResolution == RESOLUTION_N64) { + if (sHudUtilsState.resolution == RESOLUTION_N64) { screenWidth = GFX_DIMENSIONS_ASPECT_RATIO * SCREEN_HEIGHT; screenHeight = SCREEN_HEIGHT; } else { diff --git a/src/pc/djui/djui_hud_utils.h b/src/pc/djui/djui_hud_utils.h index b4e1b9d08..353ee3511 100644 --- a/src/pc/djui/djui_hud_utils.h +++ b/src/pc/djui/djui_hud_utils.h @@ -1,6 +1,22 @@ #ifndef DJUI_HUD_UTILS_H #define DJUI_HUD_UTILS_H +// Common pivot values for rotation +#define ROTATION_PIVOT_X_LEFT 0.0 +#define ROTATION_PIVOT_X_CENTER 0.5 +#define ROTATION_PIVOT_X_RIGHT 1.0 +#define ROTATION_PIVOT_Y_TOP 0.0 +#define ROTATION_PIVOT_Y_CENTER 0.5 +#define ROTATION_PIVOT_Y_BOTTOM 1.0 + +// Common alignment values for text alignment +#define TEXT_HALIGN_LEFT 0.0 +#define TEXT_HALIGN_CENTER 0.5 +#define TEXT_HALIGN_RIGHT 1.0 +#define TEXT_VALIGN_TOP 0.0 +#define TEXT_VALIGN_CENTER 0.5 +#define TEXT_VALIGN_BOTTOM 1.0 + enum HudUtilsResolution { RESOLUTION_DJUI, RESOLUTION_N64, @@ -14,7 +30,8 @@ enum HudUtilsFilter { }; enum DjuiFontType { - FONT_NORMAL, + FONT_LEGACY = -1, + FONT_NORMAL = 0, FONT_MENU, FONT_HUD, FONT_ALIASED, @@ -24,15 +41,6 @@ enum DjuiFontType { FONT_COUNT, }; -struct HudUtilsRotation { - f32 rotation; - f32 rotationDiff; - f32 prevPivotX; - f32 prevPivotY; - f32 pivotX; - f32 pivotY; -}; - struct GlobalTextures { struct TextureInfo camera; struct TextureInfo lakitu; @@ -63,7 +71,7 @@ u8 djui_hud_get_filter(void); /* |description|Sets the current DJUI HUD texture filter|descriptionEnd| */ void djui_hud_set_filter(enum HudUtilsFilter filterType); /* |description|Gets the current DJUI HUD font|descriptionEnd| */ -u8 djui_hud_get_font(void); +s8 djui_hud_get_font(void); /* |description|Sets the current DJUI HUD font|descriptionEnd| */ void djui_hud_set_font(s8 fontType); /* |description|Gets the current DJUI HUD color|descriptionEnd| */ @@ -73,11 +81,17 @@ void djui_hud_set_color(u8 r, u8 g, u8 b, u8 a); /* |description|Resets the current DJUI HUD color|descriptionEnd| */ void djui_hud_reset_color(void); /* |description|Gets the current DJUI HUD rotation|descriptionEnd| */ -struct HudUtilsRotation* djui_hud_get_rotation(void); +void djui_hud_get_rotation(RET s16 *rotation, RET f32 *pivotX, RET f32 *pivotY); /* |description|Sets the current DJUI HUD rotation|descriptionEnd| */ void djui_hud_set_rotation(s16 rotation, f32 pivotX, f32 pivotY); /* |description|Sets the current DJUI HUD rotation interpolated|descriptionEnd| */ -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); +/* |description|Gets the current DJUI HUD text alignment|descriptionEnd| */ +void djui_hud_get_text_alignment(RET f32 *textHAlign, RET f32 *textVAlign); +/* |description|Sets the current DJUI HUD text alignment|descriptionEnd| */ +void djui_hud_set_text_alignment(f32 textHAlign, f32 textVAlign); +/* |description|Sets the current DJUI HUD text alignment interpolated|descriptionEnd| */ +void djui_hud_set_text_alignment_interpolated(f32 prevTextHAlign, f32 prevTextVAlign, f32 textHAlign, f32 textVAlign); /* |description|Gets the screen width in the current DJUI HUD resolution|descriptionEnd| */ u32 djui_hud_get_screen_width(void); diff --git a/src/pc/djui/djui_inputbox.c b/src/pc/djui/djui_inputbox.c index 878a3a94d..c0a911130 100644 --- a/src/pc/djui/djui_inputbox.c +++ b/src/pc/djui/djui_inputbox.c @@ -589,6 +589,8 @@ static bool djui_inputbox_render(struct DjuiBase* base) { f32 drawX = inputbox->viewX; f32 additionalShift = 0; bool wasInsideSelection = false; + + font->render_begin(); for (u16 i = 0; i < inputbox->bufferSize; i++) { //render composition text @@ -617,6 +619,7 @@ static bool djui_inputbox_render(struct DjuiBase* base) { djui_inputbox_render_char(inputbox, c, &drawX, &additionalShift); c = djui_unicode_next_char(c); } + font->render_end(); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, dl_ia_text_end); diff --git a/src/pc/djui/djui_panel_mod_menu.c b/src/pc/djui/djui_panel_mod_menu.c index 782fcddee..36437b2c6 100644 --- a/src/pc/djui/djui_panel_mod_menu.c +++ b/src/pc/djui/djui_panel_mod_menu.c @@ -113,7 +113,8 @@ void djui_panel_mod_menu_mod_create(struct DjuiBase* caller) { } if (mod == NULL) { return; } - struct DjuiThreePanel* panel = djui_panel_menu_create(to_uppercase(mod->name), false); + char *modNameUppercase = to_uppercase(mod->name); + struct DjuiThreePanel* panel = djui_panel_menu_create(modNameUppercase, false); struct DjuiBase* body = djui_three_panel_get_body(panel); { struct DjuiPaginated* paginated = djui_paginated_create(body, 8); @@ -130,6 +131,7 @@ void djui_panel_mod_menu_mod_create(struct DjuiBase* caller) { } djui_panel_add(caller, panel, NULL); + free(modNameUppercase); } void djui_panel_mod_menu_create(struct DjuiBase* caller) { diff --git a/src/pc/djui/djui_text.c b/src/pc/djui/djui_text.c index 48f362aac..26fd4ea9c 100644 --- a/src/pc/djui/djui_text.c +++ b/src/pc/djui/djui_text.c @@ -4,10 +4,146 @@ #include "djui_hud_utils.h" #include "game/segment2.h" -static u8 sSavedR = 0; -static u8 sSavedG = 0; -static u8 sSavedB = 0; -static u8 sSavedA = 0; + /////////// + // color // +/////////// + +static const struct DjuiColor sDjuiTextDefaultColor = { 220, 220, 220, 255 }; +static struct DjuiColor sDjuiTextCurrentColor; + +bool djui_text_parse_color(char *begin, const char *end, bool ignoreAlpha, const struct DjuiColor *baseColor, char **nextChar, struct DjuiColor *parsedColor) { + char *c = begin; + + // Not an escape + if (*c != '\\') { + return false; + } + c = djui_unicode_next_char(c); + + // Not a color + if (*c != '#') { + return false; + } + c = djui_unicode_next_char(c); + + // Parse color + u32 color = 0; + u8 length = 0; + while (c < end) { + if (*c == '\\') { + break; + } + + u8 colorPiece = 0; + if (*c >= '0' && *c <= '9') { colorPiece = *c - '0'; } + else if (*c >= 'a' && *c <= 'f') { colorPiece = 10 + *c - 'a'; } + else if (*c >= 'A' && *c <= 'F') { colorPiece = 10 + *c - 'A'; } + else { // Not a valid color piece + return false; + } + color = (color << 4) | colorPiece; + length++; + + c = djui_unicode_next_char(c); + } + + // Unterminated color code + if (c == end) { + return false; + } + + switch (length) { + + // reset to base color + case 0: { + if (baseColor && parsedColor) { + *parsedColor = *baseColor; + } + } break; + + // #rgb + case 3: { + if (parsedColor) { + u32 r = (color >> 8) & 0xF; + u32 g = (color >> 4) & 0xF; + u32 b = (color >> 0) & 0xF; + parsedColor->r = (r << 4) | r; + parsedColor->g = (g << 4) | g; + parsedColor->b = (b << 4) | b; + parsedColor->a = 0xFF; + } + } break; + + // #rgba + case 4: { + if (parsedColor) { + u32 r = (color >> 12) & 0xF; + u32 g = (color >> 8) & 0xF; + u32 b = (color >> 4) & 0xF; + u32 a = (color >> 0) & 0xF; + parsedColor->r = (r << 4) | r; + parsedColor->g = (g << 4) | g; + parsedColor->b = (b << 4) | b; + parsedColor->a = ignoreAlpha ? 0xFF : ((a << 4) | a); + } + } break; + + // #rrggbb + case 6: { + if (parsedColor) { + parsedColor->r = ((color >> 16) & 0xFF); + parsedColor->g = ((color >> 8) & 0xFF); + parsedColor->b = ((color >> 0) & 0xFF); + parsedColor->a = 0xFF; + } + } break; + + // #rrggbbaa + case 8: { + if (parsedColor) { + parsedColor->r = ((color >> 24) & 0xFF); + parsedColor->g = ((color >> 16) & 0xFF); + parsedColor->b = ((color >> 8) & 0xFF); + parsedColor->a = ignoreAlpha ? 0xFF : ((color >> 0) & 0xFF); + } + } break; + + // Invalid color + default: return false; + } + + if (nextChar) { + *nextChar = djui_unicode_next_char(c); + } + return true; +} + +void djui_text_remove_colors(char *str) { + if (!str) { return; } + char *colorStart = str; + const char *strEnd = str + strlen(str); + while ((colorStart = strstr(colorStart, "\\#"))) { + char *colorEnd; + if (djui_text_parse_color(colorStart, strEnd, false, NULL, &colorEnd, NULL) && colorEnd > colorStart) { + memmove(colorStart, colorEnd, strlen(colorEnd) + 1); + } else { + colorStart++; + } + } +} + +char *djui_text_get_uncolored_string(char *dest, size_t length, const char *str) { + if (!dest) { + dest = malloc(length * sizeof(char)); + if (!dest) { + return NULL; + } + } + strncpy(dest, str, length - 1); + dest[length - 1] = 0; + djui_text_remove_colors(dest); + return dest; +} //////////////// // properties // @@ -59,6 +195,10 @@ static f32 sTextRenderY = 0; static f32 sTextRenderLastX = 0; static f32 sTextRenderLastY = 0; +bool djui_text_is_printable(const char *c) { + return c != NULL && (!iscntrl(*c) || *c == 0x7F); // the star +} + static void djui_text_translate(f32 x, f32 y) { sTextRenderX += x; sTextRenderY += y; @@ -90,7 +230,7 @@ static void djui_text_render_char(struct DjuiText* text, char* c) { sTextRenderY += 1.0f / text->fontScale; gDPSetEnvColor(gDisplayListHead++, text->dropShadow.r, text->dropShadow.g, text->dropShadow.b, text->dropShadow.a); djui_text_render_single_char(text, c); - gDPSetEnvColor(gDisplayListHead++, sSavedR, sSavedG, sSavedB, sSavedA); + gDPSetEnvColor(gDisplayListHead++, sDjuiTextCurrentColor.r, sDjuiTextCurrentColor.g, sDjuiTextCurrentColor.b, sDjuiTextCurrentColor.a); sTextRenderX -= 1.0f / text->fontScale; sTextRenderY -= 1.0f / text->fontScale; } @@ -99,16 +239,21 @@ static void djui_text_render_char(struct DjuiText* text, char* c) { static f32 djui_text_measure_word_width(struct DjuiText* text, char* message) { f32 width = 0; - bool skipping = false; char* c = message; + const char *end = message + strlen(message); while (*c != '\0') { - if (*c == ' ') { return width; } - if (*c == '\n') { return width; } - if (*c == '\0') { return width; } - if (*c == '\\') { skipping = !skipping; } - if (!skipping) { - width += text->font->char_width(c); + + // color code + if (djui_text_parse_color(c, end, true, NULL, &c, NULL)) { + continue; } + + // end of word due to unprintable chars or space + if (!djui_text_is_printable(c) || *c == ' ') { + return width; + } + + width += text->font->char_width(c); c = djui_unicode_next_char(c); } return width; @@ -122,17 +267,18 @@ static void djui_text_read_line(struct DjuiText* text, char** message, f32* line u16 lastSafeEllipsesIndex = *index; u16 lastSafeEllipsesLineWidth = *lineWidth + ellipsesWidth;*/ - bool skipping = false; char* c = *message; + const char *end = *message + strlen(*message); while (*c != '\0') { f32 charWidth = text->font->char_width(c); - // check for special escape sequences - if (*c == '\\') { skipping = !skipping; } - if (skipping || *c == '\\') { + // check for color code + if (*c == '\\') { lastC = c; - c = djui_unicode_next_char(c); - continue; + if (djui_text_parse_color(c, end, true, NULL, &c, NULL)) { + lastC = c; + continue; + } } // check for newline @@ -212,59 +358,6 @@ f32 djui_text_find_width(struct DjuiText* text, u16 maxLines) { return largestWidth * text->fontScale; } -static char* djui_text_render_line_parse_escape(char* c1, char* c2) { - bool parsingColor = (c1[1] == '#'); - char* c = parsingColor ? (c1 + 2) : (c1 + 1); - - u32 color = 0; - u8 colorPieces = 0; - while (c < c2) { - if (*c == '\\') { break; } - if (parsingColor) { - u8 colorPiece = 0; - if (*c >= '0' && *c <= '9') { colorPiece = *c - '0'; } - else if (*c >= 'a' && *c <= 'f') { colorPiece = 10 + *c - 'a'; } - else if (*c >= 'A' && *c <= 'F') { colorPiece = 10 + *c - 'A'; } - color = (color << 4) | colorPiece; - colorPieces++; - } - c = djui_unicode_next_char(c); - } - - if (parsingColor) { - if (colorPieces == 3) { - u32 r = (color >> 8) & 0xF; - u32 g = (color >> 4) & 0xF; - u32 b = (color >> 0) & 0xF; - sSavedR = (r << 4) | r; - sSavedG = (g << 4) | g; - sSavedB = (b << 4) | b; - /*} else if (colorPieces == 4) { - u32 r = (color >> 12) & 0xF; - u32 g = (color >> 8) & 0xF; - u32 b = (color >> 4) & 0xF; - u32 a = (color >> 0) & 0xF; - sSavedR = (r << 4) | r; - sSavedG = (g << 4) | g; - sSavedB = (b << 4) | b; - sSavedA = (a << 4) | a;*/ - } else if (colorPieces == 6) { - sSavedR = ((color >> 16) & 0xFF); - sSavedG = ((color >> 8) & 0xFF); - sSavedB = ((color >> 0) & 0xFF); - }/*else if (colorPieces == 8) { - sSavedR = ((color >> 24) & 0xFF); - sSavedG = ((color >> 16) & 0xFF); - sSavedB = ((color >> 8) & 0xFF); - sSavedA = ((color >> 0) & 0xFF); - }*/ - gDPSetEnvColor(gDisplayListHead++, sSavedR, sSavedG, sSavedB, sSavedA); - } - - c = djui_unicode_next_char(c); - return c; -} - static void djui_text_render_line(struct DjuiText* text, char* c1, char* c2, f32 lineWidth, bool ellipses) { struct DjuiBase* base = &text->base; struct DjuiBaseRect* comp = &base->comp; @@ -284,9 +377,13 @@ static void djui_text_render_line(struct DjuiText* text, char* c1, char* c2, f32 } // render the line + text->font->render_begin(); + for (char* c = c1; c < c2;) { - if (*c == '\\') { - c = djui_text_render_line_parse_escape(c, c2); + struct DjuiColor parsedColor; + if (djui_text_parse_color(c, c2, true, &sDjuiTextDefaultColor, &c, &parsedColor)) { + gDPSetEnvColor(gDisplayListHead++, parsedColor.r, parsedColor.g, parsedColor.b, parsedColor.a); + sDjuiTextCurrentColor = parsedColor; continue; } @@ -312,6 +409,8 @@ static void djui_text_render_line(struct DjuiText* text, char* c1, char* c2, f32 } } + text->font->render_end(); + // reset translation matrix djui_text_translate(-curWidth, text->font->lineHeight); } @@ -352,10 +451,7 @@ static bool djui_text_render(struct DjuiBase* base) { // set color gDPSetEnvColor(gDisplayListHead++, base->color.r, base->color.g, base->color.b, base->color.a); - sSavedR = base->color.r; - sSavedG = base->color.g; - sSavedB = base->color.b; - sSavedA = base->color.a; + sDjuiTextCurrentColor = base->color; // count lines u16 maxLines = comp->height / ((f32)text->font->lineHeight * text->fontScale); diff --git a/src/pc/djui/djui_text.h b/src/pc/djui/djui_text.h index 2d8f84ee5..89e6da0cb 100644 --- a/src/pc/djui/djui_text.h +++ b/src/pc/djui/djui_text.h @@ -11,12 +11,17 @@ struct DjuiText { enum DjuiVAlign textVAlign; }; +bool djui_text_parse_color(char *begin, const char *end, bool ignoreAlpha, const struct DjuiColor *baseColor, char **nextChar, struct DjuiColor *parsedColor); +void djui_text_remove_colors(char *str); +char *djui_text_get_uncolored_string(char *dest, size_t length, const char *str); + void djui_text_set_text(struct DjuiText* text, const char* message); void djui_text_set_font(struct DjuiText* text, const struct DjuiFont* font); void djui_text_set_font_scale(struct DjuiText* text, f32 fontScale); void djui_text_set_drop_shadow(struct DjuiText* text, f32 r, f32 g, f32 b, f32 a); void djui_text_set_alignment(struct DjuiText* text, enum DjuiHAlign hAlign, enum DjuiVAlign vAlign); +bool djui_text_is_printable(const char *c); int djui_text_count_lines(struct DjuiText* text, u16 maxLines); f32 djui_text_find_width(struct DjuiText* text, u16 maxLines); diff --git a/src/pc/djui/djui_unicode.c b/src/pc/djui/djui_unicode.c index e97cd8551..4714be653 100644 --- a/src/pc/djui/djui_unicode.c +++ b/src/pc/djui/djui_unicode.c @@ -204,7 +204,7 @@ struct SmCodeGlyph sSmCodeDuplicateGlyphs[] = { static void* sCharMap = NULL; -static s32 count_bytes_for_char(char* text) { +static s32 count_bytes_for_char(const char* text) { s32 bytes = 0; u8 mask = (1 << 7); while (*text & mask) { @@ -214,7 +214,7 @@ static s32 count_bytes_for_char(char* text) { return bytes ? bytes : 1; } -static u64 convert_unicode_char_to_u64(char* text) { +static u64 convert_unicode_char_to_u64(const char* text) { s32 bytes = count_bytes_for_char(text); u64 value = (u8)*text; @@ -273,7 +273,7 @@ void djui_unicode_init(void) { } } -u32 djui_unicode_get_sprite_index(char* text) { +u32 djui_unicode_get_sprite_index(const char* text) { // check for ASCI if ((u8)*text < 128) { // make sure it's in the valid range @@ -298,7 +298,7 @@ u32 djui_unicode_get_sprite_index(char* text) { return (u8)'?' - SPRITE_INDEX_START_CHAR; } -f32 djui_unicode_get_sprite_width(char* text, const f32 font_widths[], f32 unicodeScale) { +f32 djui_unicode_get_sprite_width(const char* text, const f32 font_widths[], f32 unicodeScale) { if (!text) { return 0; } // check for ASCII @@ -358,7 +358,7 @@ size_t djui_unicode_len(char* text) { return len; } -bool djui_unicode_valid_char(char* text) { +bool djui_unicode_valid_char(const char* text) { if ((u8)*text < 128) { return ((u8)*text >= ' '); } @@ -397,7 +397,7 @@ void djui_unicode_cleanup_end(char* text) { } } -char djui_unicode_get_base_char(char* text) { +char djui_unicode_get_base_char(const char* text) { if ((u8)*text < ' ') { return '?'; } if ((u8)*text < 128) { return *text; } if (!sCharMap) { return '?'; } @@ -406,7 +406,7 @@ char djui_unicode_get_base_char(char* text) { return (glyph == NULL) ? '?' : glyph->base; } -void djui_unicode_get_char(char* text, char* output) { +void djui_unicode_get_char(const char* text, char* output) { s32 bytes = count_bytes_for_char(text); while (bytes-- > 0) { *output = *text; diff --git a/src/pc/djui/djui_unicode.h b/src/pc/djui/djui_unicode.h index 59d138162..f99735e6f 100644 --- a/src/pc/djui/djui_unicode.h +++ b/src/pc/djui/djui_unicode.h @@ -4,12 +4,12 @@ #include void djui_unicode_init(void); -u32 djui_unicode_get_sprite_index(char* text); -f32 djui_unicode_get_sprite_width(char* text, const f32 font_widths[], f32 unicodeScale); +u32 djui_unicode_get_sprite_index(const char* text); +f32 djui_unicode_get_sprite_width(const char* text, const f32 font_widths[], f32 unicodeScale); char* djui_unicode_next_char(char* text); char* djui_unicode_at_index(char* text, s32 index); size_t djui_unicode_len(char* text); -bool djui_unicode_valid_char(char* text); +bool djui_unicode_valid_char(const char* text); void djui_unicode_cleanup_end(char* text); -char djui_unicode_get_base_char(char* text); -void djui_unicode_get_char(char* text, char* output); +char djui_unicode_get_base_char(const char* text); +void djui_unicode_get_char(const char* text, char* output); diff --git a/src/pc/lua/smlua_cobject_autogen.c b/src/pc/lua/smlua_cobject_autogen.c index e2cbf87ea..35a3ce52d 100644 --- a/src/pc/lua/smlua_cobject_autogen.c +++ b/src/pc/lua/smlua_cobject_autogen.c @@ -1228,16 +1228,6 @@ static struct LuaObjectField sGraphNodeTranslationRotationFields[LUA_GRAPH_NODE_ { "translation", LVT_COBJECT, offsetof(struct GraphNodeTranslationRotation, translation), true, LOT_VEC3S, 1, sizeof(Vec3s) }, }; -#define LUA_HUD_UTILS_ROTATION_FIELD_COUNT 6 -static struct LuaObjectField sHudUtilsRotationFields[LUA_HUD_UTILS_ROTATION_FIELD_COUNT] = { - { "pivotX", LVT_F32, offsetof(struct HudUtilsRotation, pivotX), false, LOT_NONE, 1, sizeof(f32) }, - { "pivotY", LVT_F32, offsetof(struct HudUtilsRotation, pivotY), false, LOT_NONE, 1, sizeof(f32) }, - { "prevPivotX", LVT_F32, offsetof(struct HudUtilsRotation, prevPivotX), false, LOT_NONE, 1, sizeof(f32) }, - { "prevPivotY", LVT_F32, offsetof(struct HudUtilsRotation, prevPivotY), false, LOT_NONE, 1, sizeof(f32) }, - { "rotation", LVT_F32, offsetof(struct HudUtilsRotation, rotation), false, LOT_NONE, 1, sizeof(f32) }, - { "rotationDiff", LVT_F32, offsetof(struct HudUtilsRotation, rotationDiff), false, LOT_NONE, 1, sizeof(f32) }, -}; - #define LUA_INSTANT_WARP_FIELD_COUNT 3 static struct LuaObjectField sInstantWarpFields[LUA_INSTANT_WARP_FIELD_COUNT] = { { "area", LVT_U8, offsetof(struct InstantWarp, area), false, LOT_NONE, 1, sizeof(u8) }, @@ -1484,7 +1474,7 @@ static struct LuaObjectField sModFields[LUA_MOD_FIELD_COUNT] = { { "incompatible", LVT_STRING_P, offsetof(struct Mod, incompatible), true, LOT_NONE, 1, sizeof(char*) }, { "index", LVT_S32, offsetof(struct Mod, index), true, LOT_NONE, 1, sizeof(s32) }, { "isDirectory", LVT_BOOL, offsetof(struct Mod, isDirectory), true, LOT_NONE, 1, sizeof(bool) }, - { "name", LVT_STRING_P, offsetof(struct Mod, name), true, LOT_NONE, 1, sizeof(char*) }, + { "name", LVT_STRING, offsetof(struct Mod, name), true, LOT_NONE, 1, sizeof(char) }, { "pausable", LVT_BOOL, offsetof(struct Mod, pausable), true, LOT_NONE, 1, sizeof(bool) }, { "relativePath", LVT_STRING, offsetof(struct Mod, relativePath), true, LOT_NONE, 1, sizeof(char) }, { "renderBehindHud", LVT_BOOL, offsetof(struct Mod, renderBehindHud), true, LOT_NONE, 1, sizeof(bool) }, @@ -2734,7 +2724,6 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] { LOT_GRAPHNODESWITCHCASE, sGraphNodeSwitchCaseFields, LUA_GRAPH_NODE_SWITCH_CASE_FIELD_COUNT }, { LOT_GRAPHNODETRANSLATION, sGraphNodeTranslationFields, LUA_GRAPH_NODE_TRANSLATION_FIELD_COUNT }, { LOT_GRAPHNODETRANSLATIONROTATION, sGraphNodeTranslationRotationFields, LUA_GRAPH_NODE_TRANSLATION_ROTATION_FIELD_COUNT }, - { LOT_HUDUTILSROTATION, sHudUtilsRotationFields, LUA_HUD_UTILS_ROTATION_FIELD_COUNT }, { LOT_INSTANTWARP, sInstantWarpFields, LUA_INSTANT_WARP_FIELD_COUNT }, { LOT_LAKITUSTATE, sLakituStateFields, LUA_LAKITU_STATE_FIELD_COUNT }, { LOT_LEVELVALUES, sLevelValuesFields, LUA_LEVEL_VALUES_FIELD_COUNT }, @@ -2840,7 +2829,6 @@ const char *sLuaLotNames[] = { [LOT_GRAPHNODESWITCHCASE] = "GraphNodeSwitchCase", [LOT_GRAPHNODETRANSLATION] = "GraphNodeTranslation", [LOT_GRAPHNODETRANSLATIONROTATION] = "GraphNodeTranslationRotation", - [LOT_HUDUTILSROTATION] = "HudUtilsRotation", [LOT_INSTANTWARP] = "InstantWarp", [LOT_LAKITUSTATE] = "LakituState", [LOT_LEVELVALUES] = "LevelValues", diff --git a/src/pc/lua/smlua_cobject_autogen.h b/src/pc/lua/smlua_cobject_autogen.h index 291e0f3ee..d034ce9f7 100644 --- a/src/pc/lua/smlua_cobject_autogen.h +++ b/src/pc/lua/smlua_cobject_autogen.h @@ -74,7 +74,6 @@ enum LuaObjectAutogenType { LOT_GRAPHNODESWITCHCASE, LOT_GRAPHNODETRANSLATION, LOT_GRAPHNODETRANSLATIONROTATION, - LOT_HUDUTILSROTATION, LOT_INSTANTWARP, LOT_LAKITUSTATE, LOT_LEVELVALUES, diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index bc67f2ae0..d7ca5a882 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -1488,12 +1488,25 @@ char gSmluaConstants[] = "" "CONSOLE_MESSAGE_INFO=0\n" "CONSOLE_MESSAGE_WARNING=1\n" "CONSOLE_MESSAGE_ERROR=2\n" +"ROTATION_PIVOT_X_LEFT=0.0\n" +"ROTATION_PIVOT_X_CENTER=0.5\n" +"ROTATION_PIVOT_X_RIGHT=1.0\n" +"ROTATION_PIVOT_Y_TOP=0.0\n" +"ROTATION_PIVOT_Y_CENTER=0.5\n" +"ROTATION_PIVOT_Y_BOTTOM=1.0\n" +"TEXT_HALIGN_LEFT=0.0\n" +"TEXT_HALIGN_CENTER=0.5\n" +"TEXT_HALIGN_RIGHT=1.0\n" +"TEXT_VALIGN_TOP=0.0\n" +"TEXT_VALIGN_CENTER=0.5\n" +"TEXT_VALIGN_BOTTOM=1.0\n" "RESOLUTION_DJUI=0\n" "RESOLUTION_N64=1\n" "RESOLUTION_COUNT=2\n" "FILTER_NEAREST=0\n" "FILTER_LINEAR=1\n" "FILTER_COUNT=2\n" +"FONT_LEGACY=-1\n" "FONT_NORMAL=0\n" "FONT_MENU=1\n" "FONT_HUD=2\n" diff --git a/src/pc/lua/smlua_functions.c b/src/pc/lua/smlua_functions.c index cdbd868c0..4054a3ebd 100644 --- a/src/pc/lua/smlua_functions.c +++ b/src/pc/lua/smlua_functions.c @@ -945,7 +945,7 @@ int smlua_func_get_uncolored_string(lua_State* L) { const char *str = smlua_to_string(L, 1); if (!gSmLuaConvertSuccess) { LOG_LUA("get_uncolored_string: Failed to convert parameter 1"); return 0; } - char *strNoColor = str_remove_color_codes(str); + char *strNoColor = djui_text_get_uncolored_string(NULL, strlen(str) + 1, str); lua_pushstring(L, strNoColor); free(strNoColor); diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index c4b6b4f0e..e227a54aa 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -12318,7 +12318,7 @@ int smlua_func_djui_hud_reset_color(UNUSED lua_State* L) { return 1; } -int smlua_func_djui_hud_get_rotation(UNUSED lua_State* L) { +int smlua_func_djui_hud_get_rotation(lua_State* L) { if (L == NULL) { return 0; } int top = lua_gettop(L); @@ -12328,9 +12328,17 @@ int smlua_func_djui_hud_get_rotation(UNUSED lua_State* L) { } - smlua_push_object(L, LOT_HUDUTILSROTATION, djui_hud_get_rotation(), NULL); + s16 rotation; + f32 pivotX; + f32 pivotY; - return 1; + djui_hud_get_rotation(&rotation, &pivotX, &pivotY); + + lua_pushinteger(L, rotation); + lua_pushnumber(L, pivotX); + lua_pushnumber(L, pivotY); + + return 3; } int smlua_func_djui_hud_set_rotation(lua_State* L) { @@ -12363,13 +12371,13 @@ int smlua_func_djui_hud_set_rotation_interpolated(lua_State* L) { return 0; } - s32 prevRotation = smlua_to_integer(L, 1); + s16 prevRotation = smlua_to_integer(L, 1); if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "djui_hud_set_rotation_interpolated"); return 0; } f32 prevPivotX = smlua_to_number(L, 2); if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "djui_hud_set_rotation_interpolated"); return 0; } f32 prevPivotY = smlua_to_number(L, 3); if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "djui_hud_set_rotation_interpolated"); return 0; } - s32 rotation = smlua_to_integer(L, 4); + s16 rotation = smlua_to_integer(L, 4); if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 4, "djui_hud_set_rotation_interpolated"); return 0; } f32 pivotX = smlua_to_number(L, 5); if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 5, "djui_hud_set_rotation_interpolated"); return 0; } @@ -12381,6 +12389,69 @@ int smlua_func_djui_hud_set_rotation_interpolated(lua_State* L) { return 1; } +int smlua_func_djui_hud_get_text_alignment(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 0) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "djui_hud_get_text_alignment", 0, top); + return 0; + } + + + f32 textHAlign; + f32 textVAlign; + + djui_hud_get_text_alignment(&textHAlign, &textVAlign); + + lua_pushnumber(L, textHAlign); + lua_pushnumber(L, textVAlign); + + return 2; +} + +int smlua_func_djui_hud_set_text_alignment(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 2) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "djui_hud_set_text_alignment", 2, top); + return 0; + } + + f32 textHAlign = smlua_to_number(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "djui_hud_set_text_alignment"); return 0; } + f32 textVAlign = smlua_to_number(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "djui_hud_set_text_alignment"); return 0; } + + djui_hud_set_text_alignment(textHAlign, textVAlign); + + return 1; +} + +int smlua_func_djui_hud_set_text_alignment_interpolated(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 4) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "djui_hud_set_text_alignment_interpolated", 4, top); + return 0; + } + + f32 prevTextHAlign = smlua_to_number(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "djui_hud_set_text_alignment_interpolated"); return 0; } + f32 prevTextVAlign = smlua_to_number(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "djui_hud_set_text_alignment_interpolated"); return 0; } + f32 textHAlign = smlua_to_number(L, 3); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "djui_hud_set_text_alignment_interpolated"); return 0; } + f32 textVAlign = smlua_to_number(L, 4); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 4, "djui_hud_set_text_alignment_interpolated"); return 0; } + + djui_hud_set_text_alignment_interpolated(prevTextHAlign, prevTextVAlign, textHAlign, textVAlign); + + return 1; +} + int smlua_func_djui_hud_get_screen_width(UNUSED lua_State* L) { if (L == NULL) { return 0; } @@ -37389,6 +37460,9 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "djui_hud_get_rotation", smlua_func_djui_hud_get_rotation); smlua_bind_function(L, "djui_hud_set_rotation", smlua_func_djui_hud_set_rotation); smlua_bind_function(L, "djui_hud_set_rotation_interpolated", smlua_func_djui_hud_set_rotation_interpolated); + smlua_bind_function(L, "djui_hud_get_text_alignment", smlua_func_djui_hud_get_text_alignment); + smlua_bind_function(L, "djui_hud_set_text_alignment", smlua_func_djui_hud_set_text_alignment); + smlua_bind_function(L, "djui_hud_set_text_alignment_interpolated", smlua_func_djui_hud_set_text_alignment_interpolated); smlua_bind_function(L, "djui_hud_get_screen_width", smlua_func_djui_hud_get_screen_width); smlua_bind_function(L, "djui_hud_get_screen_height", smlua_func_djui_hud_get_screen_height); smlua_bind_function(L, "djui_hud_get_mouse_x", smlua_func_djui_hud_get_mouse_x); diff --git a/src/pc/lua/smlua_hooks.c b/src/pc/lua/smlua_hooks.c index 9bfc6dceb..fc1dafcae 100644 --- a/src/pc/lua/smlua_hooks.c +++ b/src/pc/lua/smlua_hooks.c @@ -952,7 +952,7 @@ char** smlua_get_chat_subcommands_list(const char* maincommand) { for (s32 i = 0; i < sHookedChatCommandsCount; i++) { struct LuaHookedChatCommand* hook = &sHookedChatCommands[i]; if (strcmp(hook->command, maincommand) == 0) { - char* noColorsDesc = str_remove_color_codes(hook->description); + char* noColorsDesc = djui_text_get_uncolored_string(NULL, strlen(hook->description) + 1, hook->description); char* startSubcommands = strstr(noColorsDesc, "["); char* endSubcommands = strstr(noColorsDesc, "]"); diff --git a/src/pc/mods/mod.c b/src/pc/mods/mod.c index aca944c85..03f63ce39 100644 --- a/src/pc/mods/mod.c +++ b/src/pc/mods/mod.c @@ -197,11 +197,6 @@ void mod_clear(struct Mod* mod) { } } - if (mod->name != NULL) { - free(mod->name); - mod->name = NULL; - } - if (mod->incompatible != NULL) { free(mod->incompatible); mod->incompatible = NULL; @@ -449,7 +444,7 @@ static void mod_extract_fields(struct Mod* mod) { fseek(f, 0, SEEK_SET); // default to null - mod->name = NULL; + mod->name[0] = 0; mod->incompatible = NULL; mod->category = NULL; mod->description = NULL; @@ -457,7 +452,7 @@ static void mod_extract_fields(struct Mod* mod) { mod->ignoreScriptWarnings = false; // read line-by-line - #define BUFFER_SIZE MAX(MAX(MOD_NAME_MAX_LENGTH, MOD_INCOMPATIBLE_MAX_LENGTH), MOD_DESCRIPTION_MAX_LENGTH) + #define BUFFER_SIZE MAX(MAX(MOD_NAME_SIZE, MOD_INCOMPATIBLE_SIZE), MOD_DESCRIPTION_SIZE) char buffer[BUFFER_SIZE] = { 0 }; while (!feof(f)) { file_get_line(buffer, BUFFER_SIZE, f); @@ -470,24 +465,23 @@ static void mod_extract_fields(struct Mod* mod) { // extract the field char* extracted = NULL; - if (mod->name == NULL && (extracted = extract_lua_field("-- name:", buffer))) { - mod->name = calloc(MOD_NAME_MAX_LENGTH + 1, sizeof(char)); - if (snprintf(mod->name, MOD_NAME_MAX_LENGTH, "%s", extracted) < 0) { + if (!mod->name[0] && (extracted = extract_lua_field("-- name:", buffer))) { + if (snprintf(mod->name, MOD_NAME_SIZE, "%s", extracted) < 0) { LOG_INFO("Truncated mod name field '%s'", mod->name); } } else if (mod->incompatible == NULL && (extracted = extract_lua_field("-- incompatible:", buffer))) { - mod->incompatible = calloc(MOD_INCOMPATIBLE_MAX_LENGTH + 1, sizeof(char)); - if (snprintf(mod->incompatible, MOD_INCOMPATIBLE_MAX_LENGTH, "%s", extracted) < 0) { + mod->incompatible = calloc(MOD_INCOMPATIBLE_SIZE, sizeof(char)); + if (snprintf(mod->incompatible, MOD_INCOMPATIBLE_SIZE, "%s", extracted) < 0) { LOG_INFO("Truncated mod incompatible field '%s'", mod->incompatible); } } else if (mod->category == NULL && (extracted = extract_lua_field("-- category:", buffer))) { - mod->category = calloc(MOD_CATEGORY_MAX_LENGTH + 1, sizeof(char)); - if (snprintf(mod->category, MOD_CATEGORY_MAX_LENGTH, "%s", extracted) < 0) { + mod->category = calloc(MOD_CATEGORY_SIZE, sizeof(char)); + if (snprintf(mod->category, MOD_CATEGORY_SIZE, "%s", extracted) < 0) { LOG_INFO("Truncated mod category field '%s'", mod->category); } } else if (mod->description == NULL && (extracted = extract_lua_field("-- description:", buffer))) { - mod->description = calloc(MOD_DESCRIPTION_MAX_LENGTH + 1, sizeof(char)); - if (snprintf(mod->description, MOD_DESCRIPTION_MAX_LENGTH, "%s", extracted) < 0) { + mod->description = calloc(MOD_DESCRIPTION_SIZE, sizeof(char)); + if (snprintf(mod->description, MOD_DESCRIPTION_SIZE, "%s", extracted) < 0) { LOG_INFO("Truncated mod description field '%s'", mod->description); } } else if ((extracted = extract_lua_field("-- pausable:", buffer))) { @@ -632,17 +626,19 @@ bool mod_load(struct Mods* mods, char* basePath, char* modName) { mod_extract_fields(mod); // set name - if (mod->name == NULL) { - mod->name = strdup(modName); + if (!mod->name[0]) { + if (snprintf(mod->name, MOD_NAME_SIZE, "%s", modName) < 0) { + LOG_INFO("Truncated mod name field '%s'", mod->name); + } } // set category if (mod->category == NULL) { - char *modNameNoColor = str_remove_color_codes(mod->name); + char modNameNoColor[MOD_NAME_SIZE]; + djui_text_get_uncolored_string(modNameNoColor, MOD_NAME_SIZE, mod->name); if (strstr(modNameNoColor, "[CS]") == modNameNoColor) { mod->category = strdup("cs"); } - free(modNameNoColor); } // print diff --git a/src/pc/mods/mod.h b/src/pc/mods/mod.h index ea1e6c72a..9f14f361e 100644 --- a/src/pc/mods/mod.h +++ b/src/pc/mods/mod.h @@ -10,6 +10,11 @@ #define MOD_CATEGORY_MAX_LENGTH 64 #define MOD_DESCRIPTION_MAX_LENGTH 800 +#define MOD_NAME_SIZE (MOD_NAME_MAX_LENGTH + 1) +#define MOD_INCOMPATIBLE_SIZE (MOD_INCOMPATIBLE_MAX_LENGTH + 1) +#define MOD_CATEGORY_SIZE (MOD_CATEGORY_MAX_LENGTH + 1) +#define MOD_DESCRIPTION_SIZE (MOD_DESCRIPTION_MAX_LENGTH + 1) + struct Mods; struct ModFile { @@ -25,7 +30,7 @@ struct ModFile { }; struct Mod { - char* name; + char name[MOD_NAME_SIZE]; char* incompatible; char* category; char* description; diff --git a/src/pc/mods/mods.c b/src/pc/mods/mods.c index 9af7ab2b3..84b8fb497 100644 --- a/src/pc/mods/mods.c +++ b/src/pc/mods/mods.c @@ -184,19 +184,20 @@ static void mods_sort(struct Mods* mods) { } // By default, this is the alphabetical order on name + char modNameNoColor_i[MOD_NAME_SIZE]; + char modNameNoColor_j[MOD_NAME_SIZE]; for (s32 i = 1; i < mods->entryCount; ++i) { - struct Mod* mod = mods->entries[i]; + struct Mod* mod_i = mods->entries[i]; + djui_text_get_uncolored_string(modNameNoColor_i, MOD_NAME_SIZE, mod_i->name); for (s32 j = 0; j < i; ++j) { - struct Mod* mod2 = mods->entries[j]; - char* name = str_remove_color_codes(mod->name); - char* name2 = str_remove_color_codes(mod2->name); - if (strcmp(name, name2) < 0) { - mods->entries[i] = mod2; - mods->entries[j] = mod; - mod = mods->entries[i]; + struct Mod* mod_j = mods->entries[j]; + djui_text_get_uncolored_string(modNameNoColor_j, MOD_NAME_SIZE, mod_j->name); + if (strcmp(modNameNoColor_i, modNameNoColor_j) < 0) { + mods->entries[i] = mod_j; + mods->entries[j] = mod_i; + mod_i = mod_j; + memcpy(modNameNoColor_i, modNameNoColor_j, MOD_NAME_SIZE * sizeof(char)); } - free(name); - free(name2); } } } diff --git a/src/pc/network/packets/packet_download.c b/src/pc/network/packets/packet_download.c index ab5aa4917..3d26a7a30 100644 --- a/src/pc/network/packets/packet_download.c +++ b/src/pc/network/packets/packet_download.c @@ -318,13 +318,13 @@ after_filled:; // Cache any mod that doesn't have "(wip)" or "[wip]" in its name (case-insensitive) static bool should_cache_mod(struct Mod *mod) { - char *modName = sys_strdup(mod->name); - sys_strlwr(modName); + char modNameLowercase[MOD_NAME_SIZE]; + memcpy(modNameLowercase, mod->name, MOD_NAME_SIZE * sizeof(char)); + sys_strlwr(modNameLowercase); bool shouldCache = ( - !strstr(modName, "(wip)") && - !strstr(modName, "[wip]") + !strstr(modNameLowercase, "(wip)") && + !strstr(modNameLowercase, "[wip]") ); - free(modName); return shouldCache; } diff --git a/src/pc/network/packets/packet_mod_list.c b/src/pc/network/packets/packet_mod_list.c index 2a4a7baf8..23a4411d2 100644 --- a/src/pc/network/packets/packet_mod_list.c +++ b/src/pc/network/packets/packet_mod_list.c @@ -197,9 +197,8 @@ void network_receive_mod_list_entry(struct Packet* p) { } // get name - char name[MOD_NAME_MAX_LENGTH + 1] = { 0 }; - packet_read(p, name, nameLength * sizeof(u8)); - mod->name = strdup(name); + packet_read(p, mod->name, nameLength * sizeof(u8)); + mod->name[nameLength] = 0; // get incompatible length u16 incompatibleLength = 0; @@ -211,7 +210,7 @@ void network_receive_mod_list_entry(struct Packet* p) { // get incompatible if (incompatibleLength > 0) { - char incompatible[MOD_INCOMPATIBLE_MAX_LENGTH + 1] = { 0 }; + char incompatible[MOD_INCOMPATIBLE_SIZE] = { 0 }; packet_read(p, incompatible, incompatibleLength * sizeof(u8)); mod->incompatible = strdup(incompatible); } else { diff --git a/src/pc/utils/misc.c b/src/pc/utils/misc.c index 34e70241a..e358b942d 100644 --- a/src/pc/utils/misc.c +++ b/src/pc/utils/misc.c @@ -594,18 +594,3 @@ void str_seperator_concat(char *output_buffer, int buffer_size, char** strings, } } } - -char *str_remove_color_codes(const char *str) { - char *output = strdup(str); - char *startColor; - while ((startColor = strstr(output, "\\#"))) { - char *endColor = strchr(startColor + 2, '\\'); - if (endColor) { - memmove(startColor, endColor + 1, strlen(endColor + 1) + 1); - } else { - *startColor = 0; - break; - } - } - return output; -} diff --git a/src/pc/utils/misc.h b/src/pc/utils/misc.h index 0efabc869..01d813fa1 100644 --- a/src/pc/utils/misc.h +++ b/src/pc/utils/misc.h @@ -37,6 +37,5 @@ void delta_interpolate_mtx(Mtx* out, Mtx* a, Mtx* b, f32 delta); void detect_and_skip_mtx_interpolation(Mtx** mtxPrev, Mtx** mtx); void str_seperator_concat(char *output_buffer, int buffer_size, char** strings, int num_strings, char* seperator); -char *str_remove_color_codes(const char *str); #endif \ No newline at end of file diff --git a/textures/custom_font/custom_font_hud_recolor.rgba32.png b/textures/custom_font/custom_font_hud_recolor.rgba32.png index 1ad909523f230e5293f4d9e5f2862811c89d2455..3f1bf60bea8f5e84458b49d6da86fd27487862e5 100644 GIT binary patch literal 39601 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 DdY}p@ From 6bb695e6b33ff34fa4c00d761510c476cc0c4ca7 Mon Sep 17 00:00:00 2001 From: WBmarioo <64marioluigii@gmail.com> Date: Tue, 10 Mar 2026 18:14:38 -0500 Subject: [PATCH 15/20] Fix Bob-omb Buddy and Cannon Lid (#1125) --- mods/star-road/actors/bobomb_buddy_geo.bin | Bin 3311 -> 4112 bytes .../cannon_lid_seg8_texture_08004058.tex | Bin 0 -> 4150 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/star-road/textures/cannon_lid_seg8_texture_08004058.tex diff --git a/mods/star-road/actors/bobomb_buddy_geo.bin b/mods/star-road/actors/bobomb_buddy_geo.bin index f7f376a1a24221956bdc179e806b638335ce128f..97619e7b82578fd370b3867a01af3d6efdf845fa 100644 GIT binary patch literal 4112 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 diff --git a/mods/star-road/textures/cannon_lid_seg8_texture_08004058.tex b/mods/star-road/textures/cannon_lid_seg8_texture_08004058.tex new file mode 100644 index 0000000000000000000000000000000000000000..c64a1cbe1bb9558f3685054fe7fc36a518954997 GIT binary patch literal 4150 zcmZ`+A*|y@5VcgY(4>-KprJu41qK=#ntfO8sjgIAqxLEp8U_Xi1_lNi1_lNO1_lP2 zP2U^utk?P1lSaGt&dhsnX4bj?&Kse{PywBm*3YP-@bI;{{8#QN3kx7 zpNgN?3I6>6TX{=TY?4$Gm%(yL(qgi(UrUm~QX0;5kJYWbzkkoO)n+#H(>ROwzRazL z90419`dSW)v*&mvmhmG_I4iL?1DBAG?>x7_3pq3oaJ`m1&*gr;=;LV^gOW7vP{pE_ow{CFK3^SdwM_Xj(il)&bdw&a1_JWl6x9`VqV5$ zQA^a*d;<@wd$cmfIB3qOUKVe8Gw|R$Gxp|_;aqdhzIjnfzNuwXZ6z<;piy-Y+i>4k z@+KBBY}GxVVK$@2!RF1ct70viO(}if%lSOWIF53?-lXexQr6({ju$@@Z-MXe42$@- z*SLre@o`=Nzbs4H_B%P8E^>d4a=G1Qw?9bTY@>LeE7aB3IP?v52wJ1F;Qxm0Ym~1m z$-0YVr zJ&nMRurDtut`m=JcM-Q?AH4opZ;V4eTGQxW>U{;i)!u6+Ki8bZ^>;~kPsOM1^>vi; z?(H_p2F7=*<3rrKiL@ana)kR&9>xz?;a(cP)@rVu+w|hvL0or*e&jv^1DY$~HIGs1 z`?TjXITSccQHO*am`inUA{>uT{mNtZneGIhL$4}v)qc{yy&&&hYG|)Lehd9OaOh#= z!g>%t8%A;Uet~a1!oAb}vriGe;To^JMn8ARb(94CZx45QJx94gXX*7n@XUL7Aimen z*>wF?lA;d!KjTOG11`1u*VmaAOVMdH^}4ql*jEQ<>@IE>P$Z5Fn|;1Qn3%fhb5cs zdIM z`)eFxe5(ytt%a{Y_Kw)bA#bH9J89azY`Y_7l6IB@dU8BJq{3_@-3@)8E!1CesRcE) zZ;I*zW;nz78wZCwx!{0)X6vn_CHsN7tPYZaN7kN|i{8`iAP#qh-we%d`iNut^zKdA z^LGLGdd@od8sN7q*a*;*CnhA{S$}2S;_rY$@R4L9MFHvz@jId zPnb(<^`S3g7#p-H7V7}*#=-Pj4eZ&k)XY5N>jCTKeo3V1GO3z0a3Bv_T{$)S(3dfc zWsZQUHHbL8fB$2AaB7hAuutVWtYN8KhD7=dU@{x*IlQ^N9;Ftv2-a z{tl~I;2m=}4Yu-34f&im!;M$f=y{mlaL)eFjI%vQ?~FshBQEe*TeA@F^B7K8iH{oK zdH(*;*WCB0&nRP^Tz%ihcSv@MBfFUo7^qG*Rl9^us?Rrm0aOB`$Tzs z{PNt#>)*bsz(3Snx#iP*MDdGr;_Cc({mKV>&qY^Xmk`HXd}sN?-@w4K_jYFUZ90v| U`}wEY^YtJP^9{LiW;~JqKXep!b^rhX literal 0 HcmV?d00001 From 1f3de4fe0afb2567071cdac44ba2fa1e19aec533 Mon Sep 17 00:00:00 2001 From: ColbyRayz! <118496277+ColbyRayz@users.noreply.github.com> Date: Tue, 10 Mar 2026 16:15:00 -0700 Subject: [PATCH 16/20] fixed error models in sm74 jrb area 2 and mad toads transparency (#1126) --- mods/sm74/levels/level_jrb_entry.lvl | Bin 137970 -> 137978 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mods/sm74/levels/level_jrb_entry.lvl b/mods/sm74/levels/level_jrb_entry.lvl index 712df327f80b54efe8bb17455c4832518db9506b..fd757d73e9fdeefbf3be661354297187ce9324a1 100644 GIT binary patch delta 9607 zcmV;2C3xEMwFvsP2nj@4PES)pNlx5>3AG6U_4I#PKxcJyZTm^aJ-EA+;_mM54kd&T zAP^D=!Ci_=f#MV|THM{C6n805q_`8@^6lqAO8fPD;a&gwxz}~?IWv3a%#qAF2f7;n zhrnb1X#Z#aPyL?&&-|bJzw&?S{{ndB|JwhZ|6Bhz{xQH?A0M~h!YpH8mNC9~=+m}8 z@`Ha5N(A^J4ABn}aEutD$lK-*kpK*83AjW8aijo&w6A25fwBS&a)3p#Q7jaI;sCKw zTwf_3cwCeK#fO?WKzyi)58D9{6QIN>5lV=X0EtjiUnv=QQj`KEhngfna;QlT+X*42 zK&eqGloF)@QlWHcsb5-@9;Jo&Ey{qtK^cF63@8iAj549DKxUK!Wk=aiP9QtVgL0!> zC@+v36+rn>K2#9MkBXqes1Pa&6hBi8vTC=j6oC7cr*@81jeH&Xfm3FrUH}EbTke9gk}KK z&}=jd%|vs6S!f=bi+)D)fw^dbuk;IAgchR3z#_B^Ek#Sva$qT1g;t^!Xf?1BtwU?k z8nhl*i#DN+Xam{|Y((48RT}FQb zSI{+I=_a~?uA^%H*CF0Px6v(h7r2ccp!?_^dI;P{(daRHgq{G8(R1_+Jw-2oXXrJ0 zgN_U73To5;oLYE&WZB?xp01*59h@NfPAB0zs3TpSm}MR5tB z7%q)V;gYxvPzsmF<#1VC0Vszn<4U+9t^!oT)p0dk71sc&;o7(su8HdawQzl057)&F zfO@zwZiE}+?|??QDGtOnq&@ zzl-mK-@^~U@8d`KA=Equ9^z<-523}o{Q!uDj0fP)@KgK*KL?)T7rxSK{0hIsZ-7@g z2EW5^v4^~ch=@P&BN%|_N#bFI5&|&7L5v8Zi6Rov#Q1-r1-HbJ0ND1{1&~;v0O%D9 zupk1h4m>t^Y!V0Xj_8d7T)?PtfVdz=;(^B_@j>xO0`LSRAt(V!1WG^>LuL{vC4m^% z7rnpp7JHJDWF#q&oTMPBNh*>ONKMkf5hU}ZC+SF9@-4|gz9E@OCX$h4BUwonl9S{h z*-3677s-D|@{&BHASpodlOm)rDMX3^MM+6gf)oczl2W8BDMLz=3Zy(KM=Fy_q#~(C zs*)iI?qzU|PNaUdB2aUdBAK7` z@)LhBg-nAu1!{kS(j@SSWIFgHG6Q@%nF&6F%mSZDW<#7w=77&8KSP`i?UTq{-!)u7 z=978A0Ky7&%E!kmJBfa*CWKXUJ*d{db5I=y!4s=AIQ@Bp1kea+zEre~>@PRdR*gAlJz? za+};DH_1J6m)s!_$pdnqJSLBz{waAvqR9*LoIE41$t&`byoH)K#6x4qI}!uYk79p{ zs6SgxeXl|OH=A(IOAzF|YphamBT9}rg z#c44pm!c(USz3mcrsZL)9F!~43bdDG{Q(w#cs<&PHlz(`6Z#!(Oq)WFK-vuIgJ=kC zPJ?MH+LE@QZD?y6O2cVe8b;dz5wru1r0r=Z+L1=luCxp7OuK`3qrGTP+5_kf-k0_P zA3*!lesmBWNWZ5;=@2@Yj-bQoF!}=>MMu)HbPOF$$J252M>>g4q!Z{=I)zTA)9EyS z`V*Z+XVMw;XF7+@rt|4MI+re@3+V#7gf6DP&}HCD=?d`WbTwT?SJHKKEnP!5(hYPy z-9k6hO>{fmMz_*kbSK?G_tHIdH~o$7qrcLF^Z?yYkI=*P5Is(h(WCSv_z8L%j^Y$O z3x0;4r@zy4^bdNGUZ7X#WqJv?La)+)>+~A^6Sz)q(A)GDy$Rf=cR;u4UGTf~9_TK; z54uYqK>H*55V%PngS^?^t!VIQXnhFWrO)V7`UH4JpVL?LC4B+BqOa*Y`j)-{-q9H9 z&-|DN@MnloMi>StV@xu^I3Sr~mKml2%N)qE0Pp}73lzX&g92C_XphI@0-D8t2YIu- zTM57uKx^s&NyeSK0O;|8%#)4P~YYwp$Ysp%$Hmo%ZW#OzX3j@Mg1dC+t zSv%H|MX?U73+v1}vF@xJ>&kkuo~#G!%lfe1Yyj)e`msT5Ap4#TWkcA1U^apcXT#VJ zY!n;G#bVww$eDtJx~Ho~>hRf%R+yXg%8qTF*8?c_Z5l+Q_y5o7h&+CbkXO z!L|dN*iK*E1=_)O13TG&9?(v<7qpZ83fjr`fp)UrKs(uf@crxnXg@m$;~#>(9)frn z{4nh0kZ(_ifFs~Xe0`6wqo5@vH={$PKytLzH9!LGA^YwR|=#cr~D>@K^* z9+#)|^Q zc?n*cm*OR1?6SNJufWUmazF)MkyqiBc_p9hgNL zA#cFz0}Xj2-h_Y08v{*vAaBNlcvGMm59Td+2yYIw;4MLaEqE*5hPURSJe;@XVZ0rW zfKmj+_B@Jr;E}vD@5DRuZoDh+0(9fuc`x3R_W*kF-r&7?A5d@J7wY=+et@^l8~cLy zg_eQ*dp-ad$OrMEd!A+H}Q>7 zyOnR@JNS0Kjqm2W_)h*S-^=&#{roq+k00U(`2l_$lpo=T`3ZiUALFO_DSncl<7fF9 zeu1Cozwx0Z~vC5rst|pol0cN{Hg37*Il#6lFwdQ3@y{%8Cl2 zyeJ1$5EVrgQCU<1s)(whhNv#80X0NTQAgAkwSYRJu4o|Yi+_4R1JO`?CmM@Jz;~jF z2og<2AP^*)i4f6T1Op+Wg$Na`L`xu4v=(hem}mpE72%@2XeT0o_99Yr6j7oB&{1>} zT}2nsS@aOyMK{q~^b$RR-lC7_FZzkTKz}hn3=#vy_rM@ASPT2GsP^>OfegL zwwME&Eq(^g7IVSpig}>9Vm|nMu>dq*ECgRD7KtTdvG_$S7t6#_u}Z8IE5ur{MywVa z#Cow#Y!;iuMzKw76wW2tVnOF#<~@{UwuB5^y28)KW<)owU-(*fN$3knv<( z8Am3R34dgKnM5X*iDYt_OeU47WJ;L=NF`ItbTX|>1EiDb<+n0}{08_|W|UcEW|;}d zBD2aIGP}$Mk)>rR zpo}aFURIU^m6hee%gYL~vaBR4%4)KztRid58h^4nP*c{Db!8n{TQ-pOWj)zgHj)ix zpll+)lg(t1Y$`)!a~UjK$(FK(Y$IFCP}x?7!8q+?gbbG*WTb2_JIRhRN_Lf9WM|n! zc9-2`Z`n)s1bWLppx&}CcwgBM)K~Tg?=J_)L2{t{UJjK*b*|C+EsVa-m!xm&nEP z7hs88Dp$zma+zE$SIL!fom?x|0PEy>&^oyRe1qHwzEN%hZIqiq8|4=8EpjVpi`)j< zBDaIK$Q|H2H1DvpY;;;FbQp-KSdBr35=1SC;ORSK0{B~z(YDwR^DQ)yKil|g-@(yL4= zqxx25QJEoThL~05P=DD~HkDiDQaM#Vl~?6a1yuo+Ulmb>RUx2=DyoXBVyc8J2C;-H ztxBnqKxtJ*l~?6dS)jbCpen0Msv=NXRZ-PdHB}X;u4<^-s+Ot=)K+y=eN|7@1?sB? zs0rTVHqsyEPA^;6%g0jfXny&9;7sKIIwFhmViBh+v; z3>cwCs?q8PH3}H5#;6}v4>=b2QH@g*)dV#jn5ZVHscMRv3`|u&sTpdzng+~JGu0e5 zTg?LIsGrq*HGfad1?H;->KC<0Ed+j1i`6owTB%k5tJG?>POVjIfOTrU z+N3tB4ZtR~S#48W)fQlz+OBq~ooWZLOYK&_s=aCt@T=OV4ygU=H{gIesE(+^>JV^5 z9aSgPadiy*lsc)-sx#`eI+UdAD zj*hJp==eIGPOKB@ggTi{s*~sxIysb6>r^_WPN&oAG&+O+MyJ=AbVmKH&Z@KM%sM-4 zWz)HIPMt&N)p>MoT|np8`E+4je@GY9#dJ|!M3>Yhba7oqm)50pd0kGI)s=KbT|rmX zRdi)dX?0yq*U~k04Jg;qwRL@6PuJCrbVJ=hH__ke#yUth)q%RX4%W?dOWi_;=+-(^ zx6*BOm~I2K)#19mZl@!F_Bs;OUUvYs*HPe6x+5q`cLMLEJ40(%-35q*e>QLI4BlCH z19gV>Za{bN?z)HWt$XR7KyTeg_t*V&U!cDpparI9;}Dyp?U}~Ob^$i^hiAd z7^Q#EWAzw48W^j8)D!f0Jr0^e=j;e_o;&155QXy;85x%Yl`8m0qjY=+(ely-sh`8}xc$qu!*q z>MeRRuvKrAiZ7-VN;4zv}(^H@y$ouMcRCr>f_$KBN!oBfuejTp!a% z^$FmZKCMsblllyBO8>6U>9hJga8CcBFX{{W5^zyp)mQXo{U>lmf8Ws8^)-DHxUTQ$ z+xnKi3*6QZ^nHC#KLqaUX#H3}(ocZL`ni6lpXwLDGyPh>(l3G6`i+j!@AO+BMtcl0 z{>BeL1{-FmApkSnC?kykl+nf+YYgB_fQe&bn^-^`6W1g#@l8A+fk|kRn8YR#ki;Z4 zDNJ&c3`k*8nlvW0e@O+TF=@>=CcQ}qd}A`0OeUlG7RY2Wn`|bl$pU0E*-b8!)8qhh zncOCy$!qce`AmLO$P_dMfI_A)sE{dQiko7lC{Wy#02MbS!AqJ_KygzVR2*_j17$!( zphtOA&Xfhpn+o6+Ohr%yQwh8hj9U>XY%2TuS2I;j6`-1_e{O1-nx+O&%hWdYOkGn4 zsAuXM?|*;Y$TTz!fbUFW2LZ0 z1I+hkuo+|qf0`k{AT!ig8exW;VP+&S+>ACqm{GuJGscWFKbo|eHA~E5V7XZaEHNuUOUz2pe-db00dW=hDzh4VwOIpNZPtQT zn{}YoW<6-N*ofnW2De+~9@ z-Piw?xoK_yx6EyG&)hY4fP3b?d1M}%2f!oq*gQ2)Of>M+JTouN3-cU!XBe=G+HC<%zt8mp}WoV9?q0U&K-fi$!Q zK#UC@+r|NpW8;G2*myu}8{a1Il@i-THX)GMCb7wFGMf}gZd2IQHkC~Yq_$~ndYjIs z1=8DZY)1R7%>ZPynQT^@#bySw+H5wb&0(|KTtE(+*XFUgfxI@KEocka{6Ill$QHFl ze{5l(s4Zqo+7h-nP|}vNWo;Q-8YpYa*^0J;Ee}+*m26d8#a0HY+G@6@tzoMJHEk_h z*VeJMfx5OHcs*MmRL?d5Z(tjO8rVkQjcj93Bl{hwk!@mwY*QNu1i=VRfttRpX5h_i zFnF+S4hn{mn*$*r?><`DmbL}Z%7)r7f7`~k2EuGx+s;PVa3IpQ2O?|-P=t*FkFp(s z2-^u1VLO8&AiER9F1D+$t%vPyy8%6HPus`#w!LhB+t2m|`r85E1MK&p0d^qxKsyLD z&<+M4Y=?jb+o7Prb{P0DI~+93jsPEFM}m*Eqd+5J)KS0>px&^Lv386d4UC1oe~j_% zX}le0e+0(c3E&g#M9>5~$$Ech*ksToJH<}3KiR3kG&|kSvNP=rV3wT?KHJW*eje$W zXXo0Vfq8bmT?nNGz(Uya#zo+Z>@RkyU1AplOYJhyQm9>EmqW?p+2C1aSK1YJtzBbR z18ZSx4X_Th(yp@WeYKnHM!Nyne`Gh?ZFZ~O0&KI}!MEET;5+P2yT|UfyMR4*FKCbb z6|~3hvj^;c`x|h;9<)d7VS5NTVvpJr_P9L;oUkYD8GG8E0?yd8_PqVwo&(O?3-*%z z!(Id~*~|7%d(~b6{f z7AWs3xXP}Qs|ZwfRa|vf%~b`eyBe;xtL16}wOt)o-_>(iif2h7|2;R^&0yT7v zK@Ht^uBi)jO@O8@$TfGtu9<7;TDTCPrE3Lh33aW2P*5;rgt<1ZwQCEsaqV1$3kTY{ z_AbhGaFIZi>*%_;&aM;C#dQUBaos>&Tz6>c3K?A?c6Pm7PuBzJ<$Ak*uCMC@^mF~) zK=-{H01R}4+)y{fe+>qPx?ygl8{vinBi$%B#*KDA0At)(H{OkNKLX?31UK1Daub2c zZi<`cesWWRX>PikM!Ilx>u&n)jT&*==%Lfz57*+wQixf1SW~x5w>vyWC!2xBJcQ zbHBR%z&>}#9drlWVc?)U=8n1}?l^GNopLAL33nPe>CU;c?u`2#IO{ID3+}x81GwO> zxXbR6y9!)(*WESur@H}MbGO|schlVgZn^vJp1bQF0QcNu_sBhT(ZD13%sq8a+;iZm zE8!{W(Q(5fmoF0nBYz+1sa~~q%{a|kb*j}aG`vJ;WV49K@Q`{zk?p*#kl!uvZFuZv zaXg>?c=MSzKPo8lLyl+0VIfsQqJqLoMs)c&a=d#&Cwlq!{J4J`xprh|%a$RZrhhW;&H_{X`G3)&%ia4X zCi=hV(D!~RyW`P+(c#{MB{u7Sv4?!Yk0wNCjPLPuj`^!YeCSX)EUZ>&c$?7hmNg@S z+mwW>+~#AKzW2vGz8c{19Qyh$r60Y1JPB@!2A;3(68Lz`<4w%tiSyN6x@~$o<7w@9 zpN`%CUv8fv^?%&Ds|C=fyT>K8=X}WyEf^ z7e{N6pC=2>Hr9R2+|O6c$*^<&zY zXZ>lu=U+^_{p^9-{^hjfXdybqzL+*Uru@Ayzb~d$dVihk$=laoOp6d>-_4X?OgrM& z)(_Dyr5*0%+VZ7vZx;S6EeWKR4U33~tkpR*D!A4Ab6)NJg7u+aU&iz3GI9Sty!&*4 z-Y0*|&4CZ9Vqcm2o2P)88XLZkW4@SMFndg5(%%2?piYLF@IktOGbtSwedb2 zU=gU*HYhCY)xd&TFhs_t3{aAF~5JmtPF>|Jv+K?=C!_ z7=QD%+0kzbKdbxZYqN8_MNh+CeP#BlnSMQAUMGLgw%(syxYOZ%Au8(A#amV6)hV|9 z^;f0#cs?Pzk^Y)g&%_54qUU^C)?)cm10dBq$+8iV@1G4HlTSSkj=ul3$$^i8qyJhj zzK}fjT^c?yri|a~n6F3oHh)yAqU18yk{J5BQN&V*5{jG1lF1bfVvPya1XFGlNGUYwiDj^*@ z1hovQ9uywpTR<81cy#RdUkaV!egETkLNaJe&!zB}-l&AX_C_uIl{XsUZ@tk9f8&i0 z6Z@y~#z%?$GkK%uLqER{(f>n4AAchL5Xpx~ebG0USnuZ&1grgrsd(?P6x{#)gP>eU z#E0taU2+u2o;^pt?Ag7?k(Gb=iU^Jf`;-upJ!gRe&GUQP^Fq7##~=snqXf_Asa&T- z-MC?4VSz1Szz**(Phccmni9OAuQ9>L#z^l2J|wUOEKAMcu}(ki=wH9CynlQ8nD8$r z)!UpBe>&+QokHHvwR*K$wJTREQ5s(MJ?XUf{{--U2=2XLL6M=pCvR#V|NW!QJ7QqF z&~_o->3zP(xE+Gwi5eByqGNb)V9T(GX0ZDlpC|nD+~x@UPp$9gn;hnvN&9&Qd754K zc#0>A1=(fmR4tVY+G2CRPk-g4kcY9K$KQKwasE0s?{GQ8B7&NGzZMdHw%#ZBto(n~ zC&T~w=yHBO|9Jm)_<4LU{+}+%|2pN~X6^o}4+)Qo?CQOvlHk8j>ubuNPrU>`;=7Mb z2l#dfY!2_Z-piGmr}NE3w+ZR`sq%gL|HD05g6H?O+m?~u>W|}=gn#MyfBd@smn-7= z|8Pa}eDR9p{)#K&;(2S@Ms$h_=>k7N@G214JSZwCz_*lnJaIkL)AUC0+om@LCeNS3 zOYmDi&nn-+x|E-FjR+123J(m1x7U9eMM8d!Siui~w>1*@c<^bIB%h5E8Xgr2GjAK( zA?hE~ke*JLr@ZcTd4FK?z%*W_y!P|t^tHKw_dj4&-Vc#IF#E?|&I2#EmwZb3L6`hI zzIRlQOZC}qy>~!J^T1{iK~ew5Iq-Yvl_%i6p!{L>0RjI!edyB@jTmXc;VXQTE}ZIn>`%-mH84i$R{k?%|{C zv9PZ_do1F~pRnn};W8%XKMk2P-TS|mhzB1#($BLf{+{Ub${$wGBu~aj`u5RdW_(n(`olacOfw`{{!UoSY9SHP9FdO delta 9624 zcmV;JC1=|DwFvUH2nj@4PES)pNlu@E3AG6U_4I#Thevg74FjKKy9aldQrz9$-JygK z0t7+=A-GF%DNvl^MT@&Tl;SQ0iWGN(TfQ}el=k+$aR2zap5Iz~&R$36%;C(L_TC5o zhv2b)wEr{zr~XgCGymuQul!&7zW}fNU;DrFf9wCoKL)(@`S|)R9Ayj~WsI*L`t;f# z`N4k=N(B56hU$k1WQ-W1$UEl`l>i1y31o=`;z$93v~OgQfw2MxIbcz26bl8QI3N~^ z>l?*`92X@(@nK0E5FeJrht~m66QIN>5lV=XfJ7*%ZI3ZbH)Fe-tHqhhEeD2~dY(x?xgsP)zs4A)fs-fDb7OIKrfLf?Ns)y>L2B02lj2fYa=sVB|HAR7_2?~D# zfv7nOM$J$N2u3Y@qfpcewM4B!E7TT+p*AQSgrWAR9g0AapdIRnqEH9a2}Gf;s0-?h zx`8gJC+dN^qh6o~>Vxk4^+pfDeZRiQI~sucqkian&>sy(gU~=U1PnsM(J(X=jR3>Y zD3s2BBuWd?`Tu~tqp@fV8jXGgW6*yDG#-sZ6Tx^i1x-ei&{QxPO-IwvPiO|1hGwH# zXeOEiW}$g#F8UeG2XoN^-{=>#2rWd5!6LK_Ek#SvaL2L>(E-X2CWBc z(I&JJZ9tpBMzjrWMO)Bzuodk>JJAlb8|*~CqP=Jj+6VTc186_`4IKpg(Gh=i7#%`K z!C{Ew=omPRPCy)nxzp$rI*HDJQ|Nbe4xL5k!8!B?x`-~IOW-29imsr`=udD3UGt4@ zq8sQss^)(k>K$|&-9mT4ZS(-$NB7V}a34jZ$LJAy0v@C1=oxy7UVvxlHF||!qBr0b zib3ztTjarSp(5;${V)dpxR-xF#RM}zG53uWmRMj7BzD+hg9CuYad2!L3&#bqaXjBB zAx?nf<3u0YuYI5|!QQsA^W4Ni^IfiyS+{syPV--2&&W}FFU#92Tl zoE>MwS#b`K4d=$Wa88^DAa{2sgyv zfkwC~4#Z7x5D3KMJ;AscZVrNROWXp7;8vgoZi8FnP#gwY;|Ls%+v0X09JhxWjw2zr z$5FV0Z!Q9AB#45gk&u5o<4(9E?gBdDu24JSZjig;9=N-2t~1nbpa(4N2Dvxxg?r*Y zpcn3s`{BNL0O*GY;eq&jJQxhb!|+f%1P=#8@hChJkH9~Gk$5Z~gGb{Z!5BONkH_Qi zL@*vt!ISYMJQYmF)A2O?6P^L4;n{c=o{8sxS$H0vi+{%R!CZg52rtA7@GoE?UW%9C z#dsN5f>+`dcsX7LR^YXG4PK4cfi-v|-hkKRO<)7winrj+cpKP)ci^R-?RY2N4s{RS zjd$U_U^o5^@58_1{a_zHgb(5a_%Jw#kKv>E2tE#u;#2q}K7mhzllUAyi_hTS!C8C} zU%=<_AK(JMf-isLOZY0djIZNs_)mNTT*J5VEqoK-0k`m7-{>CXyZAojd-wt5`}h%l z2umJ=hd3JQLzwZtegLAO;{oJn_$hvZpM$6Pg>Up4zrru^8}JIp;CJ{f_K>$w5%DK} z1Oup^Bpya6A%GDM!H6K5C?bI-##b$5OB@M+*WP6TBo==}0IU@YSO@~M4svYBu}K`@ z-J-V&$O5(+2gHS7Bp&2=BtAquk^pi7k`N*RNd%FAB!q%L9&zFAQ#C;@{&BH zASpodlOlhlFeyZefuf`&DM5;ZlB5(VOUjVaqyi~V%8|;X5~)b4k*cH$sYz;(>ZA^- zO=^+)q#mhD8j*&i0ck?MBaKNAX-Wb~a}rFNk(Q(d2_daXC}~C7k}%SSv?CEDoOB?O zq&?{fqbPVcSv*}xXVQsu1)WJZsGUi7sGUg<$lZTQPpI8VFUUPfZ>T*tPJyLA z!DxRHT33WFA;R7Lvu} z7qSQ}CQHb2vWzSR%gG9eMab7Tmb@Vz8bjWZ7^r>}Q$+nKqm&XVAaj4J zsiKlPYN?^IX)GE* zLo?G%G$Z7UGz-m6v(c+*PH_cD;(Y&+}El3N{qO=GtOiR$>v>1#_(UP<* zEkjGw^6;u0j4RR#va2lD4OvXh#}FyV5SSGwlw!8|_7V z(jK5Url?MDaEf%JPiln$YT=?FTU4x>NNQFJ67OUKaBbUYnLf24nt=tMe! zPNh@mWICNrqd(DEbS9laf2MQjY&xILqjTvZx{xlQOXy1=tFRmK8EmidtXIEj)vKX;4XbepVBAb8GTM)(Ud*X`2lz9@C?gC5${3SOFb*VB%re6?u*^YN763Vb#e#nbV6h$n460w9JF-yXdvt%qONX}BQ)GQTC2~x8(EImud(t`Bt z8%uy-POLlY#=5dztS9Ti`m#Q(HyeMz`m=s)5F5z8XG7T# zHkgfI!`U$Q0~^IgvaxIo8_mYEaqLGniA`h^*i<%!O=i>CH1-pl#b&Y@>}NKI&1Uo2 zJT{jtVhh;?1zXP6u+?l8ThG?9wO~El0I{BJgjmlu!FVIv46%`I z0h`!Xh)rx8*uj6cgH3FwukM1_!FGe4Y!AdvwijY2`xRm*+Xu0e{RXjj@a|04LZ;b#aqS<5ih&^LZ*%S7Xy z&N$_YOD?$OhHD;+2XF^s@z^{bkIUomgggO{&y(=PJP}XMlkucH6;H`i@U%P)PYu%Y zbUXw9hNpiA8Thw6Gta~`g3LS%&(5>)tROqj!E^ImJSWJ_^YHvUAI}T&^8&muFT@Li z!n_DC&WrJ)pg1qVOY>5^By77ZFT*SF^1K|Vz$@}9yfUu@s_?21Rd_XClh@$YK}}wZ z*X4D1ZBUoj;|+NOULQ2%jd&CO9d8Vp@Ic;-2l0QVpcxP5EqDlT4qEV*5G{Bs-iEj4 zp*)1zci@q{Gw;MZ@@~8s&NF~yXbRwHf1rVA zD83VoMI-Q?Xd;3{QxOP)L^Ba0nu}l%B3g)0(Mq%gp`x{DE5bw@&{l+t_M)AL0PRJj z=qRE@2hdS;5?w_X(OL8m-9v|;#Bp&smg!_#nFgej>E*XFgZu`3 zD>KS0GPBGCvdFA5hs-XsfgCcY%p-HlTp*9kD+|c{G9M@)3(6w0uq*_M$fB}@EG~xWffUd){xafe@$6S)|GW+ZP`H9 zm-S?0*+@2&fwGDGPBxQ4vZ)M_&1JA`C0oiCvW;vlLuFeT2HR;TBV@SjAR}da*-3Vk zQL?M-B0I|-vb*did&^$3C+IEvK=hV*G)8tQbmYgYP$e-mLIa|(`^Wu*U7bV4Ol1FL#&eDtbxB=Qf2ykm>V~=wOP4nZ z0v~_yQoVwB3CmuA*AP#k<285#`HgxD`K@{f@m9qsf9ok%Ct$#hbkM5oZnVVqj0(kXR1omQvO8T2Th*c zokeHX+2K_-olED`Idoo~N9WcBbbg&r7uJ7;bU|HA7u7{{NnJu0*JX5RT}qeN<#btH zNmtYrbX8qNSJsqP*VS|_T~pV9aUES-*VpxQUEN4G)D3hK{he;CgLG3JsGI9x-AuRC zEp&)(twVJy-ByR`HlVEz*X?yX9Rb?wNQm~j14Mfr1vyH0gox6eAa~N8VYaL80wRB5 z&RaV}?yS2(bcXqEpgZL5x`*zqd+DB_x9+3+>wdZ~=&uLpL3*J69t_fh^)NkD4*|pU za6L+o)FZ$s{evE>$LP^uto~6?(Bt(uFhNh$Q}kp#2~5#b^>jT={{*J%8G5#!rDuZK zdXAo_=jxxqJUw48(hKzhut@)+m+F5ddNEk4m+6&ygQ#EJUZYoowR)Z2s5j{K zV58oox9Tl=GuW!P>79Cq-VS!^U3#zHqj!V7`d7VQ|EBkW{rZ6Rc&d61>qGjWJ^~Ku zS|x(`WU0a8CcBFX{{W61b?Z>MQ!P{u5l$H}rpXeNEp4 z*YzEJTi?=m!EOCO-`Dr_LvUY5>&N<$egYor=lYp`s$YO-`n7(gUxL^AjgHap^ji?4 zJq8(n;|Gwzh8b!IV1^rIq!Bj0A~VB9248b0&z@Slfc9`@jwET&?GU5O(KxQ zBsD2aa+3_CFeyzMliH*LX-t1w^NmSw(t&SG29wETG~a?uCbP+AvYIR)o5^l+nVcpE z$YpYyd?v5S1M->trjRLU3V=eUFhn6!#1uEhOi@tWlz=F1NUeDGka% z6oEC$n{uWsC~qo2u3#!cR4|nwSAy+U1cgmy-}==|RZ|62Gu2HkQ`3Lc0JThQQ_s{j zbwE8+-+2G`*Nsd=(*S&D8XJ%2s;8+5G)+KL6J(m3VABjVHzB5#X=z%3RwmShnKq_1 z2s3R>I}>5TK|9mlM41jI5=5Dfri1q0y-liAmWBQr_roZV2 z2AJ>7U^B=JG(*53Gt_@K8exW;VP+&4Zbq9Q%qTG0j4|WPk7g_wXU0Q}GZP?BFcZxb zGucc6Q_NIf{RvDp(;%jr=@3)R42Y?)?hN1hv&}3s6U;VqAkQ&B`(Dk3JlD*Fm}}-k zo)6oa2Yxb(%tEsOEHb~CrDlm)43?W^V2N1)vBa!|SORk^pss&{yvnSGyxOdRSZ&rq ztTyW)R-5$@tIY@eHGPP5DGHG9l%u-E(w zvDfT_*bB4!z;6)VzCGrE*$?(W$6<5G90Z5W5p&!eGe^O3a{}VHISFyxoPvDHoQ61M z&Okn6&O$zG&Y6D;=DhhGTrd|QUo?L}Tr`&;Uow{=E}1J3m&{ejSIwUgSIsrZ*L>T* z279{hTmP21X>Nd9=C-+K?wUK`p1E%xnTO^9cw`=%r{;-?22ag1^U}O9&%sOc%Dgpi z%xm!0yfc2*V`GfR`dNP%VT*tV#uyOD#8L=i8DwTTgn)mMfGVxA+A83z1=QHn~k^lY-WY>;hg13?gMp(&{8d({kb zGaC#!*fxg}G$v&2F_@z&5)b@^-re@(#Px?y`{Bd9=FH93479>v8U}RaK@gs=k4$I95`<; z*h}^gdl6i+m+hbSs=WgKwAbuSd&6D_H|;HmoAx&3+x8B`ZJ50SyxsTgU2qj%J+yxh z?0xXiKC(}2w0#Vo*r)b|eQuwD7xtxnV_(}>;EjE2Jub$+voTQp9Cpb01MK}z*N`a$ zb__Ce9D+Fk!JLF(PQeo6G~lo_z&U3@fQ#kgx;QR2i0k6Hgf4-L4-&dWE~!i65`&~J znM>(Xxa1(EOXbqKG%htr>(asNZ(M(RkkVyvnOsKqEy(0DyKFA2%L1~&S~*<~mmTDE zxm;eC$K?ijT|QUP6>#}ML01T(peqbf&=qmTT`^Y_6o*SKHNcH9>7x$JKZBTwPG#HGrt^8bW_==o&#Z zbd4bzy6;?57wDRRrY^`ecfqciYw23J5YW=Kf@lfLT7giAVCV>QZCq>D7PN8gT!ae; z?Ob~o%yfm0u24I>UaqI>0eZRKuAl4c`hb3} zzZ>YjcLTscH^>cjL)>66)D3@gBi#r$9E^0M+!#07{Q$z^# zWH-f4b3eJMV49omX1SSe2AJh$ySeUXHwVmh^V~wWz|D7yzyi0#Eq1@SrC_mJ;g-8) zZY5am*0|Mfm0Jr|yA5u=Tjw@{^=^yX>^8ZrV6)rdw!3X^C)n=xxZQtlm)i?=yWiYC z_p93v_PImupgZ6WgM;pvJL->Yljg;HfL& zDe2L1!yqOT}zteV`}J`yTxFkELcv^HLF^pI^JD(>!Y|lB2(W zjuKY*(E71$%(MP9-}5iF-G25!ZU1sxa?q2lT%AV{Z<8P!;>i-rqb0%+%QM`#9!{y#=$!Bqr_s|GwQ6@2~ip5m9hy zhPU)x?)5^WT9pldjSMLn6#4P^o3~C#Yn^Q8gt1NgJA z>-E#uVqHXE)!X2xE*_BLUoM~WAwiu&%13-`n`>*vD)Zt?ZEX_7+N%TZ{=Ln6pRX4Y z0cWmyM2C<2_59(w=`H`b&nJM+auE@2n+3uBu3cD2RIPS@L7l@t-S+ySr%kN)eeH?) z`+c%xWJpjO@0SDI1ZuSn3Jd%AK~9Ly;W9n`&%>$Mv28o=2lMHkablLK9Y_4*W2DfT zqt3_gx#73p#q(6v9?!R*wRmqrCBr&~`0fP03-v>HrviSX-VXZ5d5!hy8v3}-$L>JS zTA!lx)W)0J@I~1 zSijHjY-QmwAS9|)WJKrBpW7m>_YPC=D|(APK4;TJ*YTSl)6nyU-h7wg8KGJyVxafcGCBXO98643mB(f{qcq2dFOuM9hbL;-rH(%G>qasWE)d+vTRk6t*7N&N{XbOnq2dpfe5lk{ea8~({jmhW z-TuR&cpvgoaR2vT1m!{^J}l1OB}akm*>mK}p56OCvhokVB7!5rJ~f17&sm^A^ZefV zyfE+mV~_*(K|l2V>klMv^T&pNIWOMnl=#zm3+WW{es|TY)v8^&T8Yx|yzWV-z5i!_ z{`Z^U-g6!l8S4A;OwHrJ|90|jF|b`|yO6+^ArYVNF>Z%o_)?4tY|$}1IIv|{L^IfZ zj?WwZd3tgL{2ujR?`e}8v5KR^C>|MvFt_@3QAeI);J%DvOt z{k1$KJSwuQ_o7IG|9)6sGyeS0OYkF}%5_TAH67sbKd?DGrg}fF)I6Qm)3<+!j-*(O5X|V*)@0+)OEhD{) zKW?`q9FG6TAISgmiFp1$d?IYFhZF*y1^86{hg5UaiR{2hm zOZnNV5y2rr;eo;M*!nM9kC&g>GHtjfoZ&^y!P|teE;rJeYOGb6%f)quvtV<)c^5r{2qG46YxG@{NXqP?B7qH z|6jNKf1X$GM2zowARyqMXAgZ^?cY!AUtbPiJbRz*CjP&lBkwWhdjGqB?!TPG&$g5F zzn!YT-tm{u=wI8kzFl_+X_+rDDl*7>V~>dJ8rU&BsAXtij`zR9R>jTmXc^q*qU^&* zbEvJ~rd!k!e>IsOqC;FXcp4|!eM2`{Nb2{yw O=q@BC=KlfZ2SWviu*Tv5 From 52446ded91f151aa9f1e21500075693e0c75aa30 Mon Sep 17 00:00:00 2001 From: Altiami Date: Tue, 10 Mar 2026 16:15:25 -0700 Subject: [PATCH 17/20] Merry-Go-Round Fixes (includes fixes for rooms and remote object-spawned objects) (#1094) --- src/engine/behavior_script.c | 17 ++++++++++- src/engine/surface_load.c | 5 +++- src/game/behaviors/bbh_merry_go_round.inc.c | 31 +++++++++++++++++++-- src/game/behaviors/boo.inc.c | 16 ++++------- src/game/object_helpers.c | 22 ++++++++++----- 5 files changed, 69 insertions(+), 22 deletions(-) diff --git a/src/engine/behavior_script.c b/src/engine/behavior_script.c index bd6218775..8af14f249 100644 --- a/src/engine/behavior_script.c +++ b/src/engine/behavior_script.c @@ -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; diff --git a/src/engine/surface_load.c b/src/engine/surface_load.c index d78d7999d..345a73202 100644 --- a/src/engine/surface_load.c +++ b/src/engine/surface_load.c @@ -806,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 diff --git a/src/game/behaviors/bbh_merry_go_round.inc.c b/src/game/behaviors/bbh_merry_go_round.inc.c index 3f38561c9..6cf25c912 100644 --- a/src/game/behaviors/bbh_merry_go_round.inc.c +++ b/src/game/behaviors/bbh_merry_go_round.inc.c @@ -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; + } + } + } } /** diff --git a/src/game/behaviors/boo.inc.c b/src/game/behaviors/boo.inc.c index 37bd4b6fe..5561e19c3 100644 --- a/src/game/behaviors/boo.inc.c +++ b/src/game/behaviors/boo.inc.c @@ -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; } diff --git a/src/game/object_helpers.c b/src/game/object_helpers.c index 695a3fbd0..f0bf4d162 100644 --- a/src/game/object_helpers.c +++ b/src/game/object_helpers.c @@ -2942,19 +2942,27 @@ void bhv_init_room(void) { void cur_obj_enable_rendering_if_mario_in_room(void) { if (!o) { return; } if (o->oRoom == -1) { return; } - if (gMarioCurrentRoom == 0) { return; } + // COOP: if any active player character's room is 0, then either: + // 1) There are no rooms in the area + // 2) They are on an object surface with no explicit room + // In vanilla, a room of 0 stops the game from checking if the object shouldn't be rendered + // In coop, this needs to be respected to ensure the object remains active in areas with rooms u8 marioInRoom = FALSE; + // check if any player character can "see" the object's room for (s32 i = 0; i < MAX_PLAYERS; i++) { - if (gMarioStates[i].currentRoom != 0) { + if (is_player_active(&gMarioStates[i])) { + // TODO: separate rendering and activation + if (gMarioStates[i].currentRoom == 0) { return; } s16 currentRoom = gMarioStates[i].currentRoom; - if (currentRoom == o->oRoom) { - marioInRoom = TRUE; - } else if (gDoorAdjacentRooms[currentRoom][0] == o->oRoom) { - marioInRoom = TRUE; - } else if (gDoorAdjacentRooms[currentRoom][1] == o->oRoom) { + if ( + currentRoom == o->oRoom + || gDoorAdjacentRooms[currentRoom][0] == o->oRoom + || gDoorAdjacentRooms[currentRoom][1] == o->oRoom + ) { marioInRoom = TRUE; + break; } } } From 5ca41153a61b22539927c2107151c60ae7f510c5 Mon Sep 17 00:00:00 2001 From: EmeraldLockdown <86802223+EmeraldLoc@users.noreply.github.com> Date: Tue, 10 Mar 2026 18:33:38 -0500 Subject: [PATCH 18/20] Fix freecam not being toggleable after teleport warp (#1133) This was happening because the previous mode would be reset before it was actually called. It was unique to `WARP_TYPE_SAME_AREA`. The solution is explained in the code comment. Also added some unused keywords to suppress warnings. --- src/game/camera.c | 16 ++++++++-------- src/game/level_update.c | 9 +++++++++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/game/camera.c b/src/game/camera.c index 9983130d9..962e0fb3e 100644 --- a/src/game/camera.c +++ b/src/game/camera.c @@ -1781,7 +1781,7 @@ s32 unused_update_mode_5_camera(UNUSED struct Camera *c, UNUSED Vec3f focus, UNU return 0; } -static void stub_camera_1(UNUSED s32 unused) { +UNUSED static void stub_camera_1(UNUSED s32 unused) { } void mode_boss_fight_camera(struct Camera *c) { @@ -5614,7 +5614,7 @@ void set_focus_rel_mario(struct Camera *c, f32 leftRight, f32 yOff, f32 forwBack * @param forwBack offset to Mario's front/back, relative to his faceAngle * @param yawOff offset to Mario's faceAngle, changes the direction of `leftRight` and `forwBack` */ -static void unused_set_pos_rel_mario(struct Camera *c, f32 leftRight, f32 yOff, f32 forwBack, s16 yawOff) { +UNUSED static void unused_set_pos_rel_mario(struct Camera *c, f32 leftRight, f32 yOff, f32 forwBack, s16 yawOff) { if (!c) { return; } u16 yaw = sMarioCamState->faceAngle[1] + yawOff; @@ -7606,7 +7606,7 @@ void cutscene_unsoften_music(UNUSED struct Camera *c) { seq_player_unlower_volume(SEQ_PLAYER_LEVEL, 60); } -static void stub_camera_5(UNUSED struct Camera *c) { +UNUSED static void stub_camera_5(UNUSED struct Camera *c) { } BAD_RETURN(s32) cutscene_unused_start(UNUSED struct Camera *c) { @@ -8133,7 +8133,7 @@ BAD_RETURN(s32) cutscene_dance_rotate_move_towards_mario(struct Camera *c) { /** * Speculated to be dance-related due to its proximity to the other dance functions */ -static BAD_RETURN(s32) cutscene_dance_unused(UNUSED struct Camera *c) { +UNUSED static BAD_RETURN(s32) cutscene_dance_unused(UNUSED struct Camera *c) { } /** @@ -9089,7 +9089,7 @@ BAD_RETURN(s32) cutscene_death_stomach_goto_mario(struct Camera *c) { /** * Ah, yes */ -static void unused_water_death_move_to_side_of_mario(struct Camera *c) { +UNUSED static void unused_water_death_move_to_side_of_mario(struct Camera *c) { water_death_move_to_mario_side(c); } @@ -9377,7 +9377,7 @@ BAD_RETURN(s32) cutscene_enter_pyramid_top(struct Camera *c) { } } -static void unused_cutscene_goto_cvar(struct Camera *c) { +UNUSED static void unused_cutscene_goto_cvar(struct Camera *c) { if (!c) { return; } f32 dist; @@ -9543,7 +9543,7 @@ BAD_RETURN(s32) cutscene_read_message_start(struct Camera *c) { sCutsceneVars[0].angle[0] = 0; } -static void unused_cam_to_mario(struct Camera *c) { +UNUSED static void unused_cam_to_mario(struct Camera *c) { if (!c) { return; } Vec3s dir; @@ -10972,7 +10972,7 @@ void cutscene_palette_editor(struct Camera *c) { &gDjuiPaletteToggle->base, ( m->action == ACT_IDLE || - m->action == ACT_PALETTE_EDITOR_CAP + m->action == ACT_PALETTE_EDITOR_CAP ) && !capMissing ); } diff --git a/src/game/level_update.c b/src/game/level_update.c index 7a69632d3..1ad390601 100644 --- a/src/game/level_update.c +++ b/src/game/level_update.c @@ -18,6 +18,7 @@ #include "sound_init.h" #include "mario.h" #include "camera.h" +#include "bettercamera.h" #include "object_list_processor.h" #include "ingame_menu.h" #include "obj_behaviors.h" @@ -471,6 +472,14 @@ void init_mario_after_warp(void) { if (gCurrentArea) { reset_camera(gCurrentArea->camera); + if (sWarpDest.type == WARP_TYPE_SAME_AREA && gCurrentArea->camera->mode == CAMERA_MODE_NEWCAM) { + // When we warp to a level in the same area, the camera mode never has the chance + // to reset. This is bad if our camera mode is newcam, since when init cam is called + // our old camera mode will be set to newcam, which causes newcam to not be able to be + // turned off. The fix is setting our mode to newcam's old mode + gCurrentArea->camera->mode = gNewCamera.savedMode; + gCurrentArea->camera->defMode = gNewCamera.savedDefMode; + } } sWarpDest.type = WARP_TYPE_NOT_WARPING; sDelayedWarpOp = WARP_OP_NONE; From 8b4fadc89e0121514259f4e568fb0ab436920495 Mon Sep 17 00:00:00 2001 From: Blockyyy <88585273+Blockyyy@users.noreply.github.com> Date: Wed, 11 Mar 2026 01:07:29 +0100 Subject: [PATCH 19/20] what happened (#1138) --- autogen/convert_functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py index 0ec22b12c..9a9f7d53a 100644 --- a/autogen/convert_functions.py +++ b/autogen/convert_functions.py @@ -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) From 006fc1dcd2321a0f091147432fadf4907e385aae Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Thu, 12 Mar 2026 23:08:17 +1000 Subject: [PATCH 20/20] Update mad_toad_geo.bin --- mods/sm74/actors/mad_toad_geo.bin | Bin 5475 -> 5480 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mods/sm74/actors/mad_toad_geo.bin b/mods/sm74/actors/mad_toad_geo.bin index 5ad7d030314d4dd785581f824517cc84e2376cca..730e6a916b392b1f4a19a6018df4e2ae0060e336 100644 GIT binary patch delta 5364 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 Sfo~3sS5KDGRQErH=4woOzLbgp delta 5382 zcmV+h75VDuD&s1U6@Oe4SN1=dOvV^v9LAW27*X(1us#yx5vULFQ57FWOIM4w3IWtw zYZbdbu`YTEk3I9(XO;zU0iAxix$ONMMVXF)}r<2ijTGUg1hHVG6_sV zqMv?#fBZ%!N+leaPq$0Q0&4 zEXoFWi2t?d8o=8Yfa?Y)SUlWad6TYawoAqzif*e>Dv z;uf2R?0;MIL5r>NlmDGKBcAUX`X(XPF28oYeBf%{ucgOEWOP~o+lwXLTYWZX@0QQ< z9-J50hss+&lhUzmIpZ-=?@nFf!$tmOi`Hx*=GL!64 zS1)Ajo0d9%UZ_1KVA)PxO>F-EzLr(={5<0iJ9V4ajvteC>0xx;0&;kEyK6hfwkUpw zzxMUUsxj&%vv+RezFf0)M{QAnj;VTPn{9S&tE~rDmxe@7?$x#^V9v%fs&DPv`V2Y0 z<$t<8rR9aSCCS}ZzntBDsZkf$cGX+qrgr6V`>ExJ4FH{ovVC(3VLT_2kmYkIM=@@o6Vzs{Vn zi-^pj-7}A*z4TS-HA{lhF!sGa-rl@A?tg^j;Qqs-( zuU(hh*2CZ}J(ub2xKuE7(8z)L{U1u_Zg%2V~Iax#oA>9Kil?Ofv!tqbZe55ZaPBL)nk4PUO3z0sn z7_NZ&1*97|^lecNQNDos0DdO#AbnCX9-#F*BnBM%L)d+aF{pneIP^bc_b@X{b>um4 z=-a3~r5wE8i1ywf=}0dlJQM_^;eYcE+RU<$5Ri`YS(t%zslr0wx!J^#058 zkv-%la^=^D!k%vnyt*dUYSDUejocLg+2mLJWXKH#vw63NXt^mt;C5}V=e4L&4+cT6a{9T7elSg}OO!R-5}|0icVKDn@Ta6n z-~Z0up{>|Eh}ECe)R5|GQeIxZp`27!7H1XbCFDJ*Vj`sK3QJY(h9L1it*)VE_K6(? zOV_aG9qul9b-;iD+JAugdr#cDbLZrVf#1wKb7$G|<-grYT-W2rJ332ftL(1onnjC8 zFBMj4*2Nv@IJQHfQg<}*?YMiEF&)^7mW!BfC5$dkaa-3ZQLRrLYzPf`5xz^*PPLlf z{hwLdGV9VUS?xP6vMlC~lI3uUbfOqxuPFy@>P7}bOIV3?D�a52TVR;^4ng7s@``m`L`}b-??m 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