Skip to content

Commit

Permalink
an update
Browse files Browse the repository at this point in the history
  • Loading branch information
FireMario211 committed Nov 15, 2024
1 parent 59d6f78 commit 2e28756
Show file tree
Hide file tree
Showing 17 changed files with 390 additions and 347 deletions.
4 changes: 2 additions & 2 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export WINSDK_BASE=$SPLAT_DIR/sdk
#export LLVM_VER=17
#export CLANG_VER=$LLVM_VER

#export NO_IMGUI=1
export NO_IMGUI=1

# you can also use `-G Ninja` here
#-DCMAKE_BUILD_TYPE=Release -B build-linux \
Expand All @@ -32,4 +32,4 @@ cmake \

cmake --build build-linux-deb --config RelWithDebInfo
# /SDrive/Users/Fire/Desktop/Restoration/ClarifyGDPS V.1.3/GDGeode-2.206
cp build-linux-deb/firee.prism.geode "/SDrive/Users/Fire/Desktop/Restoration/ClarifyGDPS V.1.3/GDGeode-2.206/geode/mods/firee.prism.geode"
cp build-linux-deb/firee.prism.geode "/SDrive/Users/Fire/Desktop/Restoration/ClarifyGDPS V.1.3/GDGeode-2.2074/geode/mods/firee.prism.geode"
4 changes: 4 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# v1.9.3
- Updated to Geode 4.0.0-alpha.1
- Updated Ukrainian Translations
- Updated Turkish Translations
# v1.9.2
- Updated to Geode 3.9.0
- Added Japanese Translations
Expand Down
10 changes: 5 additions & 5 deletions mod.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"geode": "3.9.0",
"version": "v1.9.2",
"geode": "4.0.0-alpha.1",
"version": "v1.9.3",
"gd": {
"win": "2.206",
"mac": "2.206",
"android": "2.206"
"win": "2.2074",
"mac": "2.2074",
"android": "2.2074"
},
"id": "firee.prism",
"name": "Prism Menu",
Expand Down
2 changes: 1 addition & 1 deletion resources/hacks/creator.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
},
"type": "bool",
"save": false,
"platforms": ["win", "android32", "android64"]
"platforms": []
},
{
"name": "No (C) Mark",
Expand Down
6 changes: 3 additions & 3 deletions resources/langs/ukrainian.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[
{
"§ Global": {
"name": "§ Загальні"
"name": "§ Основні"
}
},
{
Expand Down Expand Up @@ -640,13 +640,13 @@
{
"Low FPS Pause": {
"name": "Пауза при низькому FPS",
"desc": "Автоматично ставить гру на паузу, якщо FPS опускається нище заданого значення."
"desc": "Автоматично ставить гру на паузу, якщо FPS опускається нижче заданого значення."
}
},
{
"Pause below FPS": {
"name": "Мінімальний FPS",
"desc": "Мінімальний FPS нище якого гра буде ставитись на паузу."
"desc": "Мінімальний FPS, нижче якого гра буде ставитись на паузу."
}
},
{
Expand Down
27 changes: 11 additions & 16 deletions src/CustomSettings.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#ifndef CUSTOM_SETTINGS_HPP
#define CUSTOM_SETTINGS_HPP
#include <Geode/loader/SettingNode.hpp>
using namespace geode::prelude;

struct HackValuesStruct {
Expand All @@ -10,39 +9,35 @@ struct HackValuesStruct {
};

struct SettingHackStruct {
matjson::Array m_hackValues;
std::vector<matjson::Value> m_hackValues;
};

template<>
struct matjson::Serialize<SettingHackStruct> {
static SettingHackStruct from_json(matjson::Value const& value) {
return SettingHackStruct {
.m_hackValues = value.as_array(),
};
}
static bool is_json(matjson::Value const& a) { // thank you mat!
return a.is_array();
static Result<SettingHackStruct> fromJson(matjson::Value const& value) {
GEODE_UNWRAP_INTO(auto hackValues, value.asArray());
return Ok(SettingHackStruct {
.m_hackValues = hackValues
});
}
static matjson::Value to_json(SettingHackStruct const& value) {
static matjson::Value toJson(SettingHackStruct const& value) {
return value.m_hackValues;
}
};


class SettingHackValue;

// im laughing, it wont compile if i put the struct SettingHackValue, but it will if i just do matjson::Array, hahahaHAHAHAHA
class SettingHackValue : public SettingBaseValueV3<matjson::Array> {
class SettingHackValue : public SettingBaseValueV3<std::vector<matjson::Value>> {
protected:
// unsure if this is necessary...
matjson::Array m_hackValues;
std::vector<matjson::Value> m_hackValues;
public:
static Result<std::shared_ptr<SettingHackValue>> parse(std::string const& key, std::string const& modID, matjson::Value const& json) {
static Result<std::shared_ptr<SettingV3>> parse(std::string const& key, std::string const& modID, matjson::Value const& json) {
auto res = std::make_shared<SettingHackValue>();
auto root = checkJson(json, "SettingHackValue");
res->parseBaseProperties(key, modID, root);
root.checkUnknownKeys();
return root.ok(res);
return root.ok(std::static_pointer_cast<SettingV3>(res));
}
SettingNodeV3* createNode(float width) override;
};
Expand Down
31 changes: 23 additions & 8 deletions src/Hacks/Quartz.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ void MacroItemCell::onTrash(CCObject*) {
if (item == nullptr) {
log::error("Couldn't find hack item \"Macro\"");
} else {
matjson::Array arr;
std::vector<matjson::Value> arr;
arr.push_back("None");
item->data["values"] = arr;
changedMacro = false;
Expand Down Expand Up @@ -224,7 +224,7 @@ void MacroItemCell::onSelect(CCObject*) {
if (item == nullptr) {
log::error("Couldn't find hack item \"Macro\"");
} else {
matjson::Array arr;
std::vector<matjson::Value> arr;
arr.push_back(m_file.file);
item->data["values"] = arr;
changedMacro = true;
Expand Down Expand Up @@ -491,6 +491,8 @@ bool ClearFramesUI::setup() {
return true;
}

bool dxDebug = false;

class $modify(QuartzPlayLayer, PlayLayer) {
struct Fields {
float bot_frame_dt = 0.F;
Expand Down Expand Up @@ -534,6 +536,9 @@ class $modify(QuartzPlayLayer, PlayLayer) {

std::vector<PlayerFrame> player_frames;
CCPoint previousPosition;

CCScale9Sprite* m_dxDebug;

};
/*bool init(GJGameLevel* level, bool useReplay, bool dontCreateObjects) {
if (!PlayLayer::init(level, useReplay, dontCreateObjects)) return false;
Expand All @@ -560,15 +565,14 @@ class $modify(QuartzPlayLayer, PlayLayer) {
}
}
}

void startGame() {
STOPTIME = false;
auto winSize = CCDirector::sharedDirector()->getWinSize();
PlayLayer::startGame();
if (Hacks::isHackEnabled("Playback") || Hacks::isHackEnabled("Record")) {
auto macroItem = Hacks::getHack("Macro");
if (macroItem != nullptr) {
std::string value = macroItem->data["values"].as_array()[0].as_string();
std::string value = macroItem->data["values"].asArray().unwrap()[0].asString().unwrapOrDefault();
changedMacro = false;
if (value != "None") {
current_macro = MacroManager::getMacro(value);
Expand Down Expand Up @@ -755,6 +759,7 @@ class $modify(QuartzPlayLayer, PlayLayer) {
m_fields->buttons->setPositionY(0);

// TODO: add advance and prev frame for +5 and -5, oh and also allow clearing from right or clearing a section
// here
}

void gotoBtn(CCObject*) {
Expand Down Expand Up @@ -978,6 +983,7 @@ class $modify(QuartzPlayLayer, PlayLayer) {
PlayLayer::onQuit();
}
void resetLevel() {
// here
if (m_fields->checkpoints.size() == 0 || !m_isPracticeMode) {
m_fields->bot_frame_dt = 0.F;
m_fields->bot_frame = 0;
Expand Down Expand Up @@ -1005,7 +1011,7 @@ class $modify(QuartzPlayLayer, PlayLayer) {
if ((Hacks::isHackEnabled("Playback") || Hacks::isHackEnabled("Record")) && changedMacro) {
auto macroItem = Hacks::getHack("Macro");
if (macroItem != nullptr) {
std::string value = macroItem->data["values"].as_array()[0].as_string();
std::string value = macroItem->data["values"].asArray().unwrap()[0].asString().unwrapOrDefault();
if (value != "None") {
current_macro = MacroManager::getMacro(value);
current_macro.isEnabled = true;
Expand Down Expand Up @@ -1133,6 +1139,9 @@ class $modify(QuartzGJBGL, GJBaseGameLayer) {
playLayer->m_fields->inputStateBtn2_p2->setVisible(false);
}
playLayer->m_fields->bot_frame_dt += dt;

// here

float addDt = dt * macroFPS;
float fixedDt = 1.0 / macroFPS;
playLayer->m_fields->bot_frame = m_gameState.m_currentProgress;
Expand Down Expand Up @@ -1189,11 +1198,15 @@ class $modify(QuartzGJBGL, GJBaseGameLayer) {
}
}
if (player1) {
GJBaseGameLayer::handleButton(input1->down, input1->button, !input1->player2);
if (!dxDebug) {
GJBaseGameLayer::handleButton(input1->down, input1->button, !input1->player2);
}
playLayer->m_fields->changedInputP1 = input1->down;
}
if (player2) {
GJBaseGameLayer::handleButton(input2->down, input2->button, !input2->player2);
if (!dxDebug) {
GJBaseGameLayer::handleButton(input2->down, input2->button, !input2->player2);
}
playLayer->m_fields->changedInputP2 = input2->down;
}

Expand Down Expand Up @@ -1252,7 +1265,9 @@ class $modify(QuartzGJBGL, GJBaseGameLayer) {
// Insert the new element at the desired position
log::debug("[Hold] Insert new frame at {}", playLayer->m_fields->bot_frame);
current_macro.inputs.insert(insertPos, newInput);
GJBaseGameLayer::handleButton(newInput.down, newInput.button, newInput.player2);
if (!dxDebug) {
GJBaseGameLayer::handleButton(newInput.down, newInput.button, newInput.player2);
}
playLayer->RecreateInputState(2, playLayer->m_fields->holdingP2, false);
}
if (!hadDone) {
Expand Down
17 changes: 8 additions & 9 deletions src/Languages.hpp
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
#pragma once
#include <unordered_map>
#include "hacks.hpp"
//#include <battery/embed.hpp>


class Lang {
matjson::Array langFile;
std::vector<matjson::Value> langFile;
int langId = 0;
public:
static std::unique_ptr<Lang> getLanguage();
Expand Down Expand Up @@ -67,15 +63,16 @@ class Lang {
langId = 0;
break;
}
lang->langFile = matjson::parse(file).as_array();
lang->langFile = matjson::parse(file).unwrapOrDefault().asArray().unwrapOrDefault();
lang->langId = langId;
}
return lang;
}
matjson::Value find(std::string key) {
matjson::Value def;
for (size_t i = 0; i < langFile.size(); ++i) {
if (langFile[i].contains(key)) {
return langFile[i].get<matjson::Value>(key.c_str());
return langFile[i].get(key.c_str()).unwrapOr(def);
}
}
return nullptr;
Expand All @@ -85,13 +82,15 @@ class Lang {
if (this->langId == 0) return key;
auto obj = this->find(key);
if (obj == nullptr) return key;
return obj.get<std::string>("name");
matjson::Value def = "";
return obj.get("name").unwrapOr(def).asString().unwrapOrDefault();
}
std::string desc(std::string key, std::string original) {
if (this->langId == 0) return original;
auto obj = this->find(key);
if (obj == nullptr) return key;
return obj.get<std::string>("desc");
matjson::Value def = "";
return obj.get("desc").unwrapOr(def).asString().unwrapOrDefault();
}
int getLangID() {
return langId;
Expand Down
Loading

0 comments on commit 2e28756

Please sign in to comment.