#include "cas_inc_bttltrap"

const string CAS_PC_TRAP_UID = "CAS_TRAP_UID";

object CAS_FindOccupant(string sUID, int nJarType)
{
    object oArea = GetObjectByTag(CAS_GetJarAreaTag(nJarType));
    if (oArea == OBJECT_INVALID) return OBJECT_INVALID;

    object oObj = GetFirstObjectInArea(oArea);

    // loop vars outside
    object oNext = OBJECT_INVALID;
    string sOccUID = "";

    while (oObj != OBJECT_INVALID)
    {
        if (GetIsPC(oObj))
        {
            sOccUID = GetLocalString(oObj, CAS_PC_TRAP_UID);
            if (sOccUID == sUID)
            {
                return oObj;
            }
        }

        oNext = GetNextObjectInArea(oArea);
        oObj = oNext;
    }

    return OBJECT_INVALID;
}

int StartingConditional()
{
    object oPC = GetPCSpeaker();
    if (!GetIsPC(oPC) || GetIsDM(oPC)) return FALSE;

    string sUID = GetLocalString(oPC, "CAS_BT_UID");
    int nJarType = GetLocalInt(oPC, "CAS_BT_JAR_TYPE");

    if (sUID == "") return TRUE; // if no UID, treat as "nobody inside" for UI safety

    if (nJarType != CAS_JAR_HONEY && nJarType != CAS_JAR_PEANUT)
    {
        nJarType = CAS_JAR_HONEY;
    }

    return !GetIsObjectValid(CAS_FindOccupant(sUID, nJarType));
}
