//File name: trap_reset
//Usage/Description:
//      Script fired during attmept to reset/disable a trap
//      for use with CEP traps.

#include "zep_inc_scrptdlg"

void main()
{
    object oPC = GetLastUsedBy();
    string sTag = GetTag(OBJECT_SELF);
    int nTrap = StringToInt(GetStringRight(sTag,1));

    sTag = GetStringLeft(sTag,GetStringLength(sTag)-1);
    object oO = GetNearestObjectByTag(sTag, OBJECT_SELF,  nTrap);
    object oAOE;
    string sMessageToPC = GetStringByStrRef(nZEPTrapReset ,GENDER_MALE);
    SendMessageToPC(oPC,sMessageToPC);
    DeleteLocalInt(oO,"TRP_TRIGGERED");

    object oTrap = GetLocalObject(oO,"TRP_PLCBL_OBJ");
    oAOE = GetNearestObject(OBJECT_TYPE_AREA_OF_EFFECT,oTrap);
    if(GetAreaOfEffectCreator(oAOE)==oO)
    {
        DestroyObject(oAOE);
    }

    if(sTag=="RPFTrap")
    {
        //AssignCommand(oTrap, PlaySound("as_sw_clothcl1"));
        AssignCommand(oTrap, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
    }
    else if(sTag=="MPFTrap")
    {
        //AssignCommand(oTrap, PlaySound("as_dr_metmedcr2"));
        AssignCommand(oTrap, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
        DestroyObject(oTrap,1.0);
        DeleteLocalInt(oO,"TRP_PLCBL_SHOW");
    }
    else if(sTag=="FlFTrap")
    {
        AssignCommand(oTrap, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
        DestroyObject(oTrap,1.0);
        DeleteLocalInt(oO,"TRP_PLCBL_SHOW");
        SetLocked(GetNearestObject(OBJECT_TYPE_DOOR,oO),FALSE);
    }
    else
    {
        AssignCommand(oTrap, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
        DestroyObject(oTrap,1.0);
        DeleteLocalInt(oO,"TRP_PLCBL_SHOW");
    }

    PlaySound("as_sw_lever1");
}