//::///////////////////////////////////////////////////////////////////////////
//::
//:: This file was generated by the NWTREASURE program.
//::
//:: Elements Copyright (c) 2001-2002 Bioware Corp.
//::
//::///////////////////////////////////////////////////////////////////////////

//
// Globals used to pass arguments around (reduces compiled script size)
//

int g_nM;
int g_nS;
object g_oA;
object g_oT;
int g_n;

//
// The following are only used by the respawn system
//

location g_loc;
string g_sProfile;
float g_fDelay;
int g_nSingleShot;
int g_nSomethingSpawned;

//
// Level range definitions
//

int RANGE_1_MIN = 0;
int RANGE_1_MAX = 5;
int RANGE_2_MIN = 6;
int RANGE_2_MAX = 8;
int RANGE_3_MIN = 9;
int RANGE_3_MAX = 10;
int RANGE_4_MIN = 11;
int RANGE_4_MAX = 13;
int RANGE_5_MIN = 14;
int RANGE_5_MAX = 16;
int RANGE_6_MIN = 17;
int RANGE_6_MAX = 100;

//
// Forward reference routines
//

void dbSpeak (string s);
int GetDefaultRespawnTime (); //Only used for SW style

//
// Get the level range from the hit dice
//

int GetLevelRange (int nHD)
{
    if (nHD <= RANGE_3_MAX)
    {
        if (nHD <= RANGE_1_MAX)
            return 1;
        if (nHD <= RANGE_2_MAX)
            return 2;
        return 3;
    }
    else
    {
        if (nHD >= RANGE_6_MIN)
            return 6;
        if (nHD <= RANGE_5_MIN)
            return 5;
        return 4;
    }
}

//
// Validate the objects
//

int InitializeGenerateTreasure (object oA, object oT)
{
    dbSpeak ("*********************NEW TREASURE*************************");
    if (GetIsObjectValid (oA) == FALSE)
    {
        dbSpeak ("Aborted.  Attacker or last opener isn't valid.");
        return 0;
    }

    dbSpeak ("For: " + GetName (oA));

    if (oT == OBJECT_INVALID)
    {
        oT = oA;
    }
    g_oA = oA;
    g_oT = oT;
    return 1;
}

//
// Create an item on the object
//

void MyCreateItemOnObjectInt (string sItemTemplate, int nStackSize, int nStackRange)
{

    //
    // Sanity check
    //

    if (sItemTemplate == "")
    {
        PrintString ("blank item passed into MyCreateItemOnObject.");
    }

    //
    // Debug string
    //

    dbSpeak (sItemTemplate);

    //
    // If a stack range was supplied, then add a random amount
    //

    if (nStackRange >= 2)
        nStackSize += Random (nStackRange);

    //
    // Create the item
    //

    object oItem = CreateItemOnObject(sItemTemplate, g_oT, nStackSize);
    if (GetIsObjectValid(oItem) == FALSE && sItemTemplate != "NW_IT_GOLD001") // gold :)
    {

        // * check to see if item is there in a stack, if not give warning
        if (GetIsObjectValid(GetItemPossessedBy(g_oT, GetStringUpperCase(sItemTemplate))) == FALSE &&
            GetIsObjectValid(GetItemPossessedBy(g_oT, GetStringLowerCase(sItemTemplate))) == FALSE)
        {
            PrintString("**DESIGN***");
            PrintString("******" + sItemTemplate + " is an invalid item template.");
            PrintString("*******");
        }
    }
}

//
// No suffixing
//

void MyCreateItemOnObjectA0_P0 (string sItemTemplate)
{
    MyCreateItemOnObjectInt (sItemTemplate, 1, 1);
}

void MyCreateItemOnObjectA1_P0 (string sItemTemplate, int nStackSize)
{
    MyCreateItemOnObjectInt (sItemTemplate, nStackSize, 1);
}

void MyCreateItemOnObjectA2_P0 (string sItemTemplate, int nStackSize, int nStackRange)
{
    MyCreateItemOnObjectInt (sItemTemplate, nStackSize, nStackRange);
}

//
// 1 digit suffixing
//

void MyCreateItemOnObjectA0_P1 (string sItemTemplate, int nIndex)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight (IntToString (nIndex), 1), 1, 1);
}

void MyCreateItemOnObjectA1_P1 (string sItemTemplate, int nIndex, int nStackSize)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight (IntToString (nIndex), 1), nStackSize, 1);
}

void MyCreateItemOnObjectA2_P1 (string sItemTemplate, int nIndex, int nStackSize, int nStackRange)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight (IntToString (nIndex), 1), nStackSize, nStackRange);
}

//
// 2 digit suffixing
//

void MyCreateItemOnObjectA0_P2 (string sItemTemplate, int nIndex)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("0" + IntToString (nIndex), 2), 1, 1);
}

void MyCreateItemOnObjectA1_P2 (string sItemTemplate, int nIndex, int nStackSize)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("0" + IntToString (nIndex), 2), nStackSize, 1);
}

void MyCreateItemOnObjectA2_P2 (string sItemTemplate, int nIndex, int nStackSize, int nStackRange)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("0" + IntToString (nIndex), 2), nStackSize, nStackRange);
}

//
// 3 digit suffixing
//

void MyCreateItemOnObjectA0_P3 (string sItemTemplate, int nIndex)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("00" + IntToString (nIndex), 3), 1, 1);
}

void MyCreateItemOnObjectA1_P3 (string sItemTemplate, int nIndex, int nStackSize)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("00" + IntToString (nIndex), 3), nStackSize, 1);
}

void MyCreateItemOnObjectA2_P3 (string sItemTemplate, int nIndex, int nStackSize, int nStackRange)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("00" + IntToString (nIndex), 3), nStackSize, nStackRange);
}

//
// 4 digit suffixing
//

void MyCreateItemOnObjectA0_P4 (string sItemTemplate, int nIndex)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("000" + IntToString (nIndex), 4), 1, 1);
}

void MyCreateItemOnObjectA1_P4 (string sItemTemplate, int nIndex, int nStackSize)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("000" + IntToString (nIndex), 4), nStackSize, 1);
}

void MyCreateItemOnObjectA2_P4 (string sItemTemplate, int nIndex, int nStackSize, int nStackRange)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("000" + IntToString (nIndex), 4), nStackSize, nStackRange);
}

//
// 5 digit suffixing
//

void MyCreateItemOnObjectA0_P5 (string sItemTemplate, int nIndex)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("0000" + IntToString (nIndex), 5), 1, 1);
}

void MyCreateItemOnObjectA1_P5 (string sItemTemplate, int nIndex, int nStackSize)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("0000" + IntToString (nIndex), 5), nStackSize, 1);
}

void MyCreateItemOnObjectA2_P5 (string sItemTemplate, int nIndex, int nStackSize, int nStackRange)
{
    MyCreateItemOnObjectInt (sItemTemplate + GetStringRight ("0000" + IntToString (nIndex), 5), nStackSize, nStackRange);
}

//
// Create gold
//

void MyCreateGold (int nCount, int nDie, float fMultiplier)
{
    int nGold;
    switch (nDie)
    {
        case   2: nGold = d2 (nCount); break;
        case   3: nGold = d3 (nCount); break;
        case   4: nGold = d4 (nCount); break;
        case   6: nGold = d6 (nCount); break;
        case   8: nGold = d8 (nCount); break;
        case  10: nGold = d10 (nCount); break;
        case  12: nGold = d12 (nCount); break;
        case  20: nGold = d20 (nCount); break;
        case 100: nGold = d100 (nCount); break;
        default:
            nGold = 0;
            while (nCount > 0)
            {
                nCount--;
                nGold += Random (nDie) + 1;
            }
            break;
    }
    float fGold = IntToFloat (nGold) * fMultiplier;
    nGold = FloatToInt (fGold);
    if (nGold < 1)
        nGold = 1;
    MyCreateItemOnObjectInt ("NW_IT_GOLD001", nGold, 1);
}

//
// Random Class to Use
//

int MyRandomClassToUse (object oCharacter)
{
    int nTotal = GetHitDice (oCharacter);
    if (nTotal < 1)
        return CLASS_TYPE_INVALID;

    int nState1 = GetLevelByPosition (1, oCharacter);
    int nState2 = GetLevelByPosition (2, oCharacter);

    int nUseClass = Random (nTotal);
    if (nUseClass < nState1)
        return GetClassByPosition (1, oCharacter);
    else
    if (nUseClass < nState1 + nState2)
        return GetClassByPosition (2, oCharacter);
    else
        return GetClassByPosition (3, oCharacter);
}

//::///////////////////////////////////////////////////////////////////////////
//::
//:: **** BEGIN GENERATED CODE ****
//::
//::///////////////////////////////////////////////////////////////////////////

void dbSpeak (string s)
{
}
string g_sS0 = "nw_maarcl";
string g_sS1 = "nw_aarcl";
string g_sS2 = "nw_waxgr";
string g_sS3 = "nw_waxmgr";
string g_sS4 = "nw_waxhn";
string g_sS5 = "nw_waxmhn";
string g_sS6 = "nw_waxbt";
string g_sS7 = "nw_waxmbt";
string g_sS8 = "nw_wswbs";
string g_sS9 = "nw_wswmbs";
string g_sS10 = "nw_wswdg";
string g_sS11 = "nw_wswmdg";
string g_sS12 = "nw_wswgs";
string g_sS13 = "nw_wswmgs";
string g_sS14 = "nw_wswls";
string g_sS15 = "nw_wswmls";
string g_sS16 = "nw_wswka";
string g_sS17 = "nw_wswmka";
string g_sS18 = "nw_wswrp";
string g_sS19 = "nw_wswmrp";
string g_sS20 = "nw_wswsc";
string g_sS21 = "nw_wswmsc";
string g_sS22 = "nw_wswss";
string g_sS23 = "nw_wswmss";
string g_sS24 = "nw_wblcl";
string g_sS25 = "nw_wblmcl";
string g_sS26 = "nw_wblfh";
string g_sS27 = "nw_wblmfh";
string g_sS28 = "nw_wblfl";
string g_sS29 = "nw_wblmfl";
string g_sS30 = "nw_wblhl";
string g_sS31 = "nw_wblmhl";
string g_sS32 = "nw_wblhw";
string g_sS33 = "nw_wblmhw";
string g_sS34 = "nw_wblml";
string g_sS35 = "nw_wblmml";
string g_sS36 = "nw_wdbma";
string g_sS37 = "nw_wdbmma";
string g_sS38 = "nw_wdbax";
string g_sS39 = "nw_wdbmax";
string g_sS40 = "nw_wdbqs";
string g_sS41 = "nw_wdbmqs";
string g_sS42 = "nw_wdbsw";
string g_sS43 = "nw_wdbmsw";
string g_sS44 = "nw_wspka";
string g_sS45 = "nw_wspmka";
string g_sS46 = "nw_wspku";
string g_sS47 = "nw_wspmku";
string g_sS48 = "nw_wspsc";
string g_sS49 = "nw_wspmsc";
string g_sS50 = "nw_wplhb";
string g_sS51 = "nw_wplmhb";
string g_sS52 = "nw_wplsc";
string g_sS53 = "nw_wplmsc";
string g_sS54 = "nw_wplss";
string g_sS55 = "nw_wplmss";
string g_sS56 = "nw_wbwxh";
string g_sS57 = "nw_wbwmxh";
string g_sS58 = "nw_wbwxl";
string g_sS59 = "nw_wbwmxl";
string g_sS60 = "nw_wbwmln";
string g_sS61 = "nw_wbwln";
string g_sS62 = "nw_wbwmsh";
string g_sS63 = "nw_wbwsh";
string g_sS64 = "nw_wbwsl";
string g_sS65 = "nw_wbwmsl";
string g_sS66 = "nw_wthmdt";
string g_sS67 = "nw_wthdt";
string g_sS68 = "nw_wthsh";
string g_sS69 = "nw_wthmsh";
string g_sS70 = "nw_wthax";
string g_sS71 = "nw_wthmax";
string g_sS72 = "nw_ashlw";
string g_sS73 = "nw_ashmlw";
string g_sS74 = "nw_ashsw";
string g_sS75 = "nw_ashmsw";
string g_sS76 = "nw_ashto";
string g_sS77 = "nw_ashmto";
string g_sS78 = "nw_it_sparscr";
string g_sS79 = "nw_it_spdvscr";
string g_sS80 = "nw_wmgmrd";
string g_sS81 = "nw_wmgwn";
string g_sS82 = "nw_it_mboots";
string g_sS83 = "nw_it_mglove";
string g_sS84 = "nw_it_mbracer";
string g_sS85 = "recipeformort";
string g_sS86 = "tink_recipe";
string g_sS87 = "trecipe";
string g_sS88 = "nw_mcloth";
string g_sS89 = "nw_it_novel";
string g_sS90 = "nw_armhe";
string g_sS91 = "nw_it_mbelt";
string g_sS92 = "cloak";
string g_sS93 = "boots";
string g_sS94 = "belt";
string g_sS95 = "nw_it_mneck";
string g_sS96 = "nw_it_mring";
string g_sS97 = "ring";
string g_sS98 = "nw_it_contain";
string g_sS99 = "nw_it_mmidmisc";
string g_sS100 = "bookofsummon";
string g_sS101 = "nw_wblmms";
string g_sS102 = "nw_wmgrd";
string g_sS103 = "nw_wammar";
string g_sS104 = "nw_wammbo";
string g_sS105 = "nw_wammbu";
string g_sS106 = "nw_wblms";
string g_sS107 = "nw_wmgst";
string g_sS108 = "nw_it_thnmisc";
string g_sS109 = "nw_it_mpotion";
string g_sS110 = "it_mpotion";
string g_sS111 = "sy_potion";
void CT_rr_misc_lower (object oA, object oT);
void CT_rr_uniques (object oA, object oT);
void CT_rr_master_lewt_high (object oA, object oT);
void CT_rr_master_lewt_med (object oA, object oT);
void CT_rr_master_lewt_low (object oA, object oT);
void CT_rr_master_lewt (object oA, object oT);


void CI_rr_low_weap_armor ()
{
  switch (Random (104))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS0,51); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS0,53); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS0,52); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS0,59); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS0,50); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS0,46); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS0,44); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS0,43); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS0,45); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS0,49); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS0,35); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS0,47); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS0,48); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS1,6); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS1,5); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS1,7); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS1,12); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS1,1); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS1,9); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS1,2); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS1,10); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS1,4); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS1,8); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS1,3); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS2,1); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS3,2); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS4,1); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS5,2); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS6,1); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS7,2); break;
  case 30:  MyCreateItemOnObjectA0_P3 (g_sS8,1); break;
  case 31:  MyCreateItemOnObjectA0_P3 (g_sS9,2); break;
  case 32:  MyCreateItemOnObjectA0_P3 (g_sS10,1); break;
  case 33:  MyCreateItemOnObjectA0_P3 (g_sS11,2); break;
  case 34:  MyCreateItemOnObjectA0_P3 (g_sS12,1); break;
  case 35:  MyCreateItemOnObjectA0_P3 (g_sS13,2); break;
  case 36:  MyCreateItemOnObjectA0_P3 (g_sS14,1); break;
  case 37:  MyCreateItemOnObjectA0_P3 (g_sS15,2); break;
  case 38:  MyCreateItemOnObjectA0_P3 (g_sS16,1); break;
  case 39:  MyCreateItemOnObjectA0_P3 (g_sS17,2); break;
  case 40:  MyCreateItemOnObjectA0_P3 (g_sS18,1); break;
  case 41:  MyCreateItemOnObjectA0_P3 (g_sS19,2); break;
  case 42:  MyCreateItemOnObjectA0_P3 (g_sS20,1); break;
  case 43:  MyCreateItemOnObjectA0_P3 (g_sS21,2); break;
  case 44:  MyCreateItemOnObjectA0_P3 (g_sS22,1); break;
  case 45:  MyCreateItemOnObjectA0_P3 (g_sS23,2); break;
  case 46:  MyCreateItemOnObjectA0_P3 (g_sS24,1); break;
  case 47:  MyCreateItemOnObjectA0_P3 (g_sS25,2); break;
  case 48:  MyCreateItemOnObjectA0_P3 (g_sS26,1); break;
  case 49:  MyCreateItemOnObjectA0_P3 (g_sS27,2); break;
  case 50:  MyCreateItemOnObjectA0_P3 (g_sS28,1); break;
  case 51:  MyCreateItemOnObjectA0_P3 (g_sS29,2); break;
  case 52:  MyCreateItemOnObjectA0_P3 (g_sS30,1); break;
  case 53:  MyCreateItemOnObjectA0_P3 (g_sS31,2); break;
  case 54:  MyCreateItemOnObjectA0_P3 (g_sS32,1); break;
  case 55:  MyCreateItemOnObjectA0_P3 (g_sS33,2); break;
  case 56:  MyCreateItemOnObjectA0_P3 (g_sS34,1); break;
  case 57:  MyCreateItemOnObjectA0_P3 (g_sS35,2); break;
  case 58:  MyCreateItemOnObjectA0_P3 (g_sS36,1); break;
  case 59:  MyCreateItemOnObjectA0_P3 (g_sS37,2); break;
  case 60:  MyCreateItemOnObjectA0_P3 (g_sS38,1); break;
  case 61:  MyCreateItemOnObjectA0_P3 (g_sS39,2); break;
  case 62:  MyCreateItemOnObjectA0_P3 (g_sS40,1); break;
  case 63:  MyCreateItemOnObjectA0_P3 (g_sS41,2); break;
  case 64:  MyCreateItemOnObjectA0_P3 (g_sS42,1); break;
  case 65:  MyCreateItemOnObjectA0_P3 (g_sS43,2); break;
  case 66:  MyCreateItemOnObjectA0_P3 (g_sS44,1); break;
  case 67:  MyCreateItemOnObjectA0_P3 (g_sS45,2); break;
  case 68:  MyCreateItemOnObjectA0_P3 (g_sS46,1); break;
  case 69:  MyCreateItemOnObjectA0_P3 (g_sS47,2); break;
  case 70:  MyCreateItemOnObjectA0_P3 (g_sS48,1); break;
  case 71:  MyCreateItemOnObjectA0_P3 (g_sS49,2); break;
  case 72:  MyCreateItemOnObjectA0_P3 (g_sS50,1); break;
  case 73:  MyCreateItemOnObjectA0_P3 (g_sS51,2); break;
  case 74:  MyCreateItemOnObjectA0_P3 (g_sS52,1); break;
  case 75:  MyCreateItemOnObjectA0_P3 (g_sS53,2); break;
  case 76:  MyCreateItemOnObjectA0_P3 (g_sS54,1); break;
  case 77:  MyCreateItemOnObjectA0_P3 (g_sS55,2); break;
  case 78:  MyCreateItemOnObjectA0_P3 (g_sS56,1); break;
  case 79:  MyCreateItemOnObjectA0_P3 (g_sS57,2); break;
  case 80:  MyCreateItemOnObjectA0_P3 (g_sS58,1); break;
  case 81:  MyCreateItemOnObjectA0_P3 (g_sS59,2); break;
  case 82:  MyCreateItemOnObjectA0_P3 (g_sS60,10); break;
  case 83:  MyCreateItemOnObjectA0_P3 (g_sS61,1); break;
  case 84:  MyCreateItemOnObjectA0_P3 (g_sS60,2); break;
  case 85:  MyCreateItemOnObjectA0_P3 (g_sS62,10); break;
  case 86:  MyCreateItemOnObjectA0_P3 (g_sS63,1); break;
  case 87:  MyCreateItemOnObjectA0_P3 (g_sS62,2); break;
  case 88:  MyCreateItemOnObjectA0_P3 (g_sS64,1); break;
  case 89:  MyCreateItemOnObjectA0_P3 (g_sS65,1); break;
  case 90:  MyCreateItemOnObjectA2_P3 (g_sS66,6,1,10); break;
  case 91:  MyCreateItemOnObjectA2_P3 (g_sS67,1,1,10); break;
  case 92:  MyCreateItemOnObjectA2_P3 (g_sS66,2,1,10); break;
  case 93:  MyCreateItemOnObjectA2_P3 (g_sS66,5,1,10); break;
  case 94:  MyCreateItemOnObjectA2_P3 (g_sS68,1,1,10); break;
  case 95:  MyCreateItemOnObjectA2_P3 (g_sS69,2,1,10); break;
  case 96:  MyCreateItemOnObjectA2_P3 (g_sS70,1,1,10); break;
  case 97:  MyCreateItemOnObjectA2_P3 (g_sS71,2,1,10); break;
  case 98:  MyCreateItemOnObjectA0_P3 (g_sS72,1); break;
  case 99:  MyCreateItemOnObjectA0_P3 (g_sS73,2); break;
  case 100:  MyCreateItemOnObjectA0_P3 (g_sS74,1); break;
  case 101:  MyCreateItemOnObjectA0_P3 (g_sS75,2); break;
  case 102:  MyCreateItemOnObjectA0_P3 (g_sS76,1); break;
  case 103:  MyCreateItemOnObjectA0_P3 (g_sS77,2); break;
  }
}

void CI_rr_scrolls_1to4 ()
{
  switch (Random (78))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS78,414); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS78,211); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS78,212); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS78,112); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS78,213); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS78,405); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS78,107); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS79,202); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS78,307); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS78,217); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS78,110); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS78,406); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS78,411); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS78,206); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS78,3); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS78,301); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS78,219); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS78,416); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS78,215); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS78,101); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS78,412); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS78,413); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS78,309); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS78,304); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS78,220); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS78,208); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS78,209); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS78,103); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS78,312); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS78,308); break;
  case 30:  MyCreateItemOnObjectA0_P3 (g_sS78,106); break;
  case 31:  MyCreateItemOnObjectA0_P3 (g_sS78,408); break;
  case 32:  MyCreateItemOnObjectA0_P3 (g_sS78,207); break;
  case 33:  MyCreateItemOnObjectA0_P3 (g_sS78,314); break;
  case 34:  MyCreateItemOnObjectA0_P3 (g_sS78,216); break;
  case 35:  MyCreateItemOnObjectA0_P3 (g_sS78,218); break;
  case 36:  MyCreateItemOnObjectA0_P3 (g_sS79,201); break;
  case 37:  MyCreateItemOnObjectA0_P3 (g_sS78,417); break;
  case 38:  MyCreateItemOnObjectA0_P3 (g_sS78,4); break;
  case 39:  MyCreateItemOnObjectA0_P3 (g_sS78,310); break;
  case 40:  MyCreateItemOnObjectA0_P3 (g_sS78,104); break;
  case 41:  MyCreateItemOnObjectA0_P3 (g_sS78,302); break;
  case 42:  MyCreateItemOnObjectA0_P3 (g_sS78,109); break;
  case 43:  MyCreateItemOnObjectA0_P3 (g_sS78,202); break;
  case 44:  MyCreateItemOnObjectA0_P3 (g_sS78,401); break;
  case 45:  MyCreateItemOnObjectA0_P3 (g_sS78,315); break;
  case 46:  MyCreateItemOnObjectA0_P3 (g_sS78,113); break;
  case 47:  MyCreateItemOnObjectA0_P3 (g_sS79,402); break;
  case 48:  MyCreateItemOnObjectA0_P3 (g_sS78,221); break;
  case 49:  MyCreateItemOnObjectA0_P3 (g_sS78,409); break;
  case 50:  MyCreateItemOnObjectA0_P3 (g_sS78,415); break;
  case 51:  MyCreateItemOnObjectA0_P3 (g_sS78,102); break;
  case 52:  MyCreateItemOnObjectA0_P3 (g_sS78,303); break;
  case 53:  MyCreateItemOnObjectA0_P3 (g_sS78,111); break;
  case 54:  MyCreateItemOnObjectA0_P3 (g_sS78,2); break;
  case 55:  MyCreateItemOnObjectA0_P3 (g_sS79,301); break;
  case 56:  MyCreateItemOnObjectA0_P3 (g_sS78,402); break;
  case 57:  MyCreateItemOnObjectA0_P3 (g_sS79,302); break;
  case 58:  MyCreateItemOnObjectA0_P3 (g_sS78,201); break;
  case 59:  MyCreateItemOnObjectA0_P3 (g_sS78,1); break;
  case 60:  MyCreateItemOnObjectA0_P3 (g_sS79,401); break;
  case 61:  MyCreateItemOnObjectA0_P3 (g_sS78,210); break;
  case 62:  MyCreateItemOnObjectA0_P3 (g_sS78,205); break;
  case 63:  MyCreateItemOnObjectA0_P3 (g_sS78,410); break;
  case 64:  MyCreateItemOnObjectA0_P3 (g_sS79,203); break;
  case 65:  MyCreateItemOnObjectA0_P3 (g_sS78,108); break;
  case 66:  MyCreateItemOnObjectA0_P3 (g_sS78,313); break;
  case 67:  MyCreateItemOnObjectA0_P3 (g_sS79,204); break;
  case 68:  MyCreateItemOnObjectA0_P3 (g_sS78,305); break;
  case 69:  MyCreateItemOnObjectA0_P3 (g_sS78,403); break;
  case 70:  MyCreateItemOnObjectA0_P3 (g_sS78,105); break;
  case 71:  MyCreateItemOnObjectA0_P3 (g_sS78,203); break;
  case 72:  MyCreateItemOnObjectA0_P3 (g_sS78,306); break;
  case 73:  MyCreateItemOnObjectA0_P3 (g_sS78,404); break;
  case 74:  MyCreateItemOnObjectA0_P3 (g_sS78,214); break;
  case 75:  MyCreateItemOnObjectA0_P3 (g_sS78,311); break;
  case 76:  MyCreateItemOnObjectA0_P3 (g_sS78,407); break;
  case 77:  MyCreateItemOnObjectA0_P3 (g_sS78,204); break;
  }
}

void CI_rr_wands_rods_lower ()
{
  switch (Random (28))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS80,6); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS81,3); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS81,2); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS81,13); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS81,7); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS81,4); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS81,6); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS81,5); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS81,12); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS81,10); break;
  case 10:  MyCreateItemOnObjectA0_P0 ("wandofburninghan"); break;
  case 11:  MyCreateItemOnObjectA0_P0 ("wandofcharmmonst"); break;
  case 12:  MyCreateItemOnObjectA0_P0 ("wandofcharmperso"); break;
  case 13:  MyCreateItemOnObjectA0_P0 ("wandofcolorspray"); break;
  case 14:  MyCreateItemOnObjectA0_P0 ("wandofcontagion"); break;
  case 15:  MyCreateItemOnObjectA0_P0 ("wandofcuringi"); break;
  case 16:  MyCreateItemOnObjectA0_P0 ("wandofcuringii"); break;
  case 17:  MyCreateItemOnObjectA0_P0 ("wandofenfeebleme"); break;
  case 18:  MyCreateItemOnObjectA0_P0 ("wandofholdperson"); break;
  case 19:  MyCreateItemOnObjectA0_P0 ("wandofinvisibili"); break;
  case 20:  MyCreateItemOnObjectA0_P0 ("wandofknock"); break;
  case 21:  MyCreateItemOnObjectA0_P0 ("wandoflight"); break;
  case 22:  MyCreateItemOnObjectA0_P0 ("wandofmelfs"); break;
  case 23:  MyCreateItemOnObjectA0_P0 ("wandofneutralize"); break;
  case 24:  MyCreateItemOnObjectA0_P0 ("wandofpoison"); break;
  case 25:  MyCreateItemOnObjectA0_P0 ("wandofsilence"); break;
  case 26:  MyCreateItemOnObjectA0_P0 ("wandofstoneskin"); break;
  case 27:  MyCreateItemOnObjectA0_P0 ("wandofweb"); break;
  }
}

void CI_rr_misc_lower ()
{
  switch (Random (105))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS82,15); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS82,10); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS82,11); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS82,1); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS82,6); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS82,18); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS82,19); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS0,104); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS0,55); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS0,88); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS0,31); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS0,92); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS83,16); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS83,17); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS83,21); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS83,22); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS83,26); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS83,27); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS84,12); break;
  case 19: case 20: case 21: case 22:
  case 23: case 24: case 25: case 26:  MyCreateItemOnObjectA0_P0 ("acidflask"); break;
  case 27: case 28: case 29: case 30:
  case 31: case 32: case 33: case 34:  MyCreateItemOnObjectA0_P0 ("alchemistsfire"); break;
  case 35: case 36: case 37: case 38:
  case 39: case 40: case 41: case 42:  MyCreateItemOnObjectA0_P0 ("holywaterflask"); break;
  case 43: case 44: case 45: case 46:
  case 47: case 48: case 49: case 50:  MyCreateItemOnObjectA0_P0 ("lantern"); break;
  case 51: case 52: case 53: case 54:
  case 55: case 56: case 57: case 58:  MyCreateItemOnObjectA0_P0 ("oilflask"); break;
  case 59: case 60: case 61: case 62:
  case 63: case 64: case 65: case 66:  MyCreateItemOnObjectA0_P0 ("torch"); break;
  case 67:  MyCreateItemOnObjectA0_P0 ("legendofswifttoo"); break;
  case 68:  MyCreateItemOnObjectA0_P0 ("windwalkerstale"); break;
  case 69:  MyCreateItemOnObjectA0_P0 ("bitingbastardrec"); break;
  case 70:  MyCreateItemOnObjectA0_P0 ("recipegargoylebl"); break;
  case 71:  MyCreateItemOnObjectA0_P0 ("recipeflamedagge"); break;
  case 72:  MyCreateItemOnObjectA0_P0 ("recipecrimsonswo"); break;
  case 73:  MyCreateItemOnObjectA0_P0 ("recipemaceconfin"); break;
  case 74:  MyCreateItemOnObjectA0_P0 ("recipegoldenrapi"); break;
  case 75:  MyCreateItemOnObjectA0_P0 ("recipegargoylehe"); break;
  case 76:  MyCreateItemOnObjectA0_P0 ("recipelongbowdea"); break;
  case 77:  MyCreateItemOnObjectA0_P3 (g_sS85,1); break;
  case 78:  MyCreateItemOnObjectA0_P0 ("recipeforquarfea"); break;
  case 79:  MyCreateItemOnObjectA0_P0 ("recipeforquarter"); break;
  case 80:  MyCreateItemOnObjectA0_P0 ("recipefordragons"); break;
  case 81:  MyCreateItemOnObjectA0_P0 ("recipeforwaraxe"); break;
  case 82:  MyCreateItemOnObjectA0_P0 ("recipeforverdi"); break;
  case 83:  MyCreateItemOnObjectA0_P0 ("recipemaceconfin"); break;
  case 84:  MyCreateItemOnObjectA0_P0 ("recipeforskele"); break;
  case 85:  MyCreateItemOnObjectA0_P0 ("recipeformage"); break;
  case 86:  MyCreateItemOnObjectA0_P0 ("recipeforgolde"); break;
  case 87:  MyCreateItemOnObjectA0_P0 ("recipeforfirebla"); break;
  case 88:  MyCreateItemOnObjectA0_P2 (g_sS86,3); break;
  case 89:  MyCreateItemOnObjectA0_P2 (g_sS87,4); break;
  case 90:  MyCreateItemOnObjectA0_P2 (g_sS87,5); break;
  case 91:  MyCreateItemOnObjectA0_P2 (g_sS86,2); break;
  case 92:  MyCreateItemOnObjectA0_P2 (g_sS86,1); break;
  case 93:  MyCreateItemOnObjectA0_P0 ("recipeforclockof"); break;
  case 94:  MyCreateItemOnObjectA0_P0 ("ats_s_w902_n_cop"); break;
  case 95:  MyCreateItemOnObjectA0_P0 ("hc_thunder"); break;
  case 96:  MyCreateItemOnObjectA0_P0 ("hc_tangle"); break;
  case 97: case 98: case 99: case 100:
  case 101: case 102: case 103: case 104:  MyCreateItemOnObjectA0_P0 ("foodration"); break;
  }
}

void CI_rr_trade_items ()
{
  switch (Random (54))
  {
  case 0:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_ada",1,4); break;
  case 1:  MyCreateItemOnObjectA0_P0 ("ats_r_bee1_n_wax"); break;
  case 2:  MyCreateItemOnObjectA0_P0 ("broiledspicygree"); break;
  case 3:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_bro",1,4); break;
  case 4:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_cop",1,4); break;
  case 5:  MyCreateItemOnObjectA0_P0 ("ats_c_l002_n_llh"); break;
  case 6:  MyCreateItemOnObjectA0_P0 ("ats_c_l001_n_llh"); break;
  case 7:  MyCreateItemOnObjectA0_P0 ("ats_c_l003_n_llh"); break;
  case 8:  MyCreateItemOnObjectA0_P0 ("ats_c_l002_n_mlh"); break;
  case 9:  MyCreateItemOnObjectA0_P0 ("ats_c_l001_n_mlh"); break;
  case 10:  MyCreateItemOnObjectA0_P0 ("ats_c_l003_n_mlh"); break;
  case 11:  MyCreateItemOnObjectA0_P0 ("ats_c_l002_n_slh"); break;
  case 12:  MyCreateItemOnObjectA0_P0 ("ats_c_l001_n_slh"); break;
  case 13:  MyCreateItemOnObjectA0_P0 ("ats_c_l003_n_slh"); break;
  case 14:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_gol",1,4); break;
  case 15:  MyCreateItemOnObjectA0_P0 ("ats_c_l202_n_llh"); break;
  case 16:  MyCreateItemOnObjectA0_P0 ("ats_c_l201_n_llh"); break;
  case 17:  MyCreateItemOnObjectA0_P0 ("ats_c_l203_n_llh"); break;
  case 18:  MyCreateItemOnObjectA0_P0 ("ats_c_l202_n_mlh"); break;
  case 19:  MyCreateItemOnObjectA0_P0 ("ats_c_l201_n_mlh"); break;
  case 20:  MyCreateItemOnObjectA0_P0 ("ats_c_l203_n_mlh"); break;
  case 21:  MyCreateItemOnObjectA0_P0 ("ats_c_l202_n_slh"); break;
  case 22:  MyCreateItemOnObjectA0_P0 ("ats_c_l201_n_slh"); break;
  case 23:  MyCreateItemOnObjectA0_P0 ("ats_c_l203_n_slh"); break;
  case 24:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_iro",1,4); break;
  case 25:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_mit",1,4); break;
  case 26:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_myr",1,4); break;
  case 27:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_rub",1,4); break;
  case 28:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_bla",1,4); break;
  case 29:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_sil",1,4); break;
  case 30:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_sye",1,4); break;
  case 31:  MyCreateItemOnObjectA2_P0 ("ats_c_b001_n_ver",1,4); break;
  case 32:  MyCreateItemOnObjectA0_P0 ("ats_s_w902_n_cop"); break;
  case 33:  MyCreateItemOnObjectA0_P0 ("ats_s_w911_n_cop"); break;
  case 34:  MyCreateItemOnObjectA0_P0 ("ats_s_k102_n_cop"); break;
  case 35:  MyCreateItemOnObjectA0_P0 ("ats_s_k103_n_cop"); break;
  case 36:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_ame"); break;
  case 37:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_bsf"); break;
  case 38:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_dia"); break;
  case 39:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_eme"); break;
  case 40:  MyCreateItemOnObjectA0_P0 ("ats_c_g001_r_fop"); break;
  case 41:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_jde"); break;
  case 42:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_laz"); break;
  case 43:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_mal"); break;
  case 44:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_oyx"); break;
  case 45:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_opl"); break;
  case 46:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_prl"); break;
  case 47:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_rby"); break;
  case 48:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_sap"); break;
  case 49:  MyCreateItemOnObjectA0_P0 ("ats_r_gem0_n_trq"); break;
  case 50:  MyCreateItemOnObjectA0_P0 ("ats_r_cffa_n_pot"); break;
  case 51:  MyCreateItemOnObjectA0_P0 ("ats_r_cffc_n_pot"); break;
  case 52:  MyCreateItemOnObjectA0_P0 ("ats_r_cffe_n_pot"); break;
  case 53:  MyCreateItemOnObjectA0_P0 ("ats_r_cfff_n_pot"); break;
  }
}

void CI_rr_scrolls_5to7 ()
{
  switch (Random (39))
  {
  case 0:  { int n = 1 + Random (3); int i; for (i = 0; i < n; i++) CI_rr_scrolls_1to4(); } break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS78,603); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS78,509); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS78,607); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS78,610); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS78,502); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS78,507); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS78,707); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS78,704); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS78,501); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS78,503); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS78,608); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS78,504); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS78,708); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS78,601); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS78,602); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS79,701); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS78,508); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS78,612); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS78,613); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS78,505); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS78,511); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS78,512); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS78,513); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS78,611); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS78,506); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS78,705); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS78,604); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS78,702); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS78,706); break;
  case 30:  MyCreateItemOnObjectA0_P3 (g_sS79,501); break;
  case 31:  MyCreateItemOnObjectA0_P3 (g_sS79,702); break;
  case 32:  MyCreateItemOnObjectA0_P3 (g_sS78,609); break;
  case 33:  MyCreateItemOnObjectA0_P3 (g_sS78,701); break;
  case 34:  MyCreateItemOnObjectA0_P3 (g_sS78,510); break;
  case 35:  MyCreateItemOnObjectA0_P3 (g_sS78,605); break;
  case 36:  MyCreateItemOnObjectA0_P3 (g_sS78,703); break;
  case 37:  MyCreateItemOnObjectA0_P3 (g_sS78,614); break;
  case 38:  MyCreateItemOnObjectA0_P3 (g_sS78,606); break;
  }
}

void CI_rr_wands_stronger ()
{
  switch (Random (19))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS81,11); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS81,8); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS81,9); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS80,4); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS80,6); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS80,2); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS80,5); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS80,3); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS102,2); break;
  case 9: case 10: case 11: case 12:
  case 13: case 14: case 15: case 16:
  case 17: case 18:  CI_rr_wands_rods_lower(); break;
  }
}

