Skip to content

Commit f02df96

Browse files
authored
Merge branch 'praydog:master' into master
2 parents 69f76e1 + d474aa0 commit f02df96

8 files changed

Lines changed: 78 additions & 8 deletions

File tree

CMakeLists.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,7 @@ if(REF_BUILD_RE2_SDK OR REF_BUILD_FRAMEWORK) # build-re2-sdk
556556
"shared/sdk/MurmurHash.cpp"
557557
"shared/sdk/REArray.cpp"
558558
"shared/sdk/REContext.cpp"
559+
"shared/sdk/REGameObject.cpp"
559560
"shared/sdk/REGlobals.cpp"
560561
"shared/sdk/REManagedObject.cpp"
561562
"shared/sdk/RETransform.cpp"
@@ -585,6 +586,7 @@ if(REF_BUILD_RE2_SDK OR REF_BUILD_FRAMEWORK) # build-re2-sdk
585586
"shared/sdk/REArray.hpp"
586587
"shared/sdk/REComponent.hpp"
587588
"shared/sdk/REContext.hpp"
589+
"shared/sdk/REGameObject.hpp"
588590
"shared/sdk/REGlobals.hpp"
589591
"shared/sdk/REManagedObject.hpp"
590592
"shared/sdk/REMath.hpp"
@@ -1385,6 +1387,7 @@ if(REF_BUILD_RE2_TDB66SDK OR REF_BUILD_FRAMEWORK) # build-re2tdb66-sdk
13851387
"shared/sdk/MurmurHash.cpp"
13861388
"shared/sdk/REArray.cpp"
13871389
"shared/sdk/REContext.cpp"
1390+
"shared/sdk/REGameObject.cpp"
13881391
"shared/sdk/REGlobals.cpp"
13891392
"shared/sdk/REManagedObject.cpp"
13901393
"shared/sdk/RETransform.cpp"
@@ -1414,6 +1417,7 @@ if(REF_BUILD_RE2_TDB66SDK OR REF_BUILD_FRAMEWORK) # build-re2tdb66-sdk
14141417
"shared/sdk/REArray.hpp"
14151418
"shared/sdk/REComponent.hpp"
14161419
"shared/sdk/REContext.hpp"
1420+
"shared/sdk/REGameObject.hpp"
14171421
"shared/sdk/REGlobals.hpp"
14181422
"shared/sdk/REManagedObject.hpp"
14191423
"shared/sdk/REMath.hpp"
@@ -2629,6 +2633,7 @@ if(REF_BUILD_RE3_SDK OR REF_BUILD_FRAMEWORK) # build-re3-sdk
26292633
"shared/sdk/MurmurHash.cpp"
26302634
"shared/sdk/REArray.cpp"
26312635
"shared/sdk/REContext.cpp"
2636+
"shared/sdk/REGameObject.cpp"
26322637
"shared/sdk/REGlobals.cpp"
26332638
"shared/sdk/REManagedObject.cpp"
26342639
"shared/sdk/RETransform.cpp"
@@ -2658,6 +2663,7 @@ if(REF_BUILD_RE3_SDK OR REF_BUILD_FRAMEWORK) # build-re3-sdk
26582663
"shared/sdk/REArray.hpp"
26592664
"shared/sdk/REComponent.hpp"
26602665
"shared/sdk/REContext.hpp"
2666+
"shared/sdk/REGameObject.hpp"
26612667
"shared/sdk/REGlobals.hpp"
26622668
"shared/sdk/REManagedObject.hpp"
26632669
"shared/sdk/REMath.hpp"
@@ -3458,6 +3464,7 @@ if(REF_BUILD_RE3_TDB67SDK OR REF_BUILD_FRAMEWORK) # build-re3tdb67-sdk
34583464
"shared/sdk/MurmurHash.cpp"
34593465
"shared/sdk/REArray.cpp"
34603466
"shared/sdk/REContext.cpp"
3467+
"shared/sdk/REGameObject.cpp"
34613468
"shared/sdk/REGlobals.cpp"
34623469
"shared/sdk/REManagedObject.cpp"
34633470
"shared/sdk/RETransform.cpp"
@@ -3487,6 +3494,7 @@ if(REF_BUILD_RE3_TDB67SDK OR REF_BUILD_FRAMEWORK) # build-re3tdb67-sdk
34873494
"shared/sdk/REArray.hpp"
34883495
"shared/sdk/REComponent.hpp"
34893496
"shared/sdk/REContext.hpp"
3497+
"shared/sdk/REGameObject.hpp"
34903498
"shared/sdk/REGlobals.hpp"
34913499
"shared/sdk/REManagedObject.hpp"
34923500
"shared/sdk/REMath.hpp"
@@ -4909,6 +4917,7 @@ if(REF_BUILD_RE4_SDK OR REF_BUILD_FRAMEWORK) # build-re4-sdk
49094917
"shared/sdk/MurmurHash.cpp"
49104918
"shared/sdk/REArray.cpp"
49114919
"shared/sdk/REContext.cpp"
4920+
"shared/sdk/REGameObject.cpp"
49124921
"shared/sdk/REGlobals.cpp"
49134922
"shared/sdk/REManagedObject.cpp"
49144923
"shared/sdk/RETransform.cpp"
@@ -4938,6 +4947,7 @@ if(REF_BUILD_RE4_SDK OR REF_BUILD_FRAMEWORK) # build-re4-sdk
49384947
"shared/sdk/REArray.hpp"
49394948
"shared/sdk/REComponent.hpp"
49404949
"shared/sdk/REContext.hpp"
4950+
"shared/sdk/REGameObject.hpp"
49414951
"shared/sdk/REGlobals.hpp"
49424952
"shared/sdk/REManagedObject.hpp"
49434953
"shared/sdk/REMath.hpp"
@@ -5740,6 +5750,7 @@ if(REF_BUILD_RE7_SDK OR REF_BUILD_FRAMEWORK) # build-re7-sdk
57405750
"shared/sdk/MurmurHash.cpp"
57415751
"shared/sdk/REArray.cpp"
57425752
"shared/sdk/REContext.cpp"
5753+
"shared/sdk/REGameObject.cpp"
57435754
"shared/sdk/REGlobals.cpp"
57445755
"shared/sdk/REManagedObject.cpp"
57455756
"shared/sdk/RETransform.cpp"
@@ -5769,6 +5780,7 @@ if(REF_BUILD_RE7_SDK OR REF_BUILD_FRAMEWORK) # build-re7-sdk
57695780
"shared/sdk/REArray.hpp"
57705781
"shared/sdk/REComponent.hpp"
57715782
"shared/sdk/REContext.hpp"
5783+
"shared/sdk/REGameObject.hpp"
57725784
"shared/sdk/REGlobals.hpp"
57735785
"shared/sdk/REManagedObject.hpp"
57745786
"shared/sdk/REMath.hpp"
@@ -6569,6 +6581,7 @@ if(REF_BUILD_RE7_TDB49SDK OR REF_BUILD_FRAMEWORK) # build-re7tdb49-sdk
65696581
"shared/sdk/MurmurHash.cpp"
65706582
"shared/sdk/REArray.cpp"
65716583
"shared/sdk/REContext.cpp"
6584+
"shared/sdk/REGameObject.cpp"
65726585
"shared/sdk/REGlobals.cpp"
65736586
"shared/sdk/REManagedObject.cpp"
65746587
"shared/sdk/RETransform.cpp"
@@ -6598,6 +6611,7 @@ if(REF_BUILD_RE7_TDB49SDK OR REF_BUILD_FRAMEWORK) # build-re7tdb49-sdk
65986611
"shared/sdk/REArray.hpp"
65996612
"shared/sdk/REComponent.hpp"
66006613
"shared/sdk/REContext.hpp"
6614+
"shared/sdk/REGameObject.hpp"
66016615
"shared/sdk/REGlobals.hpp"
66026616
"shared/sdk/REManagedObject.hpp"
66036617
"shared/sdk/REMath.hpp"
@@ -7813,6 +7827,7 @@ if(REF_BUILD_RE8_SDK OR REF_BUILD_FRAMEWORK) # build-re8-sdk
78137827
"shared/sdk/MurmurHash.cpp"
78147828
"shared/sdk/REArray.cpp"
78157829
"shared/sdk/REContext.cpp"
7830+
"shared/sdk/REGameObject.cpp"
78167831
"shared/sdk/REGlobals.cpp"
78177832
"shared/sdk/REManagedObject.cpp"
78187833
"shared/sdk/RETransform.cpp"
@@ -7842,6 +7857,7 @@ if(REF_BUILD_RE8_SDK OR REF_BUILD_FRAMEWORK) # build-re8-sdk
78427857
"shared/sdk/REArray.hpp"
78437858
"shared/sdk/REComponent.hpp"
78447859
"shared/sdk/REContext.hpp"
7860+
"shared/sdk/REGameObject.hpp"
78457861
"shared/sdk/REGlobals.hpp"
78467862
"shared/sdk/REManagedObject.hpp"
78477863
"shared/sdk/REMath.hpp"
@@ -8851,6 +8867,7 @@ if(REF_BUILD_DMC5_SDK OR REF_BUILD_FRAMEWORK) # build-dmc5-sdk
88518867
"shared/sdk/MurmurHash.cpp"
88528868
"shared/sdk/REArray.cpp"
88538869
"shared/sdk/REContext.cpp"
8870+
"shared/sdk/REGameObject.cpp"
88548871
"shared/sdk/REGlobals.cpp"
88558872
"shared/sdk/REManagedObject.cpp"
88568873
"shared/sdk/RETransform.cpp"
@@ -8880,6 +8897,7 @@ if(REF_BUILD_DMC5_SDK OR REF_BUILD_FRAMEWORK) # build-dmc5-sdk
88808897
"shared/sdk/REArray.hpp"
88818898
"shared/sdk/REComponent.hpp"
88828899
"shared/sdk/REContext.hpp"
8900+
"shared/sdk/REGameObject.hpp"
88838901
"shared/sdk/REGlobals.hpp"
88848902
"shared/sdk/REManagedObject.hpp"
88858903
"shared/sdk/REMath.hpp"
@@ -9887,6 +9905,7 @@ if(REF_BUILD_MHRISE_SDK OR REF_BUILD_FRAMEWORK) # build-mhrise-sdk
98879905
"shared/sdk/MurmurHash.cpp"
98889906
"shared/sdk/REArray.cpp"
98899907
"shared/sdk/REContext.cpp"
9908+
"shared/sdk/REGameObject.cpp"
98909909
"shared/sdk/REGlobals.cpp"
98919910
"shared/sdk/REManagedObject.cpp"
98929911
"shared/sdk/RETransform.cpp"
@@ -9916,6 +9935,7 @@ if(REF_BUILD_MHRISE_SDK OR REF_BUILD_FRAMEWORK) # build-mhrise-sdk
99169935
"shared/sdk/REArray.hpp"
99179936
"shared/sdk/REComponent.hpp"
99189937
"shared/sdk/REContext.hpp"
9938+
"shared/sdk/REGameObject.hpp"
99199939
"shared/sdk/REGlobals.hpp"
99209940
"shared/sdk/REManagedObject.hpp"
99219941
"shared/sdk/REMath.hpp"
@@ -10925,6 +10945,7 @@ if(REF_BUILD_SF6_SDK OR REF_BUILD_FRAMEWORK) # build-sf6-sdk
1092510945
"shared/sdk/MurmurHash.cpp"
1092610946
"shared/sdk/REArray.cpp"
1092710947
"shared/sdk/REContext.cpp"
10948+
"shared/sdk/REGameObject.cpp"
1092810949
"shared/sdk/REGlobals.cpp"
1092910950
"shared/sdk/REManagedObject.cpp"
1093010951
"shared/sdk/RETransform.cpp"
@@ -10954,6 +10975,7 @@ if(REF_BUILD_SF6_SDK OR REF_BUILD_FRAMEWORK) # build-sf6-sdk
1095410975
"shared/sdk/REArray.hpp"
1095510976
"shared/sdk/REComponent.hpp"
1095610977
"shared/sdk/REContext.hpp"
10978+
"shared/sdk/REGameObject.hpp"
1095710979
"shared/sdk/REGlobals.hpp"
1095810980
"shared/sdk/REManagedObject.hpp"
1095910981
"shared/sdk/REMath.hpp"
@@ -11963,6 +11985,7 @@ if(REF_BUILD_DD2_SDK OR REF_BUILD_FRAMEWORK) # build-dd2-sdk
1196311985
"shared/sdk/MurmurHash.cpp"
1196411986
"shared/sdk/REArray.cpp"
1196511987
"shared/sdk/REContext.cpp"
11988+
"shared/sdk/REGameObject.cpp"
1196611989
"shared/sdk/REGlobals.cpp"
1196711990
"shared/sdk/REManagedObject.cpp"
1196811991
"shared/sdk/RETransform.cpp"
@@ -11992,6 +12015,7 @@ if(REF_BUILD_DD2_SDK OR REF_BUILD_FRAMEWORK) # build-dd2-sdk
1199212015
"shared/sdk/REArray.hpp"
1199312016
"shared/sdk/REComponent.hpp"
1199412017
"shared/sdk/REContext.hpp"
12018+
"shared/sdk/REGameObject.hpp"
1199512019
"shared/sdk/REGlobals.hpp"
1199612020
"shared/sdk/REManagedObject.hpp"
1199712021
"shared/sdk/REMath.hpp"

