void TColumnDataElement::storeColumn(TXsheet *xsh, int index, int fxFlags) { if (index < 0) return; bool doClone = (fxFlags & eDoClone); bool resetFxDagPositions = (fxFlags & eResetFxDagPositions); // Fetch the specified column (if none, return) TStageObject *obj = xsh->getStageObject(TStageObjectId::ColumnId(index)); assert(obj); TXshColumn *column = xsh->getColumn(index); if (!column) return; TFx *fx = column->getFx(); TPointD dagPos; if (fx) dagPos = fx->getAttributes()->getDagNodePos(); if (doClone) column = column->clone(); // Zerary fxs clone the associated fx (drawn levels do not) if (fx && !resetFxDagPositions) column->getFx()->getAttributes()->setDagNodePos(dagPos); m_column = column; storeObject(obj->getId(), xsh); }
//============================================================================= // METHOD : SPELLwsStorage::storeObjectOrNone //============================================================================= void SPELLwsStorage::storeObjectOrNone( PyObject* object ) { if (!m_file.is_open()) return; if (m_mode == MODE_READ) { THROW_EXCEPTION("Unable to store object", "Initialized in read mode", SPELL_ERROR_WSTART); } if (object == NULL) { // Marshal None to the file storeObject(Py_None); } else { storeObject(object); } }
static status storeChain(Chain ch, FileObj file) { Cell cell; TRY(storeSlotsObject(ch, file)); for_cell(cell, ch) { storeCharFile(file, cell == ch->current ? 'E' : 'e'); TRY( storeObject(cell->value, file) ); }
static status SaveRelationHyper(Hyper h, FileObj f) { if ( isSavedObject(h->from) && isSavedObject(h->to) ) { storeCharFile(f, 's'); return storeObject(h, f); } succeed; }
static status storeVector(Vector v, FileObj file) { int n; TRY(storeSlotsObject(v, file)); for(n = 0; n < valInt(v->size); n++) TRY(storeObject(v->elements[n], file)); succeed; }
//============================================================================= // METHOD : SPELLwsStorage::storeLong //============================================================================= void SPELLwsStorage::storeLong( long value ) { if (!m_file.is_open()) return; if (m_mode == MODE_READ) { THROW_EXCEPTION("Unable to store long value", "Initialized in read mode", SPELL_ERROR_WSTART); } PyObject* longObject = PyLong_FromLong(value); storeObject(longObject); Py_XDECREF(longObject); }
int PetControlDeviceImplementation::handleObjectMenuSelect(CreatureObject* player, byte selectedID) { //Logger::info("selected call"); Reference<TangibleObject*> strongRef = controlledObject.get(); if (strongRef == NULL) return 1; AiAgent* pet = cast<AiAgent*>(strongRef.get()); Reference<PlayerObject*> ghost = player->getPlayerObject(); if (selectedID == 44) { if (pet == NULL) { error("null controlled object in pet control device"); return 1; } else { Locker crossLocker(pet, player); callObject(player); } } else if (selectedID == 59) { if (pet == NULL) { error("null controlled object in pet control device"); return 1; } else { if (status == 1 && !ghost->hasActivePet(pet)) { Locker crossLocker(pet, player); callObject(player); } else { Locker crossLocker(pet, player); storeObject(player); } } } return 0; }