void CI_rr_med_weap_armor ()
{
  switch (Random (118))
  {
  case 0: case 1: case 2: case 3:
  case 4: case 5: case 6: case 7:
  case 8: case 9: case 10: case 11:
  case 12: case 13: case 14: case 15:
  case 16: case 17: case 18: case 19:  CI_rr_low_weap_armor(); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS0,64); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS0,68); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS0,69); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS0,59); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS0,74); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS0,67); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS0,71); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS0,72); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS0,75); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS0,65); break;
  case 30:  MyCreateItemOnObjectA0_P3 (g_sS0,66); break;
  case 31:  MyCreateItemOnObjectA0_P3 (g_sS0,58); break;
  case 32:  MyCreateItemOnObjectA0_P3 (g_sS0,37); break;
  case 33:  MyCreateItemOnObjectA0_P3 (g_sS0,70); break;
  case 34:  MyCreateItemOnObjectA0_P3 (g_sS0,73); break;
  case 35:  MyCreateItemOnObjectA0_P3 (g_sS73,8); break;
  case 36:  MyCreateItemOnObjectA0_P3 (g_sS75,8); break;
  case 37:  MyCreateItemOnObjectA0_P3 (g_sS77,8); break;
  case 38:  MyCreateItemOnObjectA2_P3 (g_sS103,3,1,30); break;
  case 39:  MyCreateItemOnObjectA2_P3 (g_sS103,1,1,30); break;
  case 40:  MyCreateItemOnObjectA2_P3 (g_sS103,2,1,30); break;
  case 41:  MyCreateItemOnObjectA2_P3 (g_sS103,5,1,30); break;
  case 42:  MyCreateItemOnObjectA2_P3 (g_sS103,6,1,30); break;
  case 43:  MyCreateItemOnObjectA2_P3 (g_sS103,7,1,30); break;
  case 44:  MyCreateItemOnObjectA2_P3 (g_sS103,4,1,30); break;
  case 45:  MyCreateItemOnObjectA2_P3 (g_sS103,8,1,30); break;
  case 46:  MyCreateItemOnObjectA2_P3 (g_sS104,5,1,30); break;
  case 47:  MyCreateItemOnObjectA2_P3 (g_sS104,1,1,30); break;
  case 48:  MyCreateItemOnObjectA2_P3 (g_sS104,2,1,30); break;
  case 49:  MyCreateItemOnObjectA2_P3 (g_sS104,4,1,30); break;
  case 50:  MyCreateItemOnObjectA2_P3 (g_sS104,6,1,30); break;
  case 51:  MyCreateItemOnObjectA2_P3 (g_sS104,3,1,30); break;
  case 52:  MyCreateItemOnObjectA2_P3 (g_sS104,7,1,30); break;
  case 53:  MyCreateItemOnObjectA2_P3 (g_sS105,2,1,30); break;
  case 54:  MyCreateItemOnObjectA2_P3 (g_sS105,4,1,30); break;
  case 55:  MyCreateItemOnObjectA2_P3 (g_sS105,3,1,30); break;
  case 56:  MyCreateItemOnObjectA2_P3 (g_sS105,5,1,30); break;
  case 57:  MyCreateItemOnObjectA2_P3 (g_sS105,1,1,30); break;
  case 58:  MyCreateItemOnObjectA2_P3 (g_sS105,6,1,30); break;
  case 59:  MyCreateItemOnObjectA2_P3 (g_sS105,7,1,30); break;
  case 60:  MyCreateItemOnObjectA0_P3 (g_sS3,9); break;
  case 61:  MyCreateItemOnObjectA0_P3 (g_sS3,8); break;
  case 62:  MyCreateItemOnObjectA0_P3 (g_sS9,9); break;
  case 63:  MyCreateItemOnObjectA0_P3 (g_sS11,8); break;
  case 64:  MyCreateItemOnObjectA0_P3 (g_sS13,11); break;
  case 65:  MyCreateItemOnObjectA0_P3 (g_sS13,9); break;
  case 66:  MyCreateItemOnObjectA0_P3 (g_sS15,9); break;
  case 67:  MyCreateItemOnObjectA0_P3 (g_sS15,10); break;
  case 68:  MyCreateItemOnObjectA0_P3 (g_sS21,8); break;
  case 69:  MyCreateItemOnObjectA0_P3 (g_sS17,10); break;
  case 70:  MyCreateItemOnObjectA0_P3 (g_sS19,10); break;
  case 71:  MyCreateItemOnObjectA0_P3 (g_sS21,10); break;
  case 72:  MyCreateItemOnObjectA0_P3 (g_sS17,8); break;
  case 73:  MyCreateItemOnObjectA0_P3 (g_sS23,8); break;
  case 74:  MyCreateItemOnObjectA0_P3 (g_sS23,9); break;
  case 75:  MyCreateItemOnObjectA0_P3 (g_sS25,10); break;
  case 76:  MyCreateItemOnObjectA0_P3 (g_sS25,8); break;
  case 77:  MyCreateItemOnObjectA0_P3 (g_sS29,8); break;
  case 78:  MyCreateItemOnObjectA0_P3 (g_sS27,10); break;
  case 79:  MyCreateItemOnObjectA0_P3 (g_sS29,10); break;
  case 80:  MyCreateItemOnObjectA0_P3 (g_sS27,8); break;
  case 81:  MyCreateItemOnObjectA0_P3 (g_sS31,10); break;
  case 82:  MyCreateItemOnObjectA0_P3 (g_sS33,9); break;
  case 83:  MyCreateItemOnObjectA0_P3 (g_sS31,8); break;
  case 84:  MyCreateItemOnObjectA0_P3 (g_sS33,11); break;
  case 85:  MyCreateItemOnObjectA0_P3 (g_sS35,11); break;
  case 86:  MyCreateItemOnObjectA0_P3 (g_sS35,9); break;
  case 87:  MyCreateItemOnObjectA0_P3 (g_sS101,8); break;
  case 88:  MyCreateItemOnObjectA0_P3 (g_sS101,10); break;
  case 89:  MyCreateItemOnObjectA0_P3 (g_sS101,2); break;
  case 90:  MyCreateItemOnObjectA0_P3 (g_sS106,1); break;
  case 91:  MyCreateItemOnObjectA0_P3 (g_sS37,10); break;
  case 92:  MyCreateItemOnObjectA0_P3 (g_sS39,10); break;
  case 93:  MyCreateItemOnObjectA0_P3 (g_sS37,8); break;
  case 94:  MyCreateItemOnObjectA0_P3 (g_sS41,8); break;
  case 95:  MyCreateItemOnObjectA0_P3 (g_sS43,10); break;
  case 96:  MyCreateItemOnObjectA0_P3 (g_sS43,8); break;
  case 97:  MyCreateItemOnObjectA0_P3 (g_sS49,8); break;
  case 98:  MyCreateItemOnObjectA0_P3 (g_sS45,8); break;
  case 99:  MyCreateItemOnObjectA0_P3 (g_sS47,8); break;
  case 100:  MyCreateItemOnObjectA0_P3 (g_sS47,8); break;
  case 101:  MyCreateItemOnObjectA0_P3 (g_sS49,10); break;
  case 102:  MyCreateItemOnObjectA0_P3 (g_sS55,8); break;
  case 103:  MyCreateItemOnObjectA0_P3 (g_sS51,10); break;
  case 104:  MyCreateItemOnObjectA0_P3 (g_sS51,8); break;
  case 105:  MyCreateItemOnObjectA0_P3 (g_sS53,10); break;
  case 106:  MyCreateItemOnObjectA0_P3 (g_sS53,8); break;
  case 107:  MyCreateItemOnObjectA0_P3 (g_sS55,10); break;
  case 108:  MyCreateItemOnObjectA0_P3 (g_sS57,8); break;
  case 109:  MyCreateItemOnObjectA0_P3 (g_sS59,8); break;
  case 110:  MyCreateItemOnObjectA0_P3 (g_sS60,11); break;
  case 111:  MyCreateItemOnObjectA0_P3 (g_sS60,8); break;
  case 112:  MyCreateItemOnObjectA0_P3 (g_sS62,11); break;
  case 113:  MyCreateItemOnObjectA0_P3 (g_sS62,8); break;
  case 114:  MyCreateItemOnObjectA0_P3 (g_sS65,9); break;
  case 115:  MyCreateItemOnObjectA2_P3 (g_sS66,8,1,10); break;
  case 116:  MyCreateItemOnObjectA2_P3 (g_sS69,8,1,10); break;
  case 117:  MyCreateItemOnObjectA2_P3 (g_sS71,8,1,10); break;
  }
}