shared/sdk/REGameObject.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#include "RETypeDB.hpp"
2+
3+
#include "REGameObject.hpp"
4+
5+
namespace utility::re_game_object {
6+
std::string get_name(REGameObject* obj) {
7+
if (obj == nullptr) {
8+
return {};
9+
}
10+
11+
// Only doing this on newer versions where we know it works
12+
// Haven't tested it on older versions so just to be safe.
13+
#if TDB_VER >= 71
14+
static const auto game_object_t = sdk::find_type_definition("via.GameObject");
15+
static const auto get_name_fn = game_object_t != nullptr ? game_object_t->get_method("get_Name") : nullptr;
16+
17+
if (get_name_fn != nullptr) {
18+
auto str = get_name_fn->call<::SystemString*>(sdk::get_thread_context(), obj);
19+
20+
if (str != nullptr) {
21+
return utility::re_string::get_string(str);
22+
}
23+
}
24+
#endif
25+
26+
// We rely on the reflected function first because
27+
// this offset might change between versions.
28+
return utility::re_string::get_string(obj->name);
29+
}
30+
}

shared/sdk/REGameObject.hpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#pragma once
2+
3+
#include "REManagedObject.hpp"
4+
5+
namespace utility {
6+
namespace re_game_object {
7+
std::string get_name(::REGameObject* obj);
8+
}
9+
}

