void XmlMapHandler::Save(std::ostream& file, const Map& map)
{
    wxXmlNode* root = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, "Map");

    const Tileset& tileset = map.GetTileset();
    const std::vector<AnimatedTile>& animated_tiles = tileset.GetAnimatedTiles();

    if (map.HasCollisionLayer())
        WriteCollision(root, map);
    for (const auto& tile : animated_tiles)
        WriteAnimation(root, map, tile);
    for (const auto& background : map.GetBackgrounds())
        WriteBackground(root, map, background);
    for (const auto& layer : map.GetLayers())
        WriteLayer(root, map, layer);
    WriteProperties(root, map);

    wxXmlDocument* doc = new wxXmlDocument();
    doc->SetRoot(root);

    wxOutputStream* fos = new wxFOutputStream(file);
    if (!doc->Save(*fos))
        throw "Failed to save XML file";
    delete fos;
}
Exemple #2
0
int CEQUFile::WriteEQUFile( char* filename, int* motidarray, int motnum, 
	CTreeHandler2* lpth, CShdHandler* lpsh, CMotHandler* lpmh )
{
	m_lpth = lpth;
	m_lpsh = lpsh;
	m_lpmh = lpmh;

	int ret;
	ret = MakeJointArray();
	if( ret ){
		DbgOut( "EQUFile : WriteEQUFile : MakeJointArray error !!!\n" );
		_ASSERT( 0 );
		return 1;
	}

	if( m_jointnum <= 0 ){
		_ASSERT( 0 );
		return 0;
	}

	m_hfile = CreateFile( (LPCTSTR)filename, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_ALWAYS,
		FILE_FLAG_SEQUENTIAL_SCAN, NULL );
	if( m_hfile == INVALID_HANDLE_VALUE ){
		DbgOut( "EQUFile : WriteEQUFile : file open error !!!\n" );
		_ASSERT( 0 );
		return 1;
	}

	m_mode = EQUFILE_WRITE;	

	ret = Write2File( 0, equheader );
	_ASSERT( !ret );
///////
	ret = Write2File( 1, "<AnimNum>%d</AnimNum>\r\n\r\n", motnum );
	_ASSERT( !ret );

	int motcnt;
	for( motcnt = 0; motcnt < motnum; motcnt++ ){
		int motid = *( motidarray + motcnt );
		if( (motid < 0) || (motid >= m_lpmh->m_kindnum) ){
			DbgOut( "EQUFile : WriteEQUFile : motid error !!!\n" );
			_ASSERT( 0 );
			return 1;
		}

		ret = WriteAnimation( motid );
		if( ret ){
			DbgOut( "EQUFile : WriteEQUFile : WriteAnimation error !!!\n" );
			_ASSERT( 0 );
			return 1;
		}
	}
///////

	ret = Write2File( 0, "</EQU>\r\n" );
	_ASSERT( !ret );

	return 0;
}
Exemple #3
0
// --[  Method  ]---------------------------------------------------------------
//
//  - Class     : CHelper
//  - prototype : bool WriteNodeData(COutput* pOutput) const
//
//  - Purpose   : Writes the helper data in a given destiny.
//
// -----------------------------------------------------------------------------
bool CHelper::WriteNodeData(COutput* pOutput) const
{
	assert(pOutput);
	assert(pOutput->Ready());

	unsigned uError = 0;

	if(!WriteAnimation(pOutput)) uError++;

	return uError == 0;
}
Exemple #4
0
    void DiMotionSerializerImpl::ExportMotion( const DiMotion* pMotion, DiDataStreamPtr stream )
    {
        mStream = stream;

        WriteFileHeader();

        if (pMotion->GetSkeleton())
        {
            WriteSkeleton(pMotion->GetSkeleton());
        }

        DiMotion::ConstAnimationListIterator i = pMotion->GetAnimations();
        while (i.HasMoreElements())
        {
            WriteAnimation(i.GetNext());
        }
    }
int CX24977Patcher::WritePreIDPatches(BIOS_Options *BIOSOptions)
{
	ShrinkKernel();
	WriteColors(BIOSOptions->XLipHighlightsColor, BIOSOptions->XLipColor, BIOSOptions->XWallColor, BIOSOptions->XGlowColor, BIOSOptions->XboxColor);
	WriteAnimation(BIOSOptions->Animation);
	WriteXLogo(BIOSOptions->XLogo);
	WriteSplashLogo(BIOSOptions->SplashLogo);
	WriteTradeMark(BIOSOptions->TrademarkSymbol);
	WriteBootFlags(BIOSOptions->BootFlags);
	WriteLBA48(BIOSOptions->LBA48, BIOSOptions->PartitionOpt, BIOSOptions->IgnoreHDTable);

	memcpy(mpKernelBuffer + mLedPatch->offset, mLedPatch->data, sizeof(mLedPatch->data));
	memcpy(mpKernelBuffer + mDashPatch->pHookOffset, mDashPatch->data, 22);

	strncpy((char *) (mpKernelBuffer + *mDefXBEOffset), "default.xbe", 0x11);

	return 1;
}