QTitleBar::QTitleBar(QWidget* w, QWidget* parent, const char* name) : QWidget( parent, name, WStyle_Customize | WStyle_NoBorder | WNoAutoErase ) { d = new QTitleBarPrivate(); #ifndef QT_NO_TOOLTIP d->toolTip = new QTitleBarTip( this ); #endif d->window = w; d->buttonDown = QStyle::SC_None; d->act = 0; if ( w ) { setWFlags( ((QTitleBar*)w)->getWFlags() | WNoAutoErase ); if ( w->minimumSize() == w->maximumSize() ) clearWFlags( WStyle_Maximize ); #ifndef QT_NO_WIDGET_TOPEXTRA setCaption( w->caption() ); #endif } else { setWFlags( WStyle_Customize | WNoAutoErase ); } readColors(); setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); setMouseTracking(TRUE); }
filesystem::InputStream &EditorState::readStream(filesystem::InputStream &stream) { reset(); for(unsigned int i = 0; i < data->modes.size(); ++i) { if(i >= 6) break; stream >> *data->modes[i]; } int version = 0; stream >> version; readColors(stream); if(version > 1) stream >> data->lightMode; data->updateHeightmap = true; data->updateTexturing = true; data->updateShadows = true; return stream; }
void Configuration::load() { readColors(); readBools(); readUints(); readFonts(); readShortcuts(); }
CModelFile* CModelReader::read() { atUint32 magic = base::readUint32(); if (magic != 0xDEADBABE) { Athena::io::MemoryWriter tmp; decompressFile(tmp, base::data(), base::length()); if (tmp.length() > 0x10) base::setData(tmp.data(), tmp.length()); magic = base::readUint32(); } if (magic != 0xDEADBABE /*&& magic != 0x9381000A*/) THROW_INVALID_DATA_EXCEPTION("Not a valid CMDL magic, expected 0xDEADBABE got 0x%.8X\n", magic); atUint32 version; if (magic != 0x9381000A) version = base::readUint32(); else version = CModelFile::DKCR; if (!(version >= CModelFile::MetroidPrime1 && version <= CModelFile::DKCR)) THROW_INVALID_DATA_EXCEPTION("Only Metroid Prime 1 to 3 models are supported got v%i\n", version); try { m_result = new CModelFile; m_result->m_version = (CModelFile::Version)version; m_result->m_flags = base::readUint32(); m_result->m_boundingBox.min.x = base::readFloat(); m_result->m_boundingBox.min.y = base::readFloat(); m_result->m_boundingBox.min.z = base::readFloat(); m_result->m_boundingBox.max.x = base::readFloat(); m_result->m_boundingBox.max.y = base::readFloat(); m_result->m_boundingBox.max.z = base::readFloat(); atUint32 sectionCount = base::readUint32(); atInt32 materialCount = base::readInt32(); m_sectionSizes.resize(sectionCount); if (m_result->m_flags & 0x10) { base::readUint32(); atUint32 visGroupCount = base::readUint32(); while((visGroupCount--) > 0) { atUint32 len = base::readUint32(); base::readString(len); } base::readUint32(); base::readUint32(); base::readUint32(); base::readUint32(); base::readUint32(); } m_result->m_materialSets.resize(materialCount); for (atUint32 i = 0; i < sectionCount; i++) m_sectionSizes[i] = base::readUint32(); base::seekAlign32(); const atUint32 sectionBias = ((m_result->m_version == CModelFile::DKCR || m_result->m_version == CModelFile::MetroidPrime3) ? 1 : materialCount); Athena::io::MemoryReader sectionReader(new atUint8[2], 2); sectionReader.setEndian(endian()); for (atUint32 i = 0; i < sectionCount; i++) { if (m_sectionSizes[i] == 0) continue; if (materialCount > 0) { if (m_result->m_version != CModelFile::DKCR && m_result->m_version != CModelFile::MetroidPrime3) { atUint8* data = base::readUBytes(m_sectionSizes[i]); CMaterialReader reader(data, m_sectionSizes[i]); CMaterialSet materialSet; switch(m_result->m_version) { case CModelFile::MetroidPrime1: materialSet = reader.read(CMaterial::MetroidPrime1); break; case CModelFile::MetroidPrime2: materialSet = reader.read(CMaterial::MetroidPrime2); break; default: break; } m_result->m_materialSets[i] = materialSet; materialCount--; continue; } else { atUint8* data = base::readUBytes(m_sectionSizes[i]); CMaterialReader reader(data, m_sectionSizes[i]); atUint32 setIdx = 0; while ((materialCount--) > 0) { CMaterialSet& materialSet = m_result->m_materialSets[setIdx]; switch(m_result->m_version) { case CModelFile::MetroidPrime3: materialSet = reader.read(CMaterial::MetroidPrime3); break; case CModelFile::DKCR: materialSet = reader.read(CMaterial::DKCR); default: break; } setIdx++; } continue; } } else { SectionType section = (SectionType)(i - sectionBias); atUint8* data = base::readUBytes(m_sectionSizes[i]); sectionReader.setData(data, m_sectionSizes[i]); switch(section) { case SectionType::Vertices: { if (m_result->m_flags & 0x20) readVertices(sectionReader, true); else readVertices(sectionReader); } break; case SectionType::Normals: readNormals(sectionReader); break; case SectionType::Colors: readColors(sectionReader); break; case SectionType::TexCoord0: readTexCoords(0, sectionReader); break; case SectionType::TexCoord1orMeshOffsets: { if (m_result->m_flags & EFormatFlags::TexCoord1 || m_result->m_version == CModelFile::DKCR) readTexCoords(1, sectionReader); else readMeshOffsets(sectionReader); break; } case SectionType::MeshInfo: { if (m_meshOffsets.size() == 0) { readMeshOffsets(sectionReader); break; } } default: if ((i - sectionBias) >= 5) readMesh(sectionReader); break; } } } } catch(...) { delete m_result; m_result = nullptr; throw; } return m_result; }