diff --git a/artifacts/scripting/headers/sfall.h b/artifacts/scripting/headers/sfall.h index 09983d51..b681f789 100644 --- a/artifacts/scripting/headers/sfall.h +++ b/artifacts/scripting/headers/sfall.h @@ -218,3 +218,5 @@ #define outlined_object sfall_func0("outlined_object") #define get_ini_sections(file) sfall_func1("get_ini_sections", file) #define get_ini_section(file, sect) sfall_func2("get_ini_section", file, sect) +#define set_dude_obj(critter) sfall_func1("set_dude_obj", critter) +#define real_dude_obj sfall_func0("real_dude_obj") diff --git a/sfall/Modules/Scripting/Handlers/Metarule.cpp b/sfall/Modules/Scripting/Handlers/Metarule.cpp index 94dfed3c..c58209d4 100644 --- a/sfall/Modules/Scripting/Handlers/Metarule.cpp +++ b/sfall/Modules/Scripting/Handlers/Metarule.cpp @@ -134,6 +134,7 @@ static const SfallMetarule metaruleArray[] = { {"tile_refresh_display", sf_tile_refresh_display, 0, 0}, {"outlined_object", sf_outlined_object, 0, 0}, {"set_dude_obj", sf_set_dude_obj, 1, 1, {ARG_OBJECT}}, + {"real_dude_obj", sf_real_dude_obj, 0, 0}, }; void InitMetaruleTable() { diff --git a/sfall/Modules/Scripting/Handlers/Objects.cpp b/sfall/Modules/Scripting/Handlers/Objects.cpp index fd0d6a51..f211cff4 100644 --- a/sfall/Modules/Scripting/Handlers/Objects.cpp +++ b/sfall/Modules/Scripting/Handlers/Objects.cpp @@ -438,5 +438,9 @@ void sf_set_dude_obj(OpcodeContext& ctx) { } } +void sf_real_dude_obj(OpcodeContext& ctx) { + ctx.setReturn(PartyControl::RealDudeObject()); +} + } } diff --git a/sfall/Modules/Scripting/Handlers/Objects.h b/sfall/Modules/Scripting/Handlers/Objects.h index bf9b13b1..ed167f45 100644 --- a/sfall/Modules/Scripting/Handlers/Objects.h +++ b/sfall/Modules/Scripting/Handlers/Objects.h @@ -81,5 +81,7 @@ void sf_item_weight(OpcodeContext&); void sf_set_dude_obj(OpcodeContext&); +void sf_real_dude_obj(OpcodeContext&); + } }