<NME> ShrineLava.cs
<BEF> ﻿using UnityEngine;
using System.Collections;
using UnityStandardAssets.ImageEffects;

/// <summary>
/// Special move trigger to handle throwing objects into the lava in the Shrine.
/// </summary>
public class ShrineLava : UWEBase
{

    /// <summary>
    /// Detects if a talisman has been thrown into the abyss lava trigger.
    /// </summary>
    /// <param name="other">Other.</param>
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.GetComponent<ObjectInteraction>() != null)
        {
            if (Quest.instance.isGaramonBuried == false)
            {
                return;
            }
            ObjectInteraction objInt = other.gameObject.GetComponent<ObjectInteraction>();
            switch (objInt.item_id)
            {
                case Quest.TalismanHonour:
                case Quest.TalismanBook:
                case Quest.TalismanCup:
                case Quest.TalismanRing:
                case Quest.TalismanShield:
                case Quest.TalismanSword:
                case Quest.TalismanTaper:
                case Quest.TalismanTaperLit:
                case Quest.TalismanWine:
                    Quest.instance.TalismansRemaining--;
                    break;
                default:
                    return;
            }

            Impact.SpawnHitImpact(Impact.ImpactMagic(), objInt.GetImpactPoint(), 40, 44);


            objInt.consumeObject();

            //Suck the avatar into the ethereal void.
            if (Quest.instance.TalismansRemaining <= 0)
            {
                StartCoroutine(SuckItAvatar());
            }
        }
    }

    /// <summary>
    /// Sends the avatar into the ethereal void.
    /// </summary>
    /// Spins the avatar and the slasher (specific object name) towards a newly spawned moongate.
    IEnumerator SuckItAvatar()
    {

        ObjectInteraction slasher = CurrentObjectList().objInfo[129].instance;//Assumes slasher will be at this index.
        Vector3 slasherPos = Vector3.zero;
        if (slasher != null)
        {
            slasherPos = slasher.transform.position;
        }

        //Spawn a moon gate at the center of the lava
        ObjectLoaderInfo newobjt = ObjectLoader.newWorldObject(346, 0, 0, 0, 256);
			{
				slasherPos=slasher.transform.position;
			}
			ObjectLoaderInfo newobjt= ObjectLoader.newObject(346,0,0,0);
			GameObject myObj= ObjectInteraction.CreateNewObject(GameWorldController.instance.currentTileMap(),newobjt,
			GameWorldController.instance.LevelMarker().gameObject,
			GameWorldController.instance.InventoryMarker.transform.position).gameObject;

        //Suck the player and the slasher into the moon gate.
        Quaternion playerRot = UWCharacter.Instance.transform.rotation;
        Quaternion EndRot = new Quaternion(playerRot.x, playerRot.y, playerRot.z + 1.2f, playerRot.w);
        Vector3 StartPos = UWCharacter.Instance.transform.position;
        Vector3 EndPos = myObj.transform.localPosition;
        float rate = 1.0f / 2.0f;
        float index = 0.0f;
        while (index < 1.0f)
        {
            UWCharacter.Instance.transform.position = Vector3.Lerp(StartPos, EndPos, index);
            UWCharacter.Instance.transform.rotation = Quaternion.Lerp(playerRot, EndRot, index);
            if (slasher != null)
            {
                slasher.transform.position = Vector3.Lerp(slasherPos, EndPos, index);
            }
            index += rate * Time.deltaTime;
            yield return new WaitForSeconds(0.01f);
        }
        UWCharacter.Instance.transform.rotation = playerRot;
        GameWorldController.instance.SwitchLevel(8, 26, 24);//One way trip.
    }
}

<MSG> Object list now has a GUID to prevent rare cases of objects with the same name.
Objects moved to the world have their position values and name updated when the move occurs.
Fixed splitting of item stacks in the world
Changed function to allocate inventory list indices to use a start index to search from
<DFF> @@ -70,7 +70,7 @@ public class ShrineLava : UWEBase {
 			{
 				slasherPos=slasher.transform.position;
 			}
-			ObjectLoaderInfo newobjt= ObjectLoader.newObject(346,0,0,0);
+			ObjectLoaderInfo newobjt= ObjectLoader.newObject(346,0,0,0,256);
 			GameObject myObj= ObjectInteraction.CreateNewObject(GameWorldController.instance.currentTileMap(),newobjt,
 			GameWorldController.instance.LevelMarker().gameObject,
 			GameWorldController.instance.InventoryMarker.transform.position).gameObject;

Object list now has a GUID to prevent rare cases of objects with the same name. Objects moved to the world have their position values and name updated when the move occurs. Fixed splitting of item stacks in the world Changed function to allocate inventory list indices to use a start index to search from