PyDict *Character::CharGetInfo() {
    //TODO: verify that we are a char?

    if( !LoadContents( m_factory ) ) {
        codelog(ITEM__ERROR, "%s (%u): Failed to load contents for CharGetInfo", m_itemName.c_str(), m_itemID);
        return NULL;
    }

    PyDict *result = new PyDict;
	Rsp_CommonGetInfo_Entry entry;

	if(!Populate(entry))
		return NULL;
	result->SetItem(new PyInt(m_itemID), new PyObject("util.KeyVal", entry.Encode()));

    //now encode skills...
    std::vector<InventoryItemRef> skills;
    //find all the skills contained within ourself.
    FindByFlag( flagSkill, skills );
    FindByFlag( flagSkillInTraining, skills );

    //encode an entry for each one.
    std::vector<InventoryItemRef>::iterator cur, end;
    cur = skills.begin();
    end = skills.end();
    for(; cur != end; cur++) {
        if(!(*cur)->Populate(entry)) {
            codelog(ITEM__ERROR, "%s (%u): Failed to load skill item %u for CharGetInfo", m_itemName.c_str(), itemID(), (*cur)->itemID());
        } else {
            result->SetItem(new PyInt((*cur)->itemID()), new PyObject("util.KeyVal", entry.Encode()));
        }
    }

    return result;
}
Exemple #2
0
// ---
STDMETHODIMP CCodeGen::ImplementationGenerate( DWORD clen, BYTE* cont, DWORD olen, BYTE* opt ) {
	int interfaces = 0;
	int selected = 0;
	int option_checked = 0;
	
	HRESULT hr = LoadContents( clen, cont );
	if ( FAILED(hr) )
		return hr;

	hr = LoadOptions( olen, opt );
	if ( FAILED(hr) )
		return hr;

	m_iface.GoFirst();
	while( m_iface ) {
		interfaces++;
		if ( m_iface.Selected() )
			selected++;
		if ( m_opt.some_option() )
			option_checked++;
		m_iface.GoNext();
	}

	m_iface = 0;
	return S_OK;
}
Exemple #3
0
bool Station::_Load()
{
	// load contents
	if( !LoadContents( m_factory ) )
		return false;

	return CelestialObject::_Load();
}
bool Character::_Load()
{
    if( !LoadContents( m_factory ) )
        return false;

    if( !m_factory.db().LoadSkillQueue( itemID(), m_skillQueue ) )
        return false;

    return Owner::_Load();
}
Exemple #5
0
CString AcuArchive::Reload(void)
{
    fReloadFlag = true;     // tell everybody that cached data is invalid

    DeleteEntries();
    if (LoadContents() != 0) {
        return L"Reload failed.";
    }
    
    return "";
}
bool Character::_Load()
{
    if( !LoadContents( m_factory ) )
        return false;

    if( !m_factory.db().LoadSkillQueue( itemID(), m_skillQueue ) )
        return false;

    // Calculate total SP trained and store in internal variable:
    _CalculateTotalSPTrained();

    return Owner::_Load();
}
bool BrushPanel::SelectBrush(const Brush* whatbrush)
{
	if(loaded) {
		//std::cout << loaded << std::endl;
		//std::cout << brushbox << std::endl;
		ASSERT(brushbox != nullptr);
		return brushbox->SelectBrush(whatbrush);
	}

	for(BrushVector::const_iterator iter = tileset->brushlist.begin(); iter != tileset->brushlist.end(); ++iter) {
		if(*iter == whatbrush) {
			LoadContents();
			return brushbox->SelectBrush(whatbrush);
		}
	}
	return false;
}
PyObject *Character::CharGetInfo() {
    //TODO: verify that we are a char?

    if( !LoadContents( m_factory ) ) {
        codelog(ITEM__ERROR, "%s (%u): Failed to load contents for CharGetInfo", m_itemName.c_str(), m_itemID);
        return NULL;
    }

    Rsp_CommonGetInfo result;
    Rsp_CommonGetInfo_Entry entry;

    //first encode self.
    if(!Populate(entry))
        return NULL;    //print already done.

    result.items[m_itemID] = entry.Encode();

    //now encode skills...
    std::vector<InventoryItemRef> skills;

	// Check that there are not expired boosters
	CheckBoosters();

    // find all the skills located at our character's brain( AKA locationID = characterID )
    FindByFlag( flagSkill, skills );
    FindByFlag( flagSkillInTraining, skills );
	FindByFlag( flagImplant, skills );
	FindByFlag( flagBooster, skills );

    //encode an entry for each one.
    std::vector<InventoryItemRef>::iterator cur, end;
    cur = skills.begin();
    end = skills.end();
    for(; cur != end; cur++) {
        if(!(*cur)->Populate(entry)) {
            codelog(ITEM__ERROR, "%s (%u): Failed to load skill item %u for CharGetInfo", m_itemName.c_str(), itemID(), (*cur)->itemID());
        } else {
            result.items[(*cur)->itemID()] = entry.Encode();
        }
    }

    return(result.Encode());
}
bool Character::_Load()
{
    if( !LoadContents( m_factory ) )
        return false;

    if( !m_factory.db().LoadSkillQueue( itemID(), m_skillQueue ) )
        return false;

	if( !m_factory.db().LoadCertificates( itemID(), m_certificates ) )
		return false;

	if( !m_factory.db().LoadImplantsAndBoosters( itemID(), m_implants, m_boosters ) )
		return false;

    // Calculate total SP trained and store in internal variable:
    _CalculateTotalSPTrained();

    return Owner::_Load();
}
Exemple #10
0
void Inventory::DeleteContents(ItemFactory &factory)
{
    LoadContents( factory );

    std::map<uint32, InventoryItemRef>::iterator cur, end;
    cur = mContents.begin();
    end = mContents.end();
    for(; cur != end; )
    {
        // Our "cur" iterator becomes invalid once RemoveItem
        // for its item is called, so we need to increment it
        // before calling Delete().
        InventoryItemRef i = cur->second;
        cur++;

        i->Delete();
    }

    mContents.clear();
}
Exemple #11
0
GenericArchive::OpenResult AcuArchive::Open(const WCHAR* filename,
    bool readOnly, CString* pErrMsg)
{
    CString errMsg;

    //fIsReadOnly = true;     // ignore "readOnly"

    errno = 0;
    fFp = _wfopen(filename, L"rb");
    if (fFp == NULL) {
        errMsg.Format(L"Unable to open %ls: %hs.", filename, strerror(errno));
        goto bail;
    }

    {
        CWaitCursor waitc;
        int result;

        result = LoadContents();
        if (result < 0) {
            errMsg.Format(L"The file is not an ACU archive.");
            goto bail;
        } else if (result > 0) {
            errMsg.Format(L"Failed while reading data from ACU archive.");
            goto bail;
        }
    }

    SetPathName(filename);

bail:
    *pErrMsg = errMsg;
    if (!errMsg.IsEmpty())
        return kResultFailure;
    else
        return kResultSuccess;
}
void BrushPanel::OnSwitchIn()
{
	LoadContents();
}