WINTERMUTE: Remove SXStore, since it's only usefull on iOS.

This commit is contained in:
Einar Johan Trøan Sømåen 2012-07-17 22:56:08 +02:00
parent 0e9d92a7af
commit 10c4aa8cec
5 changed files with 2 additions and 718 deletions

View File

@ -58,7 +58,6 @@
#include "engines/wintermute/Base/scriptables/ScStack.h"
#include "engines/wintermute/Base/scriptables/ScScript.h"
#include "engines/wintermute/Base/scriptables/SXMath.h"
#include "engines/wintermute/Base/scriptables/SXStore.h"
#include "engines/wintermute/video/VidPlayer.h"
#include "engines/wintermute/video/VidTheoraPlayer.h"
#include "engines/wintermute/wintermute.h"
@ -271,7 +270,6 @@ CBGame::CBGame(): CBObject(this) {
_constrainedMemory = false;
#endif
_store = NULL;
}
@ -354,9 +352,6 @@ ERRORCODE CBGame::cleanup() {
_musicStartTime[i] = 0;
}
unregisterObject(_store);
_store = NULL;
unregisterObject(_fader);
_fader = NULL;
@ -470,11 +465,6 @@ ERRORCODE CBGame::initialize1() {
if (_fader == NULL)
break;
registerObject(_fader);
_store = new CSXStore(this);
if (_store == NULL)
break;
registerObject(_store);
loaded = true;
}
@ -482,7 +472,6 @@ ERRORCODE CBGame::initialize1() {
return STATUS_OK;
} else {
delete _mathClass;
delete _store;
delete _keyboardState;
delete _transMgr;
delete _debugMgr;
@ -2556,8 +2545,8 @@ CScValue *CBGame::scGetProperty(const char *name) {
// Store (RO)
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "Store") == 0) {
if (_store) _scValue->setNative(_store, true);
else _scValue->setNULL();
_scValue->setNULL();
error("Request for a SXStore-object, which is not supported by ScummVM");
return _scValue;
}
@ -2846,8 +2835,6 @@ ERRORCODE CBGame::unregisterObject(CBObject *object) {
// is it main object?
if (_mainObject == object) _mainObject = NULL;
if (_store) _store->OnObjectDestroyed(object);
// destroy object
for (int i = 0; i < _regObjects.getSize(); i++) {
if (_regObjects[i] == object) {
@ -3314,7 +3301,6 @@ ERRORCODE CBGame::initAfterLoad() {
CSysClassRegistry::getInstance()->enumInstances(afterLoadScript, "CScScript", NULL);
_scEngine->refreshScriptBreakpoints();
if (_store) _store->afterLoad();
return STATUS_OK;
}
@ -3663,11 +3649,6 @@ ERRORCODE CBGame::persist(CBPersistMgr *persistMgr) {
persistMgr->transfer(TMEMBER(_autoSaveSlot));
persistMgr->transfer(TMEMBER(_cursorHidden));
if (persistMgr->checkVersion(1, 0, 1))
persistMgr->transfer(TMEMBER(_store));
else
_store = NULL;
if (!persistMgr->_saving)
_quitting = false;

View File

@ -56,7 +56,6 @@ class CBRenderer;
class CBRegistry;
class CBSaveThumbHelper;
class CBSurfaceStorage;
class CSXStore;
class CSXMath;
class CBKeyboardState;
class CVidPlayer;
@ -179,7 +178,6 @@ public:
CBSoundMgr *_soundMgr;
CScEngine *_scEngine;
CSXMath *_mathClass;
CSXStore *_store;
CBSurfaceStorage *_surfaceStorage;
CBFontStorage *_fontStorage;
CBGame();

View File

@ -1,518 +0,0 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
/*
* This file is based on WME Lite.
* http://dead-code.org/redir.php?target=wmelite
* Copyright (c) 2011 Jan Nedoma
*/
#include "engines/wintermute/Base/BGame.h"
#include "engines/wintermute/Base/BRegistry.h"
#include "engines/wintermute/Base/scriptables/SXStore.h"
#include "engines/wintermute/Base/scriptables/ScValue.h"
#include "engines/wintermute/Base/scriptables/ScScript.h"
#include "engines/wintermute/Base/scriptables/ScStack.h"
#include "engines/wintermute/utils/StringUtil.h"
#ifdef __IPHONEOS__
# include "IOS_StoreKit_interface.h"
#endif
namespace WinterMute {
IMPLEMENT_PERSISTENT(CSXStore, false)
CBScriptable *makeSXStore(CBGame *inGame, CScStack *stack) {
return new CSXStore(inGame);
}
//////////////////////////////////////////////////////////////////////////
CSXStore::CSXStore(CBGame *inGame) : CBObject(inGame) {
#ifdef __IPHONEOS__
StoreKit_SetExternalData((void *)this);
#endif
_eventsEnabled = false;
_lastProductRequestOwner = NULL;
_lastPurchaseOwner = NULL;
_lastRestoreOwner = NULL;
}
//////////////////////////////////////////////////////////////////////////
CSXStore::~CSXStore() {
cleanup();
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::cleanup() {
setEventsEnabled(NULL, false);
for (int i = 0; i < _validProducts.getSize(); i++) {
delete _validProducts[i];
}
_validProducts.removeAll();
for (int i = 0; i < _transactions.getSize(); i++) {
delete _transactions[i];
}
_transactions.removeAll();
_lastProductRequestOwner = _lastPurchaseOwner = _lastRestoreOwner = NULL;
}
//////////////////////////////////////////////////////////////////////////
ERRORCODE CSXStore::scCallMethod(CScScript *script, CScStack *stack, CScStack *thisStack, const char *name) {
//////////////////////////////////////////////////////////////////////////
// EnableEvents
//////////////////////////////////////////////////////////////////////////
if (strcmp(name, "EnableEvents") == 0) {
stack->correctParams(0);
setEventsEnabled(script, true);
stack->pushBool(getEventsEnabled() == true);
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
// DisableEvents
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "DisableEvents") == 0) {
stack->correctParams(0);
setEventsEnabled(script, false);
stack->pushBool(getEventsEnabled() == false);
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
// ValidateProducts
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "ValidateProducts") == 0) {
stack->correctParams(1);
const char *prodIdList = stack->pop()->getString();
_lastProductRequestOwner = script->_owner;
validateProducts(prodIdList);
stack->pushNULL();
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
// GetValidProduct
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetValidProduct") == 0) {
stack->correctParams(1);
int index = stack->pop()->getInt();
if (index >= 0 && index < _validProducts.getSize()) {
CScValue *prod = stack->getPushValue();
if (prod) {
prod->setProperty("Id", _validProducts[index]->getId());
prod->setProperty("Name", _validProducts[index]->getName());
prod->setProperty("Description", _validProducts[index]->getDesc());
prod->setProperty("Price", _validProducts[index]->getPrice());
}
} else
stack->pushNULL();
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
// GetInvalidProduct
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetInvalidProduct") == 0) {
stack->correctParams(1);
int index = stack->pop()->getInt();
if (index >= 0 && (uint32)index < _invalidProducts.size())
stack->pushString(_invalidProducts[(uint32)index].c_str());
else
stack->pushNULL();
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
// GetTransaction
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "GetTransaction") == 0) {
stack->correctParams(1);
int index = stack->pop()->getInt();
if (index >= 0 && index < _transactions.getSize()) {
CScValue *trans = stack->getPushValue();
if (trans) {
trans->setProperty("Id", _transactions[index]->getId());
trans->setProperty("ProductId", _transactions[index]->getProductId());
trans->setProperty("State", _transactions[index]->getState());
}
} else
stack->pushNULL();
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
// Purchase
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "Purchase") == 0) {
stack->correctParams(1);
const char *prodId = stack->pop()->getString();
stack->pushBool(purchase(script, prodId));
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
// FinishTransaction
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "FinishTransaction") == 0) {
stack->correctParams(1);
const char *transId = stack->pop()->getString();
stack->pushBool(finishTransaction(script, transId));
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
// RestoreTransactions
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "RestoreTransactions") == 0) {
stack->correctParams(0);
restoreTransactions(script);
stack->pushNULL();
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
// UnlockProduct
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "UnlockProduct") == 0) {
stack->correctParams(1);
const char *prodId = stack->pop()->getString();
Game->_registry->writeBool("Purchases", prodId, true);
Game->_registry->saveValues();
stack->pushBool(true);
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
// IsProductUnlocked
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "IsProductUnlocked") == 0) {
stack->correctParams(1);
const char *prodId = stack->pop()->getString();
stack->pushBool(Game->_registry->readBool("Purchases", prodId, false));
return STATUS_OK;
}
else return STATUS_FAILED;
}
//////////////////////////////////////////////////////////////////////////
CScValue *CSXStore::scGetProperty(const char *name) {
_scValue->setNULL();
//////////////////////////////////////////////////////////////////////////
// Type
//////////////////////////////////////////////////////////////////////////
if (strcmp(name, "Type") == 0) {
_scValue->setString("store");
return _scValue;
}
//////////////////////////////////////////////////////////////////////////
// Available (RO)
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "Available") == 0) {
_scValue->setBool(isAvailable());
return _scValue;
}
//////////////////////////////////////////////////////////////////////////
// EventsEnabled (RO)
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "EventsEnabled") == 0) {
_scValue->setBool(getEventsEnabled());
return _scValue;
}
//////////////////////////////////////////////////////////////////////////
// NumValidProducts (RO)
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "NumValidProducts") == 0) {
_scValue->setInt(_validProducts.getSize());
return _scValue;
}
//////////////////////////////////////////////////////////////////////////
// NumInvalidProducts (RO)
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "NumInvalidProducts") == 0) {
_scValue->setInt((int)_invalidProducts.size());
return _scValue;
}
//////////////////////////////////////////////////////////////////////////
// NumTransactions (RO)
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "NumTransactions") == 0) {
_scValue->setInt(_transactions.getSize());
return _scValue;
}
else return _scValue;
}
//////////////////////////////////////////////////////////////////////////
ERRORCODE CSXStore::persist(CBPersistMgr *persistMgr) {
if (!persistMgr->_saving)
cleanup();
CBObject::persist(persistMgr);
persistMgr->transfer(TMEMBER(_eventsEnabled));
persistMgr->transfer(TMEMBER(_lastProductRequestOwner));
persistMgr->transfer(TMEMBER(_lastPurchaseOwner));
persistMgr->transfer(TMEMBER(_lastRestoreOwner));
persistMgr->transfer(TMEMBER(_invalidProducts));
// persist valid products
int numProducts;
if (persistMgr->_saving) {
numProducts = _validProducts.getSize();
persistMgr->transfer(TMEMBER(numProducts));
for (int i = 0; i < numProducts; i++) _validProducts[i]->persist(persistMgr);
} else {
numProducts = _validProducts.getSize();
persistMgr->transfer(TMEMBER(numProducts));
for (int i = 0; i < numProducts; i++) {
CBStoreProduct *prod = new CBStoreProduct;
prod->persist(persistMgr);
_validProducts.add(prod);
}
}
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::afterLoad() {
if (_eventsEnabled) {
setEventsEnabled(NULL, true);
}
#ifdef __IPHONEOS__
StoreKit_SetExternalData((void *)this);
#endif
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::OnObjectDestroyed(CBScriptHolder *obj) {
if (_lastProductRequestOwner == obj) _lastProductRequestOwner = NULL;
if (_lastPurchaseOwner == obj) _lastPurchaseOwner = NULL;
if (_lastRestoreOwner == obj) _lastRestoreOwner = NULL;
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::setEventsEnabled(CScScript *script, bool val) {
_eventsEnabled = val;
if (val) {
if (script) _lastPurchaseOwner = script->_owner;
#ifdef __IPHONEOS__
StoreKit_EnableEvents();
#endif
} else {
_lastPurchaseOwner = NULL;
#ifdef __IPHONEOS__
StoreKit_DisableEvents();
#endif
}
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::validateProducts(const char *prodIdList) {
#ifdef __IPHONEOS__
StoreKit_ValidateProducts(prodIdList);
#endif
}
//////////////////////////////////////////////////////////////////////////
bool CSXStore::isAvailable() {
#ifdef __IPHONEOS__
return StoreKit_IsStoreAvailable() > 0;
#else
return false;
#endif
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::receiveProductsStart() {
for (int i = 0; i < _validProducts.getSize(); i++) {
delete _validProducts[i];
}
_validProducts.removeAll();
_invalidProducts.clear();
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::receiveProductsEnd() {
if (_lastProductRequestOwner) _lastProductRequestOwner->applyEvent("ProductsValidated");
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::addValidProduct(const char *id, const char *name, const char *desc, const char *price) {
CBStoreProduct *prod = new CBStoreProduct(id, name, desc, price);
_validProducts.add(prod);
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::addInvalidProduct(const char *id) {
_invalidProducts.push_back(id);
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::receiveTransactionsStart() {
for (int i = 0; i < _transactions.getSize(); i++) {
delete _transactions[i];
}
_transactions.removeAll();
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::receiveTransactionsEnd() {
if (_lastPurchaseOwner)
_lastPurchaseOwner->applyEvent("TransactionsUpdated");
else
Game->applyEvent("TransactionsUpdated");
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::addTransaction(const char *id, const char *productId, const char *state) {
CBStoreTransaction *trans = new CBStoreTransaction(id, productId, state);
_transactions.add(trans);
}
//////////////////////////////////////////////////////////////////////////
bool CSXStore::purchase(CScScript *script, const char *productId) {
if (!productId) return false;
#ifdef __IPHONEOS__
for (int i = 0; i < _validProducts.getSize(); i++) {
if (strcmp(productId, _validProducts[i]->GetId()) == 0) {
_lastPurchaseOwner = script->_owner;
StoreKit_Purchase(productId);
return true;
}
}
#endif
script->runtimeError("Store.Purchase() - '%s' is not a valid product id", productId);
return false;
}
//////////////////////////////////////////////////////////////////////////
bool CSXStore::finishTransaction(CScScript *script, const char *transId) {
if (!transId) return false;
#ifdef __IPHONEOS__
for (int i = 0; i < _transactions.getSize(); i++) {
if (strcmp(transId, _transactions[i]->GetId()) == 0) {
if (StoreKit_FinishTransaction(transId) > 0) {
SAFE_DELETE(_transactions[i]);
_transactions.removeAt(i);
return true;
} else return false;
}
}
#endif
script->runtimeError("Store.FinishTransaction() - '%s' is not a valid transaction id", transId);
return false;
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::restoreTransactions(CScScript *script) {
_lastRestoreOwner = script->_owner;
#ifdef __IPHONEOS__
StoreKit_RestoreTransactions();
#endif
}
//////////////////////////////////////////////////////////////////////////
void CSXStore::onRestoreFinished(bool error) {
if (_lastRestoreOwner) {
if (error) _lastRestoreOwner->applyEvent("TransactionsRestoreFailed");
else _lastRestoreOwner->applyEvent("TransactionsRestoreFinished");
}
}
#ifdef __IPHONEOS__
//////////////////////////////////////////////////////////////////////////
// StoreKit callbacks (called from ObjC)
//////////////////////////////////////////////////////////////////////////
void StoreKit_AddValidProductCallback(const char *id, const char *name, const char *desc, const char *price, void *data) {
CSXStore *store = static_cast<CSXStore *>(data);
if (store) store->AddValidProduct(id, name, desc, price);
}
//////////////////////////////////////////////////////////////////////////
void StoreKit_AddInvalidProductCallback(const char *id, void *data) {
CSXStore *store = static_cast<CSXStore *>(data);
if (store) store->AddInvalidProduct(id);
}
//////////////////////////////////////////////////////////////////////////
void StoreKit_ReceiveProductsStartCallback(void *data) {
CSXStore *store = static_cast<CSXStore *>(data);
if (store) store->ReceiveProductsStart();
}
//////////////////////////////////////////////////////////////////////////
void StoreKit_ReceiveProductsEndCallback(void *data) {
CSXStore *store = static_cast<CSXStore *>(data);
if (store) store->ReceiveProductsEnd();
}
//////////////////////////////////////////////////////////////////////////
void StoreKit_AddTransactionCallback(const char *id, const char *productId, const char *state, void *data) {
CSXStore *store = static_cast<CSXStore *>(data);
if (store) store->AddTransaction(id, productId, state);
}
//////////////////////////////////////////////////////////////////////////
void StoreKit_ReceiveTransactionsStartCallback(void *data) {
CSXStore *store = static_cast<CSXStore *>(data);
if (store) store->ReceiveTransactionsStart();
}
//////////////////////////////////////////////////////////////////////////
void StoreKit_ReceiveTransactionsEndCallback(void *data) {
CSXStore *store = static_cast<CSXStore *>(data);
if (store) store->ReceiveTransactionsEnd();
}
//////////////////////////////////////////////////////////////////////////
void StoreKit_RestoreFinishedCallback(void *data, int error) {
CSXStore *store = static_cast<CSXStore *>(data);
if (store) store->OnRestoreFinished(error > 0);
}
#endif // __IPHONEOS__
} // end of namespace WinterMute

View File

@ -1,175 +0,0 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
/*
* This file is based on WME Lite.
* http://dead-code.org/redir.php?target=wmelite
* Copyright (c) 2011 Jan Nedoma
*/
#ifndef WINTERMUTE_SXSTORE_H
#define WINTERMUTE_SXSTORE_H
#include "engines/wintermute/Base/BPersistMgr.h"
#include "engines/wintermute/utils/utils.h"
#include "engines/wintermute/Base/BObject.h"
namespace WinterMute {
class CSXStore : public CBObject {
public:
//////////////////////////////////////////////////////////////////////////
class CBStoreProduct {
public:
CBStoreProduct() {
_id = _name = _desc = _price = NULL;
}
CBStoreProduct(const char *id, const char *name, const char *desc, const char *price) {
_id = _name = _desc = _price = NULL;
CBUtils::setString(&_id, id);
CBUtils::setString(&_name, name);
CBUtils::setString(&_desc, desc);
CBUtils::setString(&_price, price);
}
~CBStoreProduct() {
delete [] _id;
delete [] _name;
delete [] _desc;
delete [] _price;
}
ERRORCODE persist(CBPersistMgr *persistMgr) {
persistMgr->transfer(TMEMBER(_id));
persistMgr->transfer(TMEMBER(_name));
persistMgr->transfer(TMEMBER(_desc));
persistMgr->transfer(TMEMBER(_price));
return STATUS_OK;
}
const char *getId() {
return _id;
}
const char *getName() {
return _name;
}
const char *getDesc() {
return _desc;
}
const char *getPrice() {
return _price;
}
private:
char *_id;
char *_name;
char *_desc;
char *_price;
};
//////////////////////////////////////////////////////////////////////////
class CBStoreTransaction {
public:
CBStoreTransaction() {
_id = _productId = _state = NULL;
}
CBStoreTransaction(const char *id, const char *productId, const char *state) {
_id = _productId = _state = NULL;
CBUtils::setString(&_id, id);
CBUtils::setString(&_productId, productId);
CBUtils::setString(&_state, state);
}
~CBStoreTransaction() {
delete [] _id;
delete [] _productId;
delete [] _state;
}
const char *getId() {
return _id;
}
const char *getProductId() {
return _productId;
}
const char *getState() {
return _state;
}
private:
char *_id;
char *_productId;
char *_state;
};
DECLARE_PERSISTENT(CSXStore, CBObject)
CSXStore(CBGame *inGame);
virtual ~CSXStore();
virtual CScValue *scGetProperty(const char *name);
virtual ERRORCODE scCallMethod(CScScript *script, CScStack *stack, CScStack *thisStack, const char *name);
void afterLoad();
void OnObjectDestroyed(CBScriptHolder *obj);
bool isAvailable();
void setEventsEnabled(CScScript *script, bool val);
bool getEventsEnabled() const {
return _eventsEnabled;
}
void validateProducts(const char *prodIdList);
void receiveTransactionsStart();
void receiveTransactionsEnd();
void addTransaction(const char *id, const char *productId, const char *state);
void receiveProductsStart();
void receiveProductsEnd();
void addValidProduct(const char *id, const char *name, const char *desc, const char *price);
void addInvalidProduct(const char *id);
void onRestoreFinished(bool error);
private:
void cleanup();
bool purchase(CScScript *script, const char *productId);
bool finishTransaction(CScScript *script, const char *transId);
void restoreTransactions(CScScript *script);
bool _eventsEnabled;
CBArray<CBStoreProduct *, CBStoreProduct *> _validProducts;
AnsiStringArray _invalidProducts;
CBScriptHolder *_lastProductRequestOwner;
CBScriptHolder *_lastPurchaseOwner;
CBScriptHolder *_lastRestoreOwner;
CBArray<CBStoreTransaction *, CBStoreTransaction *> _transactions;
};
} // end of namespace WinterMute
#endif

View File

@ -78,7 +78,6 @@
#include "engines/wintermute/Base/scriptables/SXMath.h"
#include "engines/wintermute/Base/scriptables/SXMemBuffer.h"
#include "engines/wintermute/Base/scriptables/SxObject.h"
#include "engines/wintermute/Base/scriptables/SXStore.h"
#include "engines/wintermute/Base/scriptables/SXString.h"
#include "engines/wintermute/UI/UIButton.h"
#include "engines/wintermute/UI/UIEdit.h"
@ -152,7 +151,6 @@ void CSysClassRegistry::registerClasses() {
REGISTER_CLASS(CSXMath, true)
REGISTER_CLASS(CSXMemBuffer, false)
REGISTER_CLASS(CSXObject, false)
REGISTER_CLASS(CSXStore, false)
REGISTER_CLASS(CSXString, false)
REGISTER_CLASS(CUIButton, false)