Пример #1
0
AssetError AssetManager::ReadAssetLibV20(MultiFileLib * mfl, Stream *ci_s, int lib_version)
{
    // number of clib parts
    mfl->num_data_files = ci_s->ReadInt32();
    // filenames for all clib parts
    for (int i = 0; i < mfl->num_data_files; i++)
    {
        fgetstring_limit(mfl->data_filenames[i], ci_s, 50);
    }
    // number of files in clib
    mfl->num_files = ci_s->ReadInt32();
    if (mfl->num_files > MAX_FILES)
    {
        return kAssetErrLibAssetCount; // too many files in clib, return error code
    }

    // read information on clib contents
    for (int i = 0; i < mfl->num_files; i++)
    {
        short nameLength;
        nameLength = ci_s->ReadInt16();
        nameLength /= 5;
        ci_s->Read(mfl->filenames[i], nameLength);
        // decrypt filenames
        DecryptText(mfl->filenames[i], strlen(mfl->filenames[i]));
    }
    ci_s->ReadArrayOfInt32(&mfl->offset[0], mfl->num_files);
    ci_s->ReadArrayOfInt32(&mfl->length[0], mfl->num_files);
    ci_s->ReadArrayOfInt8((int8_t*)&mfl->file_datafile[0], mfl->num_files);
    return kAssetNoError;
}
Пример #2
0
AssetError AssetManager::ReadAssetLibV10(MultiFileLib * mfl, Stream *ci_s, int lib_version)
{
    // number of clib parts
    mfl->num_data_files = ci_s->ReadInt32();
    // filenames for all clib parts; filename array is only 20 chars long in this format version
    for (int i = 0; i < mfl->num_data_files; i++)
      ci_s->ReadArray(&mfl->data_filenames[i][0], 20, 1);

    // number of files in clib
    mfl->num_files = ci_s->ReadInt32();
    if (mfl->num_files > MAX_FILES)
    {
        return kAssetErrLibAssetCount; // too many files in clib, return error code
    }

    // read information on clib contents

    // filename array is only 25 chars long in this format version
    for (int i = 0; i < mfl->num_files; i++)
      ci_s->ReadArray(&mfl->filenames[i][0], 25, 1);

    ci_s->ReadArrayOfInt32(&mfl->offset[0], mfl->num_files);
    ci_s->ReadArrayOfInt32(&mfl->length[0], mfl->num_files);
    ci_s->ReadArrayOfInt8((int8_t*)&mfl->file_datafile[0], mfl->num_files);

    if (lib_version >= 11)
    {
        // decrypt filenames
        for (int i = 0; i < mfl->num_files; i++)
        {
            DecryptText(mfl->filenames[i], strlen(mfl->filenames[i]));
        }
    }
    return kAssetNoError;
}
Пример #3
0
MFLUtil::MFLError MFLUtil::ReadV10(AssetLibInfo &lib, Stream *in, int lib_version)
{
    // number of clib parts
    size_t mf_count = in->ReadInt32();
    lib.LibFileNames.resize(mf_count);
    // filenames for all clib parts; filenames are only 20 chars long in this format version
    for (size_t i = 0; i < mf_count; ++i)
    {
        lib.LibFileNames[i].ReadCount(in, V10LibFileLen);
    }

    // number of files in clib
    size_t asset_count = in->ReadInt32();
    // read information on clib contents
    lib.AssetInfos.resize(asset_count);
    // filename array is only 25 chars long in this format version
    char fn_buf[V10AssetFileLen];
    for (size_t i = 0; i < asset_count; ++i)
    {
        in->Read(fn_buf, V10AssetFileLen);
        if (lib_version >= 11)
            DecryptText(fn_buf);
        lib.AssetInfos[i].FileName = fn_buf;
    }
    for (size_t i = 0; i < asset_count; ++i)
        lib.AssetInfos[i].Offset = in->ReadInt32();
    for (size_t i = 0; i < asset_count; ++i)
        lib.AssetInfos[i].Size = in->ReadInt32();
    for (size_t i = 0; i < asset_count; ++i)
        lib.AssetInfos[i].LibUid = in->ReadInt8();
    return kMFLNoError;
}
Пример #4
0
MFLUtil::MFLError MFLUtil::ReadV20(AssetLibInfo &lib, Stream *in)
{
    // number of clib parts
    size_t mf_count = in->ReadInt32();
    lib.LibFileNames.resize(mf_count);
    // filenames for all clib parts
    for (size_t i = 0; i < mf_count; ++i)
    {
        lib.LibFileNames[i].Read(in, MaxDataFileLen);
    }

    // number of files in clib
    size_t asset_count = in->ReadInt32();
    // read information on clib contents
    lib.AssetInfos.resize(asset_count);
    char fn_buf[MaxAssetFileLen];
    for (size_t i = 0; i < asset_count; ++i)
    {
        short len = in->ReadInt16();
        len /= 5; // CHECKME: why 5?
        in->Read(fn_buf, len);
        // decrypt filenames
        DecryptText(fn_buf);
        lib.AssetInfos[i].FileName = fn_buf;
    }
    for (size_t i = 0; i < asset_count; ++i)
        lib.AssetInfos[i].Offset = in->ReadInt32();
    for (size_t i = 0; i < asset_count; ++i)
        lib.AssetInfos[i].Size = in->ReadInt32();
    for (size_t i = 0; i < asset_count; ++i)
        lib.AssetInfos[i].LibUid = in->ReadInt8();
    return kMFLNoError;
}
Пример #5
0
//---------------------------------------------------------------------------
void __fastcall TFrmLogin::CarregaInfoUser()
{
	TZQuery *QyConsulta;
	String SenhaEmail;
	Variant Value;
try {
	QyConsulta = new TZQuery(Application);
	QyConsulta->Connection = AppConnection;
	QyConsulta->SQL->Add("SELECT nome, email, ies_administrador FROM tbl_usuario");
	QyConsulta->SQL->Add("WHERE usuario = '" + AppUser->Usuario + "';");
	QyConsulta->Open();
	AppParEmail->SMTPNomeExibicao = QyConsulta->FieldByName("nome")->AsString;
	AppParEmail->SMTPUsername = QyConsulta->FieldByName("email")->AsString;
	AppParEmail->SMTPConta = AppParEmail->SMTPUsername;
	Value = ValidacoesDB::GetParamValue(AppConnection,"CALL get_parametro_texto('epw_"+AppUser->Usuario+"');");
	SenhaEmail = VarToStr(Value);
	if (SenhaEmail.Length() > 0) {
		SenhaEmail = DecryptText(SenhaEmail.c_str());
		AppParEmail->SMTPPassword = SenhaEmail;
	} else {
		AppParEmail->SMTPPassword = "";
	}
   if (AppUser->Usuario == "administrador") {
      AppUser->IsAdm = true;
   } else {
      AppUser->IsAdm = (QyConsulta->FieldByName("ies_administrador")->AsString == "S");
   }
}
 __finally{delete(QyConsulta);}
}