edit thing

This commit is contained in:
Gray
2024-03-09 22:03:15 -05:00
parent ec515a1202
commit 1169eb80cc
4 changed files with 22 additions and 13 deletions

View File

@@ -55,7 +55,7 @@ public:
) )
{ {
SetNetDormancy((ENetDormancy)(2 - (NewEditingPlayer != 0))); SetNetDormancy((ENetDormancy)(2 - (NewEditingPlayer != 0)));
// they do something here this->ForceNetUpdate();
GetEditingPlayer() = NewEditingPlayer; GetEditingPlayer() = NewEditingPlayer;
} }
} }

View File

@@ -22,5 +22,14 @@ public:
void OnRep_EditActor(); void OnRep_EditActor();
void SetEditActor(ABuildingSMActor* EditActor)
{
// if (HasAuthority())
{
GetEditActor() = EditActor;
OnRep_EditActor();
}
}
static UClass* StaticClass(); static UClass* StaticClass();
}; };

View File

@@ -1694,8 +1694,7 @@ void AFortPlayerController::ServerBeginEditingBuildingActorHook(AFortPlayerContr
if (!EditTool) if (!EditTool)
return; return;
EditTool->GetEditActor() = BuildingActorToEdit; EditTool->SetEditActor(BuildingActorToEdit);
EditTool->OnRep_EditActor();
} }
void AFortPlayerController::ServerEditBuildingActorHook(UObject* Context, FFrame& Stack, void* Ret) void AFortPlayerController::ServerEditBuildingActorHook(UObject* Context, FFrame& Stack, void* Ret)
@@ -1762,21 +1761,17 @@ void AFortPlayerController::ServerEndEditingBuildingActorHook(AFortPlayerControl
if (!WorldInventory) if (!WorldInventory)
return; return;
BuildingActorToStopEditing->SetEditingPlayer(nullptr);
auto EditToolInstance = WorldInventory->FindItemInstance(EditToolDef); auto EditToolInstance = WorldInventory->FindItemInstance(EditToolDef);
if (!EditToolInstance) if (!EditToolInstance)
return; return;
Pawn->EquipWeaponDefinition(EditToolDef, EditToolInstance->GetItemEntry()->GetItemGuid()); // Pawn->EquipWeaponDefinition(EditToolDef, EditToolInstance->GetItemEntry()->GetItemGuid()); // ERM
auto EditTool = Cast<AFortWeap_EditingTool>(Pawn->GetCurrentWeapon()); if (auto EditTool = Cast<AFortWeap_EditingTool>(Pawn->GetCurrentWeapon()))
BuildingActorToStopEditing->GetEditingPlayer() = nullptr;
// BuildingActorToStopEditing->OnRep_EditingPlayer();
if (EditTool)
{ {
EditTool->GetEditActor() = nullptr; EditTool->SetEditActor(nullptr);
EditTool->OnRep_EditActor();
} }
} }

View File

@@ -583,8 +583,13 @@ std::vector<uint64> Addresses::GetFunctionsToNull()
toNull.push_back(Memcury::Scanner::FindStringRef(L"Widget Class %s - Running Initialize On Archetype, %s.").ScanFor({ 0x40, 0x55 }, false).Get()); // Widget class toNull.push_back(Memcury::Scanner::FindStringRef(L"Widget Class %s - Running Initialize On Archetype, %s.").ScanFor({ 0x40, 0x55 }, false).Get()); // Widget class
} }
if (Engine_Version == 422) if (Engine_Version == 422
|| Engine_Version == 423
|| Engine_Version == 424 // guessed
)
{ {
// This sig is valid on 7.40, 8.51, 11.31 (3 refs), but on 12.41 it has 1 ref which isn't widget class
// Also this isn't the actual function but something the widget class thing calls
toNull.push_back(Memcury::Scanner::FindPattern("48 89 5C 24 ? 57 48 83 EC 30 48 8B 41 28 48 8B DA 48 8B F9 48 85 C0 74 34 48 8B 4B 08 48 8D").Get()); // widget class toNull.push_back(Memcury::Scanner::FindPattern("48 89 5C 24 ? 57 48 83 EC 30 48 8B 41 28 48 8B DA 48 8B F9 48 85 C0 74 34 48 8B 4B 08 48 8D").Get()); // widget class
} }