src/mods/Graphics.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <sdk/MurmurHash.hpp>
66
#include <sdk/Renderer.hpp>
77
#include <sdk/resources/ShaderResource.hpp>
8+
#include <sdk/REGameObject.hpp>
89

910
#include "VR.hpp"
1011
#include "Graphics.hpp"
@@ -483,7 +484,7 @@ bool Graphics::on_pre_gui_draw_element(REComponent* gui_element, void* primitive
483484
}
484485
}
485486

486-
const auto name = utility::re_string::get_string(game_object->name);
487+
const auto name = utility::re_game_object::get_name(game_object);
487488
const auto name_hash = utility::hash(name);
488489

489490
switch(name_hash) {

src/mods/VR.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
#include "sdk/Application.hpp"
4444
#include "sdk/Renderer.hpp"
4545
#include "sdk/REMath.hpp"
46+
#include "sdk/REGameObject.hpp"
4647

4748
#include "utility/Scan.hpp"
4849
#include "utility/FunctionHook.hpp"
@@ -2363,7 +2364,7 @@ bool VR::on_pre_gui_draw_element(REComponent* gui_element, void* primitive_conte
23632364
if (game_object != nullptr && game_object->transform != nullptr) {
23642365
auto context = sdk::get_thread_context();
23652366

2366-
const auto name = utility::re_string::get_string(game_object->name);
2367+
const auto name = utility::re_game_object::get_name(game_object);
23672368
const auto name_hash = utility::hash(name);
23682369

23692370
switch (name_hash) {

src/mods/tools/ChainViewer.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "sdk/RETypeDB.hpp"
1111
#include "sdk/REManagedObject.hpp"
1212
#include "sdk/Renderer.hpp"
13+
#include "sdk/REGameObject.hpp"
1314

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

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

187188
if (owner_name.empty()) {
188189
owner_name = "";

src/mods/tools/GameObjectsDisplay.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "sdk/SceneManager.hpp"
33
#include "sdk/RETypeDB.hpp"
44
#include "sdk/REManagedObject.hpp"
5+
#include "sdk/REGameObject.hpp"
56

67
#include "GameObjectsDisplay.hpp"
78

@@ -130,7 +131,7 @@ void GameObjectsDisplay::on_frame() {
130131
continue;
131132
}
132133

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

135136
if (owner_name.empty()) {
136137
continue;

src/mods/tools/ObjectExplorer.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "Genny.hpp"
2424
#include "GennyIda.hpp"
2525

26+
#include <sdk/REGameObject.hpp>
2627
#include "REFramework.hpp"
2728
#include "ObjectExplorer.hpp"
2829

@@ -2290,7 +2291,7 @@ void ObjectExplorer::handle_address(Address address, int32_t offset, Address par
22902291
context_menu(real_address);
22912292

22922293
if (is_game_object) {
2293-
additional_text = utility::re_string::get_string(address.as<REGameObject*>()->name);
2294+
additional_text = utility::re_game_object::get_name(address.as<REGameObject*>());
22942295
}
22952296
else {
22962297
// Change name based on VMType
@@ -2508,7 +2509,9 @@ void ObjectExplorer::handle_game_object(REGameObject* game_object) {
25082509
m_add_component_name.reserve(256);
25092510
}
25102511

2511-
ImGui::Text("Name: %s", utility::re_string::get_string(game_object->name).c_str());
2512+
auto game_object_name = utility::re_game_object::get_name(game_object);
2513+
2514+
ImGui::Text("Name: %s", game_object_name.c_str());
25122515
make_tree_offset(game_object, offsetof(REGameObject, transform), "Transform");
25132516
make_tree_offset(game_object, offsetof(REGameObject, folder), "Folder");
25142517

@@ -2519,7 +2522,7 @@ void ObjectExplorer::handle_component(REComponent* component) {
25192522
auto display_component_preview = [&](REComponent* comp) {
25202523
if (comp != nullptr && comp->ownerGameObject != nullptr) {
25212524
auto prev_name = utility::re_managed_object::get_type_name(comp);
2522-
auto prev_gameobject_name = utility::re_string::get_string(comp->ownerGameObject->name);
2525+
auto prev_gameobject_name = utility::re_game_object::get_name(comp->ownerGameObject);
25232526

25242527
auto tree_hovered = ImGui::IsItemHovered();
25252528

@@ -4052,7 +4055,7 @@ void ObjectExplorer::context_menu(void* address, std::optional<std::string> name
40524055
}
40534056
else {
40544057
auto owner = obj->ownerGameObject;
4055-
spdlog::info("[{:s}] {:s} ({:x})", utility::re_string::get_string(owner->name), t->name, (uintptr_t)obj);
4058+
spdlog::info("[{:s}] {:s} ({:x})", utility::re_game_object::get_name(owner), t->name, (uintptr_t)obj);
40564059
}
40574060
}
40584061

0 commit comments

Comments
 (0)