Ejemplo n.º 1
0
        protected internal override void PostProcess(VoidPtr dataAddress, StringTable stringTable)
        {
            base.PostProcess(dataAddress, stringTable);

            SCN0LightSet *header = (SCN0LightSet *)dataAddress;

            if (_ambientLight != null)
            {
                header->AmbientStringAddress = stringTable[_ambientLight] + 4;
            }
            else
            {
                header->_ambNameOffset = 0;
            }

            int   i;
            bint *strings = header->StringOffsets;

            for (i = 0; i < _entries.Count; i++)
            {
                strings[i] = (int)stringTable[_entries[i]] + 4 - (int)strings;
            }
            while (i < 8)
            {
                strings[i++] = 0;
            }
        }
Ejemplo n.º 2
0
        public override void OnRebuild(VoidPtr address, int length, bool force)
        {
            base.OnRebuild(address, length, force);

            SCN0LightSet *header = (SCN0LightSet *)address;

            int x = 0;

            for (int i = 0; i < 8; i++)
            {
                if (!String.IsNullOrEmpty(GetLightName(i)))
                {
                    x++;
                }
            }

            header->_pad       = 0;
            header->_id        = -1;
            header->_numLights = (byte)x;
            bshort *ids = header->IDs;
            int     e   = 0;

            while (e < 8)
            {
                ids[e++] = -1;
            }
        }
Ejemplo n.º 3
0
        protected internal override void PostProcess(VoidPtr scn0Address, VoidPtr dataAddress, StringTable stringTable)
        {
            base.PostProcess(scn0Address, dataAddress, stringTable);

            SCN0LightSet *header = (SCN0LightSet *)dataAddress;

            if (_ambient != null && !String.IsNullOrEmpty(_ambient.Name))
            {
                header->AmbientStringAddress = stringTable[_ambient.Name] + 4;
            }
            else
            {
                header->_ambNameOffset = 0;
            }

            int   i;
            bint *strings = header->StringOffsets;

            for (i = 0; i < 8; i++)
            {
                if (!String.IsNullOrEmpty(GetLightName(i)))
                {
                    strings[i] = (int)stringTable[GetLightName(i)] + 4 - (int)strings;
                }
                else
                {
                    break;
                }
            }
            while (i < 8)
            {
                strings[i++] = 0;
            }
        }
Ejemplo n.º 4
0
        protected internal override void OnRebuild(VoidPtr address, int length, bool force)
        {
            SCN0LightSet *header = (SCN0LightSet *)address;

            header->_unk1      = 0;
            header->_magic     = -1;
            header->_numLights = (byte)Lights.Length;
            header->_pad1      = header->_pad2 = header->_pad3 = header->_pad4 = -1;
        }