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)));
// they do something here
this->ForceNetUpdate();
GetEditingPlayer() = NewEditingPlayer;
}
}

View File

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

View File

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

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
}
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
}