public override bool OnInitialize() { _userEntries = new UserDataCollection(); _version = CommonHeader->_version; SetSizeInternal(CommonHeader->_size); return(false); }
public override bool OnInitialize() { base.OnInitialize(); _version = Header->_version; if (_version == 4) { VIS0v4* header = Header4; _numFrames = header->_numFrames; _loop = header->_loop; if ((_name == null) && (header->_stringOffset != 0)) _name = header->ResourceString; if (Header4->_origPathOffset > 0) _originalPath = Header4->OrigPath; (_userEntries = new UserDataCollection()).Read(Header4->UserData); } else { VIS0v3* header = Header3; _numFrames = header->_numFrames; _loop = header->_loop; if ((_name == null) && (header->_stringOffset != 0)) _name = header->ResourceString; if (Header3->_origPathOffset > 0) _originalPath = Header3->OrigPath; } return Header3->Group->_numEntries > 0; }
public override bool OnInitialize() { base.OnInitialize(); _strings.Clear(); if (_version == 4) { SHP0v4 *header = Header4; if ((_name == null) && (header->_stringOffset != 0)) { _name = header->ResourceString; } _numFrames = header->_numFrames; _loop = header->_loop != 0; bint *stringOffset = header->StringEntries; for (int i = 0; i < header->_numEntries; i++) { _strings.Add(new String((sbyte *)stringOffset + stringOffset[i])); } if (header->_origPathOffset > 0) { _originalPath = header->OrigPath; } (_userEntries = new UserDataCollection()).Read(header->UserData); return(header->Group->_numEntries > 0); } else { SHP0v3 *header = Header3; if ((_name == null) && (header->_stringOffset != 0)) { _name = header->ResourceString; } _numFrames = header->_numFrames; _loop = header->_loop != 0; bint *stringOffset = header->StringEntries; for (int i = 0; i < header->_numEntries; i++) { _strings.Add(new String((sbyte *)stringOffset + stringOffset[i])); } if (header->_origPathOffset > 0) { _originalPath = header->OrigPath; } return(header->Group->_numEntries > 0); } }
public override bool OnInitialize() { base.OnInitialize(); if (_version == 5) { CHR0v5 *header = Header5; _numFrames = header->_numFrames; _loop = header->_loop != 0; if (_name == null) { if (header->ResourceString != null) { _name = header->ResourceString; } else { _name = "anim" + Index; } } if (header->_origPathOffset > 0) { _originalPath = header->OrigPath; } (_userEntries = new UserDataCollection()).Read(header->UserData); return(header->Group->_numEntries > 0); } else { CHR0v4_3 *header = Header4_3; _numFrames = header->_numFrames; _loop = header->_loop != 0; if (_name == null) { if (header->ResourceString != null) { _name = header->ResourceString; } else { _name = "anim" + Index; } } if (header->_origPathOffset > 0) { _originalPath = header->OrigPath; } return(header->Group->_numEntries > 0); } }
public override bool OnInitialize() { base.OnInitialize(); if (_version == 5) { SCN0v5 *header = Header5; if ((_name == null) && (header->_stringOffset != 0)) { _name = header->ResourceString; } _numFrames = header->_frameCount; _specLights = header->_specLightCount; _loop = header->_loop != 0; _lightsets = header->_lightSetCount; _amblights = header->_ambientCount; _lights = header->_lightCount; _fogs = header->_fogCount; _cameras = header->_cameraCount; if (header->_origPathOffset > 0) { _originalPath = header->OrigPath; } (_userEntries = new UserDataCollection()).Read(header->UserData); return(header->Group->_numEntries > 0); } else { SCN0v4 *header = Header4; if ((_name == null) && (header->_stringOffset != 0)) { _name = header->ResourceString; } _numFrames = header->_frameCount; _specLights = header->_specLightCount; _loop = header->_loop != 0; _lightsets = header->_lightSetCount; _amblights = header->_ambientCount; _lights = header->_lightCount; _fogs = header->_fogCount; _cameras = header->_cameraCount; if (header->_origPathOffset > 0) { _originalPath = header->OrigPath; } return(header->Group->_numEntries > 0); } }
public override bool OnInitialize() { base.OnInitialize(); //strings.Clear(); _version = Header->_version; if (_version == 5) { if ((_name == null) && (Header5->_stringOffset != 0)) { _name = Header5->ResourceString; } _origPathOffset = Header5->_origPathOffset; _frameCount = Header5->_frameCount; _specLights = Header5->_specLightCount; _loop = Header5->_loop; _lightset = Header5->_lightSetCount; _amblights = Header5->_ambientCount; _lights = Header5->_lightCount; _fog = Header5->_fogCount; _camera = Header5->_cameraCount; (_userEntries = new UserDataCollection()).Read(Header5->UserData); return(Header5->Group->_numEntries > 0); } else { if ((_name == null) && (Header4->_stringOffset != 0)) { _name = Header4->ResourceString; } _origPathOffset = Header4->_origPathOffset; _frameCount = Header4->_frameCount; _specLights = Header4->_specLightCount; _loop = Header4->_loop; _lightset = Header4->_lightSetCount; _amblights = Header4->_ambientCount; _lights = Header4->_lightCount; _fog = Header4->_fogCount; _camera = Header4->_cameraCount; return(Header4->Group->_numEntries > 0); } }
public override bool OnInitialize() { base.OnInitialize(); _headerLen = Header1->_headerLen; _sharesData = _headerLen > HeaderSize(); if (_sharesData) { SetSizeInternal(ExclusiveEntrySize()); } if (_version == 2) { if ((_name == null) && (Header2->_stringOffset != 0)) { _name = Header2->ResourceString; } _width = Header2->_width; _height = Header2->_height; _format = Header2->PixelFormat; _lod = Header2->_levelOfDetail; _hasPalette = Header2->HasPalette; } else { if ((_name == null) && (Header1->_stringOffset != 0)) { _name = Header1->ResourceString; } _width = Header1->_width; _height = Header1->_height; _format = Header1->PixelFormat; _lod = Header1->_levelOfDetail; _hasPalette = Header1->HasPalette; } if (_version == 3) { (_userEntries = new UserDataCollection()).Read(Header3->UserData); } return(false); }
public override bool OnInitialize() { base.OnInitialize(); _version = Header->_version; if (_version == 4) { _numFrames = Header4->_frames; _origPathOffset = Header4->_origPathOffset; _loop = Header4->_loop; if ((_name == null) && (Header4->_stringOffset != 0)) { _name = Header4->ResourceString; } if (Header4->_origPathOffset > 0) { _originalPath = Header4->OrigPath; } (_userEntries = new UserDataCollection()).Read(Header4->UserData); return(Header4->Group->_numEntries > 0); } else { _numFrames = Header3->_frames; _origPathOffset = Header3->_origPathOffset; _loop = Header3->_loop; if ((_name == null) && (Header3->_stringOffset != 0)) { _name = Header3->ResourceString; } if (Header3->_origPathOffset > 0) { _originalPath = Header3->OrigPath; } return(Header3->Group->_numEntries > 0); } }
public override bool OnInitialize() { base.OnInitialize(); if (_version == 4) { CLR0v4 *header = Header4; _numFrames = header->_frames; _loop = header->_loop != 0; if ((_name == null) && (header->_stringOffset != 0)) { _name = header->ResourceString; } if (header->_origPathOffset > 0) { _originalPath = header->OrigPath; } (_userEntries = new UserDataCollection()).Read(header->UserData); return(header->Group->_numEntries > 0); } else { CLR0v3 *header = Header3; _numFrames = header->_frames; _loop = header->_loop != 0; if ((_name == null) && (header->_stringOffset != 0)) { _name = header->ResourceString; } if (header->_origPathOffset > 0) { _originalPath = header->OrigPath; } return(header->Group->_numEntries > 0); } }
public override bool OnInitialize() { base.OnInitialize(); _palette = null; if ((_name == null) && (Header1->_stringOffset != 0)) { _name = Header1->ResourceString; } _format = Header1->PaletteFormat; if (_version == 3) { (_userEntries = new UserDataCollection()).Read(Header3->UserData); } return(false); }
public override bool OnInitialize() { base.OnInitialize(); startUpVersion = _version = Header->_version; if (_version == 5) { if ((_name == null) && (Header5->_stringOffset != 0)) { _name = Header5->ResourceString; } _loop = Header5->_loop; _numFrames = Header5->_numFrames; _matrixMode = Header5->_matrixMode; if (Header5->_origPathOffset > 0) { _originalPath = Header5->OrigPath; } (_userEntries = new UserDataCollection()).Read(Header5->UserData); } else { if ((_name == null) && (Header4->_stringOffset != 0)) { _name = Header4->ResourceString; } _loop = Header4->_loop; _numFrames = Header4->_numFrames; _matrixMode = Header5->_matrixMode; if (Header4->_origPathOffset > 0) { _originalPath = Header4->OrigPath; } } return(Header4->Group->_numEntries > 0); }
public override bool OnInitialize() { //Read common header base.OnInitialize(); if (_name == "<null>") { return(false); } //Read header data _flags1 = (SCN0CameraFlags)(ushort)Data->_flags1; _flags2 = Data->_flags2; _type = (SCN0CameraType)((ushort)_flags2 & 1); _projType = (ProjectionType)(int)Data->_projectionType; //Read user data (_userEntries = new UserDataCollection()).Read(Data->UserData); return(false); }
public override bool OnInitialize() { base.OnInitialize(); _flags1 = (SCN0CameraFlags)(ushort)Data->_flags1; _flags2 = Data->_flags2; _type = (SCN0CameraType)((ushort)_flags2 & 1); _projType = (ProjectionType)(int)Data->_projType; for (int x = 0; x < 15; x++) { SetKeys(x, new KeyframeArray(FrameCount + 1)); } bint *values = (bint *)&Data->_position; if (Name != "<null>") { for (int i = 0; i < 15; i++) { //if (((int)_flags1 & (int)Ordered[i]) == 0) // SCN0Node.strings[(int)((&values[i] - Parent.Parent.WorkingUncompressed.Address + values[i]))] = "Camera" + Index + " Keys " + Ordered[i].ToString(); DecodeFrames(GetKeys(i), &values[i], (int)_flags1, (int)Ordered[i]); } } _posX._linear = true; _posY._linear = true; _posZ._linear = true; _aimX._linear = true; _aimY._linear = true; _aimZ._linear = true; (_userEntries = new UserDataCollection()).Read(Data->UserData); return(false); }
public override bool OnInitialize() { base.OnInitialize(); if ((_name == null) && (Header1->_stringOffset != 0)) { _name = Header1->ResourceString; } _width = Header1->_width; _height = Header1->_height; _format = Header1->PixelFormat; _lod = Header1->_levelOfDetail; _hasPalette = Header1->HasPalette; _version = Header1->_header._version; if (_version == 3) { (_userEntries = new UserDataCollection()).Read(Header3->UserData); } return(false); }
//Initialize should only be called from parent group during parse. //Bones need not be imported/exported anyways public override bool OnInitialize() { MDL0Bone *header = Header; SetSizeInternal(header->_headerLen); //Conditional name assignment if (_name == null && header->_stringOffset != 0) { _name = header->ResourceString; } //Assign fields _boneFlags = (BoneFlags)(uint)header->_flags; _billboardFlags = (BillboardFlags)(uint)header->_bbFlags; _nodeIndex = header->_nodeId; _entryIndex = header->_index; _bbRefNode = !_replaced && _boneFlags.HasFlag(BoneFlags.HasBillboardParent) ? Model._linker.NodeCache[header->_bbNodeId] as MDL0BoneNode : null; if (_billboardFlags != BillboardFlags.Off) { Model._billboardBones.Add(this); //Update mesh in T-Pose } _bindState = _frameState = new FrameState(header->_scale, (Vector3)header->_rotation, header->_translation); _bindMatrix = _frameMatrix = header->_transform; _inverseBindMatrix = _inverseFrameMatrix = header->_transformInv; _extents = header->_extents; (_userEntries = new UserDataCollection()).Read(header->UserDataAddress); //We don't want to process children because not all have been parsed yet. //Child assignments will be handled by the parent group. return(false); }
public override bool OnInitialize() { base.OnInitialize(); _startUpVersion = _version = Header->_version; if (_version == 5) { CHR0v5* header = Header5; _numFrames = header->_numFrames; _loop = header->_loop; _dataoffset = header->_dataOffset; _stringoffset = header->_stringOffset; if (_name == null) if (Header5->ResourceString != null) _name = Header5->ResourceString; else _name = "anim" + Index; if (Header5->_origPathOffset > 0) _originalPath = Header5->OrigPath; (_userEntries = new UserDataCollection()).Read(Header5->UserData); return Header5->Group->_numEntries > 0; } else { CHR0v4_3* header = Header4_3; _numFrames = header->_numFrames; _loop = header->_loop; _dataoffset = header->_dataOffset; _stringoffset = header->_stringOffset; if (_name == null) if (Header4_3->ResourceString != null) _name = Header4_3->ResourceString; else _name = "anim" + Index; if (Header4_3->_origPathOffset > 0) _originalPath = Header4_3->OrigPath; return Header4_3->Group->_numEntries > 0; } }
//Initialize should only be called from parent group during parse. //Bones need not be imported/exported anyways public override bool OnInitialize() { MDL0Bone* header = Header; SetSizeInternal(header->_headerLen); //Assign true parent using parent header offset int offset = header->_parentOffset; //Offsets are always < 0, because parent entries are listed before children if (offset < 0) { //Get address of parent header MDL0Bone* pHeader = (MDL0Bone*)((byte*)header + offset); //Search bone list for matching header foreach (MDL0BoneNode bone in Parent._children) if (pHeader == bone.Header) { _parent = bone; break; } } //Conditional name assignment if ((_name == null) && (header->_stringOffset != 0)) _name = header->ResourceString; //Assign fields _flags1 = (BoneFlags)(uint)header->_flags; _flags2 = (BillboardFlags)(uint)header->_bbFlags; _bbNodeId = header->_bbNodeId; _nodeIndex = header->_nodeId; _boneIndex = header->_index; _headerLen = header->_headerLen; _mdl0Offset = header->_mdl0Offset; _stringOffset = header->_stringOffset; _parentOffset = header->_parentOffset; _firstChildOffset = header->_firstChildOffset; _nextOffset = header->_nextOffset; _prevOffset = header->_prevOffset; _userDataOffset = header->_userDataOffset; if (_flags2 != 0 && _flags1.HasFlag(BoneFlags.HasGeometry)) Model._billboardBones.Add(this); //Update mesh in T-Pose _bindState = _frameState = new FrameState(header->_scale, (Vector3)header->_rotation, header->_translation); _bindMatrix = _frameMatrix = header->_transform; _inverseBindMatrix = _inverseFrameMatrix = header->_transformInv; _bMin = header->_boxMin; _bMax = header->_boxMax; (_userEntries = new UserDataCollection()).Read(header->UserDataAddress); //We don't want to process children because not all have been parsed yet. //Child assigning will be handled by the parent group. return false; }
public override bool OnInitialize() { base.OnInitialize(); _billboardBones = new List<MDL0BoneNode>(); _errors = new List<string>(); _influences = new InfluenceManager(); MDL0Header* header = Header; if (_name == null && header->StringOffset != 0) _name = header->ResourceString; MDL0Props* props = header->Properties; _version = header->_header._version; _scalingRule = props->_scalingRule; _texMtxMode = props->_texMatrixMode; _numFacepoints = props->_numVertices; _numFaces = props->_numFaces; _origPathOffset = props->_origPathOffset; _numNodes = props->_numNodes; _needsNrmMtxArray = props->_needNrmMtxArray != 0; _needsTexMtxArray = props->_needTexMtxArray != 0; _min = props->_minExtents; _max = props->_maxExtents; _enableExtents = props->_enableExtents != 0; _envMtxMode = props->_envMtxMode; if (props->_origPathOffset > 0 && props->_origPathOffset < header->_header._size) _originalPath = props->OrigPath; (_userEntries = new UserDataCollection()).Read(header->UserData); return true; }
public UserDataCollectionPropertyDescriptor(UserDataCollection coll, int idx) : base("#" + idx.ToString(), null) { this.collection = coll; this.index = idx; }
public override bool OnInitialize() { base.OnInitialize(); startUpVersion = _version = Header->_version; if (_version == 5) { if ((_name == null) && (Header5->_stringOffset != 0)) _name = Header5->ResourceString; _loop = Header5->_loop; _numFrames = Header5->_numFrames; _matrixMode = Header5->_matrixMode; if (Header5->_origPathOffset > 0) _originalPath = Header5->OrigPath; (_userEntries = new UserDataCollection()).Read(Header5->UserData); } else { if ((_name == null) && (Header4->_stringOffset != 0)) _name = Header4->ResourceString; _loop = Header4->_loop; _numFrames = Header4->_numFrames; _matrixMode = Header5->_matrixMode; if (Header4->_origPathOffset > 0) _originalPath = Header4->OrigPath; } return Header4->Group->_numEntries > 0; }
public override bool OnInitialize() { MDL0Material* header = Header; _initVersion = header->_pad != 0 && _replaced ? header->_pad : Model._version; if ((_name == null) && (header->_stringOffset != 0)) _name = header->ResourceString; XFCmds.Clear(); //Get XF Commands byte* pData = (byte*)header->DisplayLists(Model._version) + 0xE0; Top: if (*pData++ == 0x10) { XFData dat = new XFData(); int count = (ushort)*(bushort*)pData; pData += 2; dat.addr = (XFMemoryAddr)(ushort)*(bushort*)pData; pData += 2; dat.values = new List<uint>(); for (int i = 0; i < count + 1; i++) { dat.values.Add(*(buint*)pData); pData += 4; } XFCmds.Add(dat); goto Top; } _mdl0Offset = header->_mdl0Offset; _stringOffset = header->_stringOffset; _userDataOffset = header->UserDataOffset(_initVersion); _shaderOffset = header->_shaderOffset; _dlOffset = header->DisplayListOffset(_initVersion); _furDataOffset = header->FurDataOffset(_initVersion); _matRefOffset = header->_matRefOffset; _pad = header->_pad; _dataLen = header->_dataLen; _numTextures = header->_numTexGens; _numLights = header->_numLightChans; _usageFlags = new Bin32(header->_usageFlags); _indirectMethod1 = header->_indirectMethod1; _indirectMethod2 = header->_indirectMethod2; _indirectMethod3 = header->_indirectMethod3; _indirectMethod4 = header->_indirectMethod4; _normMapRefLight1 = header->_normMapRefLight1; _normMapRefLight2 = header->_normMapRefLight2; _normMapRefLight3 = header->_normMapRefLight3; _normMapRefLight4 = header->_normMapRefLight4; _ssc = header->_activeTEVStages; _clip = header->_numIndTexStages; _transp = header->_enableAlphaTest; _lSet = header->_lightSet; _fSet = header->_fogSet; _cull = (CullMode)(int)header->_cull; if ((-header->_mdl0Offset + (int)header->DisplayListOffset(_initVersion)) % 0x20 != 0) { Model._errors.Add("Material " + Index + " has an improper align offset."); SignalPropertyChange(); } mode = header->DisplayLists(_initVersion); _alphaFunc = mode->AlphaFunction; _zMode = mode->ZMode; _blendMode = mode->BlendMode; _constantAlpha = mode->ConstantAlpha; _tevColorBlock = *header->TevColorBlock(_initVersion); _tevKonstBlock = *header->TevKonstBlock(_initVersion); _indMtx = *header->IndMtxBlock(_initVersion); MDL0TexSRTData* TexMatrices = header->TexMatrices(_initVersion); _layerFlags = TexMatrices->_layerFlags; _texMtxFlags = TexMatrices->_mtxFlags; MDL0MaterialLighting* Light = header->Light(_initVersion); (_chan1 = Light->Channel1)._parent = this; (_chan2 = Light->Channel2)._parent = this; c1 = CReg2Color; c2 = CReg2Color; c3 = CReg2Color; k1 = KReg0Color; k2 = KReg1Color; k3 = KReg2Color; k3 = KReg3Color; clr1 = C1MaterialColor; clr2 = C2MaterialColor; amb1 = C1AmbientColor; amb2 = C2AmbientColor; (_userEntries = new UserDataCollection()).Read(header->UserData(_initVersion)); return true; }
//Initialize should only be called from parent group during parse. //Bones need not be imported/exported anyways public override bool OnInitialize() { MDL0Bone *header = Header; SetSizeInternal(header->_headerLen); //Assign true parent using parent header offset int offset = header->_parentOffset; //Offsets are always < 0, because parent entries are listed before children if (offset < 0) { //Get address of parent header MDL0Bone *pHeader = (MDL0Bone *)((byte *)header + offset); //Search bone list for matching header foreach (MDL0BoneNode bone in Parent._children) { if (pHeader == bone.Header) { _parent = bone; break; } } } //Conditional name assignment if ((_name == null) && (header->_stringOffset != 0)) { _name = header->ResourceString; } //Assign fields _flags1 = (BoneFlags)(uint)header->_flags; _flags2 = (BillboardFlags)(uint)header->_bbFlags; _bbNodeId = header->_bbNodeId; _nodeIndex = header->_nodeId; _boneIndex = header->_index; _headerLen = header->_headerLen; _mdl0Offset = header->_mdl0Offset; _stringOffset = header->_stringOffset; _parentOffset = header->_parentOffset; _firstChildOffset = header->_firstChildOffset; _nextOffset = header->_nextOffset; _prevOffset = header->_prevOffset; _userDataOffset = header->_userDataOffset; if (_flags2 != 0 && _flags1.HasFlag(BoneFlags.HasGeometry)) { Model._billboardBones.Add(this); //Update mesh in T-Pose } _bindState = _frameState = new FrameState(header->_scale, (Vector3)header->_rotation, header->_translation); _bindMatrix = _frameMatrix = header->_transform; _inverseBindMatrix = _inverseFrameMatrix = header->_transformInv; _bMin = header->_boxMin; _bMax = header->_boxMax; (_userEntries = new UserDataCollection()).Read(header->UserDataAddress); //We don't want to process children because not all have been parsed yet. //Child assigning will be handled by the parent group. return(false); }
public override bool OnInitialize() { base.OnInitialize(); _palette = null; if ((_name == null) && (Header1->_stringOffset != 0)) _name = Header1->ResourceString; _version = Header1->_bresEntry._version; //_numColors = Header->_numEntries; _format = Header1->PaletteFormat; if (_version == 3) (_userEntries = new UserDataCollection()).Read(Header3->UserData); return false; }
public override bool OnInitialize() { base.OnInitialize(); _version = Header->_version; if (_version == 4) { _numFrames = Header4->_frames; _origPathOffset = Header4->_origPathOffset; _loop = Header4->_loop; if ((_name == null) && (Header4->_stringOffset != 0)) _name = Header4->ResourceString; if (Header4->_origPathOffset > 0) _originalPath = Header4->OrigPath; (_userEntries = new UserDataCollection()).Read(Header4->UserData); return Header4->Group->_numEntries > 0; } else { _numFrames = Header3->_frames; _origPathOffset = Header3->_origPathOffset; _loop = Header3->_loop; if ((_name == null) && (Header3->_stringOffset != 0)) _name = Header3->ResourceString; if (Header3->_origPathOffset > 0) _originalPath = Header3->OrigPath; return Header3->Group->_numEntries > 0; } }
public override bool OnInitialize() { base.OnInitialize(); _textureFiles.Clear(); _paletteFiles.Clear(); _version = Header->_version; int texPtr, pltPtr; if (_version == 4) { PAT0v4* header = Header4; _frameCount = header->_numFrames; _loop = header->_loop; texPtr = header->_numTexPtr; pltPtr = header->_numPltPtr; if ((_name == null) && (header->_stringOffset != 0)) _name = header->ResourceString; if (Header4->_origPathOffset > 0) _originalPath = Header4->OrigPath; (_userEntries = new UserDataCollection()).Read(Header4->UserData); } else { PAT0v3* header = Header3; _frameCount = header->_numFrames; _loop = header->_loop; texPtr = header->_numTexPtr; pltPtr = header->_numPltPtr; if ((_name == null) && (header->_stringOffset != 0)) _name = header->ResourceString; if (Header3->_origPathOffset > 0) _originalPath = Header3->OrigPath; } //Get texture strings for (int i = 0; i < texPtr; i++) _textureFiles.Add(Header3->GetTexStringEntry(i)); //Get palette strings for (int i = 0; i < pltPtr; i++) _paletteFiles.Add(Header3->GetPltStringEntry(i)); //Link all entries Populate(); return Header3->Group->_numEntries > 0; }
public override bool OnInitialize() { base.OnInitialize(); _flags1 = (SCN0CameraFlags)(ushort)Data->_flags1; _flags2 = Data->_flags2; _type = (SCN0CameraType)((ushort)_flags2 & 1); _projType = (ProjectionType)(int)Data->_projType; for (int x = 0; x < 15; x++) SetKeys(x, new KeyframeArray(FrameCount + 1)); bint* values = (bint*)&Data->_position; if (Name != "<null>") for (int i = 0; i < 15; i++) { //if (((int)_flags1 & (int)Ordered[i]) == 0) // SCN0Node.strings[(int)((&values[i] - Parent.Parent.WorkingUncompressed.Address + values[i]))] = "Camera" + Index + " Keys " + Ordered[i].ToString(); DecodeFrames(GetKeys(i), &values[i], (int)_flags1, (int)Ordered[i]); } _posX._linear = true; _posY._linear = true; _posZ._linear = true; _aimX._linear = true; _aimY._linear = true; _aimZ._linear = true; (_userEntries = new UserDataCollection()).Read(Data->UserData); return false; }
public override bool OnInitialize() { //Read common header base.OnInitialize(); //Initialize defaults _numEntries = new int[] { 0, 0 }; _solidColors = new RGBAPixel[2]; _constants = new bool[] { true, true }; //Read header values _nonSpecLightId = Data->_nonSpecLightId; _fixedFlags = (FixedFlags)(ushort)Data->_fixedFlags; _typeUsageFlags = (ushort)Data->_usageFlags; _distFunc = Data->_distFunc; _spotFunc = Data->_spotFunc; //Read user data (_userEntries = new UserDataCollection()).Read(Data->UserData); //Don't bother reading data if the entry is null if (Name == "<null>") { return(false); } //Read light visibility array if (!_fixedFlags.HasFlag(FixedFlags.EnabledConstant) && !_replaced) { _entryCount = Scene.FrameCount; int numBytes = _entryCount.Align(32) / 8; _data = new byte[numBytes]; Marshal.Copy((IntPtr)Data->VisBitEntries, _data, 0, numBytes); } else { _entryCount = 0; _data = new byte[0]; } //Read light color ReadColors( (uint)_fixedFlags, (uint)FixedFlags.ColorConstant, ref _solidColors[0], ref _lightColor, Scene.FrameCount, Data->_lightColor.Address, ref _constants[0], ref _numEntries[0]); if (!SpecularEnabled) { _constants[1] = (_fixedFlags & FixedFlags.SpecColorConstant) != 0; return(false); } //Read light specular color ReadColors( (uint)_fixedFlags, (uint)FixedFlags.SpecColorConstant, ref _solidColors[1], ref _specColor, Scene.FrameCount, Data->_specularColor.Address, ref _constants[1], ref _numEntries[1]); return(false); }
public override bool OnInitialize() { base.OnInitialize(); _textureFiles.Clear(); _paletteFiles.Clear(); int texPtr, pltPtr; if (_version == 4) { PAT0v4 *header = Header4; _numFrames = header->_numFrames; _loop = header->_loop != 0; texPtr = header->_numTexPtr; pltPtr = header->_numPltPtr; if ((_name == null) && (header->_stringOffset != 0)) { _name = header->ResourceString; } if (header->_origPathOffset > 0) { _originalPath = header->OrigPath; } (_userEntries = new UserDataCollection()).Read(header->UserData); //Get texture strings for (int i = 0; i < texPtr; i++) { _textureFiles.Add(header->GetTexStringEntry(i)); } //Get palette strings for (int i = 0; i < pltPtr; i++) { _paletteFiles.Add(header->GetPltStringEntry(i)); } return(header->Group->_numEntries > 0); } else { PAT0v3 *header = Header3; _numFrames = header->_numFrames; _loop = header->_loop != 0; texPtr = header->_numTexPtr; pltPtr = header->_numPltPtr; if ((_name == null) && (header->_stringOffset != 0)) { _name = header->ResourceString; } if (header->_origPathOffset > 0) { _originalPath = header->OrigPath; } //Get texture strings for (int i = 0; i < texPtr; i++) { _textureFiles.Add(header->GetTexStringEntry(i)); } //Get palette strings for (int i = 0; i < pltPtr; i++) { _paletteFiles.Add(header->GetPltStringEntry(i)); } return(header->Group->_numEntries > 0); } }
public override bool OnInitialize() { base.OnInitialize(); startUpVersion = _version = Header->_version; _strings.Clear(); if (_version == 4) { if ((_name == null) && (Header4->_stringOffset != 0)) _name = Header4->ResourceString; _numFrames = Header4->_numFrames; _loop = Header4->_loop; bint* stringOffset = Header4->StringEntries; for (int i = 0; i < Header4->_numEntries; i++) _strings.Add(new String((sbyte*)stringOffset + stringOffset[i])); if (Header4->_origPathOffset > 0) _originalPath = Header4->OrigPath; (_userEntries = new UserDataCollection()).Read(Header4->UserData); return Header4->Group->_numEntries > 0; } else { if ((_name == null) && (Header3->_stringOffset != 0)) _name = Header3->ResourceString; _numFrames = Header3->_numFrames; _loop = Header3->_loop; bint* stringOffset = Header3->StringEntries; for (int i = 0; i < Header3->_numEntries; i++) _strings.Add(new String((sbyte*)stringOffset + stringOffset[i])); if (Header3->_origPathOffset > 0) _originalPath = Header3->OrigPath; return Header3->Group->_numEntries > 0; } }