a little bit of cleanup

This commit is contained in:
CrafterPika 2026-07-03 01:38:36 +02:00
commit f46a4e8283
No known key found for this signature in database
GPG key ID: B4E0BA4B52B201DC
3 changed files with 48 additions and 49 deletions

36
Func.cs
View file

@ -202,34 +202,26 @@ namespace Func {
} }
public static string EquippedHeadgear() { public static string EquippedGear(string slot) {
try { try {
var p_SaveDataMgr = Program.readUInt32((uint)(Program.readUInt32(SaveEditor.SAVEDATAMGR_ROOT_PTR) + 0xC)); var p_SaveDataMgr = Program.readUInt32((uint)(Program.readUInt32(SaveEditor.SAVEDATAMGR_ROOT_PTR) + 0xC));
switch (slot.ToLower()) {
case "headgear":
return $"{Program.readUInt32((uint)(p_SaveDataMgr + 0x188))}"; return $"{Program.readUInt32((uint)(p_SaveDataMgr + 0x188))}";
} catch {
return "Game not fully loaded yet..."; case "clothes":
}
}
public static string EquippedClothes() {
try {
var p_SaveDataMgr = Program.readUInt32((uint)(Program.readUInt32(SaveEditor.SAVEDATAMGR_ROOT_PTR) + 0xC));
return $"{Program.readUInt32((uint)(p_SaveDataMgr + 0x180))}"; return $"{Program.readUInt32((uint)(p_SaveDataMgr + 0x180))}";
} catch {
return "Game not fully loaded yet..."; case "shoes":
}
}
public static string EquippedShoes() {
try {
var p_SaveDataMgr = Program.readUInt32((uint)(Program.readUInt32(SaveEditor.SAVEDATAMGR_ROOT_PTR) + 0xC));
return $"{Program.readUInt32((uint)(p_SaveDataMgr + 0x184))}"; return $"{Program.readUInt32((uint)(p_SaveDataMgr + 0x184))}";
} catch {
return "Game not fully loaded yet..."; case "weapon":
}
}
public static string EquippedWep() {
try {
var p_SaveDataMgr = Program.readUInt32((uint)(Program.readUInt32(SaveEditor.SAVEDATAMGR_ROOT_PTR) + 0xC));
return $"{Program.readUInt32((uint)(p_SaveDataMgr + 0x18C))}"; return $"{Program.readUInt32((uint)(p_SaveDataMgr + 0x18C))}";
default:
return "";
}
} catch { } catch {
return "Game not fully loaded yet..."; return "Game not fully loaded yet...";
} }

View file

@ -153,21 +153,28 @@ namespace ModMenu {
Program.writeUInt32((uint)(p_save_start + 0xA5B4), amount); Program.writeUInt32((uint)(p_save_start + 0xA5B4), amount);
} }
public static void ChangeEquippedHeadgear(uint WeaponSetID) { public static void ChangeEquippedGear(uint id, string slot) {
var p_save_start = Program.readUInt32((uint)(Program.readUInt32(SAVEDATAMGR_ROOT_PTR) + 0xC)); var p_save_start = Program.readUInt32((uint)(Program.readUInt32(SAVEDATAMGR_ROOT_PTR) + 0xC));
Program.writeUInt32((uint)(p_save_start + 0x188), WeaponSetID); switch (slot.ToLower()) {
case "headgear":
Program.writeUInt32((uint)(p_save_start + 0x188), id);
return;
case "clothes":
Program.writeUInt32((uint)(p_save_start + 0x180), id);
return;
case "shoes":
Program.writeUInt32((uint)(p_save_start + 0x184), id);
return;
case "weapon":
Program.writeUInt32((uint)(p_save_start + 0x18C), id);
return;
default:
return;
} }
public static void ChangeEquippedClothes(uint ClothesID) {
var p_save_start = Program.readUInt32((uint)(Program.readUInt32(SAVEDATAMGR_ROOT_PTR) + 0xC));
Program.writeUInt32((uint)(p_save_start + 0x180), ClothesID);
}
public static void ChangeEquippedShoes(uint ShoesID) {
var p_save_start = Program.readUInt32((uint)(Program.readUInt32(SAVEDATAMGR_ROOT_PTR) + 0xC));
Program.writeUInt32((uint)(p_save_start + 0x184), ShoesID);
}
public static void ChangeEquippedWeapon(uint WeaponSetID) {
var p_save_start = Program.readUInt32((uint)(Program.readUInt32(SAVEDATAMGR_ROOT_PTR) + 0xC));
Program.writeUInt32((uint)(p_save_start + 0x18C), WeaponSetID);
} }
private static T ByteArrayToStructure<T>(byte[] bytes) where T : struct { private static T ByteArrayToStructure<T>(byte[] bytes) where T : struct {

View file

@ -50,16 +50,16 @@ namespace ModMenu {
SplatTelemetry.SendTelemetry(); SplatTelemetry.SendTelemetry();
}); });
static WorkThread HeadgearChangeThread = new WorkThread(() => { static WorkThread HeadgearChangeThread = new WorkThread(() => {
SaveEditor.ChangeEquippedHeadgear(HeadgearID); SaveEditor.ChangeEquippedGear(HeadgearID, "headgear");
}); });
static WorkThread ClothesChangeThread = new WorkThread(() => { static WorkThread ClothesChangeThread = new WorkThread(() => {
SaveEditor.ChangeEquippedClothes(ClothesID); SaveEditor.ChangeEquippedGear(ClothesID, "clothes");
}); });
static WorkThread ShoesChangeThread = new WorkThread(() => { static WorkThread ShoesChangeThread = new WorkThread(() => {
SaveEditor.ChangeEquippedShoes(ShoesID); SaveEditor.ChangeEquippedGear(ShoesID, "shoes");
}); });
static WorkThread WeaponChangeThread = new WorkThread(() => { static WorkThread WeaponChangeThread = new WorkThread(() => {
SaveEditor.ChangeEquippedWeapon(WeaponSetID); SaveEditor.ChangeEquippedGear(WeaponSetID, "weapon");
}); });
public static string RunCode(ModMenuRequest data) { public static string RunCode(ModMenuRequest data) {
@ -67,7 +67,7 @@ namespace ModMenu {
switch (data.action) { switch (data.action) {
case "cbase": case "cbase":
return $"Cemu Base: 0x{Program.cbase:X} (0x{Program.cbaseCorrected:X})<br><br>Total Wins: {Codes.TotalWins()}<br>Total Losses: {Codes.TotalLoss()}<br>Equipped Headgear: {Codes.EquippedHeadgear()}<br>Equipped Clothes: {Codes.EquippedClothes()}<br>Equipped Shoes: {Codes.EquippedShoes()}<br>Equipped Weapon: {Codes.EquippedWep()}<br><br>Thread Status:<br>- Write Gear: {WriteGear.Status.ToString()}<br>- Telemetry: {TelemetryThread.Status.ToString()}<br>- Change Gender: {ChangeGender.Status.ToString()}<br>- Change Level: {ChangeLevel.Status.ToString()}<br>- Change Cash: {ChangeCash.Status.ToString()}<br>- Change Sea Snails: {ChangeSeaSnails.Status.ToString()}<br>- Change Headgear: {HeadgearChangeThread.Status.ToString()}<br>- Change Clothes: {ClothesChangeThread.Status.ToString()}<br>- Change Shoes: {ShoesChangeThread.Status.ToString()}<br>- Change Weapon: {WeaponChangeThread.Status.ToString()}"; return $"Cemu Base: 0x{Program.cbase:X} (0x{Program.cbaseCorrected:X})<br><br>Total Wins: {Codes.TotalWins()}<br>Total Losses: {Codes.TotalLoss()}<br>Equipped Headgear: {Codes.EquippedGear("headgear")}<br>Equipped Clothes: {Codes.EquippedGear("clothes")}<br>Equipped Shoes: {Codes.EquippedGear("shoes")}<br>Equipped Weapon: {Codes.EquippedGear("weapon")}<br><br>Thread Status:<br>- Write Gear: {WriteGear.Status.ToString()}<br>- Telemetry: {TelemetryThread.Status.ToString()}<br>- Change Gender: {ChangeGender.Status.ToString()}<br>- Change Level: {ChangeLevel.Status.ToString()}<br>- Change Cash: {ChangeCash.Status.ToString()}<br>- Change Sea Snails: {ChangeSeaSnails.Status.ToString()}<br>- Change Headgear: {HeadgearChangeThread.Status.ToString()}<br>- Change Clothes: {ClothesChangeThread.Status.ToString()}<br>- Change Shoes: {ShoesChangeThread.Status.ToString()}<br>- Change Weapon: {WeaponChangeThread.Status.ToString()}";
case "sessiondata": case "sessiondata":
return Codes.GetSessionData(); return Codes.GetSessionData();
@ -184,10 +184,10 @@ namespace ModMenu {
return "1"; return "1";
case "AllEquipment": case "AllEquipment":
string headgearID = Codes.EquippedHeadgear(); string headgearID = Codes.EquippedGear("headgear");
string clothesID = Codes.EquippedClothes(); string clothesID = Codes.EquippedGear("clothes");
string shoesID = Codes.EquippedShoes(); string shoesID = Codes.EquippedGear("shoes");
string weaponId = Codes.EquippedWep(); string weaponId = Codes.EquippedGear("weapon");
return $"{{\"EquippedHeadgearId\": \"{headgearID}\", \"EquippedClothesId\": \"{clothesID}\", \"EquippedShoesId\": \"{shoesID}\", \"EquippedWepId\": \"{weaponId}\"}}"; return $"{{\"EquippedHeadgearId\": \"{headgearID}\", \"EquippedClothesId\": \"{clothesID}\", \"EquippedShoesId\": \"{shoesID}\", \"EquippedWepId\": \"{weaponId}\"}}";
default: default: