From ca3dc8792af008e341414f2b1edffc59cafbf013 Mon Sep 17 00:00:00 2001 From: nmzik Date: Mon, 7 Sep 2026 16:55:14 +0400 Subject: [PATCH] libs: implement NpCommerce lifecycle --- src/libs/libNet.cpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/libs/libNet.cpp b/src/libs/libNet.cpp index f88b51eb9..2de745481 100644 --- a/src/libs/libNet.cpp +++ b/src/libs/libNet.cpp @@ -1414,13 +1414,41 @@ namespace LibNpCommerce { LIB_VERSION("NpCommerce", 1, "NpCommerce", 1, 1); +constexpr int COMMERCE_STATUS_NONE = 0; +constexpr int COMMERCE_STATUS_INITIALIZED = 1; + +constexpr int COMMERCE_ERROR_NOT_INITIALIZED = static_cast(0x80B80003u); +constexpr int COMMERCE_ERROR_ALREADY_INITIALIZED = static_cast(0x80B80004u); + +static int g_commerce_status = COMMERCE_STATUS_NONE; + +static int KYTY_SYSV_ABI NpCommerceDialogInitialize() { + PRINT_NAME(); + if (g_commerce_status != COMMERCE_STATUS_NONE) { + return COMMERCE_ERROR_ALREADY_INITIALIZED; + } + g_commerce_status = COMMERCE_STATUS_INITIALIZED; + return OK; +} + +static int KYTY_SYSV_ABI NpCommerceDialogTerminate() { + PRINT_NAME(); + if (g_commerce_status == COMMERCE_STATUS_NONE) { + return COMMERCE_ERROR_NOT_INITIALIZED; + } + g_commerce_status = COMMERCE_STATUS_NONE; + return OK; +} + static int KYTY_SYSV_ABI NpCommerceDialogUpdateStatus() { PRINT_NAME(); - return 0; // SCE_COMMON_DIALOG_STATUS_NONE + return g_commerce_status; } LIB_DEFINE(InitNet_1_NpCommerce) { + LIB_FUNC("0aR2aWmQal4", NpCommerceDialogInitialize); + LIB_FUNC("m-I92Ab50W8", NpCommerceDialogTerminate); LIB_FUNC("LR5cwFMMCVE", NpCommerceDialogUpdateStatus); }