void CI_rr_uniques ()
{
  switch (Random (8))
  {
  case 0:  {
  switch (Random (66))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS0,21); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS0,54); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS0,25); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS0,28); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS0,42); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS0,24); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS0,22); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS0,29); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS0,26); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS0,41); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS0,20); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS0,27); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS0,18); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS0,63); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS0,60); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS0,4); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS0,11); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS0,11); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS0,1); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS0,13); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS88,5); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS0,32); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS0,9); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS0,17); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS0,12); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS0,33); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS0,2); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS0,34); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS0,5); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS0,8); break;
  case 30:  MyCreateItemOnObjectA0_P3 (g_sS89,3); break;
  case 31:  MyCreateItemOnObjectA0_P3 (g_sS0,7); break;
  case 32:  MyCreateItemOnObjectA0_P3 (g_sS0,40); break;
  case 33:  MyCreateItemOnObjectA0_P3 (g_sS0,14); break;
  case 34:  MyCreateItemOnObjectA0_P3 (g_sS0,16); break;
  case 35:  MyCreateItemOnObjectA0_P3 (g_sS0,39); break;
  case 36:  MyCreateItemOnObjectA0_P3 (g_sS0,36); break;
  case 37:  MyCreateItemOnObjectA0_P3 (g_sS0,15); break;
  case 38:  MyCreateItemOnObjectA0_P3 (g_sS0,37); break;
  case 39:  MyCreateItemOnObjectA0_P3 (g_sS0,10); break;
  case 40:  MyCreateItemOnObjectA0_P3 (g_sS73,6); break;
  case 41:  MyCreateItemOnObjectA0_P3 (g_sS73,5); break;
  case 42:  MyCreateItemOnObjectA0_P3 (g_sS73,3); break;
  case 43:  MyCreateItemOnObjectA0_P3 (g_sS73,4); break;
  case 44:  MyCreateItemOnObjectA0_P3 (g_sS73,7); break;
  case 45:  MyCreateItemOnObjectA0_P3 (g_sS75,5); break;
  case 46:  MyCreateItemOnObjectA0_P3 (g_sS75,4); break;
  case 47:  MyCreateItemOnObjectA0_P3 (g_sS75,7); break;
  case 48:  MyCreateItemOnObjectA0_P3 (g_sS75,3); break;
  case 49:  MyCreateItemOnObjectA0_P3 (g_sS75,10); break;
  case 50:  MyCreateItemOnObjectA0_P3 (g_sS75,11); break;
  case 51:  MyCreateItemOnObjectA0_P3 (g_sS75,6); break;
  case 52:  MyCreateItemOnObjectA0_P3 (g_sS77,7); break;
  case 53:  MyCreateItemOnObjectA0_P3 (g_sS77,5); break;
  case 54:  MyCreateItemOnObjectA0_P3 (g_sS77,10); break;
  case 55:  MyCreateItemOnObjectA0_P3 (g_sS77,11); break;
  case 56:  MyCreateItemOnObjectA0_P3 (g_sS77,6); break;
  case 57:  MyCreateItemOnObjectA0_P3 (g_sS77,3); break;
  case 58:  MyCreateItemOnObjectA0_P3 (g_sS77,4); break;
  case 59:  MyCreateItemOnObjectA0_P3 (g_sS90,10); break;
  case 60:  MyCreateItemOnObjectA0_P3 (g_sS90,12); break;
  case 61:  MyCreateItemOnObjectA0_P3 (g_sS90,11); break;
  case 62:  MyCreateItemOnObjectA0_P3 (g_sS89,4); break;
  case 63:  MyCreateItemOnObjectA0_P3 (g_sS90,8); break;
  case 64:  MyCreateItemOnObjectA0_P3 (g_sS90,9); break;
  case 65:  MyCreateItemOnObjectA0_P3 (g_sS90,7); break;
  }

 } break;
  case 1:  {
  switch (Random (80))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS88,4); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS88,14); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS88,3); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS88,16); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS88,13); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS88,12); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS88,7); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS88,8); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS88,10); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS88,9); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS88,6); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS88,1); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS88,17); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS88,15); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS88,2); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS91,11); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS91,8); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS91,7); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS91,16); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS91,2); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS91,6); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS91,10); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS91,3); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS91,4); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS91,1); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS91,14); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS91,17); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS91,13); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS91,12); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS91,15); break;
  case 30:  MyCreateItemOnObjectA0_P3 (g_sS91,5); break;
  case 31:  MyCreateItemOnObjectA0_P3 (g_sS91,9); break;
  case 32:  MyCreateItemOnObjectA0_P3 (g_sS82,2); break;
  case 33:  MyCreateItemOnObjectA0_P3 (g_sS82,3); break;
  case 34:  MyCreateItemOnObjectA0_P3 (g_sS82,4); break;
  case 35:  MyCreateItemOnObjectA0_P3 (g_sS84,11); break;
  case 36:  MyCreateItemOnObjectA0_P3 (g_sS82,9); break;
  case 37:  MyCreateItemOnObjectA0_P3 (g_sS82,22); break;
  case 38:  MyCreateItemOnObjectA0_P3 (g_sS84,10); break;
  case 39:  MyCreateItemOnObjectA0_P3 (g_sS84,6); break;
  case 40:  MyCreateItemOnObjectA0_P3 (g_sS0,57); break;
  case 41:  MyCreateItemOnObjectA0_P3 (g_sS0,56); break;
  case 42:  MyCreateItemOnObjectA0_P3 (g_sS0,106); break;
  case 43:  MyCreateItemOnObjectA0_P3 (g_sS0,91); break;
  case 44:  MyCreateItemOnObjectA0_P3 (g_sS0,30); break;
  case 45:  MyCreateItemOnObjectA0_P3 (g_sS0,102); break;
  case 46:  MyCreateItemOnObjectA0_P3 (g_sS0,101); break;
  case 47:  MyCreateItemOnObjectA0_P3 (g_sS0,100); break;
  case 48:  MyCreateItemOnObjectA0_P3 (g_sS0,103); break;
  case 49:  MyCreateItemOnObjectA0_P3 (g_sS84,13); break;
  case 50:  MyCreateItemOnObjectA0_P3 (g_sS83,6); break;
  case 51:  MyCreateItemOnObjectA0_P3 (g_sS83,4); break;
  case 52:  MyCreateItemOnObjectA0_P3 (g_sS83,8); break;
  case 53:  MyCreateItemOnObjectA0_P3 (g_sS83,7); break;
  case 54:  MyCreateItemOnObjectA0_P3 (g_sS83,9); break;
  case 55:  MyCreateItemOnObjectA0_P3 (g_sS83,20); break;
  case 56:  MyCreateItemOnObjectA0_P3 (g_sS83,25); break;
  case 57:  MyCreateItemOnObjectA0_P3 (g_sS83,5); break;
  case 58:  MyCreateItemOnObjectA0_P3 (g_sS83,3); break;
  case 59:  MyCreateItemOnObjectA0_P3 (g_sS83,12); break;
  case 60:  MyCreateItemOnObjectA0_P3 (g_sS83,10); break;
  case 61:  MyCreateItemOnObjectA0_P3 (g_sS83,14); break;
  case 62:  MyCreateItemOnObjectA0_P3 (g_sS83,13); break;
  case 63:  MyCreateItemOnObjectA0_P3 (g_sS83,15); break;
  case 64:  MyCreateItemOnObjectA0_P3 (g_sS83,11); break;
  case 65:  MyCreateItemOnObjectA0_P3 (g_sS83,1); break;
  case 66:  MyCreateItemOnObjectA0_P3 (g_sS92,7); break;
  case 67:  MyCreateItemOnObjectA0_P3 (g_sS92,2); break;
  case 68:  MyCreateItemOnObjectA0_P3 (g_sS92,6); break;
  case 69:  MyCreateItemOnObjectA0_P3 (g_sS92,5); break;
  case 70:  MyCreateItemOnObjectA0_P3 (g_sS92,4); break;
  case 71:  MyCreateItemOnObjectA0_P3 (g_sS92,3); break;
  case 72:  MyCreateItemOnObjectA0_P3 (g_sS92,1); break;
  case 73:  MyCreateItemOnObjectA0_P3 (g_sS92,8); break;
  case 74:  MyCreateItemOnObjectA0_P3 (g_sS92,9); break;
  case 75:  MyCreateItemOnObjectA0_P3 (g_sS93,3); break;
  case 76:  MyCreateItemOnObjectA0_P3 (g_sS93,1); break;
  case 77:  MyCreateItemOnObjectA0_P3 (g_sS93,2); break;
  case 78:  MyCreateItemOnObjectA0_P3 (g_sS94,2); break;
  case 79:  MyCreateItemOnObjectA0_P3 (g_sS94,1); break;
  }

 } break;
  case 2:  {
  switch (Random (28))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS95,32); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS95,30); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS95,31); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS95,29); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS95,36); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS95,5); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS95,34); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS95,37); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS95,2); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS95,4); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS96,29); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS96,10); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS96,9); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS96,2); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS96,7); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS96,12); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS96,3); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS96,5); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS96,30); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS96,4); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS96,13); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS89,1); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS97,6); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS97,5); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS97,4); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS97,3); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS97,2); break;
  case 27:  MyCreateItemOnObjectA0_P2 (g_sS97,1); break;
  }

 } break;
  case 3:  {
  switch (Random (13))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS98,6); break;
  case 1:  MyCreateItemOnObjectA0_P2 (g_sS99,1); break;
  case 2:  MyCreateItemOnObjectA0_P2 (g_sS99,2); break;
  case 3:  MyCreateItemOnObjectA0_P2 (g_sS99,3); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS89,2); break;
  case 5:  MyCreateItemOnObjectA0_P0 ("hornofgoodnessev"); break;
  case 6:  MyCreateItemOnObjectA0_P0 ("pipesofthecellar"); break;
  case 7:  MyCreateItemOnObjectA0_P0 ("lanternofreveali"); break;
  case 8:  MyCreateItemOnObjectA0_P0 ("pipesofhaunting"); break;
  case 9:  MyCreateItemOnObjectA0_P0 ("oxwhistle"); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS100,2); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS100,3); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS100,1); break;
  }

 } break;
  case 4:  {
  switch (Random (47))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS3,4); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS3,6); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS3,3); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS3,5); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS5,5); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS5,3); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS5,6); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS5,4); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS7,3); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS7,5); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS7,6); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS7,4); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS89,6); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS9,4); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS9,7); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS9,6); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS9,5); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS9,3); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS11,3); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS11,4); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS11,7); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS11,6); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS13,4); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS13,3); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS13,5); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS89,9); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS13,6); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS15,5); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS89,7); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS15,6); break;
  case 30:  MyCreateItemOnObjectA0_P3 (g_sS15,7); break;
  case 31:  MyCreateItemOnObjectA0_P3 (g_sS15,4); break;
  case 32:  MyCreateItemOnObjectA0_P3 (g_sS19,4); break;
  case 33:  MyCreateItemOnObjectA0_P3 (g_sS17,7); break;
  case 34:  MyCreateItemOnObjectA0_P3 (g_sS19,6); break;
  case 35:  MyCreateItemOnObjectA0_P3 (g_sS17,4); break;
  case 36:  MyCreateItemOnObjectA0_P3 (g_sS17,5); break;
  case 37:  MyCreateItemOnObjectA0_P3 (g_sS21,6); break;
  case 38:  MyCreateItemOnObjectA0_P3 (g_sS17,6); break;
  case 39:  MyCreateItemOnObjectA0_P3 (g_sS19,5); break;
  case 40:  MyCreateItemOnObjectA0_P3 (g_sS19,7); break;
  case 41:  MyCreateItemOnObjectA0_P3 (g_sS21,5); break;
  case 42:  MyCreateItemOnObjectA0_P3 (g_sS21,4); break;
  case 43:  MyCreateItemOnObjectA0_P3 (g_sS21,7); break;
  case 44:  MyCreateItemOnObjectA0_P3 (g_sS23,5); break;
  case 45:  MyCreateItemOnObjectA0_P3 (g_sS23,4); break;
  case 46:  MyCreateItemOnObjectA0_P3 (g_sS23,6); break;
  }

 } break;
  case 5:  {
  switch (Random (16))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS25,12); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS25,6); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS25,4); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS27,4); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS27,5); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS29,6); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS29,5); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS31,4); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS31,6); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS35,6); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS35,4); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS35,5); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS101,3); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS101,6); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS101,7); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS101,4); break;
  }

 } break;
  case 6:  {
  switch (Random (35))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS41,3); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS37,4); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS41,6); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS43,7); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS43,5); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS39,7); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS37,6); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS37,3); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS41,7); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS41,5); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS49,4); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS49,3); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS47,5); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS45,6); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS45,4); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS45,7); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS47,3); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS47,7); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS45,5); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS47,6); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS49,5); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS49,6); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS45,3); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS51,3); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS55,7); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS55,5); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS53,4); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS51,6); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS55,4); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS53,5); break;
  case 30:  MyCreateItemOnObjectA0_P3 (g_sS53,3); break;
  case 31:  MyCreateItemOnObjectA0_P3 (g_sS55,6); break;
  case 32:  MyCreateItemOnObjectA0_P3 (g_sS51,7); break;
  case 33:  MyCreateItemOnObjectA0_P3 (g_sS53,6); break;
  case 34:  MyCreateItemOnObjectA0_P3 (g_sS51,4); break;
  }

 } break;
  case 7:  {
  switch (Random (24))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS57,3); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS59,3); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS57,4); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS59,7); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS59,4); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS59,6); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS57,7); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS57,6); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS59,5); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS60,4); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS60,7); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS60,5); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS60,3); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS62,3); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS62,6); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS62,7); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS62,4); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS62,5); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS65,7); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS65,4); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS65,6); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS65,3); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS65,5); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS65,8); break;
  }

 } break;
  }
}

