From 7baa84b899f10662a210d204c8e0583f41e1f282 Mon Sep 17 00:00:00 2001 From: ColbyRayz! <118496277+ColbyRayz@users.noreply.github.com> Date: Tue, 3 Feb 2026 23:29:03 -0800 Subject: [PATCH 01/42] fixed spiky tree geos (ddd area 2) (#1102) trees moment --- mods/sm74/levels/level_ddd_entry.lvl | Bin 171075 -> 171088 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mods/sm74/levels/level_ddd_entry.lvl b/mods/sm74/levels/level_ddd_entry.lvl index fe19d9a1eeee8d759605eecde26108110ac4e6a6..ea13c048bde4f2c4c790cfdc81aee0393e5fd283 100644 GIT binary patch delta 15654 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 From e4aad9710e8209cc3121221be59522caae5dad48 Mon Sep 17 00:00:00 2001 From: ColbyRayz! <118496277+ColbyRayz@users.noreply.github.com> Date: Wed, 4 Feb 2026 04:20:18 -0800 Subject: [PATCH 02/42] sm74 bitfs area 2 fixed trees (#1103) * fixed spiky tree geos (ddd area 2) trees moment * sm74 bitfs area 2 now has palm trees palm trees now has life --- mods/sm74/levels/level_bitfs_entry.lvl | Bin 228596 -> 227667 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mods/sm74/levels/level_bitfs_entry.lvl b/mods/sm74/levels/level_bitfs_entry.lvl index cdeb03e82ca2017eb1696b898503afe6e33304f3..a07142d63244dc3b80797ec91fc429626890f50e 100644 GIT binary patch delta 147759 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

dV?WJydvU^Q7g<;V#5FK;xLF_^Zx9owbp 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 z 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 From d91b7af020a444110c59b1258e9fc97a497df297 Mon Sep 17 00:00:00 2001 From: wereyoshi Date: Mon, 9 Feb 2026 20:02:21 -0700 Subject: [PATCH 03/42] This change allows custom attacking actions to be able to break star road's breakable windows (#1090) Before this commit custom characters like the sonic in this pull request https://github.com/coop-deluxe/sm64coopdx/pull/1081 can't break some star road windows due to giving up vanilla actions. This pull request remedies that by allowing any custom attacking action to be used in place of vanilla actions for breaking said windows. --- mods/star-road/helpers.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mods/star-road/helpers.lua b/mods/star-road/helpers.lua index acd6e4578..7c2dd67d7 100644 --- a/mods/star-road/helpers.lua +++ b/mods/star-road/helpers.lua @@ -52,6 +52,9 @@ function check_mario_attacking(obj, mario) if mario.action == ACT_WALL_KICK_AIR then return 2 end + if (mario.action & ACT_FLAG_CUSTOM_ACTION ~= 0) and (mario.action & ACT_FLAG_ATTACKING ~= 0) then + return 2 + end end end @@ -121,4 +124,4 @@ function object_drop_to_floor(obj) local floorHeight = find_floor_height(x, y + 200, z) obj.oPosY = floorHeight obj.oMoveFlags = (obj.oMoveFlags | OBJ_MOVE_ON_GROUND) -end \ No newline at end of file +end From 6f4b1b3b7cecc20b36fa110fd575f3e9d4b2216b Mon Sep 17 00:00:00 2001 From: ColbyRayz! <118496277+ColbyRayz@users.noreply.github.com> Date: Wed, 11 Feb 2026 00:19:57 -0800 Subject: [PATCH 04/42] added custom toad model from EE (#1110) --- mods/sm74/actors/mad_toad_geo.bin | Bin 0 -> 5475 bytes .../levels/level_castle_courtyard_entry.lvl | Bin 169573 -> 169588 bytes .../sm74/levels/level_castle_inside_entry.lvl | Bin 158656 -> 155003 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/sm74/actors/mad_toad_geo.bin diff --git a/mods/sm74/actors/mad_toad_geo.bin b/mods/sm74/actors/mad_toad_geo.bin new file mode 100644 index 0000000000000000000000000000000000000000..5ad7d030314d4dd785581f824517cc84e2376cca GIT binary patch literal 5475 zcmV-p6`blsSx!$=LP<`rGynhq0001Z+SOWnToYIJKbcI%7-Jm9n1&cp@KLZn666u6 z5AabHA4N-7i?#{@)LLs5yFRe$y4bar`lQxc>#8k2s`AmUv|U|XY8Q(Z#acy01%K9} z_2-I@wfKU&=T0&SOhTfcetv)aMkeHV&zy7ax#xS%xp!bpv!2qei zJu`iRCCXxnj0v{{DgoY0967k9#-ss&mP3aO9F4y_&|8gTF!1wbhw&FXDSkvez}^)t z9;c}2pnb^b5dibL04&M|c!>YC=o-M=7J%y$0bqHrAe;P+goG92l6Dl~r6^oSmJWo10r+kgHa! z3kwSgA+@!&1qB6}Q|*C)ywz&my?Zw)-!M8Mp}H_PkXQ3OpPZbWmzNh77EF$BAjfk9 z0|PTNGwpV}H7qQU=flFnYKwDfi?eGBvnva-`&)x6cW2cW;7?}F?x{5e_>);%m{pKt zui0&{$-|%I^1P|LbCP4jf_YwDS(sD4JG1t9PVMpB>cZ^W;~Q#X+qrgr6V`>ExJ4FH{ovVC(3VLT_2kmYkIM=@@o6V zzs{Vni-^pj-7}A*z4TS-HA{lhF!sGa-rl@A?t?$qC3I4zU63G|JZpjrK9)HmY^)XxN1%6T zXehL9g3DrCxNsrRTiNCh{bj>Zh`m;*>NHtTUdP{^AW^x$bQ~!m{~(i)&Lu^P9goJ5 zzmZKO9O=XL2btV&TN8k}Bn9beg`R~EB1kz|LkIdJIPs63?{yxxfR-XQ5nFC#n@1f=2f4%*DJkPwiL@>!UHbg9BZ;JMkvn=4YR z7M{8tW)L-gR@QA|?k~AQekOBC2&EqhAx$4&(_C} z>#058kv-%la^=^D!k%vnyt*dUYSDUejocLg+2mLJWXKH#vw63NXt^mt;C5}Vm_X*l%-`dE_)RUoIPxlbmGjWPw@0tIFAj!~+R zWq?xy2cTv-Ev=Fojsr#uI*pdo=s4iD3@2!L&S|J6UcRB6R8|&e73U@7J*Z+Lr0NPwRqci#@jk7tp=I`o z9Ry3)u;v}^E_rppfC1Wo`Fl^?x^w5`iGknDJ9B5*^5wtXNnF?C$2&SpXshh5>Y7E1 zM=uptY1YLZ=s31Rp;C7=@$I;KmN6aJik6F*ZY7K^PH|h;DN(IY9Bc>;c@e%#)K0aU z-~FFi+A{0XEm`e5F0w4~lI3uUbfOqxuPFy@>P7}bOIV3?D�a52TVR;^4ng7s@``m`L`}b-??m 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 diff --git a/mods/sm74/levels/level_castle_inside_entry.lvl b/mods/sm74/levels/level_castle_inside_entry.lvl index 820240229f66308f5f3f059f6fda11e20ed731b8..851bad05185b29a678b71accc4b30a2f3e716bc3 100644 GIT binary patch delta 136174 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 T$Io$c^bz9W@I?JD>DX(k8UrXF delta 139856 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 Date: Thu, 12 Feb 2026 00:41:28 +0100 Subject: [PATCH 05/42] Validate DynOS behaviors (#1115) --- data/dynos_bin_behavior.cpp | 54 +++++++++++++++++++++++++++++++++++- src/engine/behavior_script.c | 2 +- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/data/dynos_bin_behavior.cpp b/data/dynos_bin_behavior.cpp index c6150025f..805a31ac8 100644 --- a/data/dynos_bin_behavior.cpp +++ b/data/dynos_bin_behavior.cpp @@ -2449,6 +2449,48 @@ static void ParseBehaviorScriptSymbol(GfxData *aGfxData, DataNode &aCommands) { + u8 bhvCommand = (*aBhv >> 24) & 0xFF; + for (const auto &commandToCheck : aCommands) { + if (bhvCommand == ((commandToCheck >> 24) & 0xFF)) { + return true; + } + } + return false; +} + +static bool DynOS_Bhv_Validate(GfxData *aGfxData, const DataNode *aNode) { + + // 1st command must be BEGIN + if (!DynOS_Bhv_CheckCommands(aNode->mData + 0, { BEGIN(0) })) { + PrintDataError(" ERROR: Validation failed for behavior %s: First command of the script must be BEGIN.", aNode->mName.begin()); + return false; + } + + // 2nd command must be ID + if (!DynOS_Bhv_CheckCommands(aNode->mData + 1, { ID(0) })) { + PrintDataError(" ERROR: Validation failed for behavior %s: Second command of the script must be ID.", aNode->mName.begin()); + return false; + } + + // Last command must be a terminating command + if (!DynOS_Bhv_CheckCommands(aNode->mData + aNode->mSize - 1, { + CALL(0), + RETURN(), + GOTO(0), + END_LOOP(), + BREAK(), + DEACTIVATE(), + CALL_EXT(0), + GOTO_EXT(0), + })) { + PrintDataError(" ERROR: Validation failed for behavior %s: Last command of the script must be one of:\n CALL, RETURN, GOTO, END_LOOP, BREAK, DEACTIVATE", aNode->mName.begin()); + return false; + } + + return true; +} + DataNode *DynOS_Bhv_Parse(GfxData *aGfxData, DataNode *aNode, bool aDisplayPercent) { if (aNode->mData) return aNode; @@ -2460,9 +2502,13 @@ DataNode *DynOS_Bhv_Parse(GfxData *aGfxData, DataNodemErrorCount == 0) { PrintNoNewLine("%3d%%\b\b\b\b", (s32) (_TokenIndex * 100) / aNode->mTokens.Count()); } } - if (aDisplayPercent && aGfxData->mErrorCount == 0) { Print("100%%"); } aNode->mSize = (u32)(_Head - aNode->mData); aNode->mLoadIndex = aGfxData->mLoadIndex++; + + // Validate behavior script + DynOS_Bhv_Validate(aGfxData, aNode); + + if (aDisplayPercent && aGfxData->mErrorCount == 0) { Print("100%%"); } return aNode; } @@ -2592,6 +2638,12 @@ static DataNode *DynOS_Bhv_Load(BinFile *aFile, GfxData *aGfxDat } } + // Validate it + if (!DynOS_Bhv_Validate(aGfxData, _Node)) { + Delete(_Node); + return NULL; + } + // Add it if (aGfxData != NULL) { aGfxData->mBehaviorScripts.Add(_Node); diff --git a/src/engine/behavior_script.c b/src/engine/behavior_script.c index 52aedaba1..bd6218775 100644 --- a/src/engine/behavior_script.c +++ b/src/engine/behavior_script.c @@ -988,7 +988,7 @@ static s32 bhv_cmd_call_native_ext(void) { const char *funcStr = dynos_behavior_get_token(behavior, BHV_CMD_GET_U32(1)); if (!funcStr) { - LOG_LUA("Could not retrieve function name from behavior command. Do you have an unclosed behavior script?"); + LOG_LUA("Could not retrieve function name from behavior command."); gCurBhvCommand += 2; return BHV_PROC_CONTINUE; } From 16c92c25d8e037fe09ca1b3939b7495586ef96b5 Mon Sep 17 00:00:00 2001 From: PeachyPeach <72323920+PeachyPeachSM64@users.noreply.github.com> Date: Thu, 12 Feb 2026 11:28:01 +0100 Subject: [PATCH 06/42] Fix wall double bonk glitch (#1113) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix wall double bonk glitch [03/02/2026 12:10] colbyrayz.z64 i might have found an insane consistent way getting this somehow {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468202050981593244/2026-02-03_03-08-24.mp4?ex=6983d1f6&is=69828076&hm=6d9e564d8b422cdb7e53097f910ff122bff97c12d661222b929085b9b6b206cf& [03/02/2026 12:12] blocky.cmd what. [03/02/2026 12:14] colbyrayz.z64 its semi consistent [03/02/2026 12:14] colbyrayz.z64 it happens everytime [03/02/2026 12:14] colbyrayz.z64 has multiple causes it seems but this is one of them [03/02/2026 19:08] peachypeachsm64 thanks (unrelated, but you need to exclude `MARIO_ANIM_PART_` when scanning for animation names in your debug display) {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468307238165676305/image.png?ex=69838b2d&is=698239ad&hm=084431682e34741dbc1a1b919a38e6cd37c9592bdeec9b1424410e6d9c122334& {Reactions} 👀 👍 [03/02/2026 19:15] altiami I'm noticing the angles are perfectly aligned with the axis. It looks LuigiGamer's and my theory about reflection being buggy and about problematic angles could be relevant [03/02/2026 19:40] wbmarioo When did double wall jumps start happening [03/02/2026 19:40] wbmarioo I’ve only just seen people talking about it since yesterday [03/02/2026 19:47] theincredibleholc Many ages ago. Perhaps Millennia... Eons, even. [03/02/2026 20:34] blocky.cmd ever since coop was made [03/02/2026 20:34] blocky.cmd i'm pretty sure [03/02/2026 20:49] theincredibleholc Makes me wonder if it's in Sm64EX [03/02/2026 20:50] theincredibleholc -# (not EX-Coop) [03/02/2026 20:51] maniscat2 makes me wonder if its in sm64 [03/02/2026 21:05] birdekek makes me wonder if its in smb [03/02/2026 21:20] altiami soup [03/02/2026 21:22] theincredibleholc {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468340870515261441/hXy2f1U.gif?ex=6983aa7f&is=698258ff&hm=a0e0625d6b27ea42ea2b4db9eb970bb93871862506752582ff16c48c316107b3& [03/02/2026 21:24] emeraldlockdown Oh, I did like a bunch of research into this bug and completely forgot to send it here. Seeing how this has evolved, I'll give a summarized copy that isn't me ranting about other things for 50 paragraphs Double bonks, if I recall correctly, have been in the game ever since romhacks were added. I don't recall them existing beforehand, but perhaps I'm wrong. A commit that lines up with this memory, and changes many things related to wallkicks, is [this commit](https://github.com/coop-deluxe/sm64coopdx/commit/3e46cc11619c0f8ee80e8876c73150521e771e11). The tree for that commit so you can look around other commits is [here](https://github.com/coop-deluxe/sm64coopdx/commits/main/?before=6092488d1c4fc741b16a0789ef9c08ec0279333f+2651). This commit changes how wall normals work, so perhaps it's worth taking a look at. While I would love to look at it, I'm not really that good at math, so I couldn't help all that much, although I'll try to skim through it to find anything interesting. {Reactions} 👀 (2) [03/02/2026 21:46] altiami something I'm noticing is that in `perform_air_quarter_step`, there's an iterator over walls that uses the wall collision data instead of the wall assigned to the mario state, but only if the fix collision bugs flag is set, which isn't by default [03/02/2026 21:46] altiami otherwise it uses the last wall, which should be the same as the wall assigned to the mario state in the new `mario_update_wall` function [03/02/2026 21:49] altiami the only way that flag can be set is through mods or with a special djui menu that's only there if the game is compiled with `DEVELOPMENT` defined [03/02/2026 21:58] altiami wait, I just realized in this video that Mario immediately turns around when hitting the wall, before the wall kick happens (shown by angle). That's not supposed to happen right? [03/02/2026 22:19] theincredibleholc Not sure. I did another video at 240 fps and used frame advance to look frame-by-frame. {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468355148718932241/2026-02-03_15-17-04.mp4?ex=6983b7cc&is=6982664c&hm=1b2ff76684239890abe996631612eb05a8bc5649875b7784bb13ce692a7f8aa6& [03/02/2026 22:21] altiami are you able to add more info to that display on the side? [03/02/2026 22:21] theincredibleholc Sure, what do you want? [03/02/2026 22:22] altiami let me make sure I'm gonna say the right thing [03/02/2026 22:22] mysterd Whoa I have no memory writing that lol. That may have been done before fixCollision stuff was a toggle, if so all of that should probably only happen if fixCollisions is enabled and vanilla behavior should be preserved otherwise. [03/02/2026 22:23] altiami I can see fixCollisionBugs in the level values struct [03/02/2026 22:23] mysterd oh yeah it is there [03/02/2026 22:23] altiami and there are some if conditions for it [03/02/2026 22:23] mysterd hmm [03/02/2026 22:23] altiami either way [03/02/2026 22:23] altiami holc, your frogger level doesn't use that value right? [03/02/2026 22:23] altiami and surely the sm64 levels don't [03/02/2026 22:23] theincredibleholc I use fixColBugs in Frogger. [03/02/2026 22:24] theincredibleholc But this recording is vanilla Sm64 with just a readout. No other mods. [03/02/2026 22:24] altiami okay, two things I cna say to add [03/02/2026 22:24] altiami first, add the flag for fix collision bugs [03/02/2026 22:24] altiami it'll be a sanity check [03/02/2026 22:25] altiami second, from the `MarioState`, add `wall`, and its `normal` values [03/02/2026 22:25] blocky.cmd you do NOT need this many frames 🙏 240 is insane [03/02/2026 22:25] altiami and also add, from the `MarioState`, `wallNormal`, which is a vec3f [03/02/2026 22:26] altiami the idea here is to see if there are any desyncs (redundancy desyncs, not network) [03/02/2026 22:27] altiami I think that's everything I can see being possibly relevant in that commit [03/02/2026 22:28] altiami also, that clip shows an angle that isn't on a 45 degree multiple, so my theory is out [03/02/2026 22:29] blocky.cmd i want to mention because it might be important [03/02/2026 22:29] blocky.cmd but if you get hit by an enemy (i.e a goomba) the bug gets fixed [03/02/2026 22:29] blocky.cmd and its a common fix to ask a player to punch you to fix the double bonk [03/02/2026 22:30] altiami tf [03/02/2026 22:30] altiami that feels like it'd be entirely unrelated. I can't tell if I hope that's a placebo effect or not [03/02/2026 22:31] blocky.cmd it would be an awful coincidence [03/02/2026 22:31] altiami on the one hand it'd be absurd if it was. On the other, it'd provide extra context that'd help in tracking it down [03/02/2026 22:32] altiami in my experience though it tends to just happen without any consistency [03/02/2026 22:34] theincredibleholc I think it has something to do with warping/resetting {Reactions} ✅ [03/02/2026 22:34] blocky.cmd i wouldnt be surprised if any of the knockback actions did soemthing [03/02/2026 22:35] theincredibleholc So, as @ColbyRayz! pointed it you can get it to happen consistently by doing exactly what he did. Enter BOB and reset the server, then you can double bonk in CASTLE_GROUNDS. What I noticed is that after re-entering the castle, then going back to castle grounds, I can't double bonk. [03/02/2026 22:35] altiami https://tenor.com/bvZwe.gif [03/02/2026 22:36] theincredibleholc {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468359516793082072/2026-02-03_15-36-01.mp4?ex=6983bbdd&is=69826a5d&hm=e15aeb9d18419cf29c67d5034ebf9deb56ed820ce5b99fe5dd5fa222718e2bd3& [03/02/2026 22:37] altiami and fix collision bugs is indeed 0 [03/02/2026 22:37] theincredibleholc I turned it on for some tests too, and it made no difference. [03/02/2026 22:38] theincredibleholc proof {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468360133435461806/2026-02-03_15-38-29.mp4?ex=6983bc70&is=69826af0&hm=3df29070d9707fafd82d4a620a08ac88227be7e7168b33eb9f4e4fcedd1a768a& [03/02/2026 22:40] altiami I'm especially interested in the `MarioState.wallNormal` field now, because that's used in `mario_bonk_reflection` {Reactions} 👀 [03/02/2026 22:40] altiami and that's a field that was newly added in that commit [03/02/2026 22:42] altiami so the fields of interest are `MarioState.wall` (pointer) `MarioState.wall->normal.x`, `.y`, and `.z` `MarioState.wallNormal[0]` to `[2]` [03/02/2026 22:43] altiami actually, maybe not the wall pointer yet [03/02/2026 22:43] altiami nothing to compare it to [03/02/2026 22:43] altiami unless we want to manually do a wall collision detection so we get that data lol [03/02/2026 22:43] theincredibleholc I'm not going to pretend I know enough to contribute more to this conversation, but you need me to test anything let me know! [03/02/2026 22:43] theincredibleholc https://tenor.com/view/ralph-wiggum-simpsons-eating-glue-gif-20921387 [03/02/2026 22:45] theincredibleholc I'm wondering what specifically would change when Mario enters BOB (or maybe his falling level-entry Action) that would "store" the bug. [03/02/2026 22:45] altiami if you can show those two different normals in that sidebar with this test, that'd be great, because if they're not the same, then we have a big problem [03/02/2026 22:45] theincredibleholc **m.wall.normal** and **m.wallNormal** ? [03/02/2026 22:45] blocky.cmd .y [03/02/2026 22:46] altiami yeah, and keep in mind that `m.wall.normal` uses .x, .y, and .z, while `wallNormal` is an array [03/02/2026 22:46] altiami woah wtf [03/02/2026 22:46] altiami hold on [03/02/2026 22:46] altiami okay [03/02/2026 22:46] blocky.cmd i thought arrays automatically were converted [03/02/2026 22:46] altiami are they? [03/02/2026 22:46] blocky.cmd i think so yeah [03/02/2026 22:46] altiami mmk [03/02/2026 22:47] blocky.cmd i may be high af rn tho [03/02/2026 22:47] altiami can we get much higher [03/02/2026 22:47] blocky.cmd i wish [03/02/2026 22:59] theincredibleholc {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468365251509489807/2026-02-03_15-58-34.mp4?ex=6983c134&is=69826fb4&hm=4385e7d104f6de68962aaeb866c3f7eef2e4caf7201b5bbcabe065cdf34e503c& [03/02/2026 23:00] altiami ok, and then `wallNormal` [03/02/2026 23:01] altiami interestingly though we can see that the normal does not change after hitting the wall, despite being turned around [03/02/2026 23:02] altiami so you're still technically wall kicking off of that wall [03/02/2026 23:08] theincredibleholc {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468367655273500753/image.png?ex=6983c371&is=698271f1&hm=3092c87bf5044791c8da9d6959f28f3acd6cab7fd35f25f70d3161becfda781e& [03/02/2026 23:08] theincredibleholc lol [03/02/2026 23:08] altiami that would mean only the bonk would be relevant, and not the kick, I think [03/02/2026 23:09] altiami hrm [03/02/2026 23:09] xluigigamerx wall.normal [03/02/2026 23:09] xluigigamerx .x/y/z [03/02/2026 23:09] altiami no, there should be a `wallNormal` property too [03/02/2026 23:09] altiami unless it was removed [03/02/2026 23:09] xluigigamerx There isn't, there never was [03/02/2026 23:09] theincredibleholc It autofills for me, but that might be for something else. [03/02/2026 23:09] xluigigamerx Normals are vec3fs [03/02/2026 23:10] altiami https://github.com/coop-deluxe/sm64coopdx/blob/3e46cc11619c0f8ee80e8876c73150521e771e11/include/types.h#L390 [03/02/2026 23:10] altiami and yeah it's still there [03/02/2026 23:11] xluigigamerx Well is it exposed [03/02/2026 23:11] altiami that's a good question [03/02/2026 23:11] altiami though I'm also seeing that error says "Surface" [03/02/2026 23:11] xluigigamerx It's a vec3f [03/02/2026 23:11] peachypeachsm64 yes it is m.wallNormal [03/02/2026 23:11] altiami you're trying to get the `wallNormal` of the `MarioState` right [03/02/2026 23:12] xluigigamerx Are you indexing something other than .x/y/z [03/02/2026 23:12] xluigigamerx Vec3fs are converted to .x/y/z in lua altiami [03/02/2026 23:12] altiami blocky mentioned that already [03/02/2026 23:12] theincredibleholc guys [03/02/2026 23:12] theincredibleholc I did m.wall.wallNormal [03/02/2026 23:12] theincredibleholc :> [03/02/2026 23:12] altiami OOPS [03/02/2026 23:12] xluigigamerx Wallnormal is a vec3f [03/02/2026 23:12] theincredibleholc Thanks peachy [03/02/2026 23:13] xluigigamerx GET OU- [03/02/2026 23:13] theincredibleholc https://tenor.com/view/wojak-loading-dumb-soyjak-brainlet-gif-5905960021355918533 [03/02/2026 23:13] blocky.cmd add y [03/02/2026 23:13] blocky.cmd add .y [03/02/2026 23:13] altiami yes luigi I know, I'm looking right at the source code. I don't need it repeated to me three times [03/02/2026 23:14] xluigigamerx Ok, but may I interest you in... vec3fs [03/02/2026 23:14] xluigigamerx They are very peak, you can store position and get it without confusion [03/02/2026 23:14] blocky.cmd ok im home i might try myself at this too [03/02/2026 23:14] altiami {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468369124223881297/reimuAAAAAAAAAAAAAAAAA.webp?ex=6983c4d0&is=69827350&hm=33117149457125ac19973c8b284af34edc719f27fbf9ab54cd3abd55ec5097ee& [03/02/2026 23:15] altiami anyway yes, blocky's right, since it's a vec3f it'll have the .x .y and .z properties [03/02/2026 23:15] altiami and luigi [03/02/2026 23:15] xluigigamerx Hello world! [03/02/2026 23:16] altiami hello world too bland, gotta make it with "from the earth I rise" [03/02/2026 23:16] xluigigamerx But on which axis [03/02/2026 23:16] xluigigamerx Are you a y up or a z up type of person [03/02/2026 23:16] altiami I forget, do the axes change depending on which type of space you're using in SM64, or is that only relevant to rotation order [03/02/2026 23:17] xluigigamerx Speaking of Ys and Zs, may I interest you in some vec3f action [03/02/2026 23:17] xluigigamerx You can reach infinite distance! [03/02/2026 23:17] altiami hello I am in the NaN realm please help me [03/02/2026 23:18] wall_e20 oh you too? [03/02/2026 23:18] xluigigamerx The f in vec3f stands for a float, which becomes infinite when reaching the max float depending on the compiler I think [03/02/2026 23:18] blocky.cmd ok i checked [03/02/2026 23:18] altiami actually do we have any safeguards against that for mario's position since people love their BLJs [03/02/2026 23:18] blocky.cmd both match [03/02/2026 23:18] xluigigamerx Why [03/02/2026 23:18] xluigigamerx PUs are cinema [03/02/2026 23:18] altiami at least in the original sm64, it'd crash if you got to infinity [03/02/2026 23:19] xluigigamerx Well, I did go to infinity, the level just turns black, I accidentally entered the void [03/02/2026 23:19] theincredibleholc I have to step away for a bit and grind out some work for my actual job. Ping me if I can be of assistance and I'll try to check on it. [03/02/2026 23:19] altiami ok if it doesn't crash then I guess it's fine [03/02/2026 23:19] xluigigamerx You can still exit [03/02/2026 23:19] blocky.cmd {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468370376210776310/Super_Mario_64_Coop_Deluxe_v1.4.1_2026-02-03_23-18-28.mp4?ex=6983c5fa&is=6982747a&hm=20de6bb2a795d32522389421c20d59e3260f49c3741613d00053f8d6bcc0b315& [03/02/2026 23:19] blocky.cmd {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468370462722490541/image.png?ex=6983c60f&is=6982748f&hm=15efd49675b065a6135c7f4617d35188bae96c6f16a2920a43a7163ff0efaa95& [03/02/2026 23:20] altiami what about X and Z [03/02/2026 23:20] xluigigamerx How inaccurate is Mario's position in the farther PUs, since floats lose accuracy as the get bigger [03/02/2026 23:20] theincredibleholc I already posted those [03/02/2026 23:20] theincredibleholc {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468370615865053409/image.png?ex=6983c633&is=698274b3&hm=3162419073f9706a70903260f3891556e9ddeff1f654121853d087d7196f5ec3& [03/02/2026 23:20] xluigigamerx 0 when wall, 1 when floor, -1 when ceiling bruh [03/02/2026 23:21] altiami that's just for `wall.normal`. We still need to make sure `wallNormal` matches fully [03/02/2026 23:21] xluigigamerx Well check the source code and see where each is being set [03/02/2026 23:22] altiami the suspect parts are in `mario_bonk_reflection` and `perform_air_quarter_step` [03/02/2026 23:23] xluigigamerx My theory is that mario bonk reflection just runs twice for whatever reason [03/02/2026 23:24] blocky.cmd {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468371530671984771/Super_Mario_64_Coop_Deluxe_v1.4.1_2026-02-03_23-24-02.mp4?ex=6983c70d&is=6982758d&hm=53a3e8fdd1c652e245271962fce1e101889bbe5d6736606771c3c254505f2140& [03/02/2026 23:24] xluigigamerx But it could be false, because I know that diving into the wall causes the bug to occur as well [03/02/2026 23:24] blocky.cmd okay if you want my opinion it looks like wall interactions are doubled in general [03/02/2026 23:24] blocky.cmd you can see when i dive into the wall i get like twice as much negative speed i should have [03/02/2026 23:24] xluigigamerx Yeah [03/02/2026 23:24] blocky.cmd i don't know if bonk actions hard set your velocity but i assume it does [03/02/2026 23:24] peachypeachsm64 funny thing happened I put a breakpoint on mario_bonk_reflection before entering bob, bonking into a wall breaks once, in `common_air_action_step` after doing bob + server reset, bonking breaks twice, in `common_air_action_step` AND `common_air_knockback_step` after entering a level again, it "fixes" itself and only breaks once [03/02/2026 23:24] xluigigamerx I can confirm this happens [03/02/2026 23:25] altiami okay, so they do match [03/02/2026 23:25] altiami and peachy pretty much confirmed it runs twice on top of the empirical evidence of the increased speed [03/02/2026 23:26] altiami I noticed that increased speed before but I wasn't sure what to make of it [03/02/2026 23:26] altiami so now comes the part where we answer why it runs twice [03/02/2026 23:26] xluigigamerx I think whatever function is setting the wall kb speed is the one at fault [03/02/2026 23:27] altiami it's likely up the call stack, yeah [03/02/2026 23:27] xluigigamerx Which one sets the velocity after air hit wall [03/02/2026 23:27] xluigigamerx Check instances of air hit wall steps [03/02/2026 23:28] altiami `mario_bonk_reflection`can set the forward velocity but only if the `negateSpeed` argument is set [03/02/2026 23:28] altiami ...wait [03/02/2026 23:29] altiami what? [03/02/2026 23:29] altiami {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468372741777395945/image.png?ex=6983c82e&is=698276ae&hm=deca9bc76b84ac422764fd8bdd19feaddfcd983a5002a8672d480578c43bbb00& [03/02/2026 23:29] altiami is there ever a case where mario bonks and *does* turn around? [03/02/2026 23:29] blocky.cmd @Altiami {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468372840167374848/Super_Mario_64_Coop_Deluxe_v1.4.1_2026-02-03_23-28-42_online-video-cutter.com.mp4?ex=6983c846&is=698276c6&hm=8c2212526b95bc4142864cc00a7ded77896bdb65768bb5fa0adc8a7989cbbd1a& [03/02/2026 23:29] blocky.cmd i wasn't crazy [03/02/2026 23:29] emeraldlockdown This was also apart of my investigation. Since we're getting into act air hit wall, there's a quirk with this function. I logically thought through it, and I don't think it should be an issue, but it's something to note `act_air_hit_wall` has an interesting quirk, it doesn’t actually return a value. I’ll let this code comment explain: ```c //! Missing return statement. The returned value is the result of the call // to set_character_animation (set_mario_animation in original decomp). // In practice, this value is nonzero. // This results in this action "cancelling" into itself. It is supposed to // execute on two frames, but instead it executes twice on the same frame. // This results in firsties only being possible for a single frame, instead // of two. ``` [03/02/2026 23:30] blocky.cmd i think it has to do with how mario is initialized at the beggining of a level [03/02/2026 23:30] blocky.cmd one of the knockback actions puts him back in a good state it seems [03/02/2026 23:30] peachypeachsm64 . [03/02/2026 23:31] altiami dive bonk turns mario around? [03/02/2026 23:31] altiami period [03/02/2026 23:31] blocky.cmd 💅 [03/02/2026 23:32] peachypeachsm64 well no actually he does turn around but there is another += 0x8000 after that so it does nothing lol [03/02/2026 23:32] altiami tf [03/02/2026 23:32] altiami mario 64 glue [03/02/2026 23:32] peachypeachsm64 {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468373577928540325/image.png?ex=6983c8f6&is=69827776&hm=507f3aec5f79c19b9ede42a8da95d2acdb7970c79ee8c21b8e86341bc816bcd3& [03/02/2026 23:32] emeraldlockdown It's so hard to analyze this code because it's literally running off of hopes and dreams [03/02/2026 23:32] altiami https://tenor.com/bukEv.gif [03/02/2026 23:32] blocky.cmd ..hopes and dreams you say? [03/02/2026 23:32] altiami okay so [03/02/2026 23:33] cooliokid956 hi {Reactions} 🔥 [03/02/2026 23:33] altiami we know that mario is being turned around for the wall hit action [03/02/2026 23:33] altiami ...by what? [03/02/2026 23:33] xluigigamerx I was literally at that line lmao [03/02/2026 23:33] blocky.cmd it might just be a side effect of the walls interaction being doubled in general [03/02/2026 23:33] xluigigamerx Test it out, turn on bouncy level bounds [03/02/2026 23:33] blocky.cmd so he turns around twice [03/02/2026 23:33] altiami he's not supposed to turn around though [03/02/2026 23:33] peachypeachsm64 omg it does return a value BUT it returns the value of `set_character_animation(m, CHAR_ANIM_START_WALLKICK)` WHICH CAN BE 0 [03/02/2026 23:34] peachypeachsm64 why would you use the animation current frame as a way to cancel out an action wtf [03/02/2026 23:35] altiami and even if he bonked the same wall twice, that would mean he reflects twice off the same normal, so he'd end up being in the initial direction again [03/02/2026 23:35] xluigigamerx Firsties? [03/02/2026 23:35] emeraldlockdown Why would it sometimes be 0 though? That's sort of where my lead dried up, because this happens seemingly randomly, or due to an init issue. It just returns the animFrame, so why would that change in the first place? [03/02/2026 23:35] altiami it'd be 0 if it fails right? [03/02/2026 23:35] xluigigamerx AnimFrame starts at 0 [03/02/2026 23:36] peachypeachsm64 is that how firsties work? no way [03/02/2026 23:36] xluigigamerx No [03/02/2026 23:36] emeraldlockdown Perhaps I need to rephrase it, the issue is why would the animation change when no mods are being ran? Why would how it set change? Maybe we should try returning 1 on the function and try to recreate the issue to see if it's the problem [03/02/2026 23:37] emeraldlockdown What inputs are done to recreate the issue? It looks like you access the pause menu in the level selector [03/02/2026 23:37] altiami doesn't it change the animation when you bonk though [03/02/2026 23:37] xluigigamerx The action change resets the animation to frame 0 [03/02/2026 23:37] blocky.cmd firsties are immune to double bonks [03/02/2026 23:37] emeraldlockdown That's good to know [03/02/2026 23:38] xluigigamerx I know [03/02/2026 23:38] xluigigamerx It makes sense because firsties are firsties [03/02/2026 23:38] blocky.cmd ah yes [03/02/2026 23:38] xluigigamerx They're done on exactly the same frame as hitting the wall [03/02/2026 23:38] blocky.cmd i'm looking into why getting hit would reset the bug rn [03/02/2026 23:38] xluigigamerx Otherwise it's not a firstie [03/02/2026 23:38] blocky.cmd maybe we could trace it backwards 🤷 [03/02/2026 23:39] altiami so we know it only happens if mario reaches the knnockback action [03/02/2026 23:39] altiami so, is something in the knockback action making mario turn around when it shouldn't? [03/02/2026 23:39] emeraldlockdown If I understand it correctly, it only happens if the second if statement is ran in `act_air_hit_wall`, which, sets the action to `ACT_BACKWARD_AIR_KB` [03/02/2026 23:40] peachypeachsm64 and it happens when you enter bob and restart the server (???) [03/02/2026 23:40] altiami it has to be related to something stale [03/02/2026 23:40] altiami or maybe not being initialized correctly in the first place? [03/02/2026 23:40] emeraldlockdown It can still be something in `act_air_hit_wall`, since the double turn around happens when you hit the wall [03/02/2026 23:41] altiami peachy, what does the call stack look like for each break when it doubles up? [03/02/2026 23:42] altiami it's just occurred to me we sound like an investigation firm trying to track down a serial killer [03/02/2026 23:42] altiami not entirely incorrect; I'm sure this bug has killed many players [03/02/2026 23:42] blocky.cmd only if leaving right after the act select [03/02/2026 23:43] blocky.cmd doesn't work on levels without the act select [03/02/2026 23:43] peachypeachsm64 perform_air_step runs only once per frame even when the double bonk occurs, I can't explain the double speed (yet) [03/02/2026 23:44] altiami try looking at the call stack when the breaks happen. That should let us track down the execution flow [03/02/2026 23:44] emeraldlockdown The weird thing to me is why does it only happen in `ACT_BACKWARD_AIR_KB`, and not `ACT_SOFT_BONK`? Both of these actions call `common_air_knockback_step`, and both call `check_wall_kick`. I'm going to be very interested in what the issue ends up actually being [03/02/2026 23:45] xluigigamerx Soft bonk doesn't have the star particles [03/02/2026 23:45] xluigigamerx Which seems to be a shared trait with all affected wall actions [03/02/2026 23:45] xluigigamerx Impact particles [03/02/2026 23:47] xluigigamerx It must be whatever triggers the particles [03/02/2026 23:48] peachypeachsm64 nothing worth 1st is during long jump 2nd is during air knockback action (when double bonk happens only) {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468377650996183295/image.png?ex=6983ccc1&is=69827b41&hm=95e9bbcafdb75a76a05f52692fc0fe68081f04bf27e54cd212fc9e9587f6fb78& https://cdn.discordapp.com/attachments/1264640346957021195/1468377651419943084/image.png?ex=6983ccc1&is=69827b41&hm=33a2207d5c14b0fe4068427156f1c7f410fd9451b0a389e1cfbcd08f928807de& [03/02/2026 23:49] emeraldlockdown I remember cross checking the 2nd line with sm64ex, incase anyone is curious, I believe they are the exact same [03/02/2026 23:49] xluigigamerx What about decomp [03/02/2026 23:49] emeraldlockdown I have not, I can check right now though [03/02/2026 23:52] emeraldlockdown Yea they're the same, so it's something outside of it [03/02/2026 23:52] xluigigamerx Can you compare the airborne files entirely [03/02/2026 23:52] emeraldlockdown Sure why not [03/02/2026 23:53] altiami I just zeroed in on that part of the code myself for the knockback action [03/02/2026 23:54] peachypeachsm64 after further investigation there is no double step Mario just retains his speed, but it gets reverted (dive speed 48 becomes -48 for example) [03/02/2026 23:55] emeraldlockdown Here's the diff for the decomp vs coop mario_actions_airborne.c file. I'll scan through this as well, but you can look aswell if you'd like {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468379324104315132/diff.patch?ex=6983ce50&is=69827cd0&hm=b7403326958873d63f17458cbdb9fb8289f3203c0260dec05076c444db97f4bd& [04/02/2026 00:00] blocky.cmd something in take_damage_from_interact_object fixes the bug [04/02/2026 00:00] altiami wait [04/02/2026 00:00] altiami would that involve the knockbackTimer [04/02/2026 00:00] blocky.cmd ```lua function take_damage_from_interact_object(m) if (not m or not m.interactObj) then return 0 end local shake local damage = m.interactObj.oDamageOrCoinValue if (damage >= 4) then shake = SHAKE_LARGE_DAMAGE elseif (damage >= 2) then shake = SHAKE_MED_DAMAGE else shake = SHAKE_SMALL_DAMAGE end if ((m.flags & MARIO_CAP_ON_HEAD) == 0) then damage = damage + (damage + 1) / 2 end if (m.flags & MARIO_METAL_CAP) ~= 0 then damage = 0 end -- disable player-to-player damage if the server says so if (m.interactObj and (m.interactObj.oInteractType & INTERACT_PLAYER) ~= 0 ) then if (gServerSettings.playerInteractions ~= PLAYER_INTERACTIONS_PVP) then damage = 0 end end m.hurtCounter = m.hurtCounter + 4 * damage queue_rumble_data_mario(m, 5, 80) if (m.playerIndex == 0) then set_camera_shake_from_hit(shake) end return damage end local function mario_update(m) if m.playerIndex ~= 0 then return end if m.controller.buttonPressed & X_BUTTON ~= 0 then local test = obj_get_first_with_behavior_id(id_bhvDoorWarp) test.oDamageOrCoinValue = 1 m.interactObj = test take_damage_from_interact_object(m) end end hook_event(HOOK_MARIO_UPDATE, mario_update)``` [04/02/2026 00:00] blocky.cmd i made this and the bug was consistently fixed [04/02/2026 00:01] blocky.cmd had to translate the function since it wasn't exposed [04/02/2026 00:02] altiami there's that interact player thing again... [04/02/2026 00:02] blocky.cmd i thought so too but i couldn't find anything [04/02/2026 00:02] blocky.cmd relevant [04/02/2026 00:02] blocky.cmd i'll try to disect this function further if notyhing is found [04/02/2026 00:04] emeraldlockdown Does it work if you don't set the hurt counter? [04/02/2026 00:06] altiami that would be CRAZY [04/02/2026 00:06] blocky.cmd yes it does [04/02/2026 00:06] blocky.cmd i checked if it was the camera shake JUST IN CASE [04/02/2026 00:07] blocky.cmd (it wasn't) [04/02/2026 00:07] blocky.cmd i'm just going line by line rn [04/02/2026 00:07] emeraldlockdown The only 2 things it can be then is something with interactObj or, my favorite theory, `queue_rumble_data_mario`. [04/02/2026 00:07] altiami rumble data is a bit weird iirc [04/02/2026 00:07] blocky.cmd tried ``queue_rumble_data_mario`` on its own it didn't do anything [04/02/2026 00:07] blocky.cmd at least not when isolated [04/02/2026 00:07] peachypeachsm64 I FOUND IT {Reactions} 👀 (3) 🔥 (2) mariopog beware_the_polygonal ✅ 🍕 🍞 🇬 🇴 🅰️ 🇹 eyesshaking [04/02/2026 00:07] emeraldlockdown BIG [04/02/2026 00:08] altiami tell us [04/02/2026 00:08] blocky.cmd TELL [04/02/2026 00:08] blocky.cmd 🐟 [04/02/2026 00:09] peachypeachsm64 THIS you know that every Mario has oInteractType INTERACT_PLAYER and when you enter a level, you "interact" with the inactive players (maybe for 1 frame idk) resetting the server doesn't clear the interactObj, so it's always a remote Mario, unless you interact with something else, for example, a door SO this weird ass pvp stuff is the cause of the double bonk {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468383008741654658/image.png?ex=6983d1be&is=6982803e&hm=612eddaac7e7c7855619c9ead1db86b6d15e3b09b16d59a0b871ac07e6cb128a& [04/02/2026 00:10] altiami this only strengthens what I offhandedly mentioned the other day about how we need to properly handle unloading network players [04/02/2026 00:10] blocky.cmd IN YOUR FACE [04/02/2026 00:11] blocky.cmd STUPID [04/02/2026 00:11] xluigigamerx Bro, you can activate it without prior pvp, how is it pvp related [04/02/2026 00:11] altiami {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468383477488681241/DAAAMN.mp4?ex=6983d22e&is=698280ae&hm=496c9ff4ea5e6aa145accc5e3bf543c9b39a0e8d011d5ed2b3720c4260bb3487& [04/02/2026 00:11] peachypeachsm64 read bro [04/02/2026 00:11] emeraldlockdown Thank you peachy for your incredible service to finding this bug that's plagued this game for centuries. Now I'm curious how long it's been around. What file is that and what line? {Reactions} ⬆️ (2) [04/02/2026 00:11] xluigigamerx I can't im doing something for college [04/02/2026 00:11] altiami what's really funny is [04/02/2026 00:12] altiami I saw that condition [04/02/2026 00:12] altiami and was like [04/02/2026 00:12] altiami hmmmmmmmmmmmmmmmmmmmmmmmmmm [04/02/2026 00:12] xluigigamerx Read it [04/02/2026 00:12] peachypeachsm64 `mario_action_airborne.c` `common_air_knockback_step` line 1240 [04/02/2026 00:12] emeraldlockdown Thanks [04/02/2026 00:12] xluigigamerx (Past tense) [04/02/2026 00:12] altiami yup, that's the one [04/02/2026 00:12] xluigigamerx Who added that line [04/02/2026 00:12] emeraldlockdown Yup, 3 years ago [04/02/2026 00:13] altiami but, something's still weird. Doesn't that only set mario's forward velocity when that check passes? [04/02/2026 00:13] blocky.cmd 2023 :faceholdingbacktears: [04/02/2026 00:13] emeraldlockdown Ah it may have been even earlier, let me check real quick [04/02/2026 00:13] xluigigamerx I want to know who's walls I need to live in [04/02/2026 00:14] altiami or is the problem that it's *not* passing the condition [04/02/2026 00:14] peachypeachsm64 that's the problem if the fvel is not set to -16, you continue bonking into the wall or, for the dive, get sent backwards violently [04/02/2026 00:14] altiami ah, that's where I was mistaken [04/02/2026 00:15] altiami I thought the speed has been set already [04/02/2026 00:15] altiami yeah I see, it's not here in the hit wall action [04/02/2026 00:16] altiami alright gang, let's lift the mask and see whose kneecaps need to be gently tapped [04/02/2026 00:16] altiami {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468384692775555277/image.png?ex=6983d350&is=698281d0&hm=0806f2c53e9b8c4649e2bf21833e160928f6dfbd696d7add1e0269441a644c2f& [04/02/2026 00:16] blocky.cmd FIXED? [04/02/2026 00:16] blocky.cmd # FIXED?? [04/02/2026 00:16] altiami [04/02/2026 00:17] altiami it clearly had good intentions [04/02/2026 00:17] altiami but dormant network players are scuffed [04/02/2026 00:17] blocky.cmd aw it was when too much knockback setting got nerfed :( {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468384968592855165/image.png?ex=6983d391&is=69828211&hm=64f8675f995e4fabc9145eaca84d8069e3b7f9aa628c99d7a84eb08b1d0938f2& [04/02/2026 00:17] blocky.cmd i remember that [04/02/2026 00:17] emeraldlockdown No I don't know if that one is it, since, if I understand it correctly, ` if (m->interactObj == NULL || !(m->interactObj->oInteractType & INTERACT_PLAYER)) {` caused the issue, and that existed beforehand [04/02/2026 00:18] altiami the git blame tracks it back to this commit [04/02/2026 00:18] altiami {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468385134880362551/image.png?ex=6983d3b9&is=69828239&hm=fe08108418b3326b8a5952f8002fcb5d057515f199c55a5c126813406e684788& [04/02/2026 00:18] emeraldlockdown https://github.com/coop-deluxe/sm64coopdx/commit/51940d6a82c8cddbd98a9ca3eef67554711778fb [04/02/2026 00:19] emeraldlockdown {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468385345015124245/Screenshot_2026-02-03_at_5.19.04_PM.png?ex=6983d3eb&is=6982826b&hm=c834fdd510a80f007c61b2ababf197312930b85c4b2a4b402b4e6cc72f7a4215& [04/02/2026 00:19] altiami oh wait I see what you mean [04/02/2026 00:19] altiami it was already in there in the diff [04/02/2026 00:19] emeraldlockdown Dang my memory is vividly off [04/02/2026 00:19] emeraldlockdown 2020 is crazy [04/02/2026 00:19] blocky.cmd yeah [04/02/2026 00:19] blocky.cmd i did remember it existing since the beggining [04/02/2026 00:20] theincredibleholc https://tenor.com/view/renuu-thanos-rest-peaceful-gif-20831938 [04/02/2026 00:20] theincredibleholc It's all ogre now 🥹 [04/02/2026 00:21] altiami yeah emerald you found it [04/02/2026 00:21] peachypeachsm64 well, some update it's not when entering a level it's specifically when restarting the server it somehow interacts with a random mario object (13?) (object pointer | is mario obj | playerIndex) {Attachments} https://cdn.discordapp.com/attachments/1264640346957021195/1468385977859969185/image.png?ex=6983d482&is=69828302&hm=59f49bd2f11d4a48eaa781966d24cf45affadf285983114e52a34ab6db79bd4e& [04/02/2026 00:22] theincredibleholc Huge shoutout to @ColbyRayz! for finding a way to replicate it. That was a seriously obscure find! [04/02/2026 00:22] peachypeachsm64 wait [04/02/2026 00:22] peachypeachsm64 no [04/02/2026 00:22] emeraldlockdown Starting the server, or closing the server? [04/02/2026 00:22] peachypeachsm64 it doesn't interact it uses whatever was in that object slot which happens to be a mario [04/02/2026 00:22] peachypeachsm64 stale pointer lmao [04/02/2026 00:22] altiami so I was right in a super roundabout way [04/02/2026 00:22] altiami goddamn [04/02/2026 00:23] altiami I didn't expect stale object pointer though [04/02/2026 00:23] peachypeachsm64 tldr mario was never reset properly [04/02/2026 00:23] blocky.cmd i'm close to doing a pr for a bunch of star road fixes does a romhack port repo still exist [04/02/2026 00:23] blocky.cmd coop-romhacks-blahblah [04/02/2026 00:23] altiami Mario HAS A TUMOR! [04/02/2026 00:24] altiami okay well [04/02/2026 00:24] altiami that was fun [04/02/2026 00:24] emeraldlockdown Indeed [04/02/2026 00:24] altiami roleplaying as bloodhounds [04/02/2026 00:24] peachypeachsm64 https://github.com/coop-deluxe/rom-hacks [04/02/2026 00:25] altiami https://tenor.com/view/bear-sniffing-spartan370-big-blue-house-gif-22010873 [04/02/2026 00:25] altiami this us finding the bug [04/02/2026 00:25] blocky.cmd thanks! [04/02/2026 00:25] emeraldlockdown The only other bug I can think of that has been in the community for waay too long is the doors disappearing bug, but something tells me that won't be as easy to fix. But seeing how colby somehow found a way to reproduce this bug, I'll hold out hope [04/02/2026 00:25] peachypeachsm64 we found it now, let's find a way to fix it [04/02/2026 00:26] altiami oh I thought you had an idea now [04/02/2026 00:26] altiami since you found it was a stale pointer [04/02/2026 00:26] peachypeachsm64 reset interactObj but where [04/02/2026 00:26] peachypeachsm64 and when [04/02/2026 00:26] emeraldlockdown Can't you just reset it on `network_shutdown`, or am I thinking in super simple ways [04/02/2026 00:26] altiami level load imo [04/02/2026 00:26] altiami when the mario is initialized anyway [04/02/2026 00:26] altiami at least, I hope he is [04/02/2026 00:26] emeraldlockdown Oh yea [04/02/2026 00:26] altiami he better be [04/02/2026 00:27] altiami or I'm throwing hands with miyamoto himself [04/02/2026 00:27] emeraldlockdown Wait can't you just reset it in `init_single_mario`? [04/02/2026 00:27] sharen462 thats what i was gonna suggest [04/02/2026 00:27] sharen462 that function doesnt reset ot [04/02/2026 00:27] sharen462 you could just add it [04/02/2026 00:27] altiami really, *all* marios should be initialized on level load if they aren't already [04/02/2026 00:27] emeraldlockdown ```c m->heldObj = NULL; m->heldByObj = NULL; m->riddenObj = NULL; m->usedObj = NULL; m->bubbleObj = NULL; ``` They were so close! [04/02/2026 00:27] altiami LMAO [04/02/2026 00:27] sharen462 it even resets other obj fields like ``riddenObj`` and stuff [04/02/2026 00:28] sharen462 yeah lmfao [04/02/2026 00:35] peachypeachsm64 yeah that works now all I have left to do is making a comically long commit description for a one-line change [04/02/2026 00:36] altiami just screenshot this entire discord conversation, put it in a google doc, and attach it to the commit message * Fix all double bonk related bugs Here's some explanation about the infamous wall double bonk glitch. First, why does it happen seemingly randomly? When the server resets or when entering a level, Mario is fully initialized again, but, for some reason, interactObj is not reset to NULL. Because of that, it keeps the pointer of the last object Mario interacted with, which becomes a stale object pointer (the object it points to no longer exists). Because objects are stored in a static buffer rather than being allocated dynamically on the heap, this pointer always points to valid memory (it cannot crash the game), but could potentially point to a random Mario object depending on various conditions I won't list here. Why interactObj pointing to a Mario object has anything to do with wall bonks?!? Because PVP. sm64coopdx adds PVP. And the way it adds it is kinda questionable. But that's a topic for another day. To handle player vs player interactions, all Mario objects get the unique INTERACT_PLAYER interaction type. For the sake of code reusability, all PVP interactions use regular interactions functions, with a Mario's interactObj temporarily set to another Mario. When the interaction is done, the interactObj is properly reset to NULL. Meaning in regular gameplay, Mario's interactObj is NEVER another Mario object. Unless stale pointer as mentioned above. What's important here is the interaction type INTERACT_PLAYER. Because PVP is about punching and kicking other people's face with force, it would be a shame if someone threw one of their best blows just to see their opponent slightly move backwards like nothing happened. It had to be impactful. For that, knockbacks had to be changed. In SM64, ground knockbacks have capped speed and air knockbacks set the speed to a predefined value. Not really usable for in the context of PVP. So, for the sake of code reusability again, these limits had to be temporarily ignored during PVP knockbacks. Now the question is... how do you recognize a PVP knockback? ... What about checking m->interactObj->oInteractType?!?!? Because of this stupid check that does nothing most of the time because Mario's interactObj is NEVER another Mario object, BUT suddenly treats all knockbacks as PVP attacks because of a stale pointer, the following happens: - Mario bonks into a wall, entering the backwards air knockback action - Due to the check above, Mario's speed is not set properly, keeping him moving forward instead of backwards - Mario bonks into the wall again, but he's no longer facing the wall (Firsties are not affected by the bug, because they allow Mario to wall kick before he enters the backwards knockback.) Just remove the check and for proper measure, reset interactObj during Mario init and that's it, right? ... NO. Now, why does it happen AGAIN? There is still an obscure bug that probably nobody ever encountered before, but exists. During a 10-frame window after exiting a PVP knockback, the next knockbacks are treated as PVP knockbacks. To prevent players from being knockbacked again and again, a knockbackTimer is set and starts counting down as soon as Mario exits any knockback action. But! When not zero, this timer also makes the knockback actions ignore their corresponding speed cap. Not one, but TWO broken checks, that can't even properly identify a PVP knockback, causing one of the most infamous glitch of the game. Solution? First, use a specific actionArg to flag a knockback action as a PVP attack. Second, ignore the knockback speed caps only if this flag is set. Third, because some mods implement their own PVP knockbacks in a bad way (not their fault, just tried to mimic what was already in place), set the default knockback speed during set_mario_action if the PVP attack flag is not set. With this, no more double bonk, no more janky knockbacks. That's all, folks! * I'M A CHUCKSTER --- autogen/lua_definitions/constants.lua | 2 +- docs/lua/constants.md | 2 +- src/game/interaction.c | 15 +++++++++++---- src/game/interaction.h | 2 +- src/game/mario.c | 24 ++++++++++++++++++++++++ src/game/mario_actions_airborne.c | 15 +++++---------- src/game/mario_actions_moving.c | 27 ++++++++++++++------------- src/pc/lua/smlua_constants_autogen.c | 2 +- 8 files changed, 58 insertions(+), 31 deletions(-) diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index f2d30851a..d981a171e 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -3276,7 +3276,7 @@ PVP_ATTACK_KNOCKBACK_TIMER_DEFAULT = 10 PVP_ATTACK_KNOCKBACK_TIMER_OVERRIDE = -5 --- @type integer -PVP_ATTACK_OVERRIDE_VANILLA_INVINCIBILITY = 0x0000FFFF +PVP_ATTACK_KNOCKBACK_ACTION_ARG = 0x10000 --- @type integer INT_STATUS_ATTACK_MASK = 0x000000FF diff --git a/docs/lua/constants.md b/docs/lua/constants.md index 7632878e6..664556031 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -1459,7 +1459,7 @@ - ATTACK_FROM_BELOW - PVP_ATTACK_KNOCKBACK_TIMER_DEFAULT - PVP_ATTACK_KNOCKBACK_TIMER_OVERRIDE -- PVP_ATTACK_OVERRIDE_VANILLA_INVINCIBILITY +- PVP_ATTACK_KNOCKBACK_ACTION_ARG - INT_STATUS_ATTACK_MASK - INT_STATUS_HOOT_GRABBED_BY_MARIO - INT_STATUS_MARIO_UNK1 diff --git a/src/game/interaction.c b/src/game/interaction.c index d81651099..4304a23ae 100644 --- a/src/game/interaction.c +++ b/src/game/interaction.c @@ -643,7 +643,9 @@ static u32 unused_determine_knockback_action(struct MarioState *m) { return bonkAction; } -u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { +u32 determine_knockback_action(struct MarioState *m, RET bool *isPlayerAttack) { + *isPlayerAttack = false; + if (!m) { return 0; } if (m->interactObj == NULL) { return sForwardKnockbackActions[0][0]; @@ -739,6 +741,7 @@ u32 determine_knockback_action(struct MarioState *m, UNUSED s32 arg) { m->knockbackTimer = hasBeenPunched ? PVP_ATTACK_KNOCKBACK_TIMER_OVERRIDE : PVP_ATTACK_KNOCKBACK_TIMER_DEFAULT; #undef IF_REVAMPED_PVP m->faceAngle[1] = m->interactObj->oFaceAngleYaw + (sign == 1.0f ? 0 : 0x8000); + *isPlayerAttack = true; } return bonkAction; @@ -870,7 +873,10 @@ u32 take_damage_and_knock_back(struct MarioState *m, struct Object *o) { } update_mario_sound_and_camera(m); - return drop_and_set_mario_action(m, determine_knockback_action(m, o->oDamageOrCoinValue), damage); + + bool isPlayerAttack = false; + u32 knockbackAction = determine_knockback_action(m, &isPlayerAttack); + return drop_and_set_mario_action(m, knockbackAction, damage | (isPlayerAttack ? PVP_ATTACK_KNOCKBACK_ACTION_ARG : 0)); } return FALSE; @@ -1724,8 +1730,9 @@ u32 interact_snufit_bullet(struct MarioState *m, UNUSED u32 interactType, struct play_character_sound(m, CHAR_SOUND_ATTACKED); update_mario_sound_and_camera(m); - return drop_and_set_mario_action(m, determine_knockback_action(m, o->oDamageOrCoinValue), - o->oDamageOrCoinValue); + bool isPlayerAttack = false; + u32 knockbackAction = determine_knockback_action(m, &isPlayerAttack); + return drop_and_set_mario_action(m, knockbackAction, o->oDamageOrCoinValue | (isPlayerAttack ? PVP_ATTACK_KNOCKBACK_ACTION_ARG : 0)); } } diff --git a/src/game/interaction.h b/src/game/interaction.h index 7dfe20a74..d06e9a795 100644 --- a/src/game/interaction.h +++ b/src/game/interaction.h @@ -101,7 +101,7 @@ enum InteractionFlag { #define PVP_ATTACK_KNOCKBACK_TIMER_DEFAULT 10 #define PVP_ATTACK_KNOCKBACK_TIMER_OVERRIDE -5 -#define PVP_ATTACK_OVERRIDE_VANILLA_INVINCIBILITY 0x0000FFFF +#define PVP_ATTACK_KNOCKBACK_ACTION_ARG 0x10000 #define INT_STATUS_ATTACK_MASK 0x000000FF diff --git a/src/game/mario.c b/src/game/mario.c index 2c1e6c56b..897bbc3fe 100644 --- a/src/game/mario.c +++ b/src/game/mario.c @@ -1043,6 +1043,29 @@ static u32 set_mario_action_airborne(struct MarioState *m, u32 action, u32 actio case ACT_JUMP_KICK: m->vel[1] = 20.0f; break; + + // Set forward vel to a predefined value for non-player knockbacks + case ACT_BACKWARD_AIR_KB: + case ACT_HARD_BACKWARD_AIR_KB: + if (!(actionArg & PVP_ATTACK_KNOCKBACK_ACTION_ARG)) { + mario_set_forward_vel(m, -16.0f); + } + break; + + case ACT_FORWARD_AIR_KB: + case ACT_HARD_FORWARD_AIR_KB: + if (!(actionArg & PVP_ATTACK_KNOCKBACK_ACTION_ARG)) { + mario_set_forward_vel(m, 16.0f); + } + break; + + case ACT_THROWN_BACKWARD: + case ACT_THROWN_FORWARD: + case ACT_SOFT_BONK: + if (!(actionArg & PVP_ATTACK_KNOCKBACK_ACTION_ARG)) { + mario_set_forward_vel(m, m->forwardVel); // needed to update velocities + } + break; } m->peakHeight = m->pos[1]; @@ -2221,6 +2244,7 @@ void init_single_mario(struct MarioState* m) { m->heldObj = NULL; m->heldByObj = NULL; + m->interactObj = NULL; m->riddenObj = NULL; m->usedObj = NULL; m->bubbleObj = NULL; diff --git a/src/game/mario_actions_airborne.c b/src/game/mario_actions_airborne.c index 5bf71f395..00b338447 100644 --- a/src/game/mario_actions_airborne.c +++ b/src/game/mario_actions_airborne.c @@ -57,7 +57,7 @@ depending on whether Mario's forward velocity is high enough to be considered a |descriptionEnd| */ void play_knockback_sound(struct MarioState *m) { if (!m) { return; } - if (m->actionArg == 0 && (m->forwardVel <= -28.0f || m->forwardVel >= 28.0f)) { + if ((m->actionArg & ~PVP_ATTACK_KNOCKBACK_ACTION_ARG) == 0 && (m->forwardVel <= -28.0f || m->forwardVel >= 28.0f)) { play_character_sound_if_no_flag(m, CHAR_SOUND_DOH, MARIO_MARIO_SOUND_PLAYED); } else { play_character_sound_if_no_flag(m, CHAR_SOUND_UH, MARIO_MARIO_SOUND_PLAYED); @@ -1236,13 +1236,8 @@ u32 common_air_knockback_step(struct MarioState *m, u32 landAction, u32 hardFall if (!m) { return 0; } u32 stepResult; - if (m->knockbackTimer == 0) { - if (m->interactObj == NULL || !(m->interactObj->oInteractType & INTERACT_PLAYER)) { - mario_set_forward_vel(m, speed); - } - } else if (m->knockbackTimer < 0) { - // do nothing - } else { + // Refresh knockbackTimer + if (m->knockbackTimer > 0) { m->knockbackTimer = PVP_ATTACK_KNOCKBACK_TIMER_DEFAULT; } @@ -1356,7 +1351,7 @@ s32 act_hard_forward_air_kb(struct MarioState *m) { s32 act_thrown_backward(struct MarioState *m) { if (!m) { return 0; } u32 landAction; - if (m->actionArg != 0) { + if ((m->actionArg & ~PVP_ATTACK_KNOCKBACK_ACTION_ARG) != 0) { landAction = ACT_HARD_BACKWARD_GROUND_KB; } else { landAction = ACT_BACKWARD_GROUND_KB; @@ -1375,7 +1370,7 @@ s32 act_thrown_forward(struct MarioState *m) { s16 pitch; u32 landAction; - if (m->actionArg != 0) { + if ((m->actionArg & ~PVP_ATTACK_KNOCKBACK_ACTION_ARG) != 0) { landAction = ACT_HARD_FORWARD_GROUND_KB; } else { landAction = ACT_FORWARD_GROUND_KB; diff --git a/src/game/mario_actions_moving.c b/src/game/mario_actions_moving.c index 6a21d45d5..c502e5f31 100644 --- a/src/game/mario_actions_moving.c +++ b/src/game/mario_actions_moving.c @@ -1775,12 +1775,13 @@ Handles knockback on the ground (getting hit while on the ground) with shared lo s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2, s32 arg3, s32 arg4) { if (!m) { return 0; } s32 animFrame; + s32 damage = arg4 & ~PVP_ATTACK_KNOCKBACK_ACTION_ARG; if (arg3) { play_mario_heavy_landing_sound_once(m, SOUND_ACTION_TERRAIN_BODY_HIT_GROUND); } - if (arg4 > 0) { + if (damage > 0) { play_character_sound_if_no_flag(m, CHAR_SOUND_ATTACKED, MARIO_MARIO_SOUND_PLAYED); } else { #ifdef VERSION_JP @@ -1790,18 +1791,18 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 #endif } - if (m->knockbackTimer == 0) { - if (m->interactObj == NULL || !(m->interactObj->oInteractType & INTERACT_PLAYER)) { - if (m->forwardVel > 32.0f) { - m->forwardVel = 32.0f; - } - if (m->forwardVel < -32.0f) { - m->forwardVel = -32.0f; - } + // Cap speed if it's not a PVP attack + if (!(arg4 & PVP_ATTACK_KNOCKBACK_ACTION_ARG)) { + if (m->forwardVel > 32.0f) { + m->forwardVel = 32.0f; } - } else if (m->knockbackTimer < 0) { - // do nothing - } else { + if (m->forwardVel < -32.0f) { + m->forwardVel = -32.0f; + } + } + + // Refresh knockbackTimer + if (m->knockbackTimer > 0) { m->knockbackTimer = PVP_ATTACK_KNOCKBACK_TIMER_DEFAULT; } @@ -1824,7 +1825,7 @@ s32 common_ground_knockback_action(struct MarioState *m, s32 animation, s32 arg2 if (m->health < 0x100) { set_mario_action(m, ACT_STANDING_DEATH, 0); } else { - if (arg4 > 0) { + if (damage > 0) { m->invincTimer = 30; } set_mario_action(m, ACT_IDLE, 0); diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index a55aae378..129a8f876 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -1653,7 +1653,7 @@ char gSmluaConstants[] = "" "ATTACK_FROM_BELOW=6\n" "PVP_ATTACK_KNOCKBACK_TIMER_DEFAULT=10\n" "PVP_ATTACK_KNOCKBACK_TIMER_OVERRIDE=-5\n" -"PVP_ATTACK_OVERRIDE_VANILLA_INVINCIBILITY=0x0000FFFF\n" +"PVP_ATTACK_KNOCKBACK_ACTION_ARG=0x10000\n" "INT_STATUS_ATTACK_MASK=0x000000FF\n" "INT_STATUS_HOOT_GRABBED_BY_MARIO=(1 << 0)\n" "INT_STATUS_MARIO_UNK1=(1 << 1)\n" From dd233f26be1d66f38fa96730f8593673a91ac83a Mon Sep 17 00:00:00 2001 From: Agent X <44549182+AgentXLP@users.noreply.github.com> Date: Thu, 12 Feb 2026 15:41:55 -0500 Subject: [PATCH 07/42] Add hooked behaviors to get_id_from_behavior_name (#1104) * Add hooked behaviors to get_id_from_behavior_name * Fix comment capitalization --- data/behavior_table.c | 6 ++++ include/behavior_table.h | 2 +- src/pc/lua/smlua_hooks.c | 67 +++++++++++++++------------------------- src/pc/lua/smlua_hooks.h | 20 ++++++++++++ 4 files changed, 52 insertions(+), 43 deletions(-) diff --git a/data/behavior_table.c b/data/behavior_table.c index 6fbdf122b..1312c363f 100644 --- a/data/behavior_table.c +++ b/data/behavior_table.c @@ -597,5 +597,11 @@ enum BehaviorId get_id_from_behavior_name(const char* name) { return i; } } + for (int i = 0; i < gHookedBehaviorsCount; i++) { + struct LuaHookedBehavior *hooked = &gHookedBehaviors[i]; + if (hooked->bhvName && !strcmp(name, hooked->bhvName)) { + return hooked->overrideId; + } + } return id_bhv_max_count; } diff --git a/include/behavior_table.h b/include/behavior_table.h index f4cf7146b..b3ab308f2 100644 --- a/include/behavior_table.h +++ b/include/behavior_table.h @@ -557,7 +557,7 @@ enum BehaviorId get_id_from_vanilla_behavior(const BehaviorScript* behavior); const BehaviorScript* get_behavior_from_id(enum BehaviorId id); /* |description|Gets a behavior name from a behavior ID (bhvMyGreatMODCustom004)|descriptionEnd| */ const char* get_behavior_name_from_id(enum BehaviorId id); -/* |description|gets a behavior ID from a behavior name|descriptionEnd| */ +/* |description|Gets a behavior ID from a behavior name|descriptionEnd| */ enum BehaviorId get_id_from_behavior_name(const char* name); #endif diff --git a/src/pc/lua/smlua_hooks.c b/src/pc/lua/smlua_hooks.c index d487aa2ac..9bfc6dceb 100644 --- a/src/pc/lua/smlua_hooks.c +++ b/src/pc/lua/smlua_hooks.c @@ -398,30 +398,13 @@ u32 smlua_get_action_interaction_type(struct MarioState* m) { // hooked behaviors // ////////////////////// -struct LuaHookedBehavior { - u32 behaviorId; - u32 overrideId; - u32 originalId; - BehaviorScript *behavior; - const BehaviorScript* originalBehavior; - const char* bhvName; - int initReference; - int loopReference; - bool replace; - bool luaBehavior; - struct Mod* mod; - struct ModFile* modFile; -}; - -#define MAX_HOOKED_BEHAVIORS 1024 - -static struct LuaHookedBehavior sHookedBehaviors[MAX_HOOKED_BEHAVIORS] = { 0 }; -static int sHookedBehaviorsCount = 0; +struct LuaHookedBehavior gHookedBehaviors[MAX_HOOKED_BEHAVIORS] = { 0 }; +int gHookedBehaviorsCount = 0; enum BehaviorId smlua_get_original_behavior_id(const BehaviorScript* behavior) { enum BehaviorId id = get_id_from_behavior(behavior); - for (int i = 0; i < sHookedBehaviorsCount; i++) { - struct LuaHookedBehavior* hooked = &sHookedBehaviors[i]; + for (int i = 0; i < gHookedBehaviorsCount; i++) { + struct LuaHookedBehavior* hooked = &gHookedBehaviors[i]; if (hooked->behavior == behavior) { id = hooked->overrideId; } @@ -443,8 +426,8 @@ const BehaviorScript* smlua_get_hooked_behavior_from_id(enum BehaviorId id, bool lua_State *L = gLuaState; if (L == NULL) { return NULL; } - for (int i = 0; i < sHookedBehaviorsCount; i++) { - struct LuaHookedBehavior* hooked = &sHookedBehaviors[i]; + for (int i = 0; i < gHookedBehaviorsCount; i++) { + struct LuaHookedBehavior* hooked = &gHookedBehaviors[i]; if (hooked->behaviorId != id && hooked->overrideId != id) { continue; } if (returnOriginal && !hooked->replace) { return hooked->originalBehavior; } return hooked->behavior; @@ -457,8 +440,8 @@ bool smlua_is_behavior_hooked(const BehaviorScript *behavior) { if (L == NULL) { return false; } enum BehaviorId id = get_id_from_behavior(behavior); - for (int i = 0; i < sHookedBehaviorsCount; i++) { - struct LuaHookedBehavior *hooked = &sHookedBehaviors[i]; + for (int i = 0; i < gHookedBehaviorsCount; i++) { + struct LuaHookedBehavior *hooked = &gHookedBehaviors[i]; if (hooked->behaviorId != id && hooked->overrideId != id) { continue; } return hooked->luaBehavior; } @@ -467,8 +450,8 @@ bool smlua_is_behavior_hooked(const BehaviorScript *behavior) { } const char* smlua_get_name_from_hooked_behavior_id(enum BehaviorId id) { - for (int i = 0; i < sHookedBehaviorsCount; i++) { - struct LuaHookedBehavior *hooked = &sHookedBehaviors[i]; + for (int i = 0; i < gHookedBehaviorsCount; i++) { + struct LuaHookedBehavior *hooked = &gHookedBehaviors[i]; if (hooked->behaviorId != id && hooked->overrideId != id) { continue; } return hooked->bhvName; } @@ -476,7 +459,7 @@ const char* smlua_get_name_from_hooked_behavior_id(enum BehaviorId id) { } int smlua_hook_custom_bhv(BehaviorScript *bhvScript, const char *bhvName) { - if (sHookedBehaviorsCount >= MAX_HOOKED_BEHAVIORS) { + if (gHookedBehaviorsCount >= MAX_HOOKED_BEHAVIORS) { LOG_ERROR("Hooked behaviors exceeded maximum references!"); return 0; } @@ -490,8 +473,8 @@ int smlua_hook_custom_bhv(BehaviorScript *bhvScript, const char *bhvName) { u8 newBehavior = originalBehaviorId >= id_bhv_max_count; - struct LuaHookedBehavior *hooked = &sHookedBehaviors[sHookedBehaviorsCount]; - u16 customBehaviorId = (sHookedBehaviorsCount & 0xFFFF) | LUA_BEHAVIOR_FLAG; + struct LuaHookedBehavior *hooked = &gHookedBehaviors[gHookedBehaviorsCount]; + u16 customBehaviorId = (gHookedBehaviorsCount & 0xFFFF) | LUA_BEHAVIOR_FLAG; hooked->behavior = bhvScript; hooked->behavior[1] = (BehaviorScript)BC_B0H(0x39, customBehaviorId); // This is ID(customBehaviorId) hooked->behaviorId = customBehaviorId; @@ -506,7 +489,7 @@ int smlua_hook_custom_bhv(BehaviorScript *bhvScript, const char *bhvName) { hooked->mod = gLuaActiveMod; hooked->modFile = gLuaActiveModFile; - sHookedBehaviorsCount++; + gHookedBehaviorsCount++; // We want to push the behavior into the global LUA state. So mods can access it. // It's also used for some things that would normally access a LUA behavior instead. @@ -531,7 +514,7 @@ int smlua_hook_behavior(lua_State* L) { int paramCount = lua_gettop(L); - if (sHookedBehaviorsCount >= MAX_HOOKED_BEHAVIORS) { + if (gHookedBehaviorsCount >= MAX_HOOKED_BEHAVIORS) { LOG_LUA_LINE("Hooked behaviors exceeded maximum references!"); return 0; } @@ -634,8 +617,8 @@ int smlua_hook_behavior(lua_State* L) { bhvName = sGenericBhvName; } - struct LuaHookedBehavior* hooked = &sHookedBehaviors[sHookedBehaviorsCount]; - u16 customBehaviorId = (sHookedBehaviorsCount & 0xFFFF) | LUA_BEHAVIOR_FLAG; + struct LuaHookedBehavior* hooked = &gHookedBehaviors[gHookedBehaviorsCount]; + u16 customBehaviorId = (gHookedBehaviorsCount & 0xFFFF) | LUA_BEHAVIOR_FLAG; hooked->behavior = calloc(4, sizeof(BehaviorScript)); hooked->behavior[0] = (BehaviorScript)BC_BB(0x00, objectList); // This is BEGIN(objectList) hooked->behavior[1] = (BehaviorScript)BC_B0H(0x39, customBehaviorId); // This is ID(customBehaviorId) @@ -653,7 +636,7 @@ int smlua_hook_behavior(lua_State* L) { hooked->mod = gLuaActiveMod; hooked->modFile = gLuaActiveModFile; - sHookedBehaviorsCount++; + gHookedBehaviorsCount++; // We want to push the behavior into the global LUA state. So mods can access it. // It's also used for some things that would normally access a LUA behavior instead. @@ -670,8 +653,8 @@ int smlua_hook_behavior(lua_State* L) { bool smlua_call_behavior_hook(const BehaviorScript** behavior, struct Object* object, bool before) { lua_State* L = gLuaState; if (L == NULL) { return false; } - for (int i = 0; i < sHookedBehaviorsCount; i++) { - struct LuaHookedBehavior* hooked = &sHookedBehaviors[i]; + for (int i = 0; i < gHookedBehaviorsCount; i++) { + struct LuaHookedBehavior* hooked = &gHookedBehaviors[i]; // find behavior if (object->behavior != hooked->behavior) { @@ -1518,8 +1501,8 @@ void smlua_hook_replace_function_references(lua_State* L, int oldReference, int smlua_hook_replace_function_reference(L, &hooked->reference, oldReference, newReference); } - for (int i = 0; i < sHookedBehaviorsCount; i++) { - struct LuaHookedBehavior* hooked = &sHookedBehaviors[i]; + for (int i = 0; i < gHookedBehaviorsCount; i++) { + struct LuaHookedBehavior* hooked = &gHookedBehaviors[i]; smlua_hook_replace_function_reference(L, &hooked->initReference, oldReference, newReference); smlua_hook_replace_function_reference(L, &hooked->loopReference, oldReference, newReference); } @@ -1574,8 +1557,8 @@ void smlua_clear_hooks(void) { } gHookedModMenuElementsCount = 0; - for (int i = 0; i < sHookedBehaviorsCount; i++) { - struct LuaHookedBehavior* hooked = &sHookedBehaviors[i]; + for (int i = 0; i < gHookedBehaviorsCount; i++) { + struct LuaHookedBehavior* hooked = &gHookedBehaviors[i]; // If this is NULL. We can't do anything with it. if (hooked->behavior != NULL) { @@ -1601,7 +1584,7 @@ void smlua_clear_hooks(void) { hooked->mod = NULL; hooked->modFile = NULL; } - sHookedBehaviorsCount = 0; + gHookedBehaviorsCount = 0; memset(gLuaMarioActionIndex, 0, sizeof(gLuaMarioActionIndex)); } diff --git a/src/pc/lua/smlua_hooks.h b/src/pc/lua/smlua_hooks.h index edfcc975f..a857bbad3 100644 --- a/src/pc/lua/smlua_hooks.h +++ b/src/pc/lua/smlua_hooks.h @@ -127,6 +127,26 @@ extern u32 gLuaMarioActionIndex[]; extern struct LuaHookedModMenuElement gHookedModMenuElements[]; extern int gHookedModMenuElementsCount; +#define MAX_HOOKED_BEHAVIORS 1024 + +struct LuaHookedBehavior { + u32 behaviorId; + u32 overrideId; + u32 originalId; + BehaviorScript *behavior; + const BehaviorScript* originalBehavior; + const char* bhvName; + int initReference; + int loopReference; + bool replace; + bool luaBehavior; + struct Mod* mod; + struct ModFile* modFile; +}; + +extern int gHookedBehaviorsCount; +extern struct LuaHookedBehavior gHookedBehaviors[MAX_HOOKED_BEHAVIORS]; + #define OUTPUT #define SMLUA_EVENT_HOOK(hookEventType, hookReturn, ...) bool smlua_call_event_hooks_##hookEventType(__VA_ARGS__); #include "smlua_hook_events.inl" 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 08/42] 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 09/42] 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 10/42] 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 11/42] 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 12/42] 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 13/42] 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 14/42] 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 15/42] 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 16/42] 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 17/42] 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 18/42] 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 19/42] 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 20/42] 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 21/42] 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 22/42] 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 zcmV+r5by6qSx!$=LP<_+8vp`}t z2jg}W$>gqb2_sI9%cOfLQB;zot5PW)ikOq4l5{~L6uP)Xx0566Z|`Ap`I4UR`=0;v zAJ5u*|JHif`@Vav-@D#-L(6*xdjZY>0Tv zXz!P}`s-Up;N29>kFrsxivEgNe@bK>AYDYK@Ujn&vtQ@ z{9E_Wdh5H-~ADExRtNdy)}&Q5y!`+*5X{IFSofU z!he7=C{CDt6R%a^tM^RvqBws~z8Bb2(&v5HLeWBcleyFZwZ-Vj0V456**1o>zFm!_ z+x3{WaxFv2M;S9L{G+E`%DAO1a`0ri#r(L1OQ|yb>-Sw(>lS-(N>R4ir;ylVY|@=c z9$Kc-_aw)9NtY>e8KGkO>8j&)*5|ledFys7;vT)(B3hjI=}ws`qpPv=uM8uOgZd2>6!Uhg1hqfObad*?%0oYS=hF8#&+&-=BOR`HI> z&92;}YnX3caF+H_InZjxqE3n6s-S*f?k@DSu=^g5vyF$`y~-c);vY&^6x!0HGA+Iu z%3TvJz4ghvW6+`RQo~z!oufIizeGIWskmG`>&n#%2b^3^Qf5_RcQ(u)nQ{+7_-q`}muoaCv8T^Qnkh zo@-?Z`_Pd>T3`}x%euPX){tTsYMQ6s z``c`Dg5g!rySTR|`VhvXm{eGG&iRil(>nx_ONJ8lRl3E8qWEXod0D_7ym_r_`0OH^ zUm5d$&~R=jy@BBEdt;$=mxklq@SB8>(GBRD6}z1_KXq|Z$@iSAv`axV?o0x6rdFFN z=24!MJ8I^I(zQ)nR?g?7`n%_f%vOmw;C0+|jp%l%tkqZNv9k3fSfRiD|bwsl%gFh(NmW?VW`%NVcSJ>8q+ zIo;7tGXyg;X`_QG`jts;!D0RV!358yvR2WZ407=U5iBr=R2K*RFL55efkj$sBJK8FAPzc_|PV@HnRw30o~ z%_!x@F`?NjG?UhesjWH~E4pk*#B6C)c#4EVN_ci=W~LQiY47|%SA7R|w&nWS@mJ=$ zXDevhF>ZAkU5GVoC|6i<$M0)KadS_!UxaV1RCHCjyp+dafXjj#gZ>!(##2%s?hH(S zP!h>OHdW@E#oNlrBwt;EtEke&plX(qnfY@=eao3^R5yr^7D-=qp#$$VzWjEkuC*tE?RAFR8?%=2-+Rt2c- ziG|^-7zRVt+(#OZ2)viF+P!~C&CtNkD$7U+a(tOZsCj(UtL{pR*4$Q2x`(%2{hG9ZxS;~v*xY|ph_ec z2ObN+1W0ZDv>upI%|i(L&V78FVXcj#JteFxK6IMhy07c}OtB)Hmi8S^3DsytW@6|j z5BnA#Ve7gxOZ>BO!G4MAIcnA0Tq`rTotB{0me?9a5?$a<>j^O<5IdUx)#h(ZQuMUsDSxbksLX4iDN#? zu{*Ul6I)riA~!|Bs~RX|osPG#QR}iSQeUd~a^K?(1;=WY{l#T5+!m?GHQKG0A~jx< zh>pD-ALQ;CtM8p{|EuU;oxF-CBtqoT+~Sqw15zQ5to@NBdC?$@k>fAomR^^yFWT>Y z;g57ozN~#&)vA!Vjz0G~-K9IdH&A7*4!%!&v|cCLWYdZE7SfZ~geX-r2fnLFoujz{ zf9HZTs>)}#{C+;<*MPqBnUB7p3ai|Fy7;=T65G%ni(M7%UMD!^sC!&p6H~nC?GbD1 zdHAU9YnScZaUSgEoy|JtvCGZ#5pUitK(Gf#)dQq>na8%FX1}iYy24b(&%tJ#X!b5v zYO0leJ3YqB>`H!GwH!s8;U_MN-=09`b4dn!UKZ-R9cVXaSYLK+SPxD}B@MO3HK_e@ zbybGbn?O6(aU1pAG|L^SuUtPn>^E$&<=6Cf)@^6muhpeJ?*)NTP0k_4Hwxa?>A>ZxLa*iY*Ze1?0%7Cz4OZ7$~Alxu~6FFs4rX7cT`>E>Q`R67CUnW6U|t2 zXMRo1MimDh?s{x}Z1TAWEe;F+4pr%h$Y*VC%nH%j{peY3MyJ)Tn!WpH(U)paGfSgd zm2*2%>sj% z-l`{^vP*m>X>e$*V{2+-@^l-q+`2pcM}6^aMr;c+bh-}vGAY(_(WZ@=xh)I7M((zj zi|@+)ZHogsAxV6h>2&Tgbd!-fD2lqlD)q9#FZXkx?R>J!7H?y~=s2SLtiE(XOxBqs z|Jt0+?UhNWhM5mKn~r*3+2_Vvusj$OYFK3k(yfnH&X;jbOj}jyF?UzroC1l8>-*Fp z>wd96i7tJOuN&Q6*cW(T2yGGb-0IKWs56$={5znjb|b0iAD_oWU6WHvBCoO)Pc?=X z#`|2mwx}NJ54;>lOW1Vw)ZZlE+fVPrji!CAwxx#g zl#>U8I8hSoK6@qi-_%N242eZ%m(J8z|LAqyuz2g2;2zNeWp>sn3`6G6((Aa+18cFj zUSbA5(k<^{{(=ZhMF@TOL*uf+*z~TSOgt8X#G^eS@dy)*F!5+lNIb$sB}_aR>9Gd9 z*9|LQVnP=eh)@REwoVQ|{6-j2_G;w*5xkGZ;aLEMO#D&WM1(PDfJI}cHYCV`|Cu3+ z35Gzk0Dt$j%@#As!^&Tetj|EyhXMFDSU=oN`3zrhXaMSl*Al!L?xuWZ^Td#+4+Et* z!Ez%`O}4ZnFCf(M&6Yvb5Yh$PLVt4 za@LsZ&?&Hh9C!u27~x6hffCRNKX;AbOVwuul||hM9{9=w&hWiu1hd~~LUus@oBTr0 zG69|jgxCOb7T6HVb08IXTtUdXfTd6?BoBxqxPoH69Xe*h0(I}L7^mQKmLnMJ za8{qwxCK1({M`4$N{6wSPMg55v3pLy;v4^s%oDa81)O zI+94hVkIeLK$Rq8DKa!brqHnRvP6KDCt_tNk^n6uiB*)O0vR+0OOwF>0+EU(6R1E| z9$*z^;gS+h!@?s#9=-y348Rk}SQ?%Th_Z@UDp3(k8LSqg{$Meq!TN*US}dS5LKn?Z zx(IfII!Y(OZYqs#KX8KY?Gxzyegd7TW9aNOVnax0} z+d786$T(#T{gH8%G2vkbOG}NTb1T$4fzIut;X65k({O{3u@*~}xPMf;onX$1OpHT>5s}ox?oh^cqkCYqw)wIt1lkj?0ZlK zBuojzm0kri53!n=|4aC9*$G%XkV0_e} zVLWO8kss@jF>G+GzF|BnZ#==_i5SEWjgue7qxKOzZUbOEcEN`6`1zRW6JpSp8|Fj# zZ{iQ8+fT(GEQiFOe9KgPHyy`!EWl%79{`06#~Xzxh(B2w>ePDR4IQh82nREnh==2t zf~8R@upSDmhcZPiXR?GY_Mg^rER>*@iyp4!rpQ5XWr`G*o54fDX0@P(3+v4z8KVW& zB!b{L7&8QgxDY@5_CF#aW{fH15qV+hK6#;TN@wC>5h7=b%sNs&BTEY4Iv9_E%V7fc zr>oFOjO#LoOX?q#yYM!EpZJnsXn(iBH^%)?IsEn`vOn^Y`M>j$!T9gJ6s3#^d2+qI zqdfe4g6-g58bE;xU;&UkA*hr&K=3>r_3d-*r!aNQvlM)p)GPQ~N8rs!L-go@GH7x; zZr`;#nSP|!9jjkxV=*uS|1%ppLgx+ZL#ggH~U(@*AlotJ^SJk6c}AO4ku5;4!lvyDsicB6J>tx^g6_f?6B0Kyrky7o6 zb00l^t!~gqr_t^EpPm4}uG`${BzfxKG}=o;vfXp_^Rp&YaJlHrpg%644+AD<={tbPcii5t%Q#N|Wjk0eb)EFaNJ*PP6qr}tgeeIR3yx&@gpap& zYrT=uGdDM!TzgCM+pCMb3-p?xcOS}(`A@z9rdZc-u*Fw0v;TNk++5DOD{V)5?%`fu zOl%`c69}zl(x7QM2XJq;Oe7o)>Z~;EXYn@x$~ao>760qmgh#f(`#T*#GmzLabGB=~ z)&zS~~r}LNX^NbgKYh zR*6A3izK;-`B2Tu7Ds4ky_4=1*d(YoEfBWZ{ zf;|Pasasxlf7>DjQ7yGEg$ymcs5TvVHCQcd0 zXvCK+OwD2}>y;Qh^LNC7%hFas%|rq1d$1d8LrxNoiVMKGl3l89k`BU@j{V3h=-fbY#-}H!L}1LISUtW%efT*M@wA{v>Qd08bxl4CDJwGtz)Ih z*h`vt0lgi+FHv8bT(J)?NL|Acu{Z?#|T#VB#c})kw4i7 z@Q8?F0OYtHC&xEoxjcHI7&}y)TXK;&UxfdvILGVCfhAJ!*_$-+cP2giB@yu}3uKb$=7O zbfp_~{b=5UgE!o{rSX)k+bw;5i!(QBL$(~OK{lk!Hk zj`z0-4GUv8fL`LRdB`KzUwiKzOobsi#oRdb zwQI(ow9*0LAH8+iO8X?%nO+D|vMR?POFQA-_%w55nJu16I1ui^*)WP%B(1d4 zaK<`^xM9+-ED0m9m%lY>SQ9{abCu^VO_Tbt@|&$&y_&V9baqtmBuP;Dgj)BgY{1Or zYI~F%n6^6Uw50MU{o)8}Ao4w|mtR ziq6+Qgujs_h&Ro>knXvx*fJu_((A>{4{JPmi(lkd?V0-9Nk@Z?rcN}*5`)O>)QsY5 z9rk(mu=5R4U7Jqs+P{5m5$PJYXNR~oq_Q`;ev}k)Ut#RjeRrGa&B@>E@tRcMm>O-- zj(FySMUyJ*r+g6Z^?%$u>rSCrT65@kZ5>H|!9hJG<&AUNNL4E*%r&|znYx*1)p_DO zY4wELGYW)lnUcxUz~Bx~5hsd=T~KIB*Vnr0{NC{0YztD4kx;ua;Cx@kzO`vRr?-+$ zC1(*1IUcAHj~QEd@PcNcUQENWpXrg_8S&fBjeBIbc@k&*L+^-%^&ia_1TWp({?bO% zL)7C~>K#$e)_b^X%lW;;I}IzSflj$l`jpT+mYG@0GYE?&rlbZqEk11SWXF#BqbHe@ z6UQl!Pno_!aJH%aZiml9gQBV!rpYa%rsg)hS9oHJNlsi0qw{J(n@g&e&c-r>#{V?r zl1CVqXyo~Axmb*8+)O@Nj@3wS;bOn{jr+skU~~zSpI2~b+-)c0*re(|lC#&o@cvnJ z&E?Pz?`Bta^wiqCx{d&_P9)m9hB(#ze7?AJZlw7#PoSGg85uLl<3WgZZ4*uJWW6S_ zRBL3&BgY>eMa4G=#7B&8N80jSPLFv%e^Tj>Kh8UUU3_Vl@%!2*!GXlOd3_0X=0T#q zeC{c!xd1kdi7q02oB?Ie2cEA%XEc$-2N-nVm(nsSjK=~93k`2bmSz8*A)%Tf@I;0` zJ8ef>9#yXV#lZUXg?05IkB<-JpJ{KA8xae@J^5OKm-5fFx2~}x(6_EWDN(lEs8d5N z?Z5;SIzHK&8P<<}LTq6_If@xHv-N9y{Q@@)IP1i-GsXk7!Rd5an>cZzO!LsJakApl z5P`AaIovqFla{@gz$4_nbpZcVdt7#M-5bDty|KUpc{U7S*UlVxK45>6w_aH#!HrxcW0c8N!h-bp6eHu{MUj(D}#{-4^DB1XWSTX*BY#Nb3p+@J9Vd-pT%lp5gGs1?U=*&cE z%Vd0_Go6VAG&&Zd()0k9$$}7WBlJb+454(^gYY_f2)zNsLh5;n4nk)NN@o_tAh8g7 zQz1Pzbyzy1i~l(~51rDTxZKH;Cj+z<7Z=OguqoY&E8xlxtxR}^;$-iS2G`&p5thlX z^8O774*ZnCPz=B(c)C&^wgF0cyZ#LbR?4GTRbLFU+1KDKSaBrCaS;4u5LS*?moLZe zM&7dF@sLA?$4UdJysATXh(T3-a;%iM zQ*&4ygP8t7@^Y-SkK#cafMC@HljFhT@mgvzxH@Q)5AC1CA40dUia$gSjX!q7aC{dG z;yVOL5aI)%QIU9~QDpI_!(t4t2iZ_nJrpFEsT2|t$25q^pdor_h#uN7wVb^Jcf{YV z<@mB1yemRp%MEh|A(bgwSSElv*=99h!nh4jUQ&Od+(otle8n#b zON-AI_;$oEDo18NAp0dRdH80{@x~ ttHE<1sEzqt!bJP12(yJAE)JRsJNPf#L5U8&N{;sze-sUM>wn?-%tL)~aX|n8 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 23/42] 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 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 delta 9624 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 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 24/42] 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 25/42] 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 26/42] 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 27/42] 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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 From 697f1c3f826cc7482ae8f383ee00bd2a18779b53 Mon Sep 17 00:00:00 2001 From: Cooliokid956 <68075390+Cooliokid956@users.noreply.github.com> Date: Sun, 15 Mar 2026 08:02:17 -0500 Subject: [PATCH 28/42] Add Scroll Binds (#835) * Add Scroll Binds and fix a five year oob array index/write * number * fix that part I just saw this * That should be that I have tested it, scroll works on the Up input, and on a regular input, so does everything else --- src/pc/controller/controller_bind_mapping.c | 16 +++++++++++----- src/pc/controller/controller_mouse.c | 5 +++++ src/pc/controller/controller_sdl.h | 2 ++ src/pc/controller/controller_sdl2.c | 8 ++++---- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/pc/controller/controller_bind_mapping.c b/src/pc/controller/controller_bind_mapping.c index 8c56299f2..24f81481b 100644 --- a/src/pc/controller/controller_bind_mapping.c +++ b/src/pc/controller/controller_bind_mapping.c @@ -106,11 +106,17 @@ const char* translate_bind_to_name(int bind) { // mouse if (bind >= VK_BASE_SDL_MOUSE) { int mouse_button = (bind - VK_BASE_SDL_MOUSE); - if (mouse_button == 1) { return "L Mouse"; } - if (mouse_button == 2) { return "M Mouse"; } - if (mouse_button == 3) { return "R Mouse"; } - snprintf(name, 8, "Mouse %d", bind - VK_BASE_SDL_MOUSE); - return name; + switch (mouse_button) { + case 1: return "L Mouse"; + case 2: return "M Mouse"; + case 3: return "R Mouse"; + case 6: return "Scroll Up"; + case 7: return "Scroll Down"; + default: { + snprintf(name, 11, "Mouse %d", mouse_button); + return name; + } + } } // gamepad diff --git a/src/pc/controller/controller_mouse.c b/src/pc/controller/controller_mouse.c index 84c10a635..bb047ead5 100644 --- a/src/pc/controller/controller_mouse.c +++ b/src/pc/controller/controller_mouse.c @@ -116,6 +116,11 @@ void controller_mouse_read_relative(void) { #elif defined(CAPI_SDL1) || defined(CAPI_SDL2) mouse_buttons = SDL_GetRelativeMouseState(&mouse_x, &mouse_y); #endif + if (mouse_scroll_y > 0) { + mouse_buttons |= MWHEELUP; + } else if (mouse_scroll_y < 0) { + mouse_buttons |= MWHEELDOWN; + } } void controller_mouse_enter_relative(void) { diff --git a/src/pc/controller/controller_sdl.h b/src/pc/controller/controller_sdl.h index bab54eddc..b6235365d 100644 --- a/src/pc/controller/controller_sdl.h +++ b/src/pc/controller/controller_sdl.h @@ -8,6 +8,8 @@ // mouse buttons are also in the controller namespace, just offset 0x100 #define VK_OFS_SDL_MOUSE 0x0100 #define VK_BASE_SDL_MOUSE (VK_BASE_SDL_GAMEPAD + VK_OFS_SDL_MOUSE) +#define MWHEELUP 0x20 +#define MWHEELDOWN 0x40 extern struct ControllerAPI controller_sdl; diff --git a/src/pc/controller/controller_sdl2.c b/src/pc/controller/controller_sdl2.c index 373065415..95dafbed1 100644 --- a/src/pc/controller/controller_sdl2.c +++ b/src/pc/controller/controller_sdl2.c @@ -60,11 +60,11 @@ static s16 invert_s16(s16 val) { static inline void controller_add_binds(const u32 mask, const u32 *btns) { for (u32 i = 0; i < MAX_BINDS; ++i) { if (btns[i] >= VK_BASE_SDL_GAMEPAD && btns[i] <= VK_BASE_SDL_GAMEPAD + VK_SIZE) { - if (btns[i] >= VK_BASE_SDL_MOUSE && num_joy_binds < MAX_JOYBINDS) { + if (btns[i] >= VK_BASE_SDL_MOUSE && num_mouse_binds < MAX_JOYBINDS) { mouse_binds[num_mouse_binds][0] = btns[i] - VK_BASE_SDL_MOUSE; mouse_binds[num_mouse_binds][1] = mask; ++num_mouse_binds; - } else if (num_mouse_binds < MAX_JOYBINDS) { + } else if (num_joy_binds < MAX_JOYBINDS) { joy_binds[num_joy_binds][0] = btns[i] - VK_BASE_SDL_GAMEPAD; joy_binds[num_joy_binds][1] = mask; ++num_joy_binds; @@ -190,10 +190,11 @@ static void controller_sdl_read(OSContPad *pad) { controller_mouse_read_relative(); u32 mouse = mouse_buttons; + u32 buttons_down = 0; if (!gInteractableOverridePad) { for (u32 i = 0; i < num_mouse_binds; ++i) if (mouse & SDL_BUTTON(mouse_binds[i][0])) - pad->button |= mouse_binds[i][1]; + buttons_down |= mouse_binds[i][1]; } // remember buttons that changed from 0 to 1 last_mouse = (mouse_prev ^ mouse) & mouse; @@ -282,7 +283,6 @@ static void controller_sdl_read(OSContPad *pad) { update_button(VK_LTRIGGER - VK_BASE_SDL_GAMEPAD, ltrig > AXIS_THRESHOLD); update_button(VK_RTRIGGER - VK_BASE_SDL_GAMEPAD, rtrig > AXIS_THRESHOLD); - u32 buttons_down = 0; for (u32 i = 0; i < num_joy_binds; ++i) if (joy_buttons[joy_binds[i][0]]) buttons_down |= joy_binds[i][1]; From d9debe61d5e96a383e9194f5fbbe32f777fdbefb Mon Sep 17 00:00:00 2001 From: iZePlayz <69536095+iZePlayzYT@users.noreply.github.com> Date: Sun, 15 Mar 2026 14:02:30 +0100 Subject: [PATCH 29/42] fixed german translation for /confirm (#1067) --- lang/German.ini | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lang/German.ini b/lang/German.ini index 46d0bf440..e44e5c718 100644 --- a/lang/German.ini +++ b/lang/German.ini @@ -46,10 +46,10 @@ NAMETAGS_MISSING_PARAMETERS = "Fehlende Parameter: [OPTION]" SELF_KICK = "Du kannst dich nicht selbst kicken." SELF_BAN = "Du kannst dich nicht selbst bannen." SELF_MOD = "Du kannst dich nicht selbst zum Moderator machen." -KICK_CONFIRM = "Bist du sicher, dass du '@' vom Server kicken möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein, um fortzufahren." -BAN_CONFIRM = "Bist du sicher, dass du '@' vom Server bannen möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein, um fortzufahren." -PERM_BAN_CONFIRM = "Bist du sicher, dass du '@' dauerhaft vom Server bannen möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein, um fortzufahren." -MOD_CONFIRM = "Bist du sicher, dass du '@' zum Moderator ernennen möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein." +KICK_CONFIRM = "Bist du sicher, dass du '@' vom Server kicken möchtest?\nGib '\\#a0ffa0\\/confirm\\#fff982\\' ein, um fortzufahren." +BAN_CONFIRM = "Bist du sicher, dass du '@' vom Server bannen möchtest?\nGib '\\#a0ffa0\\/confirm\\#fff982\\' ein, um fortzufahren." +PERM_BAN_CONFIRM = "Bist du sicher, dass du '@' dauerhaft vom Server bannen möchtest?\nGib '\\#a0ffa0\\/confirm\\#fff982\\' ein, um fortzufahren." +MOD_CONFIRM = "Bist du sicher, dass du '@' zum Moderator ernennen möchtest?\nGib '\\#a0ffa0\\/confirm\\#fff982\\' ein." PLAYERS_DESC = "/players - Zeige alle Spieler und ihre IDs." KICK_DESC = "/kick [NAME|ID] - Kicke einen Spieler vom Server." BAN_DESC = "/ban [NAME|ID] - Banne einen Spieler vom Server." From 8fe56ab9990be338ef3a347ee22941ef09731af8 Mon Sep 17 00:00:00 2001 From: frog8412 <160930327+frog8412@users.noreply.github.com> Date: Sun, 15 Mar 2026 16:02:49 +0300 Subject: [PATCH 30/42] Update Japanese.ini (changes by 3UPPER) (#1114) * Update Japanese.ini (original by 3UPPER) * Fixed Japanese.ini --- lang/Japanese.ini | 206 +++++++++++++++++++++++----------------------- 1 file changed, 102 insertions(+), 104 deletions(-) diff --git a/lang/Japanese.ini b/lang/Japanese.ini index 322c449e8..a15f74b3a 100644 --- a/lang/Japanese.ini +++ b/lang/Japanese.ini @@ -1,61 +1,61 @@ [NOTIF] -CONNECTED = "@が接続しました" -DISCONNECTED = "@が切断しました。" -LEFT_THIS_LEVEL = "@がこのコースから出ました。" -ENTERED_THIS_LEVEL = "@がこのコースに入りました。" -ENTERED = "@が\n#に入りました。" -SERVER_CLOSED = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ 部屋が閉じられました。" -DISCORD_ERROR = "Discordエラーが発生しました。\n解決するには、\n1. ゲームを終了し、\n2. Discordを再起動してから、\n3. もう一度ゲームを開いてください。" +CONNECTED = "@ が参加しました" +DISCONNECTED = "@ が退出しました" +LEFT_THIS_LEVEL = "@ がこのコースから出ました" +ENTERED_THIS_LEVEL = "@ がこのコースに入りました" +ENTERED = "@ が \n# に入りました" +SERVER_CLOSED = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ ルームが閉じられました。" +DISCORD_ERROR = "Discordエラーが発生しました。\n解決するには、\n1. ゲームを終了する\n2. Discordを再起動する\n3. もう一度ゲームを開く\nの手順で進めてください。" DISCORD_DETECT = "\\#ffa0a0\\エラー:\\#dcdcdc\\ Discordを検出できませんでした。\n\\#a0a0a0\\ゲームを終了し、Discordを再起動してから、もう一度お試しください。" DISCONNECT_FULL = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ ルームが満員です。" DISCONNECT_KICK = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ キックされました。" DISCONNECT_BAN = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ BANされました。" DISCONNECT_REJOIN = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ 再参加中です…" DISCONNECT_CLOSED = "\\#ffa0a0\\切断されました:\\#dcdcdc\\ ホストが切断しました。" -DISCONNECT_BIG_MOD = "MODの量が多すぎます!\n切断しました。" -DIED = "@がやられた!" -DEBUG_FLY = "@がデバッグ飛行モードに入りました!" -IMPORT_MOD_SUCCESS = "'@'\n\\#a0ffa0\\MODを読み込みました\\#dcdcdc\\" -IMPORT_DYNOS_SUCCESS = "'@'\n\\#a0ffa0\\DynOSのパックを読み込みました\\#dcdcdc\\" -IMPORT_PALETTE_SUCCESS = "'@'\n\\#a0ffa0\\パレットのプリセットを読み込みました\\#dcdcdc\\" -IMPORT_FAIL = "'@'\n\\#ffa0a0\\読み込みに失敗しました。\\#dcdcdc\\" -IMPORT_FAIL_INGAME = "\\#ffa0a0\\ゲーム中はMODを読み込めません" +DISCONNECT_BIG_MOD = "このルームはMODの量が多すぎます。\n切断しました。" +DIED = "@がやられた" +DEBUG_FLY = "@がデバッグ飛行モードに入った" +IMPORT_MOD_SUCCESS = "\\#a0ffa0\\MODをインポートしました:\n\\#dcdcdc\\@" +IMPORT_DYNOS_SUCCESS = "\\#a0ffa0\\DynOSパックをインポートしました:\n\\#dcdcdc\\@" +IMPORT_PALETTE_SUCCESS = "\\#a0ffa0\\パレットプリセットをインポートしました:\n\\#dcdcdc\\@" +IMPORT_FAIL = "\\#ffa0a0\\インポートに失敗しました:\n\\#dcdcdc\\@" +IMPORT_FAIL_INGAME = "\\#ffa0a0\\ゲーム中はMODをインポートできません" COOPNET_CONNECTION_FAILED = "\\#ffa0a0\\CoopNetに接続できませんでした!" -COOPNET_DISCONNECTED = "\\#ffa0a0\\CoopNetとの接続が途絶えました!" +COOPNET_DISCONNECTED = "\\#ffa0a0\\CoopNetとの接続が失われました!" LOBBY_NOT_FOUND = "\\#ffa0a0\\エラー:\\#dcdcdc\\ ルームがすでに閉じられています!" -LOBBY_JOIN_FAILED = "\\#ffa0a0\\ルームに参加できませんでした。" -LOBBY_PASSWORD_INCORRECT = "\\#ffa0a0\\パスワードが間違っています。" -COOPNET_VERSION = "\\#ffa0a0\\あなたのバージョンはCoopNetに対応していません。アップデートしましょう!" -PEER_FAILED = "\\#ffa0a0\\'@'への接続に失敗しました。" +LOBBY_JOIN_FAILED = "\\#ffa0a0\\ルームへの参加に失敗しました!" +LOBBY_PASSWORD_INCORRECT = "\\#ffa0a0\\パスワードが間違っています!" +COOPNET_VERSION = "\\#ffa0a0\\あなたのゲームバージョンはCoopNetに対応していません。アップデートしましょう!" +PEER_FAILED = "\\#ffa0a0\\プレイヤー @ への接続に失敗しました。" UNKNOWN = "未知" -LOBBY_HOST = "部屋主" +LOBBY_HOST = "ルームのホスト" UPDATE_AVAILABLE = "アップデートが利用可能です!" -LATEST_VERSION = "最新バージョン" +LATEST_VERSION = "最新のバージョン" YOUR_VERSION = "あなたのバージョン" [CHAT] -KICKING = "'@'をキックしました!" -BANNING = "'@'をBANしました!" +KICKING = "@ をキックしました!" +BANNING = "@ をBANしました!" SERVER_ONLY = "このコマンドはホストのみが実行できます。" -PERM_BANNING = "'@'を永久BANしました!" -ADD_MODERATOR = "'@'をモデレーターにしました!" -PLAYERS = "プレイヤー" +PERM_BANNING = "@ を永久BANしました!" +ADD_MODERATOR = "@ をモデレーターにしました!" +PLAYERS = "ルーム内のプレイヤー" NO_PERMS = "このコマンドを実行する権限がありません。" PLAYER_NOT_FOUND = "プレイヤーが見つかりませんでした。" -NAMETAGS_MISSING_PARAMETERS = "引数が不足しています: [OPTION]が必要です。" +NAMETAGS_MISSING_PARAMETERS = "引数が不足しています: [OPTION] が必要です。" SELF_KICK = "自分自身はキックできません。" SELF_BAN = "自分自身はBANできません。" SELF_MOD = "自分自身をモデレーターにすることはできません。" -KICK_CONFIRM = "本当に'@'を強制退出させますか?\n実行するには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。" -BAN_CONFIRM = "本当に'@'をBANしますか?\nBANするには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。" -PERM_BAN_CONFIRM = "本当に'@'を永久BANしますか?\nBANするには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。" -MOD_CONFIRM = "本当に'@'をモデレーターにしますか?\n'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。" -PLAYERS_DESC = "/players - プレイヤー名とID一覧を表示します。" -KICK_DESC = "/kick [NAME|ID] - プレイヤーを現在のルームからキックします。" -BAN_DESC = "/ban [NAME|ID] - プレイヤーを現在のルームからBANします。" -PERM_BAN_DESC = "/permban [NAME|ID] - プレイヤーをあなたが今後ホストするすべてのルームからBANします。" -MOD_DESC = "/moderator [NAME|ID] - プレイヤーに/kick、/ban、/permbanのようなコマンドの使用を許可します。" -NAMETAGS_DESC = "/nametags [show-tag|show-health] - あなたの体力やネームタグの表示を変更します。" +KICK_CONFIRM = "本当に @ をキックしますか?\n実行するには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。" +BAN_CONFIRM = "本当に @ をBANしますか?\nBANするには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。" +PERM_BAN_CONFIRM = "本当に @ を永久BANしますか?\nBANするには'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。" +MOD_CONFIRM = "本当に @ をモデレーターにしますか?\n'\\#a0ffa0\\/confirm\\#fff982\\' と入力して確定します。" +PLAYERS_DESC = "/players - ルーム内のプレイヤー名とIDの一覧を表示します。" +KICK_DESC = "/kick [プレイヤー名|ID] - 指定したプレイヤーを現在のルームからキックします。" +BAN_DESC = "/ban [プレイヤー名|ID] - 指定したプレイヤーを現在のルームからBANします。" +PERM_BAN_DESC = "/permban [プレイヤー名|ID] - 指定したプレイヤーをあなたが今後ホストするすべてのルームからBANします。" +MOD_DESC = "/moderator [プレイヤー名|ID] - 指定したプレイヤーに/kick、/ban、/permbanのようなコマンドの使用を許可します。" +NAMETAGS_DESC = "/nametags [show-tag|show-health] - あなたのネームタグ/体力の表示を変更します。" UNRECOGNIZED = "未知のコマンドです。" MOD_GRANTED = "\\#fff982\\あなたはモデレーターになりました。" @@ -70,8 +70,8 @@ CAMERA = "CAMERA" FREE_CAMERA = "フリーカメラ" ANALOG_CAMERA = "アナログカメラ" FREE_CAMERA_TITLE = "FREE CAMERA" -FREE_CAMERA_L_CENTERING = "Lセンタリング" -FREE_CAMERA_USE_DPAD = "DPad の動作" +FREE_CAMERA_L_CENTERING = "Lボタンで前を向く" +FREE_CAMERA_USE_DPAD = "十字キー操作" FREE_CAMERA_COLLISION = "カメラの衝突" ROMHACK_CAMERA_TITLE = "ROMHACK\nCAMERA" ROMHACK_CAMERA = "ロムハックカメラ" @@ -79,26 +79,25 @@ ROMHACK_CAMERA_AUTOMATIC = "自動" ROMHACK_CAMERA_ON = "オン" ROMHACK_CAMERA_OFF = "オフ" ROMHACK_CAMERA_IN_BOWSER = "クッパ戦で使用" -ROMHACK_CAMERA_COLLISION = "カメラの衝突" -ROMHACK_CAMERA_L_CENTERING = "Lセンタリング" -ROMHACK_CAMERA_USE_DPAD = "DPad の動作" -ROMHACK_CAMERA_SLOW_FALL = "スローフォール" -CAMERA_TOXIC_GAS = "有毒ガスの調整" +ROMHACK_CAMERA_COLLISION = "カメラの当たり判定" +ROMHACK_CAMERA_L_CENTERING = "Lボタンで前を向く" +ROMHACK_CAMERA_USE_DPAD = "十字キー操作" +ROMHACK_CAMERA_SLOW_FALL = "低速落下" +CAMERA_TOXIC_GAS = "有毒ガス内での調整" MOUSE_LOOK = "マウスでの操作" INVERT_X = "X方向のカメラ反転" INVERT_Y = "Y方向のカメラ反転" X_SENSITIVITY = "X方向の感度" Y_SENSITIVITY = "Y方向の感度" -AGGRESSION = "かたさ" -PAN_LEVEL = "カメラのずれ" -DECELERATION = "カメラ減速" -ROMHACK_CAMERA_OFF = "オフ" +AGGRESSION = "カメラの追従性" +PAN_LEVEL = "カメラの水平速度" +DECELERATION = "カメラ減速の強さ" [CONTROLS] CONTROLS = "CONTROLS" -N64_BINDS = "ニンテンドウ64の入力" -EXTRA_BINDS = "追加の入力" +N64_BINDS = "ニンテンドウ64のボタン割り当て" +EXTRA_BINDS = "追加のボタン割り当て" BACKGROUND_GAMEPAD = "バックグラウンドでのコントローラー認識" DISABLE_GAMEPADS = "コントローラーを無効化" GAMEPAD = "コントローラー" @@ -106,28 +105,28 @@ DEADZONE = "デッドゾーン" RUMBLE_STRENGTH = "振動の強さ" CHAT = "チャット" -PLAYERS = "プレイヤーリストの表示" +PLAYERS = "プレイヤーリスト" D_UP = "十字キー 上" D_DOWN = "十字キー 下" D_LEFT = "十字キー 左" D_RIGHT = "十字キー 右" -X = "X" -Y = "Y" +X = "Xボタン" +Y = "Yボタン" CONSOLE = "コンソール" PREV = "前のページ" NEXT = "次のページ" -DISCONNECT = "切断" +DISCONNECT = "ゲームから切断" -UP = "上" -DOWN = "下" -LEFT = "左" -RIGHT = "右" -A = "A" -B = "B" -START = "スタート" -L = "L" -R = "R" -Z = "Z" +UP = "3Dスティック 上" +DOWN = "3Dスティック 下" +LEFT = "3Dスティック 左" +RIGHT = "3Dスティック 右" +A = "Aボタン" +B = "Bボタン" +START = "STARTボタン" +L = "Lトリガー" +R = "Rトリガー" +Z = "Zトリガー" C_UP = "Cボタン 上" C_DOWN = "Cボタン 下" C_LEFT = "Cボタン 左" @@ -135,7 +134,7 @@ C_RIGHT = "Cボタン 右" ANALOG_STICK_OPTIONS = "アナログスティックのオプション" -ROTATE_LEFT = "左スティックを90度回転させる" +ROTATE_LEFT = "左スティックを90度回転" INVERT_LEFT_X = "左スティックX軸の反転" INVERT_LEFT_Y = "左スティックY軸の反転" ROTATE_RIGHT = "右スティックを90度回転" @@ -153,7 +152,7 @@ AUTO = "自動" MANUAL = "手動" UNCAPPED = "無制限" FRAME_LIMIT = "FPSの制限" -FAST = "速い" +FAST = "高速" ACCURATE = "正確" INTERPOLATION = "補間" NEAREST = "ニアレスト" @@ -196,24 +195,24 @@ LOCAL_PLAYER_MODEL_ONLY = "ローカルのキャラモデルに限定" [HOST_MESSAGE] INFO_TITLE = "INFO" -WARN_DISCORD = "招待したいフレンドを右クリックしてn'\\#d0d0ff\\ゲームに招待\\#dcdcdc\\'.\n\nを押すと招待できます。サーバー内のチャンネルにも、チャット横の\\#d0d0ff\\プラス\\#dcdcdc\\マークから招待メッセージを送信できます。\n\nゲーム アクティビティを\\#ffa0a0\\必ず\\#dcdcdc\\有効にしてください。\n\n\nオフラインに設定していると、招待の送信を\\#ffa0a0\\妨げる\\#dcdcdc\\可能性があります。" -WARN_DISCORD2 = "\\#ffa0a0\\エラー:\\#dcdcdc\\Discordを検出できませんでした。\n\\#a0a0a0\\ゲームを終了し、Discordを再起動してから、もう一度お試しください。" -WARN_SOCKET = "ファイアウォール設定が正しく設定されている事をご確認ください。\n直接接続には、ルータのポート転送でIPv4インバウンド接続を受信するように設定する\\#ffa0a0\\必要\\#dcdcdc\\があります。\n\nUDPポート'%d'番を開放してください。IPv6にも対応しています。" +WARN_DISCORD = "招待したいフレンドを右クリックしてn'\\#d0d0ff\\ゲームに招待\\#dcdcdc\\'.\n\nを押すと招待できます。サーバー内のチャンネルにも、チャット入力欄の横にある\\#d0d0ff\\+\\#dcdcdc\\マークから招待メッセージを送信できます。\n\nDiscordのユーザー設定からゲーム アクティビティを\\#ffa0a0\\必ず\\#dcdcdc\\有効にしてください。\n\n\nステータスをオフラインに設定していると、招待の送信が\\#ffa0a0\\妨げられる\\#dcdcdc\\可能性があります。" +WARN_DISCORD2 = "\\#ffa0a0\\エラー:\\#dcdcdc\\Discordを検出できませんでした。\n\\#a0a0a0\\ゲームを終了してDiscordを再起動してから、もう一度お試しください。" +WARN_SOCKET = "ファイアウォールの設定が正しく完了していることを確認してください。\nダイレクト接続には\\#ffa0a0\\あなた自身が\\#dcdcdc\\ルーターでIPv4の接続を受け入れるようにポートフォワーディング設定を行う必要があります。\n\nUDPポート'\\#d0d0ff\\%d\\#dcdcdc\\'を解放してください。IPv6も使用可能です。" HOST = "ルームを作る" [HOST_MODS] MODS = "MODS" CATEGORIES = "カテゴリ一覧" -WARNING = "\\#ffffa0\\<注意>\\#dcdcdc\\ MOD数が10個以上になっています。ラグや不安定を防ぐため、いくつか無効にしてください" -NO_MODS_FOUND = "MODが見つかりませんでした。" +WARNING = "\\#ffffa0\\<注意>\\#dcdcdc\\ MODの数が10個以上になっています。ラグや不安定を防ぐため、いくつか無効にしてください。" +NO_MODS_FOUND = "MODは見つかりませんでした。" [HOST_MOD_CATEGORIES] ALL = "すべて" MISC = "その他" -ROMHACKS = "ハックロム" -GAMEMODES = "ゲームモード" -MOVESETS = "ムーブセット" -CHARACTER_SELECT = "キャラクター選択" +ROMHACKS = "ロムハック系" +GAMEMODES = "ゲームモード系" +MOVESETS = "ムーブセット系" +CHARACTER_SELECT = "追加キャラクター系" [HOST_SAVE] SAVE_TITLE = "SAVE" @@ -222,7 +221,7 @@ CONFIRM = "本当に消しますか?" ERASE = "消す" EDIT = "編集" EDIT_TITLE = "EDIT" -EDIT_NAME = "ファイル名を変更:" +EDIT_NAME = "マリオ @のおなまえ変更:" [HOST_SETTINGS] SETTINGS = "SETTINGS" @@ -235,7 +234,7 @@ NORMAL = "普通" TOO_MUCH = "最強" KNOCKBACK_STRENGTH = "ノックバックの強さ" CLASSIC_PVP = "クラシック" -REVAMPED_PVP = "改良" +REVAMPED_PVP = "改良型" PVP_MODE = "PvPモード" LEAVE_LEVEL = "コースを出る" STAY_IN_LEVEL = "コースに留まる" @@ -243,14 +242,14 @@ NONSTOP = "ノンストップ" ON_STAR_COLLECTION = "スター取得時の動作" SKIP_INTRO_CUTSCENE = "イントロをスキップ" ENABLE_CHEATS = "チートを有効にする" -BUBBLE_ON_DEATH = "やられた時にシャボンで復活" +BUBBLE_ON_DEATH = "ミス時にシャボンで復活" NAMETAGS = "ネームタグを有効にする" MOD_DEV_MODE = "MOD開発モード" -BOUNCY_BOUNDS_ON_CAP = "オン(制限付き)" +BOUNCY_BOUNDS_ON_CAP = "オン(速度制限)" BOUNCY_BOUNDS_ON = "オン" BOUNCY_BOUNDS_OFF = "オフ" BOUNCY_LEVEL_BOUNDS = "コース境界での跳ね返り" -AMOUNT_OF_PLAYERS = "最大人数" +AMOUNT_OF_PLAYERS = "最大ルーム人数" PAUSE_ANYWHERE = "どこでもポーズ" [HOST] @@ -275,7 +274,7 @@ JOINING = "JOINING" [JOIN] JOIN_TITLE = "JOIN" JOIN_DISCORD = "\\#d0d0ff\\Discord\\#dcdcdc\\ロビーへの参加:\n\nゲームを開いたまま、招待メッセージの参加ボタンを押してください。\n\n「ゲームは終了しました」と表示されている場合は、招待を送信した人の名前をクリックして更新してください。" -JOIN_SOCKET = "\\#d0d0ff\\ダイレクト接続\\#dcdcdc\\のIPとポートを入力してください:" +JOIN_SOCKET = "\\#d0d0ff\\ダイレクト接続先\\#dcdcdc\\のIPアドレスとポート番号を入力してください:" JOIN = "参加する" PUBLIC_LOBBIES = "公開ルーム" PRIVATE_LOBBIES = "非公開ルーム" @@ -283,14 +282,14 @@ DIRECT = "ダイレクト接続" [RULES] RULES_TITLE = "RULES" -RULE_1 = "1. 13歳以上であること。" -RULE_2 = "2. 不快な言葉、中傷、攻撃的な言葉を使わないこと。" -RULE_3 = "3. 非公式ビルドを使わないこと。" -RULE_4 = "4. ゲームをエクスプロイトする外部ツールを使用しないこと。" -RULE_5 = "5. 作者の許可なく、非公開MODを公開しないこと。" -RULE_6 = "6. 全てのNSFWコンテンツは禁止です。" -SUBJECT_TO_CHANGE = "ルールはアップデートで変更される可能性があります。" -NOTICE = "公開ルームではルールをお守りください。" +RULE_1 = "1. CoopNetの利用は13歳以上に限ります。" +RULE_2 = "2. ハラスメント(嫌がらせ)、ヘイトスピーチ、差別用語、その他攻撃的な言動は禁止です。" +RULE_3 = "3. CoopNetでは改造(改ざん)されていない正規のsm64coopdxのみが使用可能です。" +RULE_4 = "4. ゲームの脆弱性を悪用するための外部ツールの使用は禁止です。" +RULE_5 = "5. 作者の許可なく、未公開MODでルームをホストしないでください。" +RULE_6 = "6. ポルノやフェティッシュなコンテンツは一切禁止されています。これにはMOD、キャラクター、成人向けロールプレイなどが含まれますが、これらに限定されません。" +SUBJECT_TO_CHANGE = "これらのルールは今後のアップデートで変更される可能性があります。" +NOTICE = "公開ルームでプレイするためにCoopNetへ接続した時点で、あなたはこれらのルールを遵守することに同意したものとみなされます。" RULES = "ルールを見る" [MAIN] @@ -307,27 +306,27 @@ LEVEL = "コース" STAFF_ROLL = "スタッフロール" MUSIC = "BGM" RANDOM_STAGE = "ランダムなステージ" -PLAY_VANILLA_DEMOS = "バニラゲームのデモを再生" +PLAY_VANILLA_DEMOS = "オリジナルゲームのデモを再生" [MISC] DEBUG_TITLE = "DEBUG" FIXED_COLLISIONS = "修正された当たり判定" LUA_PROFILER = "Luaのプロファイラー" CTX_PROFILER = "Ctxのプロファイラー" -DEBUG_PRINT = "デバッグ情報の表示" -DEBUG_INFO = "デバッグの情報" -DEBUG_ERRORS = "デバッグのエラー" +DEBUG_PRINT = "デバッグログの表示" +DEBUG_INFO = "デバッグ情報の表示" +DEBUG_ERRORS = "デバッグエラーの表示" MISC_TITLE = "MISC" -PAUSE_IN_SINGLEPLAYER = "ソロプレイでの一時停止" +PAUSE_IN_SINGLEPLAYER = "1人プレイ中にポーズで一時停止を有効化" DISABLE_POPUPS = "ポップアップを無効にする" -USE_STANDARD_KEY_BINDINGS_CHAT = "初期のチャット操作" +USE_STANDARD_KEY_BINDINGS_CHAT = "旧式チャット操作" MENU_OPTIONS = "メニューの設定" INFORMATION = "情報" DEBUG = "デバッグ" LANGUAGE = "言語" COOP_COMPATIBILITY = "sm64ex-coopとの互換性を有効にする" R_BUTTON = "Rボタン - 設定" -L_BUTTON = "Lボタン - アクティブなMODを再読み込み" +L_BUTTON = "Lボタン - 有効化されたMODを再読み込み" [INFORMATION] INFORMATION_TITLE = "INFO" @@ -371,7 +370,7 @@ PLAYER_TITLE = "PLAYER" OVERALLS = "オーバーオール" SHIRT = "シャツ" GLOVES = "手袋" -SHOES = "くつ" +SHOES = "クツ" HAIR = "髪" SKIN = "肌" CAP = "帽子" @@ -408,8 +407,8 @@ MASTER_VOLUME = "主音量" MUSIC_VOLUME = "BGM音量" SFX_VOLUME = "SE音量" ENV_VOLUME = "環境音量" -FADEOUT = "遠い音のフェードアウト" -MUTE_FOCUS_LOSS = "非フォーカス時にミュート" +FADEOUT = "音の距離減衰" +MUTE_FOCUS_LOSS = "非フォーカス時に音をミュート" [LANGUAGE] LANGUAGE = "LANGUAGE" @@ -428,12 +427,11 @@ Spanish = "スペイン語 (Español)" [LOBBIES] PUBLIC_LOBBIES = "PUBLIC ROOMS" PRIVATE_LOBBIES = "PRIVATE ROOMS" -REFRESH = "更新" +REFRESH = "更新する" REFRESHING = "更新中…" -ENTER_PASSWORD = "部屋のパスワードを入力してください:" +ENTER_PASSWORD = "ルームのパスワードを入力してください:" SEARCH = "検索" -NONE_FOUND = "部屋が見つかりませんでした" -NO_LOBBIES_FOUND = "ロビーは見つからなかった。" +NO_LOBBIES_FOUND = "ルームが見つかりませんでした。" [CHANGELOG] CHANGELOG_TITLE = "CHANGELOG" From 2c367b556dcf113c87f59d1c3e616c38021d4ace Mon Sep 17 00:00:00 2001 From: djoslin0 Date: Sun, 15 Mar 2026 06:04:36 -0700 Subject: [PATCH 31/42] Add surface collision Lua hooks (#1139) * Add surface collision Lua hooks - Add 6 new hooks: HOOK_ON_FIND_WALL_COLLISION, HOOK_ON_FIND_CEIL, HOOK_ON_FIND_FLOOR, HOOK_ON_FIND_WATER_LEVEL, HOOK_ON_FIND_POISON_GAS_LEVEL, HOOK_ON_FIND_SURFACE_ON_RAY - Hooks expose current result values and allow overriding collision outputs from Lua * Remove unnecessary branches --------- Co-authored-by: MysterD --- autogen/lua_definitions/constants.lua | 14 +- autogen/lua_definitions/manual.lua | 2 +- docs/lua/constants.md | 8 +- docs/lua/guides/hooks.md | 6 + src/engine/surface_collision.c | 17 ++ src/pc/lua/smlua_constants_autogen.c | 8 +- src/pc/lua/smlua_hook_events.inl | 6 + src/pc/lua/smlua_hooks.c | 305 +++++++++++++++++++++++++- src/pc/lua/smlua_hooks.h | 8 + 9 files changed, 368 insertions(+), 6 deletions(-) diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index 8e160c5d4..5bbb7065a 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -8207,7 +8207,13 @@ HOOK_MARIO_OVERRIDE_FLOOR_CLASS = 56 --- @type LuaHookedEventType HOOK_ON_ADD_SURFACE = 57 --- @type LuaHookedEventType HOOK_ON_CLEAR_AREAS = 58 --- @type LuaHookedEventType HOOK_ON_PACKET_BYTESTRING_RECEIVE = 59 --- @type LuaHookedEventType -HOOK_MAX = 60 --- @type LuaHookedEventType +HOOK_ON_FIND_WALL_COLLISION = 60 --- @type LuaHookedEventType +HOOK_ON_FIND_CEIL = 61 --- @type LuaHookedEventType +HOOK_ON_FIND_FLOOR = 62 --- @type LuaHookedEventType +HOOK_ON_FIND_WATER_LEVEL = 63 --- @type LuaHookedEventType +HOOK_ON_FIND_POISON_GAS_LEVEL = 64 --- @type LuaHookedEventType +HOOK_ON_FIND_SURFACE_ON_RAY = 65 --- @type LuaHookedEventType +HOOK_MAX = 66 --- @type LuaHookedEventType --- @alias LuaHookedEventType --- | `HOOK_UPDATE` @@ -8270,6 +8276,12 @@ HOOK_MAX = 60 --- @type LuaHookedEventType --- | `HOOK_ON_ADD_SURFACE` --- | `HOOK_ON_CLEAR_AREAS` --- | `HOOK_ON_PACKET_BYTESTRING_RECEIVE` +--- | `HOOK_ON_FIND_WALL_COLLISION` +--- | `HOOK_ON_FIND_CEIL` +--- | `HOOK_ON_FIND_FLOOR` +--- | `HOOK_ON_FIND_WATER_LEVEL` +--- | `HOOK_ON_FIND_POISON_GAS_LEVEL` +--- | `HOOK_ON_FIND_SURFACE_ON_RAY` --- | `HOOK_MAX` --- @type integer diff --git a/autogen/lua_definitions/manual.lua b/autogen/lua_definitions/manual.lua index 2ba4a4366..2ce161f8a 100644 --- a/autogen/lua_definitions/manual.lua +++ b/autogen/lua_definitions/manual.lua @@ -127,7 +127,7 @@ function update_chat_command_description(command, description) end --- @param hookEventType LuaHookedEventType When a function should run ---- @param func fun(...: any): any The function to run +--- @param func fun(...: any): any?, any? The function to run --- Different hooks can pass in different parameters and have different return values. Be sure to read the hooks guide for more information. function hook_event(hookEventType, func) -- ... diff --git a/docs/lua/constants.md b/docs/lua/constants.md index 0c92edac9..cf00279f7 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -3537,7 +3537,13 @@ | HOOK_ON_ADD_SURFACE | 57 | | HOOK_ON_CLEAR_AREAS | 58 | | HOOK_ON_PACKET_BYTESTRING_RECEIVE | 59 | -| HOOK_MAX | 60 | +| HOOK_ON_FIND_WALL_COLLISION | 60 | +| HOOK_ON_FIND_CEIL | 61 | +| HOOK_ON_FIND_FLOOR | 62 | +| HOOK_ON_FIND_WATER_LEVEL | 63 | +| HOOK_ON_FIND_POISON_GAS_LEVEL | 64 | +| HOOK_ON_FIND_SURFACE_ON_RAY | 65 | +| HOOK_MAX | 66 | - MAX_HOOKED_BEHAVIORS [:arrow_up_small:](#) diff --git a/docs/lua/guides/hooks.md b/docs/lua/guides/hooks.md index af1226bae..07d522650 100644 --- a/docs/lua/guides/hooks.md +++ b/docs/lua/guides/hooks.md @@ -151,6 +151,12 @@ The lua functions sent to `hook_event()` will be automatically called by SM64 wh | HOOK_MARIO_OVERRIDE_FLOOR_CLASS | Called when Mario's floor class logic updates, return a `SURFACE_CLASS_*` constant to override the type. | [MarioState](../structs.md#MarioState) mario, `integer` surfaceClass | | HOOK_ON_ADD_SURFACE | Called when collision surfaces are added. | [Surface](../structs.md#Surface) surface, `boolean` dynamic | | HOOK_ON_CLEAR_AREAS | Called when a level's areas are unloaded. | None | +| HOOK_ON_FIND_WALL_COLLISION | Called after wall collision detection completes. You can modify the `colData` fields directly. Return a number to override `numCollisions` | `number` posX, `number` posY, `number` posZ, [WallCollisionData](../structs.md#WallCollisionData) colData | +| HOOK_ON_FIND_CEIL | Called after ceiling detection completes. Return `height` to override height, or `height, surface` to override both | `number` posX, `number` posY, `number` posZ, [Surface](../structs.md#Surface) ceil, `number` height | +| HOOK_ON_FIND_FLOOR | Called after floor detection completes. Return `height` to override height, or `height, surface` to override both | `number` posX, `number` posY, `number` posZ, [Surface](../structs.md#Surface) floor, `number` height | +| HOOK_ON_FIND_WATER_LEVEL | Called after water level detection completes. Return a number to override the water level | `number` x, `number` z, `number` waterLevel | +| HOOK_ON_FIND_POISON_GAS_LEVEL | Called after poison gas level detection completes. Return a number to override the gas level | `number` x, `number` z, `number` gasLevel | +| HOOK_ON_FIND_SURFACE_ON_RAY | Called after ray-surface intersection completes. Return `surface` to override the hit surface, or `surface, hitPos` to override both | `Vec3f` orig, `Vec3f` dir, [Surface](../structs.md#Surface) hitSurface, `Vec3f` hitPos | ### Parameters diff --git a/src/engine/surface_collision.c b/src/engine/surface_collision.c index 15f6f9a9f..97414235e 100644 --- a/src/engine/surface_collision.c +++ b/src/engine/surface_collision.c @@ -12,6 +12,7 @@ #include "game/hardcoded.h" #include "pc/utils/misc.h" #include "pc/network/network.h" +#include "pc/lua/smlua_hooks.h" Vec3f gFindWallDirection = { 0 }; u8 gFindWallDirectionActive = false; @@ -343,6 +344,9 @@ s32 find_wall_collisions(struct WallCollisionData *colData) { s32 numCollisions = 0; s16 x = colData->x; s16 z = colData->z; + f32 posX = colData->x; + f32 posY = colData->y; + f32 posZ = colData->z; colData->numWalls = 0; @@ -371,6 +375,8 @@ s32 find_wall_collisions(struct WallCollisionData *colData) { // Increment the debug tracker. gNumCalls.wall += 1; + smlua_call_event_hooks(HOOK_ON_FIND_WALL_COLLISION, posX, posY, posZ, colData, &numCollisions); + return numCollisions; } @@ -544,6 +550,8 @@ f32 find_ceil(f32 posX, f32 posY, f32 posZ, RET struct Surface **pceil) { // Increment the debug tracker. gNumCalls.ceil += 1; + smlua_call_event_hooks(HOOK_ON_FIND_CEIL, posX, posY, posZ, pceil, &height); + return height; } @@ -882,6 +890,8 @@ f32 find_floor(f32 xPos, f32 yPos, f32 zPos, RET struct Surface **pfloor) { // Increment the debug tracker. gNumCalls.floor += 1; + smlua_call_event_hooks(HOOK_ON_FIND_FLOOR, xPos, yPos, zPos, pfloor, &height); + return height; } @@ -922,6 +932,8 @@ f32 find_water_level(f32 x, f32 z) { } } + smlua_call_event_hooks(HOOK_ON_FIND_WATER_LEVEL, x, z, &waterLevel); + return waterLevel; } @@ -963,6 +975,8 @@ f32 find_poison_gas_level(f32 x, f32 z) { } } + smlua_call_event_hooks(HOOK_ON_FIND_POISON_GAS_LEVEL, x, z, &gasLevel); + return gasLevel; } @@ -1227,6 +1241,7 @@ void find_surface_on_ray(Vec3f orig, Vec3f dir, struct Surface **hit_surface, Ve if (normalized_dir[1] >= 1.0f || normalized_dir[1] <= -1.0f) { find_surface_on_ray_cell(cellX, cellZ, orig, normalized_dir, dir_length, hit_surface, hit_pos, &max_length); + smlua_call_event_hooks(HOOK_ON_FIND_SURFACE_ON_RAY, orig, dir, hit_surface, hit_pos); return; } @@ -1249,4 +1264,6 @@ void find_surface_on_ray(Vec3f orig, Vec3f dir, struct Surface **hit_surface, Ve cellX = (s16)fCellX; cellZ = (s16)fCellZ; } + + smlua_call_event_hooks(HOOK_ON_FIND_SURFACE_ON_RAY, orig, dir, hit_surface, hit_pos); } diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index d7ca5a882..60737b707 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -3547,7 +3547,13 @@ char gSmluaConstants[] = "" "HOOK_ON_ADD_SURFACE=57\n" "HOOK_ON_CLEAR_AREAS=58\n" "HOOK_ON_PACKET_BYTESTRING_RECEIVE=59\n" -"HOOK_MAX=60\n" +"HOOK_ON_FIND_WALL_COLLISION=60\n" +"HOOK_ON_FIND_CEIL=61\n" +"HOOK_ON_FIND_FLOOR=62\n" +"HOOK_ON_FIND_WATER_LEVEL=63\n" +"HOOK_ON_FIND_POISON_GAS_LEVEL=64\n" +"HOOK_ON_FIND_SURFACE_ON_RAY=65\n" +"HOOK_MAX=66\n" "MAX_HOOKED_BEHAVIORS=1024\n" "HUD_DISPLAY_LIVES=0\n" "HUD_DISPLAY_COINS=1\n" diff --git a/src/pc/lua/smlua_hook_events.inl b/src/pc/lua/smlua_hook_events.inl index 16bbbaee2..71f4a915c 100644 --- a/src/pc/lua/smlua_hook_events.inl +++ b/src/pc/lua/smlua_hook_events.inl @@ -58,3 +58,9 @@ SMLUA_EVENT_HOOK(HOOK_MARIO_OVERRIDE_FLOOR_CLASS, HOOK_RETURN_ON_OUTPUT_SET, str SMLUA_EVENT_HOOK(HOOK_ON_ADD_SURFACE, HOOK_RETURN_NEVER, struct Surface *surface, bool dynamic) SMLUA_EVENT_HOOK(HOOK_ON_CLEAR_AREAS, HOOK_RETURN_NEVER) SMLUA_EVENT_HOOK(HOOK_ON_PACKET_BYTESTRING_RECEIVE, HOOK_RETURN_NEVER, s32 modIndex, s32 valueIndex) +SMLUA_EVENT_HOOK(HOOK_ON_FIND_WALL_COLLISION, _, f32 posX, f32 posY, f32 posZ, struct WallCollisionData *colData, s32 *numCollisions) // Manually defined hook +SMLUA_EVENT_HOOK(HOOK_ON_FIND_CEIL, _, f32 posX, f32 posY, f32 posZ, struct Surface **pceil, f32 *height) // Manually defined hook +SMLUA_EVENT_HOOK(HOOK_ON_FIND_FLOOR, _, f32 posX, f32 posY, f32 posZ, struct Surface **pfloor, f32 *height) // Manually defined hook +SMLUA_EVENT_HOOK(HOOK_ON_FIND_WATER_LEVEL, _, f32 x, f32 z, f32 *waterLevel) // Manually defined hook +SMLUA_EVENT_HOOK(HOOK_ON_FIND_POISON_GAS_LEVEL, _, f32 x, f32 z, f32 *gasLevel) // Manually defined hook +SMLUA_EVENT_HOOK(HOOK_ON_FIND_SURFACE_ON_RAY, _, Vec3f orig, Vec3f dir, struct Surface **hit_surface, Vec3f hit_pos) // Manually defined hook diff --git a/src/pc/lua/smlua_hooks.c b/src/pc/lua/smlua_hooks.c index fc1dafcae..0984c8223 100644 --- a/src/pc/lua/smlua_hooks.c +++ b/src/pc/lua/smlua_hooks.c @@ -26,6 +26,9 @@ #include "game/print.h" #include "gfx_dimensions.h" +extern void smlua_new_vec3f(Vec3f src); +extern void smlua_get_vec3f(Vec3f dest, int index); + #define MAX_HOOKED_REFERENCES 64 #define LUA_BEHAVIOR_FLAG (1 << 15) @@ -172,7 +175,6 @@ bool smlua_call_event_hooks_HOOK_ON_NAMETAGS_RENDER(s32 playerIndex, Vec3f pos, lua_pushinteger(L, playerIndex); // push pos - extern void smlua_new_vec3f(Vec3f src); smlua_new_vec3f(pos); // call the callback @@ -203,7 +205,6 @@ bool smlua_call_event_hooks_HOOK_ON_NAMETAGS_RENDER(s32 playerIndex, Vec3f pos, // pos lua_getfield(L, -1, "pos"); if (lua_type(L, -1) == LUA_TTABLE) { - extern void smlua_get_vec3f(Vec3f dest, int index); smlua_get_vec3f(pos, -1); override = true; } @@ -220,6 +221,306 @@ bool smlua_call_event_hooks_HOOK_ON_NAMETAGS_RENDER(s32 playerIndex, Vec3f pos, return false; } +bool smlua_call_event_hooks_HOOK_ON_FIND_WALL_COLLISION(f32 posX, f32 posY, f32 posZ, struct WallCollisionData *colData, s32 *numCollisions) { + static bool sInHook = false; + lua_State *L = gLuaState; + if (L == NULL || sInHook) { return false; } + sInHook = true; + + struct LuaHookedEvent *hook = &sHookedEvents[HOOK_ON_FIND_WALL_COLLISION]; + for (int i = 0; i < hook->count; i++) { + s32 prevTop = lua_gettop(L); + + // push the callback onto the stack + lua_rawgeti(L, LUA_REGISTRYINDEX, hook->reference[i]); + + // push posX, posY, posZ + lua_pushnumber(L, posX); + lua_pushnumber(L, posY); + lua_pushnumber(L, posZ); + + // push colData + smlua_push_object(L, LOT_WALLCOLLISIONDATA, colData, NULL); + + // call the callback (4 args, 1 result) + 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_ON_FIND_WALL_COLLISION]); + lua_settop(L, prevTop); + continue; + } + + // return number overrides numCollisions + if (lua_type(L, -1) == LUA_TNUMBER) { + *numCollisions = smlua_to_integer(L, -1); + lua_settop(L, prevTop); + sInHook = false; + return true; + } + + lua_settop(L, prevTop); + } + sInHook = false; + return false; +} + +bool smlua_call_event_hooks_HOOK_ON_FIND_CEIL(f32 posX, f32 posY, f32 posZ, struct Surface **pceil, f32 *height) { + static bool sInHook = false; + lua_State *L = gLuaState; + if (L == NULL || sInHook) { return false; } + sInHook = true; + + struct LuaHookedEvent *hook = &sHookedEvents[HOOK_ON_FIND_CEIL]; + for (int i = 0; i < hook->count; i++) { + s32 prevTop = lua_gettop(L); + + // push the callback onto the stack + lua_rawgeti(L, LUA_REGISTRYINDEX, hook->reference[i]); + + // push posX, posY, posZ + lua_pushnumber(L, posX); + lua_pushnumber(L, posY); + lua_pushnumber(L, posZ); + + // push current ceil surface (or nil) + if (pceil && *pceil) { + smlua_push_object(L, LOT_SURFACE, *pceil, NULL); + } else { + lua_pushnil(L); + } + + // push current height + lua_pushnumber(L, *height); + + // call the callback (5 args, 2 results) + if (0 != smlua_call_hook(L, 5, 2, 0, hook->mod[i], hook->modFile[i])) { + LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_FIND_CEIL]); + lua_settop(L, prevTop); + continue; + } + + bool override = false; + + // first return value: height (number) + if (lua_type(L, -2) == LUA_TNUMBER) { + *height = smlua_to_number(L, -2); + override = true; + } + + // second return value: surface (userdata) + if (lua_type(L, -1) == LUA_TUSERDATA) { + struct Surface *surface = (struct Surface *)smlua_to_cobject(L, -1, LOT_SURFACE); + if (surface && pceil) { + *pceil = surface; + override = true; + } + } + + lua_settop(L, prevTop); + if (override) { sInHook = false; return true; } + } + sInHook = false; + return false; +} + +bool smlua_call_event_hooks_HOOK_ON_FIND_FLOOR(f32 posX, f32 posY, f32 posZ, struct Surface **pfloor, f32 *height) { + static bool sInHook = false; + lua_State *L = gLuaState; + if (L == NULL || sInHook) { return false; } + sInHook = true; + + struct LuaHookedEvent *hook = &sHookedEvents[HOOK_ON_FIND_FLOOR]; + for (int i = 0; i < hook->count; i++) { + s32 prevTop = lua_gettop(L); + + // push the callback onto the stack + lua_rawgeti(L, LUA_REGISTRYINDEX, hook->reference[i]); + + // push posX, posY, posZ + lua_pushnumber(L, posX); + lua_pushnumber(L, posY); + lua_pushnumber(L, posZ); + + // push current floor surface (or nil) + if (pfloor && *pfloor) { + smlua_push_object(L, LOT_SURFACE, *pfloor, NULL); + } else { + lua_pushnil(L); + } + + // push current height + lua_pushnumber(L, *height); + + // call the callback (5 args, 2 results) + if (0 != smlua_call_hook(L, 5, 2, 0, hook->mod[i], hook->modFile[i])) { + LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_FIND_FLOOR]); + lua_settop(L, prevTop); + continue; + } + + bool override = false; + + // first return value: height (number) + if (lua_type(L, -2) == LUA_TNUMBER) { + *height = smlua_to_number(L, -2); + override = true; + } + + // second return value: surface (userdata) + if (lua_type(L, -1) == LUA_TUSERDATA) { + struct Surface *surface = (struct Surface *)smlua_to_cobject(L, -1, LOT_SURFACE); + if (surface && pfloor) { + *pfloor = surface; + override = true; + } + } + + lua_settop(L, prevTop); + if (override) { sInHook = false; return true; } + } + sInHook = false; + return false; +} + +bool smlua_call_event_hooks_HOOK_ON_FIND_SURFACE_ON_RAY(Vec3f orig, Vec3f dir, struct Surface **hit_surface, Vec3f hit_pos) { + static bool sInHook = false; + lua_State *L = gLuaState; + if (L == NULL || sInHook) { return false; } + sInHook = true; + + struct LuaHookedEvent *hook = &sHookedEvents[HOOK_ON_FIND_SURFACE_ON_RAY]; + for (int i = 0; i < hook->count; i++) { + s32 prevTop = lua_gettop(L); + + // push the callback onto the stack + lua_rawgeti(L, LUA_REGISTRYINDEX, hook->reference[i]); + + // push orig, dir + smlua_new_vec3f(orig); + smlua_new_vec3f(dir); + + // push hit_surface (or nil) + if (hit_surface && *hit_surface) { + smlua_push_object(L, LOT_SURFACE, *hit_surface, NULL); + } else { + lua_pushnil(L); + } + + // push hit_pos + smlua_new_vec3f(hit_pos); + + // call the callback (4 args, 2 results) + if (0 != smlua_call_hook(L, 4, 2, 0, hook->mod[i], hook->modFile[i])) { + LOG_LUA("Failed to call the callback for hook %s", sLuaHookedEventTypeName[HOOK_ON_FIND_SURFACE_ON_RAY]); + lua_settop(L, prevTop); + continue; + } + + bool override = false; + + // first return value: surface (userdata) + if (lua_type(L, -2) == LUA_TUSERDATA) { + struct Surface *surface = (struct Surface *)smlua_to_cobject(L, -2, LOT_SURFACE); + if (surface && hit_surface) { + *hit_surface = surface; + override = true; + } + } + + // second return value: hitPos (table {x, y, z}) + if (lua_type(L, -1) == LUA_TTABLE) { + smlua_get_vec3f(hit_pos, -1); + override = true; + } + + lua_settop(L, prevTop); + if (override) { sInHook = false; return true; } + } + sInHook = false; + return false; +} + +bool smlua_call_event_hooks_HOOK_ON_FIND_WATER_LEVEL(f32 x, f32 z, f32 *waterLevel) { + static bool sInHook = false; + lua_State *L = gLuaState; + if (L == NULL || sInHook) { return false; } + sInHook = true; + + struct LuaHookedEvent *hook = &sHookedEvents[HOOK_ON_FIND_WATER_LEVEL]; + for (int i = 0; i < hook->count; i++) { + s32 prevTop = lua_gettop(L); + + // push the callback onto the stack + lua_rawgeti(L, LUA_REGISTRYINDEX, hook->reference[i]); + + // push x, z + lua_pushnumber(L, x); + lua_pushnumber(L, z); + + // push current water level + lua_pushnumber(L, *waterLevel); + + // call the callback (3 args, 1 result) + 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_FIND_WATER_LEVEL]); + lua_settop(L, prevTop); + continue; + } + + // return number overrides waterLevel + if (lua_type(L, -1) == LUA_TNUMBER) { + *waterLevel = smlua_to_number(L, -1); + lua_settop(L, prevTop); + sInHook = false; + return true; + } + + lua_settop(L, prevTop); + } + sInHook = false; + return false; +} + +bool smlua_call_event_hooks_HOOK_ON_FIND_POISON_GAS_LEVEL(f32 x, f32 z, f32 *gasLevel) { + static bool sInHook = false; + lua_State *L = gLuaState; + if (L == NULL || sInHook) { return false; } + sInHook = true; + + struct LuaHookedEvent *hook = &sHookedEvents[HOOK_ON_FIND_POISON_GAS_LEVEL]; + for (int i = 0; i < hook->count; i++) { + s32 prevTop = lua_gettop(L); + + // push the callback onto the stack + lua_rawgeti(L, LUA_REGISTRYINDEX, hook->reference[i]); + + // push x, z + lua_pushnumber(L, x); + lua_pushnumber(L, z); + + // push current gas level + lua_pushnumber(L, *gasLevel); + + // call the callback (3 args, 1 result) + 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_FIND_POISON_GAS_LEVEL]); + lua_settop(L, prevTop); + continue; + } + + // return number overrides gasLevel + if (lua_type(L, -1) == LUA_TNUMBER) { + *gasLevel = smlua_to_number(L, -1); + lua_settop(L, prevTop); + sInHook = false; + return true; + } + + lua_settop(L, prevTop); + } + sInHook = false; + return false; +} + //////////////////// // hooked actions // //////////////////// diff --git a/src/pc/lua/smlua_hooks.h b/src/pc/lua/smlua_hooks.h index a857bbad3..c814c73e9 100644 --- a/src/pc/lua/smlua_hooks.h +++ b/src/pc/lua/smlua_hooks.h @@ -11,6 +11,8 @@ // forward declare struct Camera; struct WarpDest; +struct WallCollisionData; +struct Surface; // ! Hooks must be added at the end enum LuaHookedEventType { @@ -74,6 +76,12 @@ enum LuaHookedEventType { HOOK_ON_ADD_SURFACE, HOOK_ON_CLEAR_AREAS, HOOK_ON_PACKET_BYTESTRING_RECEIVE, + HOOK_ON_FIND_WALL_COLLISION, + HOOK_ON_FIND_CEIL, + HOOK_ON_FIND_FLOOR, + HOOK_ON_FIND_WATER_LEVEL, + HOOK_ON_FIND_POISON_GAS_LEVEL, + HOOK_ON_FIND_SURFACE_ON_RAY, HOOK_MAX, }; From 8735cf96adf5c876f953cb911793403afdeaa4d7 Mon Sep 17 00:00:00 2001 From: EmeraldLockdown <86802223+EmeraldLoc@users.noreply.github.com> Date: Sun, 15 Mar 2026 15:49:01 -0500 Subject: [PATCH 32/42] Add `get_mod_files` (#1091) * Add `get_mod_files` * Dont allocate memory, use the stack * Implement peachy's suggestion * Actually allow optional to wrok --- autogen/lua_definitions/functions.lua | 8 +++++ docs/lua/functions-7.md | 24 ++++++++++++++ docs/lua/functions.md | 1 + src/pc/lua/smlua_functions_autogen.c | 23 +++++++++++++ src/pc/lua/utils/smlua_misc_utils.c | 48 +++++++++++++++++++++++++++ src/pc/lua/utils/smlua_misc_utils.h | 4 ++- 6 files changed, 107 insertions(+), 1 deletion(-) diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index 746a8f4c4..c716033b3 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -11647,6 +11647,14 @@ function get_active_mod() -- ... end +--- @param mod Mod +--- @param subDirectory? string +--- @return table +--- Gets all files a mod contains +function get_mod_files(mod, subDirectory) + -- ... +end + --- @param title string --- Sets the window title to a custom title function set_window_title(title) diff --git a/docs/lua/functions-7.md b/docs/lua/functions-7.md index 207edbb6f..1dd27c2d7 100644 --- a/docs/lua/functions-7.md +++ b/docs/lua/functions-7.md @@ -2107,6 +2107,30 @@ Gets the mod currently being processed
+## [get_mod_files](#get_mod_files) + +### Description +Gets all files a mod contains + +### Lua Example +`local tableValue = get_mod_files(mod, subDirectory)` + +### Parameters +| Field | Type | +| ----- | ---- | +| mod | [Mod](structs.md#Mod) | +| subDirectory | `string` | + +### Returns +- `table` + +### C Prototype +`LuaTable get_mod_files(struct Mod* mod, OPTIONAL const char* subDirectory);` + +[:arrow_up_small:](#) + +
+ ## [set_window_title](#set_window_title) ### Description diff --git a/docs/lua/functions.md b/docs/lua/functions.md index 4076375df..ecce742d3 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -2071,6 +2071,7 @@ - [set_environment_region](functions-7.md#set_environment_region) - [mod_file_exists](functions-7.md#mod_file_exists) - [get_active_mod](functions-7.md#get_active_mod) + - [get_mod_files](functions-7.md#get_mod_files) - [set_window_title](functions-7.md#set_window_title) - [reset_window_title](functions-7.md#reset_window_title) - [get_os_name](functions-7.md#get_os_name) diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index e227a54aa..70d040309 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -34301,6 +34301,28 @@ int smlua_func_get_active_mod(UNUSED lua_State* L) { return 1; } +int smlua_func_get_mod_files(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top < 1 || top > 2) { + LOG_LUA_LINE("Improper param count for '%s': Expected between %u and %u, Received %u", "get_mod_files", 1, 2, top); + return 0; + } + + struct Mod* mod = (struct Mod*)smlua_to_cobject(L, 1, LOT_MOD); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "get_mod_files"); return 0; } + const char* subDirectory = (const char*) NULL; + if (top >= 2) { + subDirectory = smlua_to_string(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "get_mod_files"); return 0; } + } + + smlua_push_lua_table(L, get_mod_files(mod, subDirectory)); + + return 1; +} + int smlua_func_set_window_title(lua_State* L) { if (L == NULL) { return 0; } @@ -38685,6 +38707,7 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "set_environment_region", smlua_func_set_environment_region); smlua_bind_function(L, "mod_file_exists", smlua_func_mod_file_exists); smlua_bind_function(L, "get_active_mod", smlua_func_get_active_mod); + smlua_bind_function(L, "get_mod_files", smlua_func_get_mod_files); smlua_bind_function(L, "set_window_title", smlua_func_set_window_title); smlua_bind_function(L, "reset_window_title", smlua_func_reset_window_title); smlua_bind_function(L, "get_os_name", smlua_func_get_os_name); diff --git a/src/pc/lua/utils/smlua_misc_utils.c b/src/pc/lua/utils/smlua_misc_utils.c index de447b3d1..9e90a45fb 100644 --- a/src/pc/lua/utils/smlua_misc_utils.c +++ b/src/pc/lua/utils/smlua_misc_utils.c @@ -607,6 +607,54 @@ struct Mod* get_active_mod(void) { return gLuaActiveMod; } +LuaTable get_mod_files(struct Mod* mod, OPTIONAL const char* subDirectory) { + if (!mod) { + struct lua_State *L = gLuaState; + if (L) { + lua_newtable(L); + return smlua_to_lua_table(L, -1); + } + return 0; + } + + char normalizedSubDir[SYS_MAX_PATH] = { 0 }; + snprintf(normalizedSubDir, SYS_MAX_PATH, "%s", subDirectory ? subDirectory : ""); + normalize_path(normalizedSubDir); + + size_t subDirLen = strlen(normalizedSubDir); + if (subDirLen > 0 && subDirLen + 1 < SYS_MAX_PATH && normalizedSubDir[subDirLen - 1] != '/') { + strcat(normalizedSubDir, "/"); + subDirLen = strlen(normalizedSubDir); + } + + struct lua_State *L = gLuaState; + if (!L) { return 0; } + + LUA_STACK_CHECK_BEGIN_NUM(L, 1); + + lua_newtable(L); + + int luaTableIndex = 1; + for (int i = 0; i < mod->fileCount; i++) { + struct ModFile* file = &mod->files[i]; + char normalizedPath[SYS_MAX_PATH] = { 0 }; + if (snprintf(normalizedPath, SYS_MAX_PATH, "%s", file->relativePath) < 0) { + LOG_ERROR("Failed to copy relativePath for normalization: %s", file->relativePath); + continue; + } + normalize_path(normalizedPath); + + if (strncmp(normalizedPath, normalizedSubDir, subDirLen) == 0) { + lua_pushstring(L, file->relativePath); + lua_rawseti(L, -2, luaTableIndex++); + } + } + + LUA_STACK_CHECK_END(L); + + return smlua_to_lua_table(L, -1); +} + /// void set_window_title(const char* title) { diff --git a/src/pc/lua/utils/smlua_misc_utils.h b/src/pc/lua/utils/smlua_misc_utils.h index e4bb3c1eb..1b7d929cb 100644 --- a/src/pc/lua/utils/smlua_misc_utils.h +++ b/src/pc/lua/utils/smlua_misc_utils.h @@ -37,7 +37,7 @@ enum ActSelectHudPart { ACT_SELECT_HUD_ACT_NAME = 1 << 3, ACT_SELECT_HUD_STAR_NUM = 1 << 4, ACT_SELECT_HUD_PLAYERS_IN_LEVEL = 1 << 5, - + ACT_SELECT_HUD_NONE = 0, ACT_SELECT_HUD_ALL = ACT_SELECT_HUD_SCORE | ACT_SELECT_HUD_LEVEL_NAME | ACT_SELECT_HUD_COURSE_NUM | ACT_SELECT_HUD_ACT_NAME |ACT_SELECT_HUD_STAR_NUM | ACT_SELECT_HUD_PLAYERS_IN_LEVEL }; @@ -246,6 +246,8 @@ void set_environment_region(u8 index, s16 value); bool mod_file_exists(const char* filename); /* |description|Gets the mod currently being processed|descriptionEnd| */ struct Mod* get_active_mod(void); +/* |description|Gets all files a mod contains|descriptionEnd| */ +LuaTable get_mod_files(struct Mod* mod, OPTIONAL const char* subDirectory); /* |description|Sets the window title to a custom title|descriptionEnd| */ void set_window_title(const char* title); From e645aa7cef191ff69b441b5234300f13ae7415bf Mon Sep 17 00:00:00 2001 From: PeachyPeach <72323920+PeachyPeachSM64@users.noreply.github.com> Date: Mon, 16 Mar 2026 22:32:39 +0100 Subject: [PATCH 33/42] Adds compilation fixes for ARM in headless mode (#1151) Co-authored-by: Alfredo --- src/engine/math_util.c | 2 +- src/pc/platform.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/engine/math_util.c b/src/engine/math_util.c index f13dc051f..592968651 100644 --- a/src/engine/math_util.c +++ b/src/engine/math_util.c @@ -827,7 +827,7 @@ OPTIMIZE_O3 bool mtxf_inverse_non_affine(VEC_OUT Mat4 dest, Mat4 src) { if (fabsf(aug[i][k]) > fabsf(aug[piv][k])) { piv = i; } } - if (fabsf(aug[piv][k]) < FLT_EPSILON) { return false; } + if (fabsf(aug[piv][k]) < __FLT_EPSILON__) { return false; } // swap pivot row into place if (piv != k) { diff --git a/src/pc/platform.c b/src/pc/platform.c index 331a7c075..185b85bd9 100644 --- a/src/pc/platform.c +++ b/src/pc/platform.c @@ -411,4 +411,12 @@ static void sys_fatal_impl(const char *msg) { exit(1); } +const char *sys_resource_path(void) { + return "."; +} + +const char *sys_exe_path_dir(void) { + return "."; +} + #endif // platform switch From efe794d1d83002525f5e1dc5ba9fcd39795cfaae Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Thu, 19 Mar 2026 20:45:55 +1000 Subject: [PATCH 34/42] more accurate types for these iterators --- src/game/behaviors/texscroll.inc.c | 8 ++++---- src/game/scroll_targets.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/game/behaviors/texscroll.inc.c b/src/game/behaviors/texscroll.inc.c index 5ac1b4b69..10eeed2fa 100644 --- a/src/game/behaviors/texscroll.inc.c +++ b/src/game/behaviors/texscroll.inc.c @@ -137,7 +137,7 @@ void uv_update_scroll(void) { scroll->prevF32 = calloc(scroll->size, sizeof(f32)); u8 bhvIndex = MIN(bhv, 2); - for (u16 k = 0; k < scroll->size; k++) { + for (u32 k = 0; k < scroll->size; k++) { scroll->interpF32[k] = verts[k]->n.ob[bhvIndex]; } } else { @@ -145,7 +145,7 @@ void uv_update_scroll(void) { scroll->prevS16 = calloc(scroll->size, sizeof(s16)); u8 bhvIndex = MIN(bhv-SCROLL_UV_X, 1); - for (u16 k = 0; k < scroll->size; k++) { + for (u32 k = 0; k < scroll->size; k++) { scroll->interpS16[k] = verts[k]->n.tc[bhvIndex]; } } @@ -154,12 +154,12 @@ void uv_update_scroll(void) { // Prepare for interpolation if (bhv < SCROLL_UV_X) { u8 bhvIndex = MIN(bhv, 2); - for (u16 i = 0; i < scroll->size; i++) { + for (u32 i = 0; i < scroll->size; i++) { scroll->prevF32[i] = verts[i]->n.ob[bhvIndex]; } } else { u8 bhvIndex = MIN(bhv-SCROLL_UV_X, 1); - for (u16 i = 0; i < scroll->size; i++) { + for (u32 i = 0; i < scroll->size; i++) { scroll->prevS16[i] = verts[i]->n.tc[bhvIndex]; } } diff --git a/src/game/scroll_targets.c b/src/game/scroll_targets.c index ff00cf244..20d7df51a 100644 --- a/src/game/scroll_targets.c +++ b/src/game/scroll_targets.c @@ -133,13 +133,13 @@ void patch_scroll_targets_interpolated(f32 delta) { Vtx* *verts = scroll->vertices; if (scroll->bhv < SCROLL_UV_X) { u8 bhvIndex = MIN(scroll->bhv, 2); - for (u16 k = 0; k < scroll->size; k++) { + for (u32 k = 0; k < scroll->size; k++) { f32 diff = wrap_f32(scroll->interpF32[k] - scroll->prevF32[k]); verts[k]->n.ob[bhvIndex] = wrap_f32(scroll->prevF32[k] + diff * delta); } } else { u8 bhvIndex = MIN(scroll->bhv-SCROLL_UV_X, 1); - for (u16 k = 0; k < scroll->size; k++) { + for (u32 k = 0; k < scroll->size; k++) { s32 diff = wrap_s32(scroll->interpS16[k] - scroll->prevS16[k]); verts[k]->n.tc[bhvIndex] = wrap_s32(scroll->prevS16[k] + diff * delta); } From 2b76ba23ff730e58c622d2013eec49c9ce8aa5f2 Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Thu, 19 Mar 2026 21:30:42 +1000 Subject: [PATCH 35/42] fix a logic error in scrolling textures --- src/game/behaviors/texscroll.inc.c | 18 ++++++------------ src/game/scroll_targets.c | 15 ++++++++++++--- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/game/behaviors/texscroll.inc.c b/src/game/behaviors/texscroll.inc.c index 10eeed2fa..c2fc62bba 100644 --- a/src/game/behaviors/texscroll.inc.c +++ b/src/game/behaviors/texscroll.inc.c @@ -133,16 +133,16 @@ void uv_update_scroll(void) { scroll->hasInterpInit = true; scroll->bhv = bhv; if (bhv < SCROLL_UV_X) { - scroll->interpF32 = calloc(scroll->size, sizeof(f32)); - scroll->prevF32 = calloc(scroll->size, sizeof(f32)); + scroll->interpF32 = malloc(scroll->size * sizeof(f32)); + scroll->prevF32 = malloc(scroll->size * sizeof(f32)); u8 bhvIndex = MIN(bhv, 2); for (u32 k = 0; k < scroll->size; k++) { scroll->interpF32[k] = verts[k]->n.ob[bhvIndex]; } } else { - scroll->interpS16 = calloc(scroll->size, sizeof(s16)); - scroll->prevS16 = calloc(scroll->size, sizeof(s16)); + scroll->interpS16 = malloc(scroll->size * sizeof(s16)); + scroll->prevS16 = malloc(scroll->size * sizeof(s16)); u8 bhvIndex = MIN(bhv-SCROLL_UV_X, 1); for (u32 k = 0; k < scroll->size; k++) { @@ -153,15 +153,9 @@ void uv_update_scroll(void) { // Prepare for interpolation if (bhv < SCROLL_UV_X) { - u8 bhvIndex = MIN(bhv, 2); - for (u32 i = 0; i < scroll->size; i++) { - scroll->prevF32[i] = verts[i]->n.ob[bhvIndex]; - } + memcpy(scroll->prevF32, scroll->interpF32, scroll->size * sizeof(f32)); } else { - u8 bhvIndex = MIN(bhv-SCROLL_UV_X, 1); - for (u32 i = 0; i < scroll->size; i++) { - scroll->prevS16[i] = verts[i]->n.tc[bhvIndex]; - } + memcpy(scroll->prevS16, scroll->interpS16, scroll->size * sizeof(s16)); } scroll->needInterp = true; diff --git a/src/game/scroll_targets.c b/src/game/scroll_targets.c index 20d7df51a..13d06cefc 100644 --- a/src/game/scroll_targets.c +++ b/src/game/scroll_targets.c @@ -18,7 +18,7 @@ struct ScrollTarget *get_scroll_targets(u32 id, u16 size, u16 offset) { if (size > scroll->size) { size = scroll->size; } // Don't use an invalid size if (size + offset >= scroll->size) { return NULL; } // If the offset is invalid, Abort. scroll->hasOffset = true; - Vtx* *newVtx = calloc(size, sizeof(Vtx*)); + Vtx* *newVtx = malloc(size * sizeof(Vtx*)); if (!newVtx) { return NULL; } for (u32 i = 0; i < size; i++) { newVtx[i] = scroll->vertices[i + offset]; @@ -51,11 +51,18 @@ struct ScrollTarget* find_or_create_scroll_targets(u32 id, bool hasOffset) { } if (scroll == NULL) { - scroll = calloc(1, sizeof(struct ScrollTarget)); + scroll = malloc(sizeof(struct ScrollTarget)); scroll->id = id; scroll->size = 0; scroll->vertices = NULL; scroll->hasOffset = hasOffset; + scroll->hasInterpInit = false; + scroll->needInterp = false; + scroll->interpF32 = NULL; + scroll->prevF32 = NULL; + scroll->interpS16 = NULL; + scroll->prevS16 = NULL; + scroll->bhv = 0; hmap_put(sScrollTargets, id, scroll); } @@ -77,8 +84,10 @@ void add_vtx_scroll_target(u32 id, Vtx *vtx, u32 size, bool hasOffset) { Vtx* *newArray = realloc(scroll->vertices, newSize); if (!newArray) { - newArray = calloc(1, newSize); + newArray = malloc(newSize); + if (!newArray) { return; } memcpy(newArray, scroll->vertices, oldSize); + memset(newArray + scroll->size, 0, size * sizeof(Vtx*)); free(scroll->vertices); } From 34d4069c53dd3d6a626ae5946ffde65864795f16 Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Thu, 19 Mar 2026 22:39:02 +1000 Subject: [PATCH 36/42] more scroll texture fixes --- src/game/behaviors/texscroll.inc.c | 20 ++++++++++++++------ src/game/scroll_targets.c | 16 +++++++--------- src/pc/lua/smlua_functions.c | 5 +++++ 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/game/behaviors/texscroll.inc.c b/src/game/behaviors/texscroll.inc.c index c2fc62bba..6a1256fdc 100644 --- a/src/game/behaviors/texscroll.inc.c +++ b/src/game/behaviors/texscroll.inc.c @@ -70,13 +70,9 @@ static inline void shift_UV_NORMAL(struct ScrollTarget *scroll, u16 vertcount, s verts[0]->n.flag++; } else { if (bhv < SCROLL_UV_X) { - for (i = 0; i < vertcount; i++) { - scroll->prevF32[i] = scroll->interpF32[i]; - } + memcpy(scroll->prevF32, scroll->interpF32, vertcount * sizeof(f32)); } else { - for (i = 0; i < vertcount; i++) { - scroll->prevS16[i] = scroll->interpS16[i]; - } + memcpy(scroll->prevS16, scroll->interpS16, vertcount * sizeof(s16)); } } } @@ -135,6 +131,12 @@ void uv_update_scroll(void) { if (bhv < SCROLL_UV_X) { scroll->interpF32 = malloc(scroll->size * sizeof(f32)); scroll->prevF32 = malloc(scroll->size * sizeof(f32)); + if (!scroll->interpF32 || !scroll->prevF32) { + free(scroll->interpF32); + free(scroll->prevF32); + scroll->interpF32 = scroll->prevF32 = NULL; + return; + } u8 bhvIndex = MIN(bhv, 2); for (u32 k = 0; k < scroll->size; k++) { @@ -143,6 +145,12 @@ void uv_update_scroll(void) { } else { scroll->interpS16 = malloc(scroll->size * sizeof(s16)); scroll->prevS16 = malloc(scroll->size * sizeof(s16)); + if (!scroll->interpS16 || !scroll->prevS16) { + free(scroll->interpS16); + free(scroll->prevS16); + scroll->interpS16 = scroll->prevS16 = NULL; + return; + } u8 bhvIndex = MIN(bhv-SCROLL_UV_X, 1); for (u32 k = 0; k < scroll->size; k++) { diff --git a/src/game/scroll_targets.c b/src/game/scroll_targets.c index 13d06cefc..a2af8bc19 100644 --- a/src/game/scroll_targets.c +++ b/src/game/scroll_targets.c @@ -13,19 +13,16 @@ struct ScrollTarget *get_scroll_targets(u32 id, u16 size, u16 offset) { if (scroll) { // If we need to, realloc the block of vertices - if ((!scroll->hasOffset && offset > 0) || size < scroll->size) { - if (scroll->hasOffset) { return NULL; } + if (!scroll->hasOffset && (offset > 0 || size < scroll->size)) { if (size > scroll->size) { size = scroll->size; } // Don't use an invalid size - if (size + offset >= scroll->size) { return NULL; } // If the offset is invalid, Abort. - scroll->hasOffset = true; + if (offset > 0 && size + offset >= scroll->size) { return NULL; } // If the offset is invalid, Abort. Vtx* *newVtx = malloc(size * sizeof(Vtx*)); if (!newVtx) { return NULL; } - for (u32 i = 0; i < size; i++) { - newVtx[i] = scroll->vertices[i + offset]; - } + memcpy(newVtx, scroll->vertices + offset, size * sizeof(Vtx*)); free(scroll->vertices); scroll->vertices = newVtx; scroll->size = size; + scroll->hasOffset = true; } return scroll; @@ -86,8 +83,9 @@ void add_vtx_scroll_target(u32 id, Vtx *vtx, u32 size, bool hasOffset) { if (!newArray) { newArray = malloc(newSize); if (!newArray) { return; } - memcpy(newArray, scroll->vertices, oldSize); - memset(newArray + scroll->size, 0, size * sizeof(Vtx*)); + if (scroll->vertices && oldSize > 0) { + memcpy(newArray, scroll->vertices, oldSize); + } free(scroll->vertices); } diff --git a/src/pc/lua/smlua_functions.c b/src/pc/lua/smlua_functions.c index 4054a3ebd..ba79220a8 100644 --- a/src/pc/lua/smlua_functions.c +++ b/src/pc/lua/smlua_functions.c @@ -815,6 +815,11 @@ int smlua_func_log_to_console(lua_State* L) { //////////////////// int smlua_func_add_scroll_target(lua_State* L) { + if (gLuaLoadingMod == NULL) { + LOG_LUA_LINE("add_scroll_target() can only be called on load."); + return 0; + } + // add_scroll_target used to require offset and size of the vertex buffer to be used if (!smlua_functions_valid_param_range(L, 2, 4)) { return 0; } int paramCount = lua_gettop(L); From 7ec6c77e1c6d91cfa11cb646073e1db20d9f7594 Mon Sep 17 00:00:00 2001 From: ThePlayerRolo Date: Thu, 19 Mar 2026 18:14:24 -0400 Subject: [PATCH 37/42] Implement smlua_audio_utils_allocate_sequence() (#891) --- autogen/lua_definitions/functions.lua | 6 ++++++ docs/lua/functions-6.md | 21 +++++++++++++++++++++ docs/lua/functions.md | 1 + src/pc/lua/smlua_functions_autogen.c | 16 ++++++++++++++++ src/pc/lua/utils/smlua_audio_utils.c | 10 ++++++++++ src/pc/lua/utils/smlua_audio_utils.h | 2 ++ 6 files changed, 56 insertions(+) diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index c716033b3..08b0b1587 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -10208,6 +10208,12 @@ function smlua_audio_utils_replace_sequence(sequenceId, bankId, defaultVolume, m -- ... end +--- @return integer +--- Allocates a new sequence ID +function smlua_audio_utils_allocate_sequence() + -- ... +end + --- @param filename string --- @return ModAudio --- Loads an `audio` stream by `filename` (with extension) diff --git a/docs/lua/functions-6.md b/docs/lua/functions-6.md index 41b220737..a639b7db9 100644 --- a/docs/lua/functions-6.md +++ b/docs/lua/functions-6.md @@ -5616,6 +5616,27 @@ Replaces the sequence corresponding to `sequenceId` with one called `m64Name`.m6
+## [smlua_audio_utils_allocate_sequence](#smlua_audio_utils_allocate_sequence) + +### Description +Allocates a new sequence ID + +### Lua Example +`local integerValue = smlua_audio_utils_allocate_sequence()` + +### Parameters +- None + +### Returns +- `integer` + +### C Prototype +`u8 smlua_audio_utils_allocate_sequence(void);` + +[:arrow_up_small:](#) + +
+ ## [audio_stream_load](#audio_stream_load) ### Description diff --git a/docs/lua/functions.md b/docs/lua/functions.md index ecce742d3..b463ac63e 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -1828,6 +1828,7 @@ - smlua_audio_utils.h - [smlua_audio_utils_reset_all](functions-6.md#smlua_audio_utils_reset_all) - [smlua_audio_utils_replace_sequence](functions-6.md#smlua_audio_utils_replace_sequence) + - [smlua_audio_utils_allocate_sequence](functions-6.md#smlua_audio_utils_allocate_sequence) - [audio_stream_load](functions-6.md#audio_stream_load) - [audio_stream_destroy](functions-6.md#audio_stream_destroy) - [audio_stream_play](functions-6.md#audio_stream_play) diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 70d040309..54bb0672b 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -30424,6 +30424,21 @@ int smlua_func_smlua_audio_utils_replace_sequence(lua_State* L) { return 1; } +int smlua_func_smlua_audio_utils_allocate_sequence(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", "smlua_audio_utils_allocate_sequence", 0, top); + return 0; + } + + + lua_pushinteger(L, smlua_audio_utils_allocate_sequence()); + + return 1; +} + int smlua_func_audio_stream_load(lua_State* L) { if (L == NULL) { return 0; } @@ -38470,6 +38485,7 @@ void smlua_bind_functions_autogen(void) { // smlua_audio_utils.h smlua_bind_function(L, "smlua_audio_utils_reset_all", smlua_func_smlua_audio_utils_reset_all); smlua_bind_function(L, "smlua_audio_utils_replace_sequence", smlua_func_smlua_audio_utils_replace_sequence); + smlua_bind_function(L, "smlua_audio_utils_allocate_sequence", smlua_func_smlua_audio_utils_allocate_sequence); smlua_bind_function(L, "audio_stream_load", smlua_func_audio_stream_load); smlua_bind_function(L, "audio_stream_destroy", smlua_func_audio_stream_destroy); smlua_bind_function(L, "audio_stream_play", smlua_func_audio_stream_play); diff --git a/src/pc/lua/utils/smlua_audio_utils.c b/src/pc/lua/utils/smlua_audio_utils.c index 80aeca7fc..9b02de52e 100644 --- a/src/pc/lua/utils/smlua_audio_utils.c +++ b/src/pc/lua/utils/smlua_audio_utils.c @@ -173,6 +173,16 @@ void smlua_audio_utils_replace_sequence(u8 sequenceId, u8 bankId, u8 defaultVolu LOG_LUA_LINE("Could not find m64 at path: %s", m64path); } +u8 smlua_audio_utils_allocate_sequence(void) { + for (u8 seqId = SEQ_COUNT + 1; seqId < MAX_AUDIO_OVERRIDE; seqId++) { + if (!sAudioOverrides[seqId].enabled) { + return seqId; + } + } + LOG_ERROR("Cannot allocate more custom sequences."); + return MAX_AUDIO_OVERRIDE; +} + /////////////// // mod audio // /////////////// diff --git a/src/pc/lua/utils/smlua_audio_utils.h b/src/pc/lua/utils/smlua_audio_utils.h index deca8b0d0..93696c80d 100644 --- a/src/pc/lua/utils/smlua_audio_utils.h +++ b/src/pc/lua/utils/smlua_audio_utils.h @@ -8,6 +8,8 @@ void smlua_audio_utils_reset_all(void); bool smlua_audio_utils_override(u8 sequenceId, s32* bankId, void** seqData); /* |description|Replaces the sequence corresponding to `sequenceId` with one called `m64Name`.m64 with `bankId` and `defaultVolume`|descriptionEnd| */ void smlua_audio_utils_replace_sequence(u8 sequenceId, u8 bankId, u8 defaultVolume, const char* m64Name); +/* |description|Allocates a new sequence ID|descriptionEnd| */ +u8 smlua_audio_utils_allocate_sequence(void); //////////////// // mod sounds // From 4284e389a9f5353bd7d4b4383d82c4cd874ab4fd Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Fri, 20 Mar 2026 15:53:31 +1000 Subject: [PATCH 38/42] fix ext sound bank crash when instId > 0x83 --- src/audio/seqplayer.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/audio/seqplayer.c b/src/audio/seqplayer.c index 433ca0b1e..ac9884e07 100644 --- a/src/audio/seqplayer.c +++ b/src/audio/seqplayer.c @@ -212,7 +212,7 @@ struct SequenceChannel *allocate_sequence_channel(void) { #endif } } - + LOG_ERROR("RAN OUT OF SEQUENCE CHANNELS FOR ALLOCATION!"); return &gSequenceChannelNone; } @@ -281,7 +281,7 @@ void sequence_player_init_channels_extended(struct SequencePlayer* seqPlayer, u6 if (!seqPlayer) { return; } u64 channelBits = channelBitsLower; LOG_DEBUG("Enabling channels (extended) with corresponding bits %llX", channelBits); - + for (u32 i = 0; i < CHANNELS_MAX; i++) { if (i == sizeof(u64) * 8) { channelBits = channelBitsUpper; @@ -350,9 +350,9 @@ void sequence_player_disable_channels_extended(struct SequencePlayer* seqPlayer, void sequence_player_disable_all_channels(struct SequencePlayer *seqPlayer) { if (!seqPlayer) { return; } - + MUTEX_LOCK(gAudioThread); - + eu_stubbed_printf_0("SUBTRACK DIM\n"); for (u32 i = 0; i < CHANNELS_MAX; i++) { struct SequenceChannel *seqChannel = seqPlayer->channels[i]; @@ -371,16 +371,16 @@ void sequence_player_disable_all_channels(struct SequencePlayer *seqPlayer) { seqPlayer->channels[i] = &gSequenceChannelNone; } } - + MUTEX_UNLOCK(gAudioThread); } void sequence_channel_enable(struct SequencePlayer *seqPlayer, u8 channelIndex, void *script) { if (!seqPlayer) { return; } if (channelIndex >= CHANNELS_MAX) { return; } - + MUTEX_LOCK(gAudioThread); - + struct SequenceChannel *seqChannel = seqPlayer->channels[channelIndex]; s32 i; if (IS_SEQUENCE_CHANNEL_VALID(seqChannel) == FALSE) { @@ -409,19 +409,19 @@ void sequence_channel_enable(struct SequencePlayer *seqPlayer, u8 channelIndex, seq_channel_layer_free(seqChannel, i); } } - + LOG_DEBUG("Enabled sequence channel %d with script entry of %p", channelIndex, script); } - + MUTEX_UNLOCK(gAudioThread); } void sequence_player_disable(struct SequencePlayer *seqPlayer) { if (!seqPlayer) { return; } MUTEX_LOCK(gAudioThread); - + LOG_DEBUG("Disabling sequence player %p", seqPlayer); - + sequence_player_disable_all_channels(seqPlayer); note_pool_clear(&seqPlayer->notePool); seqPlayer->finished = TRUE; @@ -1620,7 +1620,7 @@ u8 get_instrument(struct SequenceChannel *seqChannel, u8 instId, struct Instrume } void set_instrument(struct SequenceChannel *seqChannel, u8 instId) { - if (instId >= 0x80) { + if (instId >= 0x80 && instId <= 0x83) { seqChannel->instOrWave = instId; seqChannel->instrument = NULL; } else if (instId == 0x7f) { From 111b2e7ea5123e7c4c47bb1932e3cbf33191b644 Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Fri, 20 Mar 2026 16:48:33 +1000 Subject: [PATCH 39/42] bump version [build] --- src/pc/network/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pc/network/version.h b/src/pc/network/version.h index 473e8fec5..9bda5050c 100644 --- a/src/pc/network/version.h +++ b/src/pc/network/version.h @@ -1,7 +1,7 @@ #ifndef VERSION_H #define VERSION_H -#define SM64COOPDX_VERSION "v1.4.1" +#define SM64COOPDX_VERSION "v1.4.2" // internal version #define VERSION_TEXT "v" From fb8fbd1136fa632ca4d25707f867066be4559549 Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Fri, 20 Mar 2026 16:49:29 +1000 Subject: [PATCH 40/42] forgot to run autogen [build] --- autogen/lua_definitions/constants.lua | 2 +- src/pc/lua/smlua_constants_autogen.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index 5bbb7065a..1d7dfb2dc 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -11266,7 +11266,7 @@ COOP_OBJ_FLAG_NON_SYNC = (1 << 2) COOP_OBJ_FLAG_INITIALIZED = (1 << 3) --- @type string -SM64COOPDX_VERSION = "v1.4.1" +SM64COOPDX_VERSION = "v1.4.2" --- @type string VERSION_TEXT = "v" diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index 60737b707..de7da771c 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -4687,7 +4687,7 @@ char gSmluaConstants[] = "" "COOP_OBJ_FLAG_LUA=(1 << 1)\n" "COOP_OBJ_FLAG_NON_SYNC=(1 << 2)\n" "COOP_OBJ_FLAG_INITIALIZED=(1 << 3)\n" -"SM64COOPDX_VERSION='v1.4.1'\n" +"SM64COOPDX_VERSION='v1.4.2'\n" "VERSION_TEXT='v'\n" "VERSION_NUMBER=41\n" "MINOR_VERSION_NUMBER=1\n" From b5d021b231492c1f921ea8af2570a5d86550e2fc Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Tue, 24 Mar 2026 10:10:11 +1000 Subject: [PATCH 41/42] fixed dynos animations on held objects [build] --- data/dynos_mgr_anim.cpp | 4 ++-- src/engine/graph_node.c | 2 +- src/game/mario_misc.c | 16 ++++++++-------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/data/dynos_mgr_anim.cpp b/data/dynos_mgr_anim.cpp index af7f319f4..21db5f690 100644 --- a/data/dynos_mgr_anim.cpp +++ b/data/dynos_mgr_anim.cpp @@ -8,7 +8,7 @@ extern "C" { #include "behavior_data.h" #include "pc/lua/smlua_hooks.h" -s8 geo_get_processing_mario_index(void); +s8 geo_get_processing_mario_index(struct Object *obj); } // @@ -77,7 +77,7 @@ void DynOS_Anim_Swap(void *aPtr) { // Animation index s32 _AnimIndex = -1; - s8 index = geo_get_processing_mario_index(); + s8 index = geo_get_processing_mario_index(_Object); if (index != -1) { _AnimIndex = RetrieveCurrentMarioAnimationIndex(index); diff --git a/src/engine/graph_node.c b/src/engine/graph_node.c index c9c0023f6..89d9126cb 100644 --- a/src/engine/graph_node.c +++ b/src/engine/graph_node.c @@ -508,7 +508,7 @@ struct GraphNodeBackground *init_graph_node_background(struct DynamicPool *pool, : (backgroundFunc && background >= BACKGROUND_CUSTOM); if (invalidBackground) { - LOG_ERROR("invalid background id"); + LOG_ERROR("invalid background id %d", background); background = BACKGROUND_HAUNTED; } diff --git a/src/game/mario_misc.c b/src/game/mario_misc.c index 7cb509211..435863e2f 100644 --- a/src/game/mario_misc.c +++ b/src/game/mario_misc.c @@ -334,13 +334,13 @@ static Gfx *make_gfx_mario_alpha(struct GraphNodeGenerated *node, s16 alpha) { } // Calculates if the processing geo is a mirror mario -static s8 geo_get_processing_mirror_mario_index() { - ptrdiff_t ptrDiff = (struct GraphNodeObject *) gCurGraphNodeProcessingObject - gMirrorMario; +static s8 geo_get_processing_mirror_mario_index(struct Object *obj) { + ptrdiff_t ptrDiff = (struct GraphNodeObject *) obj - gMirrorMario; return (ptrDiff >= 0 && ptrDiff < MAX_PLAYERS) ? ptrDiff : -1; } static u8 geo_get_processing_object_index(void) { - s8 index = geo_get_processing_mirror_mario_index(); + s8 index = geo_get_processing_mirror_mario_index(gCurGraphNodeProcessingObject); if (index != -1) { return index; } @@ -351,19 +351,19 @@ static u8 geo_get_processing_object_index(void) { return (index >= MAX_PLAYERS) ? 0 : index; } -s8 geo_get_processing_mario_index(void) { - if (gCurGraphNodeProcessingObject == NULL) { return -1; } +s8 geo_get_processing_mario_index(struct Object *obj) { + if (obj == NULL) { return -1; } - s8 index = geo_get_processing_mirror_mario_index(); + s8 index = geo_get_processing_mirror_mario_index(obj); if (index != -1) { return index; } - if (gCurGraphNodeProcessingObject->behavior != bhvMario) { + if (obj->behavior != bhvMario) { return -1; } - index = gCurGraphNodeProcessingObject->oBehParams - 1; + index = obj->oBehParams - 1; return (index >= MAX_PLAYERS) ? -1 : index; } From 43c697edf7e9c6b984f58e1c7bc23ebb154675ed Mon Sep 17 00:00:00 2001 From: EmeraldLockdown <86802223+EmeraldLoc@users.noreply.github.com> Date: Wed, 25 Mar 2026 21:52:21 -0500 Subject: [PATCH 42/42] Fix issue with mouse buttons being applied to pad (#1156) --- src/pc/controller/controller_sdl2.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pc/controller/controller_sdl2.c b/src/pc/controller/controller_sdl2.c index 95dafbed1..251d8a85f 100644 --- a/src/pc/controller/controller_sdl2.c +++ b/src/pc/controller/controller_sdl2.c @@ -196,6 +196,7 @@ static void controller_sdl_read(OSContPad *pad) { if (mouse & SDL_BUTTON(mouse_binds[i][0])) buttons_down |= mouse_binds[i][1]; } + pad->button |= buttons_down; // remember buttons that changed from 0 to 1 last_mouse = (mouse_prev ^ mouse) & mouse;