From 7d171b82d8fdc253696274023ab53842b8db31a2 Mon Sep 17 00:00:00 2001 From: EmeraldLockdown <86802223+EmeraldLoc@users.noreply.github.com> Date: Sat, 21 Mar 2026 10:16:54 -0500 Subject: [PATCH 1/2] Expose `gHudDisplay` --- autogen/convert_structs.py | 1 + autogen/lua_definitions/manual.lua | 10 +++-- autogen/lua_definitions/structs.lua | 31 ++++++++++++++ docs/lua/globals.md | 7 ++++ docs/lua/structs.md | 63 +++++++++++++++++++++++++++++ src/game/behaviors/door.inc.c | 2 +- src/pc/lua/smlua_cobject.c | 2 + src/pc/lua/smlua_cobject_autogen.c | 49 ++++++++++++++++++++++ src/pc/lua/smlua_cobject_autogen.h | 4 ++ 9 files changed, 165 insertions(+), 4 deletions(-) diff --git a/autogen/convert_structs.py b/autogen/convert_structs.py index 3a88390ec..cdd434ae1 100644 --- a/autogen/convert_structs.py +++ b/autogen/convert_structs.py @@ -31,6 +31,7 @@ in_files = [ "src/pc/lua/utils/smlua_audio_utils.h", "src/game/paintings.h", "src/pc/djui/djui_types.h", + "src/game/level_update.h", "src/game/first_person_cam.h", "src/game/player_palette.h", "src/engine/graph_node.h", diff --git a/autogen/lua_definitions/manual.lua b/autogen/lua_definitions/manual.lua index 2ce161f8a..9339a9886 100644 --- a/autogen/lua_definitions/manual.lua +++ b/autogen/lua_definitions/manual.lua @@ -97,6 +97,10 @@ gServerSettings = {} --- Struct containing the settings for Nametags gNametagsSettings = {} +--- @type HudDisplay +--- Struct containing the flags for the hud display +gHudDisplay = {} + ----------- -- hooks -- ----------- @@ -407,13 +411,13 @@ end --- @param command string --- @vararg integer | string | Gfx | Texture | Vtx Parameters for the command --- Sets a display list command on the display list given. ---- +--- --- If `command` includes parameter specifiers (subsequences beginning with `%`), the additional arguments --- following `command` are converted and inserted in `command` replacing their respective specifiers. ---- +--- --- The number of provided parameters must be equal to the number of specifiers in `command`, --- and the order of parameters must be the same as the specifiers. ---- +--- --- The following specifiers are allowed: --- - `%i` for an `integer` parameter --- - `%s` for a `string` parameter diff --git a/autogen/lua_definitions/structs.lua b/autogen/lua_definitions/structs.lua index 5441e7424..577e4be71 100644 --- a/autogen/lua_definitions/structs.lua +++ b/autogen/lua_definitions/structs.lua @@ -515,6 +515,13 @@ --- @field public buttonPressed integer --- @field public buttonReleased integer +--- @class CreditsEntry +--- @field public levelNum integer +--- @field public areaIndex integer +--- @field public unk02 integer +--- @field public marioAngle integer +--- @field public marioPos Vec3s + --- @class CustomLevelInfo --- @field public script Pointer_LevelScript --- @field public scriptEntryName string @@ -955,6 +962,15 @@ --- @field public translation Vec3s --- @field public rotation Vec3s +--- @class HudDisplay +--- @field public lives integer +--- @field public coins integer +--- @field public stars integer +--- @field public wedges integer +--- @field public keys integer +--- @field public flags integer +--- @field public timer integer + --- @class InstantWarp --- @field public id integer --- @field public area integer @@ -2152,6 +2168,14 @@ --- @field public zoomedOutHeight integer --- @field public modsOnly integer +--- @class SavedWarpValues +--- @field public received integer +--- @field public warpDest WarpDest +--- @field public inWarpCheckpoint integer +--- @field public ttcSpeedSetting integer +--- @field public D_80339EE0 integer +--- @field public paintingMarioYEntry number + --- @class ServerSettings --- @field public playerInteractions PlayerInteractions --- @field public bouncyLevelBounds BouncyLevelBounds @@ -2284,6 +2308,13 @@ --- @field public normalAddition Vec3f --- @field public normalCount integer +--- @class WarpDest +--- @field public type integer +--- @field public levelNum integer +--- @field public areaIdx integer +--- @field public nodeId integer +--- @field public arg integer + --- @class WarpNode --- @field public id integer --- @field public destLevel integer diff --git a/docs/lua/globals.md b/docs/lua/globals.md index 20bfacbd1..5819e54f0 100644 --- a/docs/lua/globals.md +++ b/docs/lua/globals.md @@ -102,6 +102,13 @@ __**NOTE**__: The fields in this struct are not synced and are meant to be chang
+## [gHudDisplay](#gHudDisplay) +`gHudDisplay`'s fields are listed in [HudDisplay](structs.md#HudDisplay). + +[:arrow_up_small:](#) + +
+ ## [gLevelValues](#gLevelValues) `gLevelValues`'s fields are listed in [LevelValues](structs.md#LevelValues). diff --git a/docs/lua/structs.md b/docs/lua/structs.md index 79c6d19ff..296dafa24 100644 --- a/docs/lua/structs.md +++ b/docs/lua/structs.md @@ -12,6 +12,7 @@ - [Character](#Character) - [Color](#Color) - [Controller](#Controller) +- [CreditsEntry](#CreditsEntry) - [CustomLevelInfo](#CustomLevelInfo) - [DateTime](#DateTime) - [DialogEntry](#DialogEntry) @@ -53,6 +54,7 @@ - [GraphNodeSwitchCase](#GraphNodeSwitchCase) - [GraphNodeTranslation](#GraphNodeTranslation) - [GraphNodeTranslationRotation](#GraphNodeTranslationRotation) +- [HudDisplay](#HudDisplay) - [InstantWarp](#InstantWarp) - [LakituState](#LakituState) - [LevelValues](#LevelValues) @@ -76,6 +78,7 @@ - [PlayerPalette](#PlayerPalette) - [RayIntersectionInfo](#RayIntersectionInfo) - [RomhackCameraSettings](#RomhackCameraSettings) +- [SavedWarpValues](#SavedWarpValues) - [ServerSettings](#ServerSettings) - [SpawnInfo](#SpawnInfo) - [SpawnParticlesInfo](#SpawnParticlesInfo) @@ -95,6 +98,7 @@ - [Vec4s](#Vec4s) - [Vtx](#Vtx) - [WallCollisionData](#WallCollisionData) +- [WarpDest](#WarpDest) - [WarpNode](#WarpNode) - [WaterDropletParams](#WaterDropletParams) - [Waypoint](#Waypoint) @@ -699,6 +703,20 @@
+## [CreditsEntry](#CreditsEntry) + +| Field | Type | Access | +| ----- | ---- | ------ | +| levelNum | `integer` | | +| areaIndex | `integer` | | +| unk02 | `integer` | | +| marioAngle | `integer` | | +| marioPos | [Vec3s](structs.md#Vec3s) | read-only | + +[:arrow_up_small:](#) + +
+ ## [CustomLevelInfo](#CustomLevelInfo) | Field | Type | Access | @@ -1426,6 +1444,22 @@
+## [HudDisplay](#HudDisplay) + +| Field | Type | Access | +| ----- | ---- | ------ | +| lives | `integer` | | +| coins | `integer` | | +| stars | `integer` | | +| wedges | `integer` | | +| keys | `integer` | | +| flags | `integer` | | +| timer | `integer` | | + +[:arrow_up_small:](#) + +
+ ## [InstantWarp](#InstantWarp) | Field | Type | Access | @@ -2817,6 +2851,21 @@
+## [SavedWarpValues](#SavedWarpValues) + +| Field | Type | Access | +| ----- | ---- | ------ | +| received | `integer` | | +| warpDest | [WarpDest](structs.md#WarpDest) | read-only | +| inWarpCheckpoint | `integer` | | +| ttcSpeedSetting | `integer` | | +| D_80339EE0 | `integer` | | +| paintingMarioYEntry | `number` | | + +[:arrow_up_small:](#) + +
+ ## [ServerSettings](#ServerSettings) | Field | Type | Access | @@ -3127,6 +3176,20 @@
+## [WarpDest](#WarpDest) + +| Field | Type | Access | +| ----- | ---- | ------ | +| type | `integer` | | +| levelNum | `integer` | | +| areaIdx | `integer` | | +| nodeId | `integer` | | +| arg | `integer` | | + +[:arrow_up_small:](#) + +
+ ## [WarpNode](#WarpNode) | Field | Type | Access | diff --git a/src/game/behaviors/door.inc.c b/src/game/behaviors/door.inc.c index 237d63eaf..0e29f9b47 100644 --- a/src/game/behaviors/door.inc.c +++ b/src/game/behaviors/door.inc.c @@ -72,7 +72,7 @@ void play_warp_door_open_noise(void) { void bhv_door_loop(void) { s32 sp1C = 0; - + if (o->oAction != 100) { while (D_8032F300[sp1C].flag != (u32)~0) { if (cur_obj_clear_interact_status_flag(D_8032F300[sp1C].flag)) { diff --git a/src/pc/lua/smlua_cobject.c b/src/pc/lua/smlua_cobject.c index 83f3e1542..10c56da8f 100644 --- a/src/pc/lua/smlua_cobject.c +++ b/src/pc/lua/smlua_cobject.c @@ -785,6 +785,8 @@ void smlua_cobject_init_globals(void) { EXPOSE_GLOBAL(LOT_SERVERSETTINGS, gServerSettings); EXPOSE_GLOBAL(LOT_NAMETAGSSETTINGS, gNametagsSettings); + + EXPOSE_GLOBAL(LOT_HUDDISPLAY, gHudDisplay); } void smlua_cobject_init_per_file_globals(const char* path) { diff --git a/src/pc/lua/smlua_cobject_autogen.c b/src/pc/lua/smlua_cobject_autogen.c index 35a3ce52d..079a6a334 100644 --- a/src/pc/lua/smlua_cobject_autogen.c +++ b/src/pc/lua/smlua_cobject_autogen.c @@ -25,6 +25,7 @@ #include "src/pc/lua/utils/smlua_audio_utils.h" #include "src/game/paintings.h" #include "src/pc/djui/djui_types.h" +#include "src/game/level_update.h" #include "src/game/first_person_cam.h" #include "src/game/player_palette.h" #include "src/engine/graph_node.h" @@ -701,6 +702,16 @@ static struct LuaObjectField sControllerFields[LUA_CONTROLLER_FIELD_COUNT] = { { "stickY", LVT_F32, offsetof(struct Controller, stickY), false, LOT_NONE, 1, sizeof(f32) }, }; +#define LUA_CREDITS_ENTRY_FIELD_COUNT 5 +static struct LuaObjectField sCreditsEntryFields[LUA_CREDITS_ENTRY_FIELD_COUNT] = { + { "areaIndex", LVT_U8, offsetof(struct CreditsEntry, areaIndex), false, LOT_NONE, 1, sizeof(u8) }, + { "levelNum", LVT_U8, offsetof(struct CreditsEntry, levelNum), false, LOT_NONE, 1, sizeof(u8) }, + { "marioAngle", LVT_S8, offsetof(struct CreditsEntry, marioAngle), false, LOT_NONE, 1, sizeof(s8) }, + { "marioPos", LVT_COBJECT, offsetof(struct CreditsEntry, marioPos), true, LOT_VEC3S, 1, sizeof(Vec3s) }, + { "unk02", LVT_U8, offsetof(struct CreditsEntry, unk02), false, LOT_NONE, 1, sizeof(u8) }, +// { "unk0C", LVT_???, offsetof(struct CreditsEntry, unk0C), true, LOT_???, 1, sizeof(const char **) }, <--- UNIMPLEMENTED +}; + #define LUA_CUSTOM_LEVEL_INFO_FIELD_COUNT 12 static struct LuaObjectField sCustomLevelInfoFields[LUA_CUSTOM_LEVEL_INFO_FIELD_COUNT] = { { "acousticReach", LVT_U32, offsetof(struct CustomLevelInfo, acousticReach), false, LOT_NONE, 1, sizeof(u32) }, @@ -1228,6 +1239,17 @@ static struct LuaObjectField sGraphNodeTranslationRotationFields[LUA_GRAPH_NODE_ { "translation", LVT_COBJECT, offsetof(struct GraphNodeTranslationRotation, translation), true, LOT_VEC3S, 1, sizeof(Vec3s) }, }; +#define LUA_HUD_DISPLAY_FIELD_COUNT 7 +static struct LuaObjectField sHudDisplayFields[LUA_HUD_DISPLAY_FIELD_COUNT] = { + { "coins", LVT_S16, offsetof(struct HudDisplay, coins), false, LOT_NONE, 1, sizeof(s16) }, + { "flags", LVT_S16, offsetof(struct HudDisplay, flags), false, LOT_NONE, 1, sizeof(s16) }, + { "keys", LVT_S16, offsetof(struct HudDisplay, keys), false, LOT_NONE, 1, sizeof(s16) }, + { "lives", LVT_S16, offsetof(struct HudDisplay, lives), false, LOT_NONE, 1, sizeof(s16) }, + { "stars", LVT_S16, offsetof(struct HudDisplay, stars), false, LOT_NONE, 1, sizeof(s16) }, + { "timer", LVT_U16, offsetof(struct HudDisplay, timer), false, LOT_NONE, 1, sizeof(u16) }, + { "wedges", LVT_S16, offsetof(struct HudDisplay, wedges), false, LOT_NONE, 1, sizeof(s16) }, +}; + #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) }, @@ -2484,6 +2506,16 @@ static struct LuaObjectField sRomhackCameraSettingsFields[LUA_ROMHACK_CAMERA_SET { "zoomedOutHeight", LVT_U32, offsetof(struct RomhackCameraSettings, zoomedOutHeight), false, LOT_NONE, 1, sizeof(u32) }, }; +#define LUA_SAVED_WARP_VALUES_FIELD_COUNT 6 +static struct LuaObjectField sSavedWarpValuesFields[LUA_SAVED_WARP_VALUES_FIELD_COUNT] = { + { "D_80339EE0", LVT_S16, offsetof(struct SavedWarpValues, D_80339EE0), false, LOT_NONE, 1, sizeof(s16) }, + { "inWarpCheckpoint", LVT_S8, offsetof(struct SavedWarpValues, inWarpCheckpoint), false, LOT_NONE, 1, sizeof(s8) }, + { "paintingMarioYEntry", LVT_F32, offsetof(struct SavedWarpValues, paintingMarioYEntry), false, LOT_NONE, 1, sizeof(f32) }, + { "received", LVT_U8, offsetof(struct SavedWarpValues, received), false, LOT_NONE, 1, sizeof(u8) }, + { "ttcSpeedSetting", LVT_S16, offsetof(struct SavedWarpValues, ttcSpeedSetting), false, LOT_NONE, 1, sizeof(s16) }, + { "warpDest", LVT_COBJECT, offsetof(struct SavedWarpValues, warpDest), true, LOT_WARPDEST, 1, sizeof(struct WarpDest) }, +}; + #define LUA_SERVER_SETTINGS_FIELD_COUNT 13 static struct LuaObjectField sServerSettingsFields[LUA_SERVER_SETTINGS_FIELD_COUNT] = { { "bouncyLevelBounds", LVT_S32, offsetof(struct ServerSettings, bouncyLevelBounds), false, LOT_NONE, 1, sizeof(enum BouncyLevelBounds) }, @@ -2637,6 +2669,15 @@ static struct LuaObjectField sWallCollisionDataFields[LUA_WALL_COLLISION_DATA_FI { "z", LVT_F32, offsetof(struct WallCollisionData, z), false, LOT_NONE, 1, sizeof(f32) }, }; +#define LUA_WARP_DEST_FIELD_COUNT 5 +static struct LuaObjectField sWarpDestFields[LUA_WARP_DEST_FIELD_COUNT] = { + { "areaIdx", LVT_U8, offsetof(struct WarpDest, areaIdx), false, LOT_NONE, 1, sizeof(u8) }, + { "arg", LVT_U32, offsetof(struct WarpDest, arg), false, LOT_NONE, 1, sizeof(u32) }, + { "levelNum", LVT_S16, offsetof(struct WarpDest, levelNum), false, LOT_NONE, 1, sizeof(s16) }, + { "nodeId", LVT_U8, offsetof(struct WarpDest, nodeId), false, LOT_NONE, 1, sizeof(u8) }, + { "type", LVT_U8, offsetof(struct WarpDest, type), false, LOT_NONE, 1, sizeof(u8) }, +}; + #define LUA_WARP_NODE_FIELD_COUNT 4 static struct LuaObjectField sWarpNodeFields[LUA_WARP_NODE_FIELD_COUNT] = { { "destArea", LVT_U8, offsetof(struct WarpNode, destArea), false, LOT_NONE, 1, sizeof(u8) }, @@ -2683,6 +2724,7 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] { LOT_CHAINSEGMENT, sChainSegmentFields, LUA_CHAIN_SEGMENT_FIELD_COUNT }, { LOT_CHARACTER, sCharacterFields, LUA_CHARACTER_FIELD_COUNT }, { LOT_CONTROLLER, sControllerFields, LUA_CONTROLLER_FIELD_COUNT }, + { LOT_CREDITSENTRY, sCreditsEntryFields, LUA_CREDITS_ENTRY_FIELD_COUNT }, { LOT_CUSTOMLEVELINFO, sCustomLevelInfoFields, LUA_CUSTOM_LEVEL_INFO_FIELD_COUNT }, { LOT_DATETIME, sDateTimeFields, LUA_DATE_TIME_FIELD_COUNT }, { LOT_DIALOGENTRY, sDialogEntryFields, LUA_DIALOG_ENTRY_FIELD_COUNT }, @@ -2724,6 +2766,7 @@ 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_HUDDISPLAY, sHudDisplayFields, LUA_HUD_DISPLAY_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 }, @@ -2746,6 +2789,7 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] { LOT_PLAYERPALETTE, sPlayerPaletteFields, LUA_PLAYER_PALETTE_FIELD_COUNT }, { LOT_RAYINTERSECTIONINFO, sRayIntersectionInfoFields, LUA_RAY_INTERSECTION_INFO_FIELD_COUNT }, { LOT_ROMHACKCAMERASETTINGS, sRomhackCameraSettingsFields, LUA_ROMHACK_CAMERA_SETTINGS_FIELD_COUNT }, + { LOT_SAVEDWARPVALUES, sSavedWarpValuesFields, LUA_SAVED_WARP_VALUES_FIELD_COUNT }, { LOT_SERVERSETTINGS, sServerSettingsFields, LUA_SERVER_SETTINGS_FIELD_COUNT }, { LOT_SPAWNINFO, sSpawnInfoFields, LUA_SPAWN_INFO_FIELD_COUNT }, { LOT_SPAWNPARTICLESINFO, sSpawnParticlesInfoFields, LUA_SPAWN_PARTICLES_INFO_FIELD_COUNT }, @@ -2756,6 +2800,7 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] { LOT_TEXTUREINFO, sTextureInfoFields, LUA_TEXTURE_INFO_FIELD_COUNT }, { LOT_VTX, sVtxFields, LUA_VTX_FIELD_COUNT }, { LOT_WALLCOLLISIONDATA, sWallCollisionDataFields, LUA_WALL_COLLISION_DATA_FIELD_COUNT }, + { LOT_WARPDEST, sWarpDestFields, LUA_WARP_DEST_FIELD_COUNT }, { LOT_WARPNODE, sWarpNodeFields, LUA_WARP_NODE_FIELD_COUNT }, { LOT_WATERDROPLETPARAMS, sWaterDropletParamsFields, LUA_WATER_DROPLET_PARAMS_FIELD_COUNT }, { LOT_WAYPOINT, sWaypointFields, LUA_WAYPOINT_FIELD_COUNT }, @@ -2788,6 +2833,7 @@ const char *sLuaLotNames[] = { [LOT_CHAINSEGMENT] = "ChainSegment", [LOT_CHARACTER] = "Character", [LOT_CONTROLLER] = "Controller", + [LOT_CREDITSENTRY] = "CreditsEntry", [LOT_CUSTOMLEVELINFO] = "CustomLevelInfo", [LOT_DATETIME] = "DateTime", [LOT_DIALOGENTRY] = "DialogEntry", @@ -2829,6 +2875,7 @@ const char *sLuaLotNames[] = { [LOT_GRAPHNODESWITCHCASE] = "GraphNodeSwitchCase", [LOT_GRAPHNODETRANSLATION] = "GraphNodeTranslation", [LOT_GRAPHNODETRANSLATIONROTATION] = "GraphNodeTranslationRotation", + [LOT_HUDDISPLAY] = "HudDisplay", [LOT_INSTANTWARP] = "InstantWarp", [LOT_LAKITUSTATE] = "LakituState", [LOT_LEVELVALUES] = "LevelValues", @@ -2851,6 +2898,7 @@ const char *sLuaLotNames[] = { [LOT_PLAYERPALETTE] = "PlayerPalette", [LOT_RAYINTERSECTIONINFO] = "RayIntersectionInfo", [LOT_ROMHACKCAMERASETTINGS] = "RomhackCameraSettings", + [LOT_SAVEDWARPVALUES] = "SavedWarpValues", [LOT_SERVERSETTINGS] = "ServerSettings", [LOT_SPAWNINFO] = "SpawnInfo", [LOT_SPAWNPARTICLESINFO] = "SpawnParticlesInfo", @@ -2861,6 +2909,7 @@ const char *sLuaLotNames[] = { [LOT_TEXTUREINFO] = "TextureInfo", [LOT_VTX] = "Vtx", [LOT_WALLCOLLISIONDATA] = "WallCollisionData", + [LOT_WARPDEST] = "WarpDest", [LOT_WARPNODE] = "WarpNode", [LOT_WATERDROPLETPARAMS] = "WaterDropletParams", [LOT_WAYPOINT] = "Waypoint", diff --git a/src/pc/lua/smlua_cobject_autogen.h b/src/pc/lua/smlua_cobject_autogen.h index d034ce9f7..f8c5409a8 100644 --- a/src/pc/lua/smlua_cobject_autogen.h +++ b/src/pc/lua/smlua_cobject_autogen.h @@ -33,6 +33,7 @@ enum LuaObjectAutogenType { LOT_CHAINSEGMENT, LOT_CHARACTER, LOT_CONTROLLER, + LOT_CREDITSENTRY, LOT_CUSTOMLEVELINFO, LOT_DATETIME, LOT_DIALOGENTRY, @@ -74,6 +75,7 @@ enum LuaObjectAutogenType { LOT_GRAPHNODESWITCHCASE, LOT_GRAPHNODETRANSLATION, LOT_GRAPHNODETRANSLATIONROTATION, + LOT_HUDDISPLAY, LOT_INSTANTWARP, LOT_LAKITUSTATE, LOT_LEVELVALUES, @@ -96,6 +98,7 @@ enum LuaObjectAutogenType { LOT_PLAYERPALETTE, LOT_RAYINTERSECTIONINFO, LOT_ROMHACKCAMERASETTINGS, + LOT_SAVEDWARPVALUES, LOT_SERVERSETTINGS, LOT_SPAWNINFO, LOT_SPAWNPARTICLESINFO, @@ -106,6 +109,7 @@ enum LuaObjectAutogenType { LOT_TEXTUREINFO, LOT_VTX, LOT_WALLCOLLISIONDATA, + LOT_WARPDEST, LOT_WARPNODE, LOT_WATERDROPLETPARAMS, LOT_WAYPOINT, From b80b05526c51be8964a76a48bcbb3ec486594645 Mon Sep 17 00:00:00 2001 From: EmeraldLockdown <86802223+EmeraldLoc@users.noreply.github.com> Date: Sat, 21 Mar 2026 10:20:36 -0500 Subject: [PATCH 2/2] Fix that --- autogen/convert_structs.py | 1 + autogen/lua_definitions/structs.lua | 22 -------------- docs/lua/structs.md | 46 ----------------------------- src/pc/lua/smlua_cobject_autogen.c | 35 ---------------------- src/pc/lua/smlua_cobject_autogen.h | 3 -- 5 files changed, 1 insertion(+), 106 deletions(-) diff --git a/autogen/convert_structs.py b/autogen/convert_structs.py index cdd434ae1..0d5bb1428 100644 --- a/autogen/convert_structs.py +++ b/autogen/convert_structs.py @@ -156,6 +156,7 @@ override_field_version_excludes = { override_allowed_structs = { "src/pc/network/network.h": [ "ServerSettings", "NametagsSettings" ], "src/pc/djui/djui_types.h": [ "DjuiColor" ], + "src/game/level_update.h": [ "HudDisplay" ], "src/game/player_palette.h": [ "PlayerPalette" ], "src/game/ingame_menu.h" : [ "DialogEntry" ], "include/PR/gbi.h": [ "Gfx", "Vtx" ], diff --git a/autogen/lua_definitions/structs.lua b/autogen/lua_definitions/structs.lua index 577e4be71..7b5a14828 100644 --- a/autogen/lua_definitions/structs.lua +++ b/autogen/lua_definitions/structs.lua @@ -515,13 +515,6 @@ --- @field public buttonPressed integer --- @field public buttonReleased integer ---- @class CreditsEntry ---- @field public levelNum integer ---- @field public areaIndex integer ---- @field public unk02 integer ---- @field public marioAngle integer ---- @field public marioPos Vec3s - --- @class CustomLevelInfo --- @field public script Pointer_LevelScript --- @field public scriptEntryName string @@ -2168,14 +2161,6 @@ --- @field public zoomedOutHeight integer --- @field public modsOnly integer ---- @class SavedWarpValues ---- @field public received integer ---- @field public warpDest WarpDest ---- @field public inWarpCheckpoint integer ---- @field public ttcSpeedSetting integer ---- @field public D_80339EE0 integer ---- @field public paintingMarioYEntry number - --- @class ServerSettings --- @field public playerInteractions PlayerInteractions --- @field public bouncyLevelBounds BouncyLevelBounds @@ -2308,13 +2293,6 @@ --- @field public normalAddition Vec3f --- @field public normalCount integer ---- @class WarpDest ---- @field public type integer ---- @field public levelNum integer ---- @field public areaIdx integer ---- @field public nodeId integer ---- @field public arg integer - --- @class WarpNode --- @field public id integer --- @field public destLevel integer diff --git a/docs/lua/structs.md b/docs/lua/structs.md index 296dafa24..b31d0dd22 100644 --- a/docs/lua/structs.md +++ b/docs/lua/structs.md @@ -12,7 +12,6 @@ - [Character](#Character) - [Color](#Color) - [Controller](#Controller) -- [CreditsEntry](#CreditsEntry) - [CustomLevelInfo](#CustomLevelInfo) - [DateTime](#DateTime) - [DialogEntry](#DialogEntry) @@ -78,7 +77,6 @@ - [PlayerPalette](#PlayerPalette) - [RayIntersectionInfo](#RayIntersectionInfo) - [RomhackCameraSettings](#RomhackCameraSettings) -- [SavedWarpValues](#SavedWarpValues) - [ServerSettings](#ServerSettings) - [SpawnInfo](#SpawnInfo) - [SpawnParticlesInfo](#SpawnParticlesInfo) @@ -98,7 +96,6 @@ - [Vec4s](#Vec4s) - [Vtx](#Vtx) - [WallCollisionData](#WallCollisionData) -- [WarpDest](#WarpDest) - [WarpNode](#WarpNode) - [WaterDropletParams](#WaterDropletParams) - [Waypoint](#Waypoint) @@ -703,20 +700,6 @@
-## [CreditsEntry](#CreditsEntry) - -| Field | Type | Access | -| ----- | ---- | ------ | -| levelNum | `integer` | | -| areaIndex | `integer` | | -| unk02 | `integer` | | -| marioAngle | `integer` | | -| marioPos | [Vec3s](structs.md#Vec3s) | read-only | - -[:arrow_up_small:](#) - -
- ## [CustomLevelInfo](#CustomLevelInfo) | Field | Type | Access | @@ -2851,21 +2834,6 @@
-## [SavedWarpValues](#SavedWarpValues) - -| Field | Type | Access | -| ----- | ---- | ------ | -| received | `integer` | | -| warpDest | [WarpDest](structs.md#WarpDest) | read-only | -| inWarpCheckpoint | `integer` | | -| ttcSpeedSetting | `integer` | | -| D_80339EE0 | `integer` | | -| paintingMarioYEntry | `number` | | - -[:arrow_up_small:](#) - -
- ## [ServerSettings](#ServerSettings) | Field | Type | Access | @@ -3176,20 +3144,6 @@
-## [WarpDest](#WarpDest) - -| Field | Type | Access | -| ----- | ---- | ------ | -| type | `integer` | | -| levelNum | `integer` | | -| areaIdx | `integer` | | -| nodeId | `integer` | | -| arg | `integer` | | - -[:arrow_up_small:](#) - -
- ## [WarpNode](#WarpNode) | Field | Type | Access | diff --git a/src/pc/lua/smlua_cobject_autogen.c b/src/pc/lua/smlua_cobject_autogen.c index 079a6a334..f4b02d6e9 100644 --- a/src/pc/lua/smlua_cobject_autogen.c +++ b/src/pc/lua/smlua_cobject_autogen.c @@ -702,16 +702,6 @@ static struct LuaObjectField sControllerFields[LUA_CONTROLLER_FIELD_COUNT] = { { "stickY", LVT_F32, offsetof(struct Controller, stickY), false, LOT_NONE, 1, sizeof(f32) }, }; -#define LUA_CREDITS_ENTRY_FIELD_COUNT 5 -static struct LuaObjectField sCreditsEntryFields[LUA_CREDITS_ENTRY_FIELD_COUNT] = { - { "areaIndex", LVT_U8, offsetof(struct CreditsEntry, areaIndex), false, LOT_NONE, 1, sizeof(u8) }, - { "levelNum", LVT_U8, offsetof(struct CreditsEntry, levelNum), false, LOT_NONE, 1, sizeof(u8) }, - { "marioAngle", LVT_S8, offsetof(struct CreditsEntry, marioAngle), false, LOT_NONE, 1, sizeof(s8) }, - { "marioPos", LVT_COBJECT, offsetof(struct CreditsEntry, marioPos), true, LOT_VEC3S, 1, sizeof(Vec3s) }, - { "unk02", LVT_U8, offsetof(struct CreditsEntry, unk02), false, LOT_NONE, 1, sizeof(u8) }, -// { "unk0C", LVT_???, offsetof(struct CreditsEntry, unk0C), true, LOT_???, 1, sizeof(const char **) }, <--- UNIMPLEMENTED -}; - #define LUA_CUSTOM_LEVEL_INFO_FIELD_COUNT 12 static struct LuaObjectField sCustomLevelInfoFields[LUA_CUSTOM_LEVEL_INFO_FIELD_COUNT] = { { "acousticReach", LVT_U32, offsetof(struct CustomLevelInfo, acousticReach), false, LOT_NONE, 1, sizeof(u32) }, @@ -2506,16 +2496,6 @@ static struct LuaObjectField sRomhackCameraSettingsFields[LUA_ROMHACK_CAMERA_SET { "zoomedOutHeight", LVT_U32, offsetof(struct RomhackCameraSettings, zoomedOutHeight), false, LOT_NONE, 1, sizeof(u32) }, }; -#define LUA_SAVED_WARP_VALUES_FIELD_COUNT 6 -static struct LuaObjectField sSavedWarpValuesFields[LUA_SAVED_WARP_VALUES_FIELD_COUNT] = { - { "D_80339EE0", LVT_S16, offsetof(struct SavedWarpValues, D_80339EE0), false, LOT_NONE, 1, sizeof(s16) }, - { "inWarpCheckpoint", LVT_S8, offsetof(struct SavedWarpValues, inWarpCheckpoint), false, LOT_NONE, 1, sizeof(s8) }, - { "paintingMarioYEntry", LVT_F32, offsetof(struct SavedWarpValues, paintingMarioYEntry), false, LOT_NONE, 1, sizeof(f32) }, - { "received", LVT_U8, offsetof(struct SavedWarpValues, received), false, LOT_NONE, 1, sizeof(u8) }, - { "ttcSpeedSetting", LVT_S16, offsetof(struct SavedWarpValues, ttcSpeedSetting), false, LOT_NONE, 1, sizeof(s16) }, - { "warpDest", LVT_COBJECT, offsetof(struct SavedWarpValues, warpDest), true, LOT_WARPDEST, 1, sizeof(struct WarpDest) }, -}; - #define LUA_SERVER_SETTINGS_FIELD_COUNT 13 static struct LuaObjectField sServerSettingsFields[LUA_SERVER_SETTINGS_FIELD_COUNT] = { { "bouncyLevelBounds", LVT_S32, offsetof(struct ServerSettings, bouncyLevelBounds), false, LOT_NONE, 1, sizeof(enum BouncyLevelBounds) }, @@ -2669,15 +2649,6 @@ static struct LuaObjectField sWallCollisionDataFields[LUA_WALL_COLLISION_DATA_FI { "z", LVT_F32, offsetof(struct WallCollisionData, z), false, LOT_NONE, 1, sizeof(f32) }, }; -#define LUA_WARP_DEST_FIELD_COUNT 5 -static struct LuaObjectField sWarpDestFields[LUA_WARP_DEST_FIELD_COUNT] = { - { "areaIdx", LVT_U8, offsetof(struct WarpDest, areaIdx), false, LOT_NONE, 1, sizeof(u8) }, - { "arg", LVT_U32, offsetof(struct WarpDest, arg), false, LOT_NONE, 1, sizeof(u32) }, - { "levelNum", LVT_S16, offsetof(struct WarpDest, levelNum), false, LOT_NONE, 1, sizeof(s16) }, - { "nodeId", LVT_U8, offsetof(struct WarpDest, nodeId), false, LOT_NONE, 1, sizeof(u8) }, - { "type", LVT_U8, offsetof(struct WarpDest, type), false, LOT_NONE, 1, sizeof(u8) }, -}; - #define LUA_WARP_NODE_FIELD_COUNT 4 static struct LuaObjectField sWarpNodeFields[LUA_WARP_NODE_FIELD_COUNT] = { { "destArea", LVT_U8, offsetof(struct WarpNode, destArea), false, LOT_NONE, 1, sizeof(u8) }, @@ -2724,7 +2695,6 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] { LOT_CHAINSEGMENT, sChainSegmentFields, LUA_CHAIN_SEGMENT_FIELD_COUNT }, { LOT_CHARACTER, sCharacterFields, LUA_CHARACTER_FIELD_COUNT }, { LOT_CONTROLLER, sControllerFields, LUA_CONTROLLER_FIELD_COUNT }, - { LOT_CREDITSENTRY, sCreditsEntryFields, LUA_CREDITS_ENTRY_FIELD_COUNT }, { LOT_CUSTOMLEVELINFO, sCustomLevelInfoFields, LUA_CUSTOM_LEVEL_INFO_FIELD_COUNT }, { LOT_DATETIME, sDateTimeFields, LUA_DATE_TIME_FIELD_COUNT }, { LOT_DIALOGENTRY, sDialogEntryFields, LUA_DIALOG_ENTRY_FIELD_COUNT }, @@ -2789,7 +2759,6 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] { LOT_PLAYERPALETTE, sPlayerPaletteFields, LUA_PLAYER_PALETTE_FIELD_COUNT }, { LOT_RAYINTERSECTIONINFO, sRayIntersectionInfoFields, LUA_RAY_INTERSECTION_INFO_FIELD_COUNT }, { LOT_ROMHACKCAMERASETTINGS, sRomhackCameraSettingsFields, LUA_ROMHACK_CAMERA_SETTINGS_FIELD_COUNT }, - { LOT_SAVEDWARPVALUES, sSavedWarpValuesFields, LUA_SAVED_WARP_VALUES_FIELD_COUNT }, { LOT_SERVERSETTINGS, sServerSettingsFields, LUA_SERVER_SETTINGS_FIELD_COUNT }, { LOT_SPAWNINFO, sSpawnInfoFields, LUA_SPAWN_INFO_FIELD_COUNT }, { LOT_SPAWNPARTICLESINFO, sSpawnParticlesInfoFields, LUA_SPAWN_PARTICLES_INFO_FIELD_COUNT }, @@ -2800,7 +2769,6 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] { LOT_TEXTUREINFO, sTextureInfoFields, LUA_TEXTURE_INFO_FIELD_COUNT }, { LOT_VTX, sVtxFields, LUA_VTX_FIELD_COUNT }, { LOT_WALLCOLLISIONDATA, sWallCollisionDataFields, LUA_WALL_COLLISION_DATA_FIELD_COUNT }, - { LOT_WARPDEST, sWarpDestFields, LUA_WARP_DEST_FIELD_COUNT }, { LOT_WARPNODE, sWarpNodeFields, LUA_WARP_NODE_FIELD_COUNT }, { LOT_WATERDROPLETPARAMS, sWaterDropletParamsFields, LUA_WATER_DROPLET_PARAMS_FIELD_COUNT }, { LOT_WAYPOINT, sWaypointFields, LUA_WAYPOINT_FIELD_COUNT }, @@ -2833,7 +2801,6 @@ const char *sLuaLotNames[] = { [LOT_CHAINSEGMENT] = "ChainSegment", [LOT_CHARACTER] = "Character", [LOT_CONTROLLER] = "Controller", - [LOT_CREDITSENTRY] = "CreditsEntry", [LOT_CUSTOMLEVELINFO] = "CustomLevelInfo", [LOT_DATETIME] = "DateTime", [LOT_DIALOGENTRY] = "DialogEntry", @@ -2898,7 +2865,6 @@ const char *sLuaLotNames[] = { [LOT_PLAYERPALETTE] = "PlayerPalette", [LOT_RAYINTERSECTIONINFO] = "RayIntersectionInfo", [LOT_ROMHACKCAMERASETTINGS] = "RomhackCameraSettings", - [LOT_SAVEDWARPVALUES] = "SavedWarpValues", [LOT_SERVERSETTINGS] = "ServerSettings", [LOT_SPAWNINFO] = "SpawnInfo", [LOT_SPAWNPARTICLESINFO] = "SpawnParticlesInfo", @@ -2909,7 +2875,6 @@ const char *sLuaLotNames[] = { [LOT_TEXTUREINFO] = "TextureInfo", [LOT_VTX] = "Vtx", [LOT_WALLCOLLISIONDATA] = "WallCollisionData", - [LOT_WARPDEST] = "WarpDest", [LOT_WARPNODE] = "WarpNode", [LOT_WATERDROPLETPARAMS] = "WaterDropletParams", [LOT_WAYPOINT] = "Waypoint", diff --git a/src/pc/lua/smlua_cobject_autogen.h b/src/pc/lua/smlua_cobject_autogen.h index f8c5409a8..a053ea8ca 100644 --- a/src/pc/lua/smlua_cobject_autogen.h +++ b/src/pc/lua/smlua_cobject_autogen.h @@ -33,7 +33,6 @@ enum LuaObjectAutogenType { LOT_CHAINSEGMENT, LOT_CHARACTER, LOT_CONTROLLER, - LOT_CREDITSENTRY, LOT_CUSTOMLEVELINFO, LOT_DATETIME, LOT_DIALOGENTRY, @@ -98,7 +97,6 @@ enum LuaObjectAutogenType { LOT_PLAYERPALETTE, LOT_RAYINTERSECTIONINFO, LOT_ROMHACKCAMERASETTINGS, - LOT_SAVEDWARPVALUES, LOT_SERVERSETTINGS, LOT_SPAWNINFO, LOT_SPAWNPARTICLESINFO, @@ -109,7 +107,6 @@ enum LuaObjectAutogenType { LOT_TEXTUREINFO, LOT_VTX, LOT_WALLCOLLISIONDATA, - LOT_WARPDEST, LOT_WARPNODE, LOT_WATERDROPLETPARAMS, LOT_WAYPOINT,