rodecomp/Source/Contents/MCStoreInfoBackup.h
2026-10-24 00:35:19 +00:00

80 lines
2.1 KiB
C++

#ifndef RAGNAROK_SOURCE_CONTENTS_MCSTOREINFOBACKUP_H
#define RAGNAROK_SOURCE_CONTENTS_MCSTOREINFOBACKUP_H
#include "Contents/ItemInfo.h"
#include "UI/WindowNotifications.h"
#include <vector>
class LuaScript;
class CAsyncWorkMgr;
struct AsyncDiagnostic;
namespace Json {
class Value;
}
struct MerchantShopRefresh;
struct StoreBackupContext {
WindowNotifications& ui;
MerchantShopRefresh* const& shop;
MerchantShopRefresh* const& otherShop;
const bool& languagePrefix;
const int& serviceType;
const std::uint16_t& language;
void RefreshShop();
};
class CMCStoreInfoBackup {
public:
CMCStoreInfoBackup();
virtual ~CMCStoreInfoBackup();
void Clear();
int Restore(unsigned char wholeItem, int maximum, std::list<ItemInfo>& inventory, std::list<ItemInfo>& storeItems);
std::string LoadUrl() const;
std::string SaveUrl() const;
void Reset(LuaScript& settings, LuaScript& tables, const char* host, const char* port, const char* overrideKey);
void CompleteLoad(
AsyncDiagnostic diagnostic,
std::uint32_t accountId,
std::uint32_t characterId,
std::string accountName,
std::string response,
StoreBackupContext& context
);
void CompleteSave(AsyncDiagnostic diagnostic, std::string response, StoreBackupContext& context);
void Load(
std::uint32_t accountId,
std::uint32_t characterId,
std::string accountName,
const char* token16,
int type,
CAsyncWorkMgr& workManager,
StoreBackupContext& context
);
void Save(
int type,
std::uint32_t accountId,
std::uint32_t characterId,
const char* accountName,
const char* token16,
const std::list<ItemInfo>& storeItems,
CAsyncWorkMgr& workManager,
StoreBackupContext& context
);
/* 0004 */ bool enabled;
/* 0005 */ bool loaded;
/* 0008 */ std::uint32_t pendingSaves;
/* 000C */ std::string saveUrl;
/* 0024 */ std::string loadUrl;
/* 003C */ std::string title;
/* 0054 */ int type;
/* 0058 */ std::vector<ItemInfo> items;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CMCStoreInfoBackup) == 100);
#endif
#endif