rodecomp/Source/Client/Stove/StoveMgr.h
ragnarok-clanker e1c7681499 Decompile 7 functions in Source/Client/Mode/GameModeNotices.cpp, Source/Client/Mode/CGameMode.h, ...
Batch #8545 by sherollyner: 0 byte-identical, 7 confirmed by peer review.

- fn_22116 CGameMode::ReceiveStatusChangeList: logic confirmed by peer review
- fn_22139 CGameMode::ReceiveStatusChangeExtended: logic confirmed by peer review
- fn_22137 CGameMode::ReceiveWindow227Entries: logic confirmed by peer review
- fn_22126 CGameMode::ReceiveItemDropEntry: logic confirmed by peer review
- fn_21837 CGameMode::ReceiveSpriteChange: logic confirmed by peer review
- fn_21836 CGameMode::ReceiveSpriteChange2: logic confirmed by peer review
- fn_21613 CGameMode::ReceiveMapProperty: logic confirmed by peer review

Peer-reviewed-by: Lumen, SapitoSucio, dori
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-10-31 18:46:12 +00:00

54 lines
1.5 KiB
C++

#ifndef RAGNAROK_SOURCE_CLIENT_STOVE_STOVEMGR_H
#define RAGNAROK_SOURCE_CLIENT_STOVE_STOVEMGR_H
#include <cstddef>
#include <string>
#include <vector>
struct ITEM_INFO;
namespace Stove::PCSDK {
struct CallbackResult;
}
class CStoveMgr {
public:
CStoveMgr();
/* 0000 */ void* vtable;
/* 0004 */ bool m_initialized;
/* 0008 */ int unknown_0008;
/* 000C */ int m_environment;
/* 0010 */ int unknown_0010;
/* 0014 */ int unknown_0014;
/* 0018 */ std::string unknown_0018;
/* 0030 */ char m_accessToken[600];
/* 0288 */ char m_memberNumber[24];
/* 02A0 */ char m_gameUserId[24];
/* 02B8 */ std::wstring unknown_02B8;
const char* GetAccessToken();
void FetchUser();
void WaitForCallback();
void FetchCategoryProducts();
void FetchAllProducts();
void OnInitializeCallback(Stove::PCSDK::CallbackResult callbackResult);
void OnOpenUrlCallback(Stove::PCSDK::CallbackResult callbackResult, int unused, const wchar_t* url);
bool Initialize();
void StartPurchase(const std::vector<ITEM_INFO>& items);
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(offsetof(CStoveMgr, m_environment) == 0x000C);
static_assert(offsetof(CStoveMgr, unknown_0018) == 0x0018);
static_assert(offsetof(CStoveMgr, m_accessToken) == 0x0030);
static_assert(offsetof(CStoveMgr, m_memberNumber) == 0x0288);
static_assert(offsetof(CStoveMgr, m_gameUserId) == 0x02A0);
static_assert(offsetof(CStoveMgr, unknown_02B8) == 0x02B8);
#endif
extern CStoveMgr* g_stoveMgr;
void FetchStoveTermsAgreement();
#endif