1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
#include "../../../common/binary_writer.h" #include "../binary_writer_visitor.h" namespace whiteout { namespace m2 { using common::BinaryWriter; void BinaryWriterVisitor::visit(const SkinSection& section) { writer.write(section.skinSectionId); writer.write(section.level); writer.write(section.vertexStart); writer.write(section.vertexCount); writer.write(section.indexStart); writer.write(section.indexCount); writer.write(section.boneCount); writer.write(section.boneComboIndex); writer.write(section.boneInfluences); writer.write(section.centerBoneIndex); writer.write(section.centerPosition); writer.write(section.sortCenterPosition); writer.write(section.sortRadius); } void BinaryWriterVisitor::visit(const Batch& batch) { writer.write(batch.flags); writer.write(batch.priorityPlane); writer.write(batch.shaderId); writer.write(batch.skinSectionIndex); writer.write(batch.geosetIndex); writer.write(batch.colorIndex); writer.write(batch.materialIndex); writer.write(batch.materialLayer); writer.write(batch.textureCount); writer.write(batch.textureComboIndex); writer.write(batch.textureCoordComboIndex); writer.write(batch.textureWeightComboIndex); writer.write(batch.textureTransformComboIndex); } void BinaryWriterVisitor::visit(const ShadowBatch& batch) { writer.write(batch.flags); writer.write(batch.flags2); writer.write(batch.unknown0); writer.write(batch.submeshId); writer.write(batch.textureId); writer.write(batch.colorId); writer.write(batch.transparencyId); } void BinaryWriterVisitor::visit(const SkinProfile& profile) { writer.write(SKIN_TAG); visit(profile.vertices); visit(profile.indices); visit(profile.bones); visit(profile.submeshes); visit(profile.batches); writer.write(profile.lodVertexBase); if (version >= M2_VERSION_CATA) { visit(profile.shadowBatches); writer.AlignTo(16); } } void BinaryWriterVisitor::visit(const SkinFile& file) { visit(file.profile); } } // namespace m2 } // namespace whiteout