void CI_rr_master_lewt_high ()
{
  if (Random (100) < 30)
  { MyCreateGold (8,75,1.00);  }
  if (Random (100) < 8)
  { { int n = 1 + Random (3); int i; for (i = 0; i < n; i++) {
  switch (Random (30))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS78,905); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS78,908); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS78,902); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS78,803); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS78,912); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS78,809); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS78,804); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS78,807); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS78,806); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS78,906); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS78,801); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS78,901); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS78,903); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS78,808); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS78,802); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS78,910); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS78,805); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS78,911); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS78,909); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS78,907); break;
  case 20: case 21: case 22: case 23:
  case 24: case 25: case 26: case 27:
  case 28: case 29:  { int n = 1 + Random (3); int i; for (i = 0; i < n; i++) CI_rr_scrolls_5to7(); } break;
  }

 } }  }
  if (Random (100) < 4)
  { {
  switch (Random (26))
  {
  case 0: case 1: case 2: case 3:
  case 4: case 5: case 6: case 7:
  case 8: case 9: case 10: case 11:
  case 12: case 13: case 14: case 15:
  case 16: case 17: case 18: case 19:  CI_rr_wands_stronger(); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS107,2); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS107,6); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS107,3); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS107,5); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS89,8); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS107,4); break;
  }

 }  }
  if (Random (100) < 15)
  { { int n = 1 + Random (3); int i; for (i = 0; i < n; i++) CI_rr_misc_lower(); }  }
  if (Random (100) < 8)
  { { int n = 1 + Random (6); int i; for (i = 0; i < n; i++) CI_rr_trade_items(); }  }
  if (Random (100) < 7)
  { { int n = 1 + Random (2); int i; for (i = 0; i < n; i++) {
  switch (Random (80))
  {
  case 0: case 1: case 2: case 3:
  case 4: case 5: case 6: case 7:
  case 8: case 9: case 10: case 11:
  case 12: case 13: case 14:  CI_rr_low_weap_armor(); break;
  case 15: case 16: case 17: case 18:
  case 19: case 20: case 21: case 22:
  case 23: case 24:  CI_rr_med_weap_armor(); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS0,76); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS0,80); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS0,81); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS0,81); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS0,62); break;
  case 30:  MyCreateItemOnObjectA0_P3 (g_sS0,86); break;
  case 31:  MyCreateItemOnObjectA0_P3 (g_sS0,79); break;
  case 32:  MyCreateItemOnObjectA0_P3 (g_sS0,83); break;
  case 33:  MyCreateItemOnObjectA0_P3 (g_sS0,84); break;
  case 34:  MyCreateItemOnObjectA0_P3 (g_sS0,87); break;
  case 35:  MyCreateItemOnObjectA0_P3 (g_sS0,77); break;
  case 36:  MyCreateItemOnObjectA0_P3 (g_sS0,78); break;
  case 37:  MyCreateItemOnObjectA0_P3 (g_sS0,61); break;
  case 38:  MyCreateItemOnObjectA0_P3 (g_sS0,82); break;
  case 39:  MyCreateItemOnObjectA0_P3 (g_sS0,85); break;
  case 40:  MyCreateItemOnObjectA0_P3 (g_sS73,9); break;
  case 41:  MyCreateItemOnObjectA0_P3 (g_sS75,9); break;
  case 42:  MyCreateItemOnObjectA0_P3 (g_sS77,9); break;
  case 43:  MyCreateItemOnObjectA0_P3 (g_sS3,11); break;
  case 44:  MyCreateItemOnObjectA0_P3 (g_sS3,10); break;
  case 45:  MyCreateItemOnObjectA0_P3 (g_sS5,11); break;
  case 46:  MyCreateItemOnObjectA0_P3 (g_sS5,9); break;
  case 47:  MyCreateItemOnObjectA0_P3 (g_sS7,11); break;
  case 48:  MyCreateItemOnObjectA0_P3 (g_sS7,9); break;
  case 49:  MyCreateItemOnObjectA0_P3 (g_sS9,10); break;
  case 50:  MyCreateItemOnObjectA0_P3 (g_sS11,9); break;
  case 51:  MyCreateItemOnObjectA0_P3 (g_sS13,12); break;
  case 52:  MyCreateItemOnObjectA0_P3 (g_sS13,10); break;
  case 53:  MyCreateItemOnObjectA0_P3 (g_sS25,11); break;
  case 54:  MyCreateItemOnObjectA0_P3 (g_sS25,9); break;
  case 55:  MyCreateItemOnObjectA0_P3 (g_sS39,9); break;
  case 56:  MyCreateItemOnObjectA0_P3 (g_sS37,11); break;
  case 57:  MyCreateItemOnObjectA0_P3 (g_sS39,11); break;
  case 58:  MyCreateItemOnObjectA0_P3 (g_sS41,9); break;
  case 59:  MyCreateItemOnObjectA0_P3 (g_sS43,11); break;
  case 60:  MyCreateItemOnObjectA0_P3 (g_sS43,9); break;
  case 61:  MyCreateItemOnObjectA0_P3 (g_sS45,9); break;
  case 62:  MyCreateItemOnObjectA0_P3 (g_sS47,9); break;
  case 63:  MyCreateItemOnObjectA0_P3 (g_sS49,11); break;
  case 64:  MyCreateItemOnObjectA0_P3 (g_sS55,9); break;
  case 65:  MyCreateItemOnObjectA0_P3 (g_sS51,11); break;
  case 66:  MyCreateItemOnObjectA0_P3 (g_sS51,9); break;
  case 67:  MyCreateItemOnObjectA0_P3 (g_sS53,11); break;
  case 68:  MyCreateItemOnObjectA0_P3 (g_sS53,9); break;
  case 69:  MyCreateItemOnObjectA0_P3 (g_sS55,11); break;
  case 70:  MyCreateItemOnObjectA0_P3 (g_sS57,9); break;
  case 71:  MyCreateItemOnObjectA0_P3 (g_sS59,9); break;
  case 72:  MyCreateItemOnObjectA0_P3 (g_sS60,12); break;
  case 73:  MyCreateItemOnObjectA0_P3 (g_sS60,9); break;
  case 74:  MyCreateItemOnObjectA0_P3 (g_sS62,12); break;
  case 75:  MyCreateItemOnObjectA0_P3 (g_sS62,9); break;
  case 76:  MyCreateItemOnObjectA0_P3 (g_sS65,10); break;
  case 77:  MyCreateItemOnObjectA2_P3 (g_sS66,9,1,10); break;
  case 78:  MyCreateItemOnObjectA2_P3 (g_sS69,9,1,10); break;
  case 79:  MyCreateItemOnObjectA2_P3 (g_sS71,9,1,10); break;
  }

 } }  }
  if (Random (100) < 2)
  { CI_rr_uniques();  }
}

void CI_rr_master_lewt_med ()
{
  if (Random (100) < 30)
  { MyCreateGold (12,10,1.00);  }
  if (Random (100) < 6)
  { CI_rr_scrolls_5to7();  }
  if (Random (100) < 3)
  { CI_rr_wands_stronger();  }
  if (Random (100) < 3)
  { {
  switch (Random (39))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS91,20); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS91,18); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS91,19); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS91,16); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS91,15); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS82,16); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS82,12); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS82,13); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS82,7); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS82,8); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS82,20); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS82,21); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS84,8); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS84,9); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS84,4); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS84,5); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS0,105); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS0,89); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS0,90); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS0,101); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS0,98); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS0,100); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS0,99); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS84,13); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS83,6); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS83,4); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS83,8); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS83,7); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS83,9); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS83,18); break;
  case 30:  MyCreateItemOnObjectA0_P3 (g_sS83,19); break;
  case 31:  MyCreateItemOnObjectA0_P3 (g_sS83,23); break;
  case 32:  MyCreateItemOnObjectA0_P3 (g_sS83,24); break;
  case 33:  MyCreateItemOnObjectA0_P3 (g_sS83,28); break;
  case 34:  MyCreateItemOnObjectA0_P3 (g_sS83,29); break;
  case 35:  MyCreateItemOnObjectA0_P3 (g_sS83,5); break;
  case 36:  MyCreateItemOnObjectA0_P3 (g_sS83,3); break;
  case 37:  MyCreateItemOnObjectA0_P3 (g_sS84,12); break;
  case 38:  CI_rr_master_lewt_high(); break;
  }

 }  }
  if (Random (100) < 3)
  { {
  switch (Random (39))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS95,13); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS95,14); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS95,36); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS95,32); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS95,30); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS95,31); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS95,29); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS95,5); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS95,26); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS95,27); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS95,23); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS95,33); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS95,3); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS95,9); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS95,10); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS95,17); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS95,18); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS96,29); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS96,15); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS96,16); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS96,2); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS96,26); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS96,27); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS96,7); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS96,12); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS96,3); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS96,30); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS96,18); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS96,19); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS96,32); break;
  case 30: case 31: case 32:  MyCreateItemOnObjectA0_P3 (g_sS96,21); break;
  case 33: case 34: case 35:  MyCreateItemOnObjectA0_P3 (g_sS96,23); break;
  case 36: case 37: case 38:  MyCreateItemOnObjectA0_P3 (g_sS96,22); break;
  }

 }  }
  if (Random (100) < 5)
  { { int n = 1 + Random (4); int i; for (i = 0; i < n; i++) CI_rr_trade_items(); }  }
  if (Random (100) < 4)
  { { int n = 1 + Random (2); int i; for (i = 0; i < n; i++) CI_rr_misc_lower(); }  }
  if (Random (100) < 5)
  { CI_rr_med_weap_armor();  }
  if (Random (100) < 1)
  { CI_rr_uniques();  }
}

void CI_rr_master_lewt_low ()
{
  if (Random (100) < 30)
  { MyCreateGold (3,6,1.00);  }
  if (Random (100) < 5)
  { CI_rr_low_weap_armor();  }
  if (Random (100) < 2)
  { { int n = 1 + Random (3); int i; for (i = 0; i < n; i++) {
  switch (Random (85))
  {
  case 0:  MyCreateItemOnObjectA0_P3 (g_sS84,7); break;
  case 1:  MyCreateItemOnObjectA0_P3 (g_sS84,3); break;
  case 2:  MyCreateItemOnObjectA0_P3 (g_sS95,1); break;
  case 3:  MyCreateItemOnObjectA0_P3 (g_sS95,12); break;
  case 4:  MyCreateItemOnObjectA0_P3 (g_sS95,24); break;
  case 5:  MyCreateItemOnObjectA0_P3 (g_sS95,25); break;
  case 6:  MyCreateItemOnObjectA0_P3 (g_sS95,20); break;
  case 7:  MyCreateItemOnObjectA0_P3 (g_sS95,22); break;
  case 8:  MyCreateItemOnObjectA0_P3 (g_sS95,23); break;
  case 9:  MyCreateItemOnObjectA0_P3 (g_sS95,35); break;
  case 10:  MyCreateItemOnObjectA0_P3 (g_sS95,7); break;
  case 11:  MyCreateItemOnObjectA0_P3 (g_sS95,8); break;
  case 12:  MyCreateItemOnObjectA0_P3 (g_sS95,6); break;
  case 13:  MyCreateItemOnObjectA0_P3 (g_sS95,16); break;
  case 14:  MyCreateItemOnObjectA0_P3 (g_sS95,21); break;
  case 15:  MyCreateItemOnObjectA0_P3 (g_sS96,21); break;
  case 16:  MyCreateItemOnObjectA0_P3 (g_sS96,23); break;
  case 17:  MyCreateItemOnObjectA0_P3 (g_sS96,29); break;
  case 18:  MyCreateItemOnObjectA0_P3 (g_sS96,6); break;
  case 19:  MyCreateItemOnObjectA0_P3 (g_sS96,14); break;
  case 20:  MyCreateItemOnObjectA0_P3 (g_sS96,9); break;
  case 21:  MyCreateItemOnObjectA0_P3 (g_sS96,24); break;
  case 22:  MyCreateItemOnObjectA0_P3 (g_sS96,25); break;
  case 23:  MyCreateItemOnObjectA0_P3 (g_sS96,3); break;
  case 24:  MyCreateItemOnObjectA0_P3 (g_sS96,11); break;
  case 25:  MyCreateItemOnObjectA0_P3 (g_sS96,1); break;
  case 26:  MyCreateItemOnObjectA0_P3 (g_sS96,8); break;
  case 27:  MyCreateItemOnObjectA0_P3 (g_sS96,31); break;
  case 28:  MyCreateItemOnObjectA0_P3 (g_sS96,22); break;
  case 29:  MyCreateItemOnObjectA0_P3 (g_sS98,6); break;
  case 30:  MyCreateItemOnObjectA0_P3 (g_sS108,2); break;
  case 31:  MyCreateItemOnObjectA0_P3 (g_sS108,1); break;
  case 32:  MyCreateItemOnObjectA0_P3 (g_sS108,3); break;
  case 33:  MyCreateItemOnObjectA0_P3 (g_sS98,2); break;
  case 34:  MyCreateItemOnObjectA0_P3 (g_sS109,16); break;
  case 35:  MyCreateItemOnObjectA0_P3 (g_sS109,6); break;
  case 36:  MyCreateItemOnObjectA0_P3 (g_sS109,9); break;
  case 37:  MyCreateItemOnObjectA0_P3 (g_sS109,15); break;
  case 38:  MyCreateItemOnObjectA0_P3 (g_sS109,14); break;
  case 39:  MyCreateItemOnObjectA0_P3 (g_sS109,7); break;
  case 40:  MyCreateItemOnObjectA0_P3 (g_sS109,10); break;
  case 41:  MyCreateItemOnObjectA0_P3 (g_sS109,13); break;
  case 42:  MyCreateItemOnObjectA0_P3 (g_sS109,17); break;
  case 43:  MyCreateItemOnObjectA0_P3 (g_sS109,12); break;
  case 44:  MyCreateItemOnObjectA0_P3 (g_sS109,8); break;
  case 45:  MyCreateItemOnObjectA0_P3 (g_sS109,11); break;
  case 46:  MyCreateItemOnObjectA0_P3 (g_sS109,19); break;
  case 47:  MyCreateItemOnObjectA0_P3 (g_sS109,18); break;
  case 48:  MyCreateItemOnObjectA0_P3 (g_sS110,22); break;
  case 49:  MyCreateItemOnObjectA0_P3 (g_sS110,23); break;
  case 50:  MyCreateItemOnObjectA0_P3 (g_sS110,24); break;
  case 51:  MyCreateItemOnObjectA0_P3 (g_sS111,25); break;
  case 52:  CI_rr_master_lewt_med(); break;
  case 53: case 54: case 55: case 56:
  case 57: case 58: case 59: case 60:
  case 61: case 62: case 63: case 64:
  case 65: case 66: case 67: case 68:
  case 69: case 70: case 71: case 72:
  case 73: case 74: case 75: case 76:
  case 77: case 78: case 79: case 80:
  case 81: case 82: case 83: case 84:  CI_rr_misc_lower(); break;
  }

 } }  }
  if (Random (100) < 5)
  { { int n = 1 + Random (2); int i; for (i = 0; i < n; i++) CI_rr_trade_items(); }  }
  if (Random (100) < 5)
  { CI_rr_scrolls_1to4();  }
  if (Random (100) < 1)
  { CI_rr_wands_rods_lower();  }
}

void CI_rr_master_lewt ()
{
  switch (GetLevelRange (GetHitDice (g_oA) + g_nM))
  {
  case 1:  CI_rr_master_lewt_low(); break;
  case 2:  CI_rr_master_lewt_low(); break;
  case 3:  CI_rr_master_lewt_med(); break;
  case 4:  CI_rr_master_lewt_med(); break;
  case 5:  CI_rr_master_lewt_med(); break;
  case 6:  CI_rr_master_lewt_high(); break;
  }
}

void CT_rr_misc_lower (object oA, object oT)
{
  g_nM = 0; g_nS = 0;
  if (!InitializeGenerateTreasure (oA, oT))
    return;
  CI_rr_misc_lower ();
}

void CT_rr_uniques (object oA, object oT)
{
  g_nM = 0; g_nS = 0;
  if (!InitializeGenerateTreasure (oA, oT))
    return;
  CI_rr_uniques ();
}

void CT_rr_master_lewt_high (object oA, object oT)
{
  g_nM = 0; g_nS = 0;
  if (!InitializeGenerateTreasure (oA, oT))
    return;
  CI_rr_master_lewt_high ();
}

void CT_rr_master_lewt_med (object oA, object oT)
{
  g_nM = 0; g_nS = 0;
  if (!InitializeGenerateTreasure (oA, oT))
    return;
  CI_rr_master_lewt_med ();
}

void CT_rr_master_lewt_low (object oA, object oT)
{
  g_nM = 0; g_nS = 0;
  if (!InitializeGenerateTreasure (oA, oT))
    return;
  CI_rr_master_lewt_low ();
}

void CT_rr_master_lewt (object oA, object oT)
{
  g_nM = 0; g_nS = 0;
  if (!InitializeGenerateTreasure (oA, oT))
    return;
  CI_rr_master_lewt ();
}



int TREASURE_LOW = 1;
int TREASURE_MEDIUM = 2;
int TREASURE_HIGH = 3;
int TREASURE_BOSS = 4;
int TREASURE_BOOK = 5;
int TREASURE_FEAT = 11;
int TREASURE_NPC_LOW = 12;
int TREASURE_NPC_MEDIUM = 13;
int TREASURE_NPC_HIGH = 14;
int TREASURE_NPC_BOSS = 15;
int TREASURE_NONE = 16;
int TREASURE_U_RR_MISC_LOWER = 105;
int TREASURE_U_RR_UNIQUES = 150;
int TREASURE_U_RR_MASTER_LEWT_HIGH = 102;
int TREASURE_U_RR_MASTER_LEWT_MED = 101;
int TREASURE_U_RR_MASTER_LEWT_LOW = 100;
int TREASURE_U_RR_MASTER_LEWT = 110;


void GenerateTreasure (int nType, object oA, object oT)
{
  switch (nType)
  {
    case 105: CT_rr_misc_lower (oA, oT); break;
    case 150: CT_rr_uniques (oA, oT); break;
    case 102: CT_rr_master_lewt_high (oA, oT); break;
    case 101: CT_rr_master_lewt_med (oA, oT); break;
    case 100: CT_rr_master_lewt_low (oA, oT); break;
    case 110: CT_rr_master_lewt (oA, oT); break;
  }
}

int TreasureTableNameToNumber (string sName)
{
  string s = GetStringLowerCase (sName);
  if (s == "rr_misc_lower") return 105;
  if (s == "rr_uniques") return 150;
  if (s == "rr_master_lewt_high") return 102;
  if (s == "rr_master_lewt_med") return 101;
  if (s == "rr_master_lewt_low") return 100;
  if (s == "rr_master_lewt") return 110;
  return -1;
}

void GenerateNPCTreasure (int nType = 1, object oT = OBJECT_SELF, object oA = OBJECT_SELF)
{
  switch (nType)
  {
    case 1: GenerateTreasure (TREASURE_NPC_LOW, oA, oT); break;
    case 2: GenerateTreasure (TREASURE_NPC_MEDIUM, oA, oT); break;
    case 3: GenerateTreasure (TREASURE_NPC_HIGH, oA, oT); break;
    case 4: GenerateTreasure (TREASURE_NPC_BOSS, oA, oT); break;
  }
}

//::///////////////////////////////////////////////////////////////////////////
//::
//:: **** BEGIN BIOWARE CODE ****
//::
//:: Copyright (c) 2001-2002 Bioware Corp.
//::
//::///////////////////////////////////////////////////////////////////////////

// * Returns the object that either last opened the container or destroyed it

object GetLastOpener()
{
    if (GetIsObjectValid(GetLastOpenedBy()) == TRUE)
    {
        dbSpeak("LastOpener: GetLastOpenedBy " + GetTag(GetLastOpenedBy()));
        return GetLastOpenedBy();
    }
    else
    if (GetIsObjectValid(GetLastKiller()) == TRUE)
    {
        dbSpeak("LastOpener: GetLastAttacker");
        return GetLastKiller();
    }
    dbSpeak("LastOpener: The Object is Invalid you weenie!");
    return OBJECT_INVALID;
}

// * Container shouts if disturbed
void ShoutDisturbed()
{
    if (GetIsDead(OBJECT_SELF) == TRUE)
    {
        object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE,
            GetLocation(OBJECT_SELF), TRUE, OBJECT_TYPE_CREATURE);
        //Cycle through the targets within the spell shape until an invalid object is captured.
        while (GetIsObjectValid(oTarget))
        {
            if (GetFactionEqual(oTarget, OBJECT_SELF) == TRUE)
            {
                // * Make anyone who is a member of my faction hostile if I am violated
                object oAttacker = GetLastAttacker();
                SetIsTemporaryEnemy(oAttacker,oTarget);
                AssignCommand(oTarget, ActionAttack(oAttacker));
            }
            oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE,
                GetLocation(OBJECT_SELF), TRUE, OBJECT_TYPE_CREATURE);
        }
    }
    else (GetIsOpen(OBJECT_SELF) == TRUE);
    {
        object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE,
            GetLocation(OBJECT_SELF), TRUE, OBJECT_TYPE_CREATURE);
        //Cycle through the targets within the spell shape until an invalid object is captured.
        while (GetIsObjectValid(oTarget))
        {
            if (GetFactionEqual(oTarget, OBJECT_SELF) == TRUE)
            {
                // * Make anyone who is a member of my faction hostile if I am violated
                object oAttacker = GetLastOpener();
                SetIsTemporaryEnemy(oAttacker,oTarget);
                AssignCommand(oTarget, ActionAttack(oAttacker));

            }
            oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE,
                GetLocation(OBJECT_SELF), TRUE, OBJECT_TYPE_CREATURE);
        }
    }
}

void GenerateLowTreasure(object oLastOpener, object oCreateOn=OBJECT_INVALID)
{
    GenerateTreasure(TREASURE_LOW, oLastOpener, oCreateOn);
}
void GenerateMediumTreasure(object oLastOpener, object oCreateOn=OBJECT_INVALID)
{
    GenerateTreasure(TREASURE_MEDIUM, oLastOpener, oCreateOn);
}
void GenerateHighTreasure(object oLastOpener, object oCreateOn=OBJECT_INVALID)
{
    GenerateTreasure(TREASURE_HIGH, oLastOpener, oCreateOn);
}
void GenerateBossTreasure(object oLastOpener, object oCreateOn=OBJECT_INVALID)
{
    GenerateTreasure(TREASURE_BOSS, oLastOpener, oCreateOn);
}
void GenerateBookTreasure(object oLastOpener, object oCreateOn=OBJECT_INVALID)
{
    GenerateTreasure(TREASURE_BOOK, oLastOpener, oCreateOn);
}

//::///////////////////////////////////////////////////////////////////////////
//::
//:: **** END BIOWARE CODE ****
//::
//:: Copyright (c) 2001-2002 Bioware Corp.
//::
//::///////////////////////////////////////////////////////////////////////////