Skip to content

Commit

Permalink
Merge branch 'master' into pd-upscaler
Browse files Browse the repository at this point in the history
  • Loading branch information
praydog committed Oct 25, 2024
2 parents 8b0d835 + 470fe85 commit 83fd33c
Show file tree
Hide file tree
Showing 9 changed files with 82 additions and 11 deletions.
24 changes: 24 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -592,6 +592,7 @@ if(REF_BUILD_RE2_SDK OR REF_BUILD_FRAMEWORK) # build-re2-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -621,6 +622,7 @@ if(REF_BUILD_RE2_SDK OR REF_BUILD_FRAMEWORK) # build-re2-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down Expand Up @@ -1444,6 +1446,7 @@ if(REF_BUILD_RE2_TDB66SDK OR REF_BUILD_FRAMEWORK) # build-re2tdb66-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -1473,6 +1476,7 @@ if(REF_BUILD_RE2_TDB66SDK OR REF_BUILD_FRAMEWORK) # build-re2tdb66-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down Expand Up @@ -2725,6 +2729,7 @@ if(REF_BUILD_RE3_SDK OR REF_BUILD_FRAMEWORK) # build-re3-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -2754,6 +2759,7 @@ if(REF_BUILD_RE3_SDK OR REF_BUILD_FRAMEWORK) # build-re3-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down Expand Up @@ -3577,6 +3583,7 @@ if(REF_BUILD_RE3_TDB67SDK OR REF_BUILD_FRAMEWORK) # build-re3tdb67-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -3606,6 +3613,7 @@ if(REF_BUILD_RE3_TDB67SDK OR REF_BUILD_FRAMEWORK) # build-re3tdb67-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down Expand Up @@ -5072,6 +5080,7 @@ if(REF_BUILD_RE4_SDK OR REF_BUILD_FRAMEWORK) # build-re4-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -5101,6 +5110,7 @@ if(REF_BUILD_RE4_SDK OR REF_BUILD_FRAMEWORK) # build-re4-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down Expand Up @@ -5926,6 +5936,7 @@ if(REF_BUILD_RE7_SDK OR REF_BUILD_FRAMEWORK) # build-re7-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -5955,6 +5966,7 @@ if(REF_BUILD_RE7_SDK OR REF_BUILD_FRAMEWORK) # build-re7-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down Expand Up @@ -6778,6 +6790,7 @@ if(REF_BUILD_RE7_TDB49SDK OR REF_BUILD_FRAMEWORK) # build-re7tdb49-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -6807,6 +6820,7 @@ if(REF_BUILD_RE7_TDB49SDK OR REF_BUILD_FRAMEWORK) # build-re7tdb49-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down Expand Up @@ -8059,6 +8073,7 @@ if(REF_BUILD_RE8_SDK OR REF_BUILD_FRAMEWORK) # build-re8-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -8088,6 +8103,7 @@ if(REF_BUILD_RE8_SDK OR REF_BUILD_FRAMEWORK) # build-re8-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down Expand Up @@ -9127,6 +9143,7 @@ if(REF_BUILD_DMC5_SDK OR REF_BUILD_FRAMEWORK) # build-dmc5-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -9156,6 +9173,7 @@ if(REF_BUILD_DMC5_SDK OR REF_BUILD_FRAMEWORK) # build-dmc5-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down Expand Up @@ -10193,6 +10211,7 @@ if(REF_BUILD_MHRISE_SDK OR REF_BUILD_FRAMEWORK) # build-mhrise-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -10222,6 +10241,7 @@ if(REF_BUILD_MHRISE_SDK OR REF_BUILD_FRAMEWORK) # build-mhrise-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down Expand Up @@ -11261,6 +11281,7 @@ if(REF_BUILD_SF6_SDK OR REF_BUILD_FRAMEWORK) # build-sf6-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -11290,6 +11311,7 @@ if(REF_BUILD_SF6_SDK OR REF_BUILD_FRAMEWORK) # build-sf6-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down Expand Up @@ -12329,6 +12351,7 @@ if(REF_BUILD_DD2_SDK OR REF_BUILD_FRAMEWORK) # build-dd2-sdk
"shared/sdk/MurmurHash.cpp"
"shared/sdk/REArray.cpp"
"shared/sdk/REContext.cpp"
"shared/sdk/REGameObject.cpp"
"shared/sdk/REGlobals.cpp"
"shared/sdk/REManagedObject.cpp"
"shared/sdk/RETransform.cpp"
Expand Down Expand Up @@ -12358,6 +12381,7 @@ if(REF_BUILD_DD2_SDK OR REF_BUILD_FRAMEWORK) # build-dd2-sdk
"shared/sdk/REArray.hpp"
"shared/sdk/REComponent.hpp"
"shared/sdk/REContext.hpp"
"shared/sdk/REGameObject.hpp"
"shared/sdk/REGlobals.hpp"
"shared/sdk/REManagedObject.hpp"
"shared/sdk/REMath.hpp"
Expand Down
30 changes: 30 additions & 0 deletions shared/sdk/REGameObject.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#include "RETypeDB.hpp"

#include "REGameObject.hpp"

namespace utility::re_game_object {
std::string get_name(REGameObject* obj) {
if (obj == nullptr) {
return {};
}

// Only doing this on newer versions where we know it works
// Haven't tested it on older versions so just to be safe.
#if TDB_VER >= 71
static const auto game_object_t = sdk::find_type_definition("via.GameObject");
static const auto get_name_fn = game_object_t != nullptr ? game_object_t->get_method("get_Name") : nullptr;

if (get_name_fn != nullptr) {
auto str = get_name_fn->call<::SystemString*>(sdk::get_thread_context(), obj);

if (str != nullptr) {
return utility::re_string::get_string(str);
}
}
#endif

// We rely on the reflected function first because
// this offset might change between versions.
return utility::re_string::get_string(obj->name);
}
}
9 changes: 9 additions & 0 deletions shared/sdk/REGameObject.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#pragma once

#include "REManagedObject.hpp"

namespace utility {
namespace re_game_object {
std::string get_name(::REGameObject* obj);
}
}
3 changes: 2 additions & 1 deletion src/mods/Graphics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include <sdk/MurmurHash.hpp>
#include <sdk/Renderer.hpp>
#include <sdk/resources/ShaderResource.hpp>
#include <sdk/REGameObject.hpp>

#include "VR.hpp"
#include "Graphics.hpp"
Expand Down Expand Up @@ -483,7 +484,7 @@ bool Graphics::on_pre_gui_draw_element(REComponent* gui_element, void* primitive
}
}

const auto name = utility::re_string::get_string(game_object->name);
const auto name = utility::re_game_object::get_name(game_object);
const auto name_hash = utility::hash(name);

