FULLPIPE: CGameVar -> GameVar

This commit is contained in:
Eugene Sandulenko 2013-09-18 19:37:07 +04:00
parent 655054fb37
commit 918d2f175a
16 changed files with 83 additions and 83 deletions

View File

@ -48,17 +48,17 @@ void BehaviorManager::clear() {
_behaviors.clear();
}
void BehaviorManager::initBehavior(Scene *sc, CGameVar *var) {
void BehaviorManager::initBehavior(Scene *sc, GameVar *var) {
clear();
_scene = sc;
BehaviorInfo *behinfo;
CGameVar *behvar = var->getSubVarByName("BEHAVIOR");
GameVar *behvar = var->getSubVarByName("BEHAVIOR");
if (!behvar)
return;
for (CGameVar *subvar = behvar->_subVars; subvar; subvar = subvar->_nextVarObj) {
for (GameVar *subvar = behvar->_subVars; subvar; subvar = subvar->_nextVarObj) {
if (!strcmp(subvar->_varName, "AMBIENT")) {
behinfo = new BehaviorInfo;
behinfo->initAmbientBehavior(subvar, sc);
@ -191,7 +191,7 @@ void BehaviorInfo::clear() {
_bheItems.clear();
}
void BehaviorInfo::initAmbientBehavior(CGameVar *var, Scene *sc) {
void BehaviorInfo::initAmbientBehavior(GameVar *var, Scene *sc) {
debug(0, "BehaviorInfo::initAmbientBehavior(%s)", transCyrillic((byte *)var->_varName));
clear();
@ -215,7 +215,7 @@ void BehaviorInfo::initAmbientBehavior(CGameVar *var, Scene *sc) {
}
}
void BehaviorInfo::initObjectBehavior(CGameVar *var, Scene *sc, StaticANIObject *ani) {
void BehaviorInfo::initObjectBehavior(GameVar *var, Scene *sc, StaticANIObject *ani) {
debug(0, "BehaviorInfo::initObjectBehavior(%s)", transCyrillic((byte *)var->_varName));
clear();
@ -227,7 +227,7 @@ void BehaviorInfo::initObjectBehavior(CGameVar *var, Scene *sc, StaticANIObject
if (strcmp(var->_value.stringValue, "ROOT"))
break;
CGameVar *v1 = g_fullpipe->getGameLoaderGameVar()->getSubVarByName("BEHAVIOR")->getSubVarByName(ani->getName());
GameVar *v1 = g_fullpipe->getGameLoaderGameVar()->getSubVarByName("BEHAVIOR")->getSubVarByName(ani->getName());
if (v1 == var)
return;
@ -255,7 +255,7 @@ BehaviorEntry::BehaviorEntry() {
_items = 0;
}
BehaviorEntry::BehaviorEntry(CGameVar *var, Scene *sc, StaticANIObject *ani, int *minDelay) {
BehaviorEntry::BehaviorEntry(GameVar *var, Scene *sc, StaticANIObject *ani, int *minDelay) {
_staticsId = 0;
_itemsCount = 0;
@ -274,7 +274,7 @@ BehaviorEntry::BehaviorEntry(CGameVar *var, Scene *sc, StaticANIObject *ani, int
_items = (BehaviorEntryInfo**)calloc(_itemsCount, sizeof(BehaviorEntryInfo *));
for (int i = 0; i < _itemsCount; i++) {
CGameVar *subvar = var->getSubVarByIndex(i);
GameVar *subvar = var->getSubVarByIndex(i);
int delay;
_items[i] = new BehaviorEntryInfo(subvar, sc, &delay);
@ -289,14 +289,14 @@ BehaviorEntry::BehaviorEntry(CGameVar *var, Scene *sc, StaticANIObject *ani, int
}
}
BehaviorEntryInfo::BehaviorEntryInfo(CGameVar *subvar, Scene *sc, int *delay) {
BehaviorEntryInfo::BehaviorEntryInfo(GameVar *subvar, Scene *sc, int *delay) {
_messageQueue = 0;
_delay = 0;
_percent = 0;
_flags = 0;
_messageQueue = sc->getMessageQueueByName(subvar->_varName);
CGameVar *vart = subvar->getSubVarByName("dwDelay");
GameVar *vart = subvar->getSubVarByName("dwDelay");
if (vart)
_delay = vart->_value.intValue;

View File

@ -31,7 +31,7 @@ struct BehaviorEntryInfo {
uint32 _percent;
int _flags;
BehaviorEntryInfo(CGameVar *subvar, Scene *sc, int *delay);
BehaviorEntryInfo(GameVar *subvar, Scene *sc, int *delay);
};
struct BehaviorEntry {
@ -41,7 +41,7 @@ struct BehaviorEntry {
BehaviorEntryInfo **_items;
BehaviorEntry();
BehaviorEntry(CGameVar *var, Scene *sc, StaticANIObject *ani, int *minDelay);
BehaviorEntry(GameVar *var, Scene *sc, StaticANIObject *ani, int *minDelay);
};
struct BehaviorInfo {
@ -57,8 +57,8 @@ struct BehaviorInfo {
BehaviorInfo() { clear(); }
void clear();
void initAmbientBehavior(CGameVar *var, Scene *sc);
void initObjectBehavior(CGameVar *var, Scene *sc, StaticANIObject *ani);
void initAmbientBehavior(GameVar *var, Scene *sc);
void initObjectBehavior(GameVar *var, Scene *sc, StaticANIObject *ani);
};
class BehaviorManager : public CObject {
@ -72,7 +72,7 @@ class BehaviorManager : public CObject {
void clear();
void initBehavior(Scene *scene, CGameVar *var);
void initBehavior(Scene *scene, GameVar *var);
void updateBehaviors();
void updateBehavior(BehaviorInfo *behaviorInfo, BehaviorEntry *entry);

View File

@ -389,7 +389,7 @@ void FullpipeEngine::updateScreen() {
}
int FullpipeEngine::getObjectEnumState(const char *name, const char *state) {
CGameVar *var = _gameLoader->_gameVar->getSubVarByName("OBJSTATES");
GameVar *var = _gameLoader->_gameVar->getSubVarByName("OBJSTATES");
if (!var) {
var = _gameLoader->_gameVar->addSubVarAsInt("OBJSTATES", 0);
@ -406,7 +406,7 @@ int FullpipeEngine::getObjectEnumState(const char *name, const char *state) {
}
int FullpipeEngine::getObjectState(const char *objname) {
CGameVar *var = _gameLoader->_gameVar->getSubVarByName("OBJSTATES");
GameVar *var = _gameLoader->_gameVar->getSubVarByName("OBJSTATES");
if (var)
return var->getSubVarAsInt(objname);
@ -415,7 +415,7 @@ int FullpipeEngine::getObjectState(const char *objname) {
}
void FullpipeEngine::setObjectState(const char *name, int state) {
CGameVar *var = _gameLoader->_gameVar->getSubVarByName("OBJSTATES");
GameVar *var = _gameLoader->_gameVar->getSubVarByName("OBJSTATES");
if (!var) {
var = _gameLoader->_gameVar->addSubVarAsInt("OBJSTATES", 0);

View File

@ -46,7 +46,7 @@ enum FullpipeGameFeatures {
class BehaviorManager;
class BaseModalObject;
class CGameLoader;
class CGameVar;
class GameVar;
class InputController;
class Inventory2;
struct CursorInfo;
@ -102,7 +102,7 @@ public:
GameProject *_gameProject;
bool loadGam(const char *fname, int scene = 0);
CGameVar *getGameLoaderGameVar();
GameVar *getGameLoaderGameVar();
InputController *getGameLoaderInputController();
int _gameProjectVersion;
@ -218,7 +218,7 @@ public:
bool sceneSwitcher(EntranceInfo *entrance);
Scene *accessScene(int sceneId);
void setSceneMusicParameters(CGameVar *var);
void setSceneMusicParameters(GameVar *var);
NGIArchive *_currArchive;

View File

@ -124,7 +124,7 @@ bool CGameLoader::load(MfcArchive &file) {
_field_FA = file.readUint16LE();
_field_F8 = file.readUint16LE();
_gameVar = (CGameVar *)file.readClass();
_gameVar = (GameVar *)file.readClass();
return true;
}
@ -181,7 +181,7 @@ bool CGameLoader::gotoScene(int sceneId, int entranceId) {
return false;
}
CGameVar *sg = _gameVar->getSubVarByName("OBJSTATES")->getSubVarByName("SAVEGAME");
GameVar *sg = _gameVar->getSubVarByName("OBJSTATES")->getSubVarByName("SAVEGAME");
if (sg || (sg = _gameVar->getSubVarByName("OBJSTATES")->addSubVarAsInt("SAVEGAME", 0)) != 0)
sg->setSubVarAsInt("Entrance", entranceId);
@ -496,7 +496,7 @@ bool PreloadItems::load(MfcArchive &file) {
return true;
}
CGameVar *FullpipeEngine::getGameLoaderGameVar() {
GameVar *FullpipeEngine::getGameLoaderGameVar() {
if (_gameLoader)
return _gameLoader->_gameVar;
else

View File

@ -100,7 +100,7 @@ class CGameLoader : public CObject {
int16 _field_F8;
int16 _field_FA;
PreloadItems _preloadItems;
CGameVar *_gameVar;
GameVar *_gameVar;
char *_gameName;
ExCommand _exCommand;
int _updateCounter;

View File

@ -123,7 +123,7 @@ void FullpipeEngine::initObjectStates() {
}
void FullpipeEngine::setLevelStates() {
CGameVar *v = _gameLoader->_gameVar->getSubVarByName("OBJSTATES")->getSubVarByName(sO_LiftButtons);
GameVar *v = _gameLoader->_gameVar->getSubVarByName("OBJSTATES")->getSubVarByName(sO_LiftButtons);
if (v) {
v->setSubVarAsInt(sO_Level0, 2833);

View File

@ -69,27 +69,27 @@ union VarValue {
char *stringValue;
};
class CGameVar : public CObject {
class GameVar : public CObject {
public:
CGameVar *_nextVarObj;
CGameVar *_prevVarObj;
CGameVar *_parentVarObj;
CGameVar *_subVars;
CGameVar *_field_14;
GameVar *_nextVarObj;
GameVar *_prevVarObj;
GameVar *_parentVarObj;
GameVar *_subVars;
GameVar *_field_14;
char *_varName;
VarValue _value;
int _varType;
public:
CGameVar();
GameVar();
virtual bool load(MfcArchive &file);
CGameVar *getSubVarByName(const char *name);
GameVar *getSubVarByName(const char *name);
bool setSubVarAsInt(const char *name, int value);
int getSubVarAsInt(const char *name);
CGameVar *addSubVarAsInt(const char *name, int value);
bool addSubVar(CGameVar *subvar);
GameVar *addSubVarAsInt(const char *name, int value);
bool addSubVar(GameVar *subvar);
int getSubVarsCount();
CGameVar *getSubVarByIndex(int idx);
GameVar *getSubVarByIndex(int idx);
};
} // End of namespace Fullpipe

View File

@ -371,16 +371,16 @@ MessageQueue *Scene::getMessageQueueByName(char *name) {
return 0;
}
void Scene::preloadMovements(CGameVar *var) {
CGameVar *preload = var->getSubVarByName("PRELOAD");
void Scene::preloadMovements(GameVar *var) {
GameVar *preload = var->getSubVarByName("PRELOAD");
if (!preload)
return;
for (CGameVar *i = preload->_subVars; i; i = i->_nextVarObj) {
for (GameVar *i = preload->_subVars; i; i = i->_nextVarObj) {
StaticANIObject *ani = getStaticANIObject1ByName(i->_varName, -1);
if (ani) {
CGameVar *subVars = i->_subVars;
GameVar *subVars = i->_subVars;
if (subVars) {
for (;subVars; subVars = subVars->_nextVarObj) {
@ -397,7 +397,7 @@ void Scene::preloadMovements(CGameVar *var) {
}
void Scene::initObjectCursors(const char *varname) {
CGameVar *cursorsVar = g_fullpipe->getGameLoaderGameVar()->getSubVarByName(varname)->getSubVarByName("CURSORS");
GameVar *cursorsVar = g_fullpipe->getGameLoaderGameVar()->getSubVarByName(varname)->getSubVarByName("CURSORS");
if (!cursorsVar || !cursorsVar->_subVars)
return;
@ -405,7 +405,7 @@ void Scene::initObjectCursors(const char *varname) {
int maxId = 0;
int minId = 0xffff;
for (CGameVar *sub = cursorsVar->_subVars; sub; sub = sub->_nextVarObj) {
for (GameVar *sub = cursorsVar->_subVars; sub; sub = sub->_nextVarObj) {
GameObject *obj = getPictureObjectByName(sub->_varName, -1);
if (obj || (obj = getStaticANIObject1ByName(sub->_varName, -1)) != 0) {
@ -421,7 +421,7 @@ void Scene::initObjectCursors(const char *varname) {
g_fullpipe->_objectIdCursors.resize(maxId - minId + 1);
for (CGameVar *sub = cursorsVar->_subVars; sub; sub = sub->_nextVarObj) {
for (GameVar *sub = cursorsVar->_subVars; sub; sub = sub->_nextVarObj) {
GameObject *obj = getPictureObjectByName(sub->_varName, -1);
if (!obj)

View File

@ -69,7 +69,7 @@ class Scene : public Background {
PictureObject *getPictureObjectById(int objId, int flags);
PictureObject *getPictureObjectByName(const char *name, int keyCode);
void deletePictureObject(PictureObject *obj);
void preloadMovements(CGameVar *var);
void preloadMovements(GameVar *var);
StaticANIObject *getStaticANIObjectAtPos(int x, int y);
PictureObject *getPictureObjectAtPos(int x, int y);

View File

@ -75,7 +75,7 @@ Vars::Vars() {
}
bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
CGameVar *sceneVar;
GameVar *sceneVar;
Common::Point sceneDim;
Scene *scene = accessScene(entrance->_sceneId);
@ -657,7 +657,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
}
void setElevatorButton(const char *name, int state) {
CGameVar *var = g_fullpipe->getGameLoaderGameVar()->getSubVarByName("OBJSTATES")->getSubVarByName(sO_LiftButtons);
GameVar *var = g_fullpipe->getGameLoaderGameVar()->getSubVarByName("OBJSTATES")->getSubVarByName(sO_LiftButtons);
if (var)
var->setSubVarAsInt(name, state);
@ -1383,7 +1383,7 @@ int sceneIntro_updateCursor() {
}
void FullpipeEngine::setSwallowedEggsState() {
CGameVar *v = _gameLoader->_gameVar->getSubVarByName("OBJSTATES")->getSubVarByName(sO_GulpedEggs);
GameVar *v = _gameLoader->_gameVar->getSubVarByName("OBJSTATES")->getSubVarByName(sO_GulpedEggs);
g_vars->swallowedEgg1 = v->getSubVarByName(sO_Egg1);
g_vars->swallowedEgg2 = v->getSubVarByName(sO_Egg2);
@ -1416,7 +1416,7 @@ int sceneHandlerIntro(ExCommand *cmd) {
}
void scene01_fixEntrance() {
CGameVar *var = g_fullpipe->getGameLoaderGameVar()->getSubVarByName("OBJSTATES")->getSubVarByName("SAVEGAME");
GameVar *var = g_fullpipe->getGameLoaderGameVar()->getSubVarByName("OBJSTATES")->getSubVarByName("SAVEGAME");
if (var->getSubVarAsInt("Entrance") == TrubaLeft)
var->setSubVarAsInt("Entrance", TrubaRight);
}

View File

@ -31,9 +31,9 @@ class Vars {
public:
Vars();
CGameVar *swallowedEgg1;
CGameVar *swallowedEgg2;
CGameVar *swallowedEgg3;
GameVar *swallowedEgg1;
GameVar *swallowedEgg2;
GameVar *swallowedEgg3;
StaticANIObject *sceneIntro_aniin1man;
bool sceneIntro_needSleep;

View File

@ -111,7 +111,7 @@ void Sound::setPanAndVolumeByStaticAni() {
debug(3, "STUB Sound::setPanAndVolumeByStaticAni()");
}
void FullpipeEngine::setSceneMusicParameters(CGameVar *var) {
void FullpipeEngine::setSceneMusicParameters(GameVar *var) {
warning("STUB: FullpipeEngine::setSceneMusicParameters()");
}

View File

@ -145,7 +145,7 @@ GameProject::~GameProject() {
free(_headerFilename);
}
CGameVar::CGameVar() {
GameVar::GameVar() {
_subVars = 0;
_parentVarObj = 0;
_nextVarObj = 0;
@ -156,7 +156,7 @@ CGameVar::CGameVar() {
_varName = 0;
}
bool CGameVar::load(MfcArchive &file) {
bool GameVar::load(MfcArchive &file) {
_varName = file.readPascalString();
_varType = file.readUint32LE();
@ -184,18 +184,18 @@ bool CGameVar::load(MfcArchive &file) {
}
file.incLevel();
_parentVarObj = (CGameVar *)file.readClass();
_prevVarObj = (CGameVar *)file.readClass();
_nextVarObj = (CGameVar *)file.readClass();
_field_14 = (CGameVar *)file.readClass();
_subVars = (CGameVar *)file.readClass();
_parentVarObj = (GameVar *)file.readClass();
_prevVarObj = (GameVar *)file.readClass();
_nextVarObj = (GameVar *)file.readClass();
_field_14 = (GameVar *)file.readClass();
_subVars = (GameVar *)file.readClass();
file.decLevel();
return true;
}
CGameVar *CGameVar::getSubVarByName(const char *name) {
CGameVar *sv = 0;
GameVar *GameVar::getSubVarByName(const char *name) {
GameVar *sv = 0;
if (_subVars != 0) {
sv = _subVars;
@ -205,8 +205,8 @@ CGameVar *CGameVar::getSubVarByName(const char *name) {
return sv;
}
bool CGameVar::setSubVarAsInt(const char *name, int value) {
CGameVar *var = getSubVarByName(name);
bool GameVar::setSubVarAsInt(const char *name, int value) {
GameVar *var = getSubVarByName(name);
if (var) {
if (var->_varType == 0) {
@ -217,7 +217,7 @@ bool CGameVar::setSubVarAsInt(const char *name, int value) {
return false;
}
var = new CGameVar();
var = new GameVar();
var->_varType = 0;
var->_value.intValue = value;
var->_varName = (char *)calloc(strlen(name) + 1, 1);
@ -226,8 +226,8 @@ bool CGameVar::setSubVarAsInt(const char *name, int value) {
return addSubVar(var);
}
int CGameVar::getSubVarAsInt(const char *name) {
CGameVar *var = getSubVarByName(name);
int GameVar::getSubVarAsInt(const char *name) {
GameVar *var = getSubVarByName(name);
if (var)
return var->_value.intValue;
@ -235,11 +235,11 @@ int CGameVar::getSubVarAsInt(const char *name) {
return 0;
}
CGameVar *CGameVar::addSubVarAsInt(const char *name, int value) {
GameVar *GameVar::addSubVarAsInt(const char *name, int value) {
if (getSubVarByName(name)) {
return 0;
} else {
CGameVar *var = new CGameVar();
GameVar *var = new GameVar();
var->_varType = 0;
var->_value.intValue = value;
@ -251,11 +251,11 @@ CGameVar *CGameVar::addSubVarAsInt(const char *name, int value) {
}
}
bool CGameVar::addSubVar(CGameVar *subvar) {
CGameVar *var = _subVars;
bool GameVar::addSubVar(GameVar *subvar) {
GameVar *var = _subVars;
if (var) {
for (CGameVar *i = var->_nextVarObj; i; i = i->_nextVarObj)
for (GameVar *i = var->_nextVarObj; i; i = i->_nextVarObj)
var = i;
var->_nextVarObj = subvar;
@ -273,9 +273,9 @@ bool CGameVar::addSubVar(CGameVar *subvar) {
return false;
}
int CGameVar::getSubVarsCount() {
int GameVar::getSubVarsCount() {
int res;
CGameVar *sub = _subVars;
GameVar *sub = _subVars;
for (res = 0; sub; res++)
sub = sub->_nextVarObj;
@ -283,8 +283,8 @@ int CGameVar::getSubVarsCount() {
return res;
}
CGameVar *CGameVar::getSubVarByIndex(int idx) {
CGameVar *sub = _subVars;
GameVar *GameVar::getSubVarByIndex(int idx) {
GameVar *sub = _subVars;
while (idx--) {
sub = sub->_nextVarObj;

View File

@ -547,7 +547,7 @@ void StaticANIObject::draw2() {
}
MovTable *StaticANIObject::countMovements() {
CGameVar *preloadSubVar = g_fullpipe->getGameLoaderGameVar()->getSubVarByName(getName())->getSubVarByName("PRELOAD");
GameVar *preloadSubVar = g_fullpipe->getGameLoaderGameVar()->getSubVarByName(getName())->getSubVarByName("PRELOAD");
if (!preloadSubVar || preloadSubVar->getSubVarsCount() == 0)
return 0;
@ -561,7 +561,7 @@ MovTable *StaticANIObject::countMovements() {
GameObject *obj = (GameObject *)_movements[i];
movTable->movs[i] = 2;
for (CGameVar *sub = preloadSubVar->_subVars; sub; sub = sub->_nextVarObj) {
for (GameVar *sub = preloadSubVar->_subVars; sub; sub = sub->_nextVarObj) {
if (scumm_stricmp(obj->getName(), sub->_varName) == 0) {
movTable->movs[i] = 1;
break;
@ -573,7 +573,7 @@ MovTable *StaticANIObject::countMovements() {
}
void StaticANIObject::setSpeed(int speed) {
CGameVar *var = g_fullpipe->getGameLoaderGameVar()->getSubVarByName(getName())->getSubVarByName("SpeedUp");
GameVar *var = g_fullpipe->getGameLoaderGameVar()->getSubVarByName(getName())->getSubVarByName("SpeedUp");
if (!var)
return;

View File

@ -266,7 +266,7 @@ enum {
kMessageQueue,
kExCommand,
kObjstateCommand,
kCGameVar,
kGameVar,
kMctlCompound,
kMovGraph,
kMovGraphLink,
@ -283,7 +283,7 @@ const struct {
{ "MessageQueue", kMessageQueue },
{ "ExCommand", kExCommand },
{ "CObjstateCommand", kObjstateCommand },
{ "CGameVar", kCGameVar },
{ "CGameVar", kGameVar },
{ "CMctlCompound", kMctlCompound },
{ "CMovGraph", kMovGraph },
{ "CMovGraphLink", kMovGraphLink },
@ -314,8 +314,8 @@ static CObject *createObject(int objectId) {
return new ExCommand();
case kObjstateCommand:
return new ObjstateCommand();
case kCGameVar:
return new CGameVar();
case kGameVar:
return new GameVar();
case kMctlCompound:
return new MctlCompound();
case kMovGraph: