From d649636a6d0bfef442a8f2798bc7dad9b2c057a7 Mon Sep 17 00:00:00 2001 From: RD42 <42702181+dashr9230@users.noreply.github.com> Date: Mon, 28 Oct 2024 20:02:24 +0800 Subject: [PATCH] [saco] Implement/match `CPlayerPed::SetShopName(...)` --- saco/game/playerped.cpp | 30 ++++++++++++++++++++++++++++++ saco/game/playerped.h | 1 + 2 files changed, 31 insertions(+) diff --git a/saco/game/playerped.cpp b/saco/game/playerped.cpp index 4c99c01..4b282f4 100644 --- a/saco/game/playerped.cpp +++ b/saco/game/playerped.cpp @@ -1045,3 +1045,33 @@ PCHAR CPlayerPed::GetShopName() //----------------------------------------------------------- +CHAR szShopName[32]; + +void CPlayerPed::SetShopName(char *szNewShopName) +{ + if(!m_pPed) return; + if(!GamePool_Ped_GetAt(m_dwGTAId)) return; + + DWORD dwPedPtr = (DWORD)m_pPed; + + if(szNewShopName && strlen(szNewShopName)) + { + if(strlen(szNewShopName) <= 31) + { + memset(szShopName, 0, sizeof(szShopName)); + strncpy(szShopName, szNewShopName, sizeof(szShopName)); + + _asm mov eax, dwPedPtr + _asm mov ebx, offset szShopName + _asm mov [eax+1932], ebx + } + } + else + { + _asm mov eax, dwPedPtr + _asm mov byte ptr [eax+1932], 0 + } +} + +//----------------------------------------------------------- + diff --git a/saco/game/playerped.h b/saco/game/playerped.h index 6282b40..51725fa 100644 --- a/saco/game/playerped.h +++ b/saco/game/playerped.h @@ -100,6 +100,7 @@ public: PCHAR GetLoadedShopName(); void LoadShoppingDataSubsection(PCHAR szSectionName); PCHAR GetShopName(); + void SetShopName(char *szNewShopName); //char _gap0[813];