switch(name_hash) {
Expand Down
3 changes: 2 additions & 1 deletion src/mods/VR.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
#include "sdk/Application.hpp"
#include "sdk/Renderer.hpp"
#include "sdk/REMath.hpp"
#include "sdk/REGameObject.hpp"

#include "utility/Scan.hpp"
#include "utility/FunctionHook.hpp"
Expand Down Expand Up @@ -2709,7 +2710,7 @@ bool VR::on_pre_gui_draw_element(REComponent* gui_element, void* primitive_conte
if (game_object != nullptr && game_object->transform != nullptr) {
auto context = sdk::get_thread_context();

const auto name = utility::re_string::get_string(game_object->name);
const auto name = utility::re_game_object::get_name(game_object);
const auto name_hash = utility::hash(name);

switch (name_hash) {
Expand Down
7 changes: 4 additions & 3 deletions src/mods/bindings/Sdk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ sol::object parse_data(lua_State* l, void* data, ::sdk::RETypeDefinition* data_t
sol::object get_native_field(sol::object obj, ::sdk::RETypeDefinition* ty, const char* name);
sol::object get_native_field_from_field(sol::object obj, ::sdk::RETypeDefinition* ty, ::sdk::REField* field);
sol::object get_field_or_method(sol::object obj, const char* name);
void set_native_field(lua_State* l, sol::object obj, ::sdk::RETypeDefinition* ty, const char* name, sol::object value);
void set_native_field(sol::this_state s, sol::object obj, ::sdk::RETypeDefinition* ty, const char* name, sol::object value);

struct ValueType {
std::vector<uint8_t> data{};
Expand Down Expand Up @@ -1055,9 +1055,10 @@ void set_native_field_from_field(sol::object obj, ::sdk::RETypeDefinition* ty, :
set_data(data, field_type, value);
}

void set_native_field(lua_State* l, sol::object obj, ::sdk::RETypeDefinition* ty, const char* name, sol::object value) {
void set_native_field(sol::this_state s, sol::object obj, ::sdk::RETypeDefinition* ty, const char* name, sol::object value) {
const auto field = ty->get_field(name);
if (field == nullptr) {
auto l = s.lua_state();
//throw sol::error("Attempted to set invalid REManagedObject field:" + std::string(name));
luaL_traceback(l, l, ("Attempted to set invalid REManagedObject field:" + std::string(name)).c_str(), 1);
std::string traceback_err = lua_tostring(l, -1);
Expand Down Expand Up @@ -1686,7 +1687,7 @@ void bindings::open_sdk(ScriptState* s) {
return;
}

return api::sdk::set_native_field(s->lua(), sol::make_object(s->lua(), obj), utility::re_managed_object::get_type_definition(obj), name, value);
return api::sdk::set_native_field(sol::this_state{s->lua()}, sol::make_object(s->lua(), obj), utility::re_managed_object::get_type_definition(obj), name, value);
},
"call", [s](REManagedObject* obj, const char* name, sol::variadic_args args) {
if (obj == nullptr) {
Expand Down
3 changes: 2 additions & 1 deletion src/mods/tools/ChainViewer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include "sdk/RETypeDB.hpp"
#include "sdk/REManagedObject.hpp"
#include "sdk/Renderer.hpp"
#include "sdk/REGameObject.hpp"

#if TDB_VER < 69
#include "sdk/regenny/re3/via/motion/Chain.hpp"
Expand Down Expand Up @@ -182,7 +183,7 @@ void ChainViewer::on_frame() {
return;
}

auto owner_name = utility::re_string::get_string(owner->name);
auto owner_name = utility::re_game_object::get_name(owner);

if (owner_name.empty()) {
owner_name = "";
Expand Down
3 changes: 2 additions & 1 deletion src/mods/tools/GameObjectsDisplay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include "sdk/SceneManager.hpp"
#include "sdk/RETypeDB.hpp"
#include "sdk/REManagedObject.hpp"
#include "sdk/REGameObject.hpp"

#include "GameObjectsDisplay.hpp"

Expand Down Expand Up @@ -130,7 +131,7 @@ void GameObjectsDisplay::on_frame() {
continue;
}

auto owner_name = utility::re_string::get_string(owner->name);
auto owner_name = utility::re_game_object::get_name(owner);

if (owner_name.empty()) {
continue;
Expand Down
11 changes: 7 additions & 4 deletions src/mods/tools/ObjectExplorer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "Genny.hpp"
#include "GennyIda.hpp"

#include <sdk/REGameObject.hpp>
#include "REFramework.hpp"
#include "ObjectExplorer.hpp"

Expand Down Expand Up @@ -2299,7 +2300,7 @@ void ObjectExplorer::handle_address(Address address, int32_t offset, Address par
context_menu(real_address);

if (is_game_object) {
additional_text = utility::re_string::get_string(address.as<REGameObject*>()->name);
additional_text = utility::re_game_object::get_name(address.as<REGameObject*>());
}
else {
// Change name based on VMType
Expand Down Expand Up @@ -2517,7 +2518,9 @@ void ObjectExplorer::handle_game_object(REGameObject* game_object) {
m_add_component_name.reserve(256);
}

ImGui::Text("Name: %s", utility::re_string::get_string(game_object->name).c_str());
auto game_object_name = utility::re_game_object::get_name(game_object);

ImGui::Text("Name: %s", game_object_name.c_str());
make_tree_offset(game_object, offsetof(REGameObject, transform), "Transform");
make_tree_offset(game_object, offsetof(REGameObject, folder), "Folder");

Expand All @@ -2528,7 +2531,7 @@ void ObjectExplorer::handle_component(REComponent* component) {
auto display_component_preview = [&](REComponent* comp) {
if (comp != nullptr && comp->ownerGameObject != nullptr) {
auto prev_name = utility::re_managed_object::get_type_name(comp);
auto prev_gameobject_name = utility::re_string::get_string(comp->ownerGameObject->name);
auto prev_gameobject_name = utility::re_game_object::get_name(comp->ownerGameObject);

auto tree_hovered = ImGui::IsItemHovered();

Expand Down Expand Up @@ -4232,7 +4235,7 @@ void ObjectExplorer::context_menu(void* address, std::optional<std::string> name
}
else {
auto owner = obj->ownerGameObject;
spdlog::info("[{:s}] {:s} ({:x})", utility::re_string::get_string(owner->name), t->name, (uintptr_t)obj);
spdlog::info("[{:s}] {:s} ({:x})", utility::re_game_object::get_name(owner), t->name, (uintptr_t)obj);
}
}

Expand Down

0 comments on commit 83fd33c

Please sign in to comment.