コード例 #1
0
void CompressGob::execute() {
	Common::File stk;
	Common::File gobConf;
	uint16 chunkCount;


	Common::Filename inpath(_inputPaths[0].path);

	// We output with .stk extension, if there is no specific out file
	if (_outputPath.empty()) {
		_outputPath = inpath;
	}
	// Open input (config) file
	gobConf.open(inpath, "r");
	// Read the input into memory
	_chunks = readChunkConf(gobConf, inpath, chunkCount);
	gobConf.close();

	_outputPath.setFullName(inpath.getFullName());

	stk.open(_outputPath, "wb");

	// Output in compressed format
	writeEmptyHeader (stk, chunkCount);
	writeBody(&inpath, stk, _chunks);
	rewriteHeader(stk, chunkCount, _chunks);
}
コード例 #2
0
int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QMainWindow::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: eventChanged((*reinterpret_cast< AGSEventType(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 1: newFile(); break;
        case 2: openFile(); break;
        case 3: closeFile(); break;
        case 4: exportFile(); break;
        case 5: importToDatabase(); break;
        case 6: loadFile((*reinterpret_cast< QString(*)>(_a[1]))); break;
        case 7: openRecentFile(); break;
        case 8: showOptions(); break;
        case 9: updateTime(); break;
        case 10: lookupAGS_ID(); break;
        case 11: lookupPCC_ID(); break;
        case 12: lookupPCC_ID((*reinterpret_cast< QString(*)>(_a[1]))); break;
        case 13: setEventTypeID((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 14: setEvent((*reinterpret_cast< AGSEventType(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 15: setLogoutTime(); break;
        case 16: setLogoutTime((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 17: setTShirtCalc((*reinterpret_cast< double(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
        case 18: setTimer((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break;
        case 19: setTimer((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 20: boo(); break;
        case 21: showError((*reinterpret_cast< QString(*)>(_a[1]))); break;
        case 22: login(); break;
        case 23: logout(); break;
        case 24: about(); break;
        case 25: tutorial(); break;
        case 26: reportABug(); break;
        case 27: testConnection(); break;
        case 28: { QString _r = generateHeader();
            if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = _r; }  break;
        case 29: rewriteHeader(); break;
        default: ;
        }
        _id -= 30;
    }
    return _id;
}
コード例 #3
0
ファイル: main.cpp プロジェクト: crabminister/Coffee
void convert3ds(FILE *outputM2, Lib3dsFile *f)
{
	load3ds(f);
	createTextures();

	printf("Writing M2 File\n");
	initFile(outputM2,"TEMP");
	printf("Writing Model Data\n");
	writeModelData(outputM2, dVertices, nVertices, dTriangles, nTriangles, dSubmeshes, nSubmeshes, dTextureUnits, nTextureUnits);
	printf("Writing Material Data\n");
	writeMaterialData(outputM2, textureNames, dTextures, nTextures, nMaterials, colorData, colorTransData, transData, renderFlags);
	printf("Finalizing Model Data\n");
	rewriteHeader(outputM2);

	/*int i,j,k;
	char *inputData;
	unsigned int fileLength;
	fseek(inputM2,0,SEEK_END);
	fileLength=ftell(inputM2);
	inputData=new char[fileLength];
	fseek(inputM2,0,SEEK_SET);
	fread(inputData,fileLength,1,inputM2);
	fwrite(inputData,fileLength,1,outputM2);

	header=(ModelHeader *)inputData;
	views=(ModelView *)(inputData+header->ofsViews);
	oldSubmesh=(ModelGeoset *)(inputData+views->ofsSub);
	load3ds(f);


	header->ofsVertices=ftell(outputM2);
	header->nVertices=nVertices*4;
	fwrite(dVertices,sizeof(ModelVertex),nVertices,outputM2);
	fwrite(dVertices,sizeof(ModelVertex),nVertices,outputM2);
	fwrite(dVertices,sizeof(ModelVertex),nVertices,outputM2);
	fwrite(dVertices,sizeof(ModelVertex),nVertices,outputM2);
	fillLine(outputM2);

	header->ofsTexLookup=ftell(outputM2);
	header->nTexLookup=textureNames.size();
	for(i=0;i<textureNames.size();i++)
		fwrite(&i,sizeof(uint16),1,outputM2);
	fillLine(outputM2);

	//Write out texture data
	createTextures();
	for(i=0;i<nTextures;i++)
	{
		dTextures[i].nameOfs=ftell(outputM2);
		fwrite(textureNames[i].c_str(),textureNames[i].length()+1,1,outputM2);
		fillLine(outputM2);
	}

	header->nTextures=nTextures;
	header->ofsTextures=ftell(outputM2);
	fwrite(dTextures,sizeof(ModelTextureDef),nTextures,outputM2);
	fillLine(outputM2);

	//Output Color data
	header->nColors=nMaterials;
	header->ofsColors=ftell(outputM2);
	
	AnimationBlock *colorBlocks;
	colorBlocks=new AnimationBlock[2*nMaterials];
	fwrite(colorBlocks,sizeof(AnimationBlock),2*nMaterials,outputM2);
	fillLine(outputM2);

	j=0;

	for(i=0;i<nMaterials;i++)
	{
		writeAnimationBlockData(&colorBlocks[i*2], outputM2, 0, 0, &j, 1, &colorData[3*i], 1, 3*sizeof(float));
		writeAnimationBlockData(&colorBlocks[i*2+1], outputM2, 0, 0, &j, 1, &colorTransData[i], 1, sizeof(short));
	}
	fseek(outputM2,header->ofsColors,SEEK_SET);
	fwrite(colorBlocks,sizeof(AnimationBlock),2*nMaterials,outputM2);
	delete colorBlocks;
	fseek(outputM2,0,SEEK_END);

	//Output Transparency
	AnimationBlock *transBlocks;

	header->nTransparency=nMaterials;
	header->ofsTransparency=ftell(outputM2);
	
	transBlocks=new AnimationBlock[nMaterials];
	fwrite(transBlocks,sizeof(AnimationBlock),nMaterials,outputM2);
	fillLine(outputM2);

	for(i=0;i<nMaterials;i++)
		writeAnimationBlockData(&transBlocks[i], outputM2, 0, 0, &j, 1, &transData[i], 1, sizeof(short));
	
	fseek(outputM2,header->ofsTransparency,SEEK_SET);
	fwrite(transBlocks,sizeof(AnimationBlock),nMaterials,outputM2);
	delete transBlocks;
	fseek(outputM2,0,SEEK_END);

	header->nTransparencyLookup=nMaterials;
	header->ofsTransparencyLookup=ftell(outputM2);
	for(i=0;i<textureNames.size();i++)
		fwrite(&i,sizeof(uint16),1,outputM2);
	fillLine(outputM2);

	//Output Render Flags
	header->nTexFlags=nMaterials;
	header->ofsTexFlags=ftell(outputM2);

	fwrite(renderFlags,sizeof(uint32),nMaterials,outputM2);
	fillLine(outputM2);
	
	//Redo View Data
	for(i=0;i<header->nViews;i++)
	{
		views[i].ofsIndex=ftell(outputM2);
		views[i].nIndex=nVertices;
		for(j=0;j<nVertices;j++)
		{
			k=j+i*nVertices;
			fwrite(&k,sizeof(uint16),1,outputM2);
		}
		fillLine(outputM2);

		views[i].ofsTris=ftell(outputM2);
		views[i].nTris=nTriangles*3;
		fwrite(dTriangles,sizeof(uint16)*3,nTriangles,outputM2);
		fillLine(outputM2);

		views[i].ofsProps=ftell(outputM2);
		views[i].nProps=nVertices;
		k=0;
		for(j=0;j<nVertices;j++)
			fwrite(&k,sizeof(int),1,outputM2);
		fillLine(outputM2);

		views[i].ofsSub=ftell(outputM2);
		views[i].nSub=nSubmeshes;
		fwrite(dSubmeshes,sizeof(ModelGeoset),nSubmeshes,outputM2);
		fillLine(outputM2);

		views[i].ofsTex=ftell(outputM2);
		views[i].nTex=nTextureUnits;
		fwrite(dTextureUnits,sizeof(ModelTexUnit),nTextureUnits,outputM2);
		fillLine(outputM2);
	}



	fseek(outputM2,0,SEEK_SET);
	fwrite(header,sizeof(ModelHeader),1,outputM2);
	fseek(outputM2,header->ofsViews,SEEK_SET);
	fwrite(views,sizeof(ModelView),header->nViews,outputM2);*/
}