Skip to content

Commit 4a0bf57

Browse files
committed
update devtools for current state of v4
1 parent 3757d7d commit 4a0bf57

4 files changed

Lines changed: 42 additions & 37 deletions

File tree

mod.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"geode": "3.9.0",
2+
"geode": "4.0.0",
33
"version": "v1.7.1",
44
"gd": {
55
"win": "*",
@@ -10,7 +10,9 @@
1010
"name": "DevTools",
1111
"developer": "Geode Team",
1212
"description": "Developer tools for Geode",
13-
"repository": "https://github.com/geode-sdk/DevTools",
13+
"links": {
14+
"source": "https://github.com/geode-sdk/DevTools"
15+
},
1416
"issues": {
1517
"url": "https://github.com/geode-sdk/DevTools/issues",
1618
"info": "If you encounter an issue using DevTools, please report it to the GitHub issues page."

src/DevTools.cpp

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,36 +13,34 @@
1313

1414
template<>
1515
struct matjson::Serialize<Settings> {
16-
static Settings from_json(const matjson::Value& value) {
17-
return Settings {
18-
.GDInWindow = value["game_in_window"].as_bool(),
19-
.attributesInTree = value["attributes_in_tree"].as_bool(),
20-
.alwaysHighlight = value["always_highlight"].as_bool(),
21-
.highlightLayouts = value["highlight_layouts"].as_bool(),
22-
.arrowExpand = value["arrow_expand"].as_bool(),
23-
.orderChildren = value["order_children"].as_bool(),
24-
.advancedSettings = value["advanced_settings"].as_bool(),
25-
.showMemoryViewer = value["show_memory_viewer"].as_bool(),
26-
.theme = value["theme"].as_string(),
27-
};
16+
static Result<Settings> fromJson(const matjson::Value& value) {
17+
Settings defaults;
18+
19+
return Ok(Settings {
20+
.GDInWindow = value["game_in_window"].asBool().unwrapOr(std::move(defaults.GDInWindow)),
21+
.attributesInTree = value["attributes_in_tree"].asBool().unwrapOr(std::move(defaults.attributesInTree)),
22+
.alwaysHighlight = value["always_highlight"].asBool().unwrapOr(std::move(defaults.alwaysHighlight)),
23+
.highlightLayouts = value["highlight_layouts"].asBool().unwrapOr(std::move(defaults.highlightLayouts)),
24+
.arrowExpand = value["arrow_expand"].asBool().unwrapOr(std::move(defaults.arrowExpand)),
25+
.orderChildren = value["order_children"].asBool().unwrapOr(std::move(defaults.orderChildren)),
26+
.advancedSettings = value["advanced_settings"].asBool().unwrapOr(std::move(defaults.advancedSettings)),
27+
.showMemoryViewer = value["show_memory_viewer"].asBool().unwrapOr(std::move(defaults.showMemoryViewer)),
28+
.theme = value["theme"].asString().unwrapOr(std::move(defaults.theme)),
29+
});
2830
}
2931

30-
static matjson::Value to_json(const Settings& settings) {
31-
auto obj = matjson::Object();
32-
obj["game_in_window"] = settings.GDInWindow;
33-
obj["attributes_in_tree"] = settings.attributesInTree;
34-
obj["always_highlight"] = settings.alwaysHighlight;
35-
obj["highlight_layouts"] = settings.highlightLayouts;
36-
obj["arrow_expand"] = settings.arrowExpand;
37-
obj["order_children"] = settings.orderChildren;
38-
obj["advanced_settings"] = settings.advancedSettings;
39-
obj["show_memory_viewer"] = settings.showMemoryViewer;
40-
obj["theme"] = settings.theme;
41-
return obj;
42-
}
43-
44-
static bool is_json(matjson::Value const& val) {
45-
return val.is_object();
32+
static matjson::Value toJson(const Settings& settings) {
33+
return matjson::makeObject({
34+
{ "game_in_window", settings.GDInWindow },
35+
{ "attributes_in_tree", settings.attributesInTree },
36+
{ "always_highlight", settings.alwaysHighlight },
37+
{ "highlight_layouts", settings.highlightLayouts },
38+
{ "arrow_expand", settings.arrowExpand },
39+
{ "order_children", settings.orderChildren },
40+
{ "advanced_settings", settings.advancedSettings },
41+
{ "show_memory_viewer", settings.showMemoryViewer },
42+
{ "theme", settings.theme },
43+
});
4644
}
4745
};
4846

@@ -169,7 +167,7 @@ void DevTools::draw(GLRenderCtx* ctx) {
169167
}
170168

171169
m_dockspaceID = ImGui::DockSpaceOverViewport(
172-
0, nullptr, ImGuiDockNodeFlags_PassthruCentralNode
170+
0, nullptr, ImGuiDockNodeFlags_PassthruCentralNode
173171
);
174172

175173
ImGui::PushFont(m_defaultFont);

src/pages/Advanced.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ ModMetadata DevTools::inputMetadata(void* treePtr, ModMetadata metadata) {
7777
metadata.setDetails(inputTextMultiline("details", metadata.getDetails()));
7878
metadata.setChangelog(inputTextMultiline("changelog", metadata.getChangelog()));
7979
metadata.setSupportInfo(inputTextMultiline("supportInfo", metadata.getSupportInfo()));
80-
metadata.setRepository(inputTextMultiline("repository", metadata.getRepository()));
80+
metadata.setRepository(inputTextMultiline("community", metadata.getLinks().getCommunityURL()));
81+
metadata.setRepository(inputTextMultiline("homepage", metadata.getLinks().getHomepageURL()));
82+
metadata.setRepository(inputTextMultiline("source", metadata.getLinks().getSourceURL()));
8183
metadata.setIssues(inputIssues(metadata.getIssues()));
8284
metadata.setNeedsEarlyLoad(inputBool("needsEarlyLoad", metadata.needsEarlyLoad()));
8385
metadata.setIsAPI(inputBool("isAPI", metadata.isAPI()));
@@ -141,7 +143,8 @@ ModMetadata DevTools::inputMetadata(void* treePtr, ModMetadata metadata) {
141143
ImGui::TreePop();
142144
}
143145

144-
if (ImGui::TreeNode(reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(treePtr) + 4), "settings")) {
146+
//TODO: fix idc enough
147+
/*if (ImGui::TreeNode(reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(treePtr) + 4), "settings")) {
145148
for (auto const& [id, setting] : metadata.getSettings()) {
146149
if (!ImGui::TreeNode(id.data(), "%s", id.c_str()))
147150
continue;
@@ -152,7 +155,7 @@ ModMetadata DevTools::inputMetadata(void* treePtr, ModMetadata metadata) {
152155
ImGui::TreePop();
153156
}
154157
ImGui::TreePop();
155-
}
158+
}*/
156159

157160
return metadata;
158161
}

src/pages/Memory.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -333,9 +333,11 @@ void DevTools::drawMemory() {
333333
} else if (auto maybeStr = findStdString(ptr); maybeStr) {
334334
auto str = maybeStr->substr(0, 30);
335335
// escapes new lines and stuff for me :3
336-
auto fmted = matjson::Value(std::string(str)).dump(0);
337-
texts.push_back(fmt::format("[{:04x}] maybe std::string {}, {}", offset, maybeStr->size(), fmted));
338-
textSaving.push_back(fmt::format("{:x}: s {}", offset, fmted));
336+
if(auto fmted = matjson::Value(std::string(str)).dump(0)) {
337+
auto fmtedStr = fmted.unwrap();
338+
texts.push_back(fmt::format("[{:04x}] maybe std::string {}, {}", offset, maybeStr->size(), fmtedStr));
339+
textSaving.push_back(fmt::format("{:x}: s {}", offset, fmtedStr));
340+
}
339341
} else if (auto valueOpt = ptr.read_opt<uintptr_t>()) {
340342
auto value = *valueOpt;
341343
auto data = std::span(reinterpret_cast<uint8_t*>(&value), sizeof(void*));

0 commit comments

Comments
 (0)