示例#1
0
        static _DATA_TYPE_ GetDataFromCSVTable <_DATA_TYPE_>(IRogueUI ui, CSVTable table, Func <CSVLine, _DATA_TYPE_> fn, IDs skillID)
        {
            // get line for id in table.
            CSVLine line = FindLineForModel(table, skillID);

            if (line == null)
            {
                throw new InvalidOperationException(String.Format("skill {0} not found", skillID.ToString()));
            }

            // get data from line.
            _DATA_TYPE_ data;

            try
            {
                data = fn(line);
            }
            catch (Exception e)
            {
                throw new InvalidOperationException(String.Format("invalid data format for skill {0}; exception : {1}", skillID.ToString(), e.ToString()));
            }

            // ok.
            return(data);
        }
示例#2
0
        static bool LoadDataFromCSV <_DATA_TYPE_>(IRogueUI ui, string path, string kind, int fieldsCount, Func <CSVLine, _DATA_TYPE_> fn, IDs[] idsToRead, out _DATA_TYPE_[] data)
        {
            //////////////////////////
            // Read & parse csv file.
            //////////////////////////
            Notify(ui, kind, "loading file...");
            // read the whole file.
            List <string> allLines     = new List <string>();
            bool          ignoreHeader = true;

            using (StreamReader reader = File.OpenText(path))
            {
                while (!reader.EndOfStream)
                {
                    string inLine = reader.ReadLine();
                    if (ignoreHeader)
                    {
                        ignoreHeader = false;
                        continue;
                    }
                    allLines.Add(inLine);
                }
                reader.Close();
            }
            // parse all the lines read.
            Notify(ui, kind, "parsing CSV...");
            CSVParser parser = new CSVParser();
            CSVTable  table  = parser.ParseToTable(allLines.ToArray(), fieldsCount);

            /////////////
            // Set data.
            /////////////
            Notify(ui, kind, "reading data...");

            data = new _DATA_TYPE_[idsToRead.Length];
            for (int i = 0; i < idsToRead.Length; i++)
            {
                data[i] = GetDataFromCSVTable <_DATA_TYPE_>(ui, table, fn, idsToRead[i]);
            }

            //////////////
            // all fine.
            /////////////
            Notify(ui, kind, "done!");
            return(true);
        }
示例#3
0
 public void Draw(IRogueUI ui, int freshMessagesTurn, int gx, int gy)
 {
     for (int index = 0; index < m_Messages.Count; ++index)
     {
         Message message = m_Messages[index];
         int     alpha   = Math.Max(64, (int)byte.MaxValue - m_FadeoutFactor * (m_Messages.Count - 1 - index));
         Color   color   = Color.FromArgb(alpha, message.Color);
         if (message.Turn >= freshMessagesTurn)
         {
             ui.UI_DrawStringBold(color, message.Text, gx, gy, new Color?());
         }
         else
         {
             ui.UI_DrawString(color, message.Text, gx, gy, new Color?());
         }
         gy += m_LinesSpacing;
     }
 }
示例#4
0
        private static void LoadDataFromCSV <_DATA_TYPE_>(IRogueUI ui, string path, string kind, int fieldsCount, Func <CSVLine, _DATA_TYPE_> fn, Skills.IDs[] idsToRead, out _DATA_TYPE_[] data)
        {
#if DEBUG
            if (null == ui)
            {
                throw new ArgumentNullException(nameof(ui));
            }
            if (string.IsNullOrEmpty(path))
            {
                throw new ArgumentOutOfRangeException(nameof(path), path, "string.IsNullOrEmpty(path)");
            }
#endif
            Skills.Notify(ui, kind, "loading file...");
            List <string> stringList = new List <string>();
            bool          flag       = true;
            using (StreamReader streamReader = File.OpenText(path)) {
                while (!streamReader.EndOfStream)
                {
                    string str = streamReader.ReadLine();
                    if (flag)
                    {
                        flag = false;
                    }
                    else
                    {
                        stringList.Add(str);
                    }
                }
            }
            Notify(ui, kind, "parsing CSV...");
            CSVTable toTable = new CSVParser().ParseToTable(stringList.ToArray(), fieldsCount);
            Notify(ui, kind, "reading data...");
            data = new _DATA_TYPE_[idsToRead.Length];
            for (int index = 0; index < idsToRead.Length; ++index)
            {
                data[index] = toTable.GetDataFor <_DATA_TYPE_, Skills.IDs>(fn, idsToRead[index]);
            }
            Notify(ui, kind, "done!");
        }
示例#5
0
        public void Draw(IRogueUI ui, int freshMessagesTurn, int gx, int gy)
        {
            for (int i = 0; i < m_Messages.Count; i++)
            {
                Message msg = m_Messages[i];

                int   alpha       = Math.Max(64, 255 - m_FadeoutFactor * (m_Messages.Count - 1 - i));
                bool  isLatest    = (m_Messages[i].Turn >= freshMessagesTurn);
                Color dimmedColor = Color.FromArgb(alpha, msg.Color);

                if (isLatest)
                {
                    ui.UI_DrawStringBold(dimmedColor, msg.Text, gx, gy);
                }
                else
                {
                    ui.UI_DrawString(dimmedColor, msg.Text, gx, gy);
                }

                gy += m_LinesSpacing;
            }
        }
示例#6
0
        public static bool LoadSkillsFromCSV(IRogueUI ui, string path)
        {
            SkillData[] data;

            LoadDataFromCSV <SkillData>(ui, path, "skills", SkillData.COUNT_FIELDS, SkillData.FromCSVLine,
                                        new IDs[] { IDs.AGILE, IDs.AWAKE, IDs.BOWS, IDs.CARPENTRY, IDs.CHARISMATIC, IDs.FIREARMS, IDs.HARDY, IDs.HAULER,
                                                    IDs.HIGH_STAMINA, IDs.LEADERSHIP, IDs.LIGHT_EATER, IDs.LIGHT_FEET, IDs.LIGHT_SLEEPER, IDs.MARTIAL_ARTS, IDs.MEDIC,
                                                    IDs.NECROLOGY, IDs.STRONG, IDs.STRONG_PSYCHE, IDs.TOUGH, IDs.UNSUSPICIOUS,
                                                    IDs.Z_AGILE, IDs.Z_EATER, IDs.Z_GRAB, IDs.Z_INFECTOR, IDs.Z_LIGHT_EATER, IDs.Z_LIGHT_FEET, IDs.Z_STRONG, IDs.Z_TOUGH, IDs.Z_TRACKER },
                                        out data);

            // names.
            for (int i = (int)IDs._FIRST; i < (int)IDs._COUNT; i++)
            {
                s_Names[i] = data[i].NAME;
            }


            // then skills value.
            SkillData s;

            s = data[(int)IDs.AGILE];
            Rules.SKILL_AGILE_ATK_BONUS = (int)s.VALUE1;
            Rules.SKILL_AGILE_DEF_BONUS = (int)s.VALUE2;

            s = data[(int)IDs.AWAKE];
            Rules.SKILL_AWAKE_SLEEP_BONUS       = s.VALUE1;
            Rules.SKILL_AWAKE_SLEEP_REGEN_BONUS = s.VALUE2;

            s = data[(int)IDs.BOWS];
            Rules.SKILL_BOWS_ATK_BONUS = (int)s.VALUE1;
            Rules.SKILL_BOWS_DMG_BONUS = (int)s.VALUE2;

            s = data[(int)IDs.CARPENTRY];
            Rules.SKILL_CARPENTRY_BARRICADING_BONUS  = s.VALUE1;
            Rules.SKILL_CARPENTRY_LEVEL3_BUILD_BONUS = (int)s.VALUE2;

            s = data[(int)IDs.CHARISMATIC];
            Rules.SKILL_CHARISMATIC_TRUST_BONUS = (int)s.VALUE1;
            Rules.SKILL_CHARISMATIC_TRADE_BONUS = (int)s.VALUE2;

            s = data[(int)IDs.FIREARMS];
            Rules.SKILL_FIREARMS_ATK_BONUS = (int)s.VALUE1;
            Rules.SKILL_FIREARMS_DMG_BONUS = (int)s.VALUE2;

            s = data[(int)IDs.HARDY];
            Rules.SKILL_HARDY_HEAL_CHANCE_BONUS = (int)s.VALUE1;

            s = data[(int)IDs.HAULER];
            Rules.SKILL_HAULER_INV_BONUS = (int)s.VALUE1;

            s = data[(int)IDs.HIGH_STAMINA];
            Rules.SKILL_HIGH_STAMINA_STA_BONUS = (int)s.VALUE1;

            s = data[(int)IDs.LEADERSHIP];
            Rules.SKILL_LEADERSHIP_FOLLOWER_BONUS = (int)s.VALUE1;

            s = data[(int)IDs.LIGHT_EATER];
            Rules.SKILL_LIGHT_EATER_FOOD_BONUS    = s.VALUE1;
            Rules.SKILL_LIGHT_EATER_MAXFOOD_BONUS = s.VALUE2;

            s = data[(int)IDs.LIGHT_FEET];
            Rules.SKILL_LIGHT_FEET_TRAP_BONUS = (int)s.VALUE1;

            s = data[(int)IDs.LIGHT_SLEEPER];
            Rules.SKILL_LIGHT_SLEEPER_WAKEUP_CHANCE_BONUS = (int)s.VALUE1;

            s = data[(int)IDs.MARTIAL_ARTS];
            Rules.SKILL_MARTIAL_ARTS_ATK_BONUS    = (int)s.VALUE1;
            Rules.SKILL_MARTIAL_ARTS_DMG_BONUS    = (int)s.VALUE2;
            Rules.SKILL_MARTIAL_ARTS_DISARM_BONUS = (int)s.VALUE3;

            s = data[(int)IDs.MEDIC];
            Rules.SKILL_MEDIC_BONUS        = s.VALUE1;
            Rules.SKILL_MEDIC_REVIVE_BONUS = (int)s.VALUE2;

            s = data[(int)IDs.NECROLOGY];
            Rules.SKILL_NECROLOGY_UNDEAD_BONUS = (int)s.VALUE1;
            Rules.SKILL_NECROLOGY_CORPSE_BONUS = (int)s.VALUE2;

            s = data[(int)IDs.STRONG];
            Rules.SKILL_STRONG_DMG_BONUS   = (int)s.VALUE1;
            Rules.SKILL_STRONG_THROW_BONUS = (int)s.VALUE2;

            s = data[(int)IDs.STRONG_PSYCHE];
            Rules.SKILL_STRONG_PSYCHE_LEVEL_BONUS = s.VALUE1;

            s = data[(int)IDs.TOUGH];
            Rules.SKILL_TOUGH_HP_BONUS = (int)s.VALUE1;

            s = data[(int)IDs.UNSUSPICIOUS];
            Rules.SKILL_UNSUSPICIOUS_BONUS = (int)s.VALUE1;

            s = data[(int)IDs.Z_AGILE];
            Rules.SKILL_ZAGILE_ATK_BONUS = (int)s.VALUE1;
            Rules.SKILL_ZAGILE_DEF_BONUS = (int)s.VALUE2;

            s = data[(int)IDs.Z_EATER];
            Rules.SKILL_ZEATER_REGEN_BONUS = s.VALUE1;

            s = data[(int)IDs.Z_INFECTOR];
            Rules.SKILL_ZINFECTOR_BONUS = s.VALUE1;

            s = data[(int)IDs.Z_GRAB];
            Rules.SKILL_ZGRAB_CHANCE = (int)s.VALUE1;

            s = data[(int)IDs.Z_LIGHT_EATER];
            Rules.SKILL_ZLIGHT_EATER_FOOD_BONUS    = s.VALUE1;
            Rules.SKILL_ZLIGHT_EATER_MAXFOOD_BONUS = s.VALUE2;

            s = data[(int)IDs.Z_LIGHT_FEET];
            Rules.SKILL_ZLIGHT_FEET_TRAP_BONUS = (int)s.VALUE1;

            s = data[(int)IDs.Z_STRONG];
            Rules.SKILL_ZSTRONG_DMG_BONUS = (int)s.VALUE1;

            s = data[(int)IDs.Z_TOUGH];
            Rules.SKILL_ZTOUGH_HP_BONUS = (int)s.VALUE1;

            s = data[(int)IDs.Z_TRACKER];
            Rules.SKILL_ZTRACKER_SMELL_BONUS = s.VALUE1;

            return(true);
        }
示例#7
0
 static void Notify(IRogueUI ui, string what, string stage)
 {
     ui.UI_Clear(Color.Black);
     ui.UI_DrawStringBold(Color.White, "Loading " + what + " data : " + stage, 0, 0);
     ui.UI_Repaint();
 }
示例#8
0
        public static bool LoadSkillsFromCSV(IRogueUI ui, string path)
        {
#if DEBUG
            if (string.IsNullOrEmpty(path))
            {
                throw new ArgumentOutOfRangeException(nameof(path), path, "string.IsNullOrEmpty(path)");
            }
#endif
            Skills.LoadDataFromCSV <Skills.SkillData>(ui, path, "skills", SkillData.COUNT_FIELDS, new Func <CSVLine, SkillData>(Skills.SkillData.FromCSVLine), new Skills.IDs[(int)Skills.IDs._COUNT]
            {
                Skills.IDs.AGILE,
                Skills.IDs.AWAKE,
                Skills.IDs.BOWS,
                Skills.IDs.CARPENTRY,
                Skills.IDs.CHARISMATIC,
                Skills.IDs.FIREARMS,
                Skills.IDs.HARDY,
                Skills.IDs.HAULER,
                Skills.IDs.HIGH_STAMINA,
                Skills.IDs.LEADERSHIP,
                Skills.IDs.LIGHT_EATER,
                Skills.IDs.LIGHT_FEET,
                Skills.IDs.LIGHT_SLEEPER,
                Skills.IDs.MARTIAL_ARTS,
                Skills.IDs.MEDIC,
                Skills.IDs.NECROLOGY,
                Skills.IDs.STRONG,
                Skills.IDs.STRONG_PSYCHE,
                Skills.IDs.TOUGH,
                Skills.IDs.UNSUSPICIOUS,
                Skills.IDs.Z_AGILE,
                Skills.IDs.Z_EATER,
                Skills.IDs.Z_GRAB,
                Skills.IDs.Z_INFECTOR,
                Skills.IDs.Z_LIGHT_EATER,
                Skills.IDs.Z_LIGHT_FEET,
                Skills.IDs.Z_STRONG,
                Skills.IDs.Z_TOUGH,
                Skills.IDs.Z_TRACKER
            }, out SkillData[] data);
            for (int index = 0; index < (int)Skills.IDs._COUNT; ++index)
            {
                s_Names[index] = data[index].NAME;
            }
            SkillData skillData1 = data[0];
            Actor.SKILL_AGILE_ATK_BONUS = (int)skillData1.VALUE1;
            Rules.SKILL_AGILE_DEF_BONUS = (int)skillData1.VALUE2;
            skillData1 = data[1];
            Actor.SKILL_AWAKE_SLEEP_BONUS       = skillData1.VALUE1;
            Actor.SKILL_AWAKE_SLEEP_REGEN_BONUS = skillData1.VALUE2;
            skillData1 = data[2];
            Actor.SKILL_BOWS_ATK_BONUS = (int)skillData1.VALUE1;
            Actor.SKILL_BOWS_DMG_BONUS = (int)skillData1.VALUE2;
            skillData1 = data[3];
            Actor.SKILL_CARPENTRY_BARRICADING_BONUS  = skillData1.VALUE1;
            Actor.SKILL_CARPENTRY_LEVEL3_BUILD_BONUS = (int)skillData1.VALUE2;
            skillData1 = data[4];
            Actor.SKILL_CHARISMATIC_TRUST_BONUS = (int)skillData1.VALUE1;
            Actor.SKILL_CHARISMATIC_TRADE_BONUS = (int)skillData1.VALUE2;
            skillData1 = data[5];
            Actor.SKILL_FIREARMS_ATK_BONUS = (int)skillData1.VALUE1;
            Actor.SKILL_FIREARMS_DMG_BONUS = (int)skillData1.VALUE2;
            skillData1 = data[6];
            Actor.SKILL_HARDY_HEAL_CHANCE_BONUS = (int)skillData1.VALUE1;
            skillData1 = data[7];
            Actor.SKILL_HAULER_INV_BONUS = (int)skillData1.VALUE1;
            skillData1 = data[8];
            Actor.SKILL_HIGH_STAMINA_STA_BONUS = (int)skillData1.VALUE1;
            skillData1 = data[9];
            Actor.SKILL_LEADERSHIP_FOLLOWER_BONUS = (int)skillData1.VALUE1;
            skillData1 = data[10];
            Actor.SKILL_LIGHT_EATER_FOOD_BONUS    = skillData1.VALUE1;
            Actor.SKILL_LIGHT_EATER_MAXFOOD_BONUS = skillData1.VALUE2;
            SkillData skillData2 = data[11];
            Rules.SKILL_LIGHT_FEET_TRAP_BONUS = (int)skillData2.VALUE1;
            skillData2 = data[12];
            Actor.SKILL_LIGHT_SLEEPER_WAKEUP_CHANCE_BONUS = (int)skillData2.VALUE1;
            skillData2 = data[13];
            Actor.SKILL_MARTIAL_ARTS_ATK_BONUS = (int)skillData2.VALUE1;
            Actor.SKILL_MARTIAL_ARTS_DMG_BONUS = (int)skillData2.VALUE2;
            skillData2 = data[14];
            Actor.SKILL_MEDIC_BONUS        = skillData2.VALUE1;
            Actor.SKILL_MEDIC_REVIVE_BONUS = (int)skillData2.VALUE2;
            skillData2 = data[15];
            Actor.SKILL_NECROLOGY_UNDEAD_BONUS = (int)skillData2.VALUE1;
            Actor.SKILL_NECROLOGY_CORPSE_BONUS = (int)skillData2.VALUE2;
            skillData2 = data[16];
            Actor.SKILL_STRONG_DMG_BONUS   = (int)skillData2.VALUE1;
            Actor.SKILL_STRONG_THROW_BONUS = (int)skillData2.VALUE2;
            skillData2 = data[17];
            Actor.SKILL_STRONG_PSYCHE_LEVEL_BONUS = skillData2.VALUE1;
            Actor.SKILL_STRONG_PSYCHE_ENT_BONUS   = skillData2.VALUE2;
            skillData2 = data[18];
            Actor.SKILL_TOUGH_HP_BONUS = (int)skillData2.VALUE1;
            skillData2 = data[19];
            Actor.SKILL_UNSUSPICIOUS_BONUS = (int)skillData2.VALUE1;
            skillData2 = data[20];
            Actor.SKILL_ZAGILE_ATK_BONUS = (int)skillData2.VALUE1;
            Rules.SKILL_ZAGILE_DEF_BONUS = (int)skillData2.VALUE2;
            skillData2 = data[21];
            Actor.SKILL_ZEATER_REGEN_BONUS = skillData2.VALUE1;
            skillData2 = data[23];
            Actor.SKILL_ZINFECTOR_BONUS = skillData2.VALUE1;
            skillData2 = data[22];
            Rules.SKILL_ZGRAB_CHANCE = (int)skillData2.VALUE1;
            skillData2 = data[24];
            Actor.SKILL_ZLIGHT_EATER_FOOD_BONUS    = skillData2.VALUE1;
            Actor.SKILL_ZLIGHT_EATER_MAXFOOD_BONUS = skillData2.VALUE2;
            skillData2 = data[25];
            Rules.SKILL_ZLIGHT_FEET_TRAP_BONUS = (int)skillData2.VALUE1;
            skillData2 = data[26];
            Actor.SKILL_ZSTRONG_DMG_BONUS = (int)skillData2.VALUE1;
            skillData2 = data[27];
            Actor.SKILL_ZTOUGH_HP_BONUS = (int)skillData2.VALUE1;
            skillData2 = data[28];
            Actor.SKILL_ZTRACKER_SMELL_BONUS = skillData2.VALUE1;
            return(true);
        }
示例#9
0
 static void Notify(IRogueUI ui, string stage)
 {
     ui.UI_Clear(Color.Black);
     ui.UI_DrawStringBold(Color.White, "Loading resources: " + stage, 0, 0);
     ui.UI_Repaint();
 }
示例#10
0
        public static void LoadResources(IRogueUI ui)
        {
            #region Icons
            Notify(ui, "icons...");
            Load(ACTIVITY_CHASING);
            Load(ACTIVITY_CHASING_PLAYER);
            Load(ACTIVITY_TRACKING);
            Load(ACTIVITY_FLEEING);
            Load(ACTIVITY_FLEEING_FROM_EXPLOSIVE);
            Load(ACTIVITY_FOLLOWING);
            Load(ACTIVITY_FOLLOWING_ORDER);
            Load(ACTIVITY_FOLLOWING_PLAYER);
            Load(ACTIVITY_SLEEPING);

            Load(ICON_EXPIRED_FOOD);
            Load(ICON_TARGET);
            Load(ICON_MELEE_ATTACK);
            Load(ICON_MELEE_MISS);
            Load(ICON_MELEE_DAMAGE);
            Load(ICON_RANGED_ATTACK);
            Load(ICON_RANGED_DAMAGE);
            Load(ICON_RANGED_MISS);
            Load(ICON_KILLED);
            Load(ICON_LEADER);
            Load(ICON_RUNNING);
            Load(ICON_CANT_RUN);
            Load(ICON_CAN_TRADE);
            Load(ICON_OUT_OF_AMMO);
            Load(ICON_OUT_OF_BATTERIES);
            Load(ICON_SLEEP_ALMOST_SLEEPY);
            Load(ICON_SLEEP_SLEEPY);
            Load(ICON_SLEEP_EXHAUSTED);
            Load(ICON_SPOILED_FOOD);
            Load(ICON_FOOD_ALMOST_HUNGRY);
            Load(ICON_FOOD_HUNGRY);
            Load(ICON_FOOD_STARVING);
            Load(ICON_LINE_BAD);
            Load(ICON_LINE_BLOCKED);
            Load(ICON_LINE_CLEAR);
            Load(ICON_BLAST);
            Load(ICON_HEALING);
            Load(ICON_IS_TARGET);
            Load(ICON_IS_TARGETTED);
            Load(ICON_THREAT_DANGER);
            Load(ICON_THREAT_HIGH_DANGER);
            Load(ICON_THREAT_SAFE);
            Load(ICON_SCENT_LIVING);
            Load(ICON_SCENT_ZOMBIEMASTER);
            Load(ICON_SCENT_LIVING_SUPRESSOR);
            Load(ICON_SELF_DEFENCE);
            Load(ICON_INDIRECT_ENEMIES);
            Load(ICON_AGGRESSOR);
            Load(ICON_TRAP_ACTIVATED);
            Load(ICON_TRAP_TRIGGERED);
            Load(ICON_ROT_ALMOST_HUNGRY);
            Load(ICON_ROT_HUNGRY);
            Load(ICON_ROT_STARVING);
            Load(ICON_SANITY_INSANE);
            Load(ICON_SANITY_DISTURBED);
            Load(ICON_BORING_ITEM);
            #endregion

            #region Tiles
            Notify(ui, "tiles...");
            Load(TILE_FLOOR_ASPHALT);
            Load(TILE_FLOOR_CONCRETE);
            Load(TILE_FLOOR_GRASS);
            Load(TILE_FLOOR_OFFICE);
            Load(TILE_FLOOR_PLANKS);
            Load(TILE_FLOOR_SEWER_WATER);
            Load(TILE_FLOOR_SEWER_WATER_ANIM1);
            Load(TILE_FLOOR_SEWER_WATER_ANIM2);
            Load(TILE_FLOOR_SEWER_WATER_ANIM3);
            Load(TILE_FLOOR_SEWER_WATER_COVER);
            Load(TILE_FLOOR_TILES);
            Load(TILE_FLOOR_WALKWAY);

            Load(TILE_ROAD_ASPHALT_NS);
            Load(TILE_ROAD_ASPHALT_EW);
            Load(TILE_RAIL_ES);

            Load(TILE_WALL_BRICK);
            Load(TILE_WALL_CHAR_OFFICE);
            Load(TILE_WALL_HOSPITAL);
            Load(TILE_WALL_SEWER);
            Load(TILE_WALL_STONE);

            #endregion

            #region Tile decorations
            Notify(ui, "tile decorations...");
            Load(DECO_BLOODIED_FLOOR);
            Load(DECO_BLOODIED_WALL);
            Load(DECO_ZOMBIE_REMAINS);
            Load(DECO_VOMIT);

            Load(DECO_POSTERS1);
            Load(DECO_POSTERS2);
            Load(DECO_TAGS1);
            Load(DECO_TAGS2);
            Load(DECO_TAGS3);
            Load(DECO_TAGS4);
            Load(DECO_TAGS5);
            Load(DECO_TAGS6);
            Load(DECO_TAGS7);

            Load(DECO_SHOP_CONSTRUCTION);
            Load(DECO_SHOP_GENERAL_STORE);
            Load(DECO_SHOP_GROCERY);
            Load(DECO_SHOP_GUNSHOP);
            Load(DECO_SHOP_PHARMACY);
            Load(DECO_SHOP_SPORTSWEAR);
            Load(DECO_SHOP_HUNTING);

            Load(DECO_CHAR_OFFICE);
            Load(DECO_CHAR_FLOOR_LOGO);
            Load(DECO_CHAR_POSTER1);
            Load(DECO_CHAR_POSTER2);
            Load(DECO_CHAR_POSTER3);

            Load(DECO_PLAYER_TAG1);
            Load(DECO_PLAYER_TAG2);
            Load(DECO_PLAYER_TAG3);
            Load(DECO_PLAYER_TAG4);

            Load(DECO_ROGUEDJACK_TAG);

            Load(DECO_SEWER_LADDER);
            Load(DECO_SEWER_HOLE);
            Load(DECO_SEWERS_BUILDING);

            Load(DECO_SUBWAY_BUILDING);

            Load(DECO_STAIRS_DOWN);
            Load(DECO_STAIRS_UP);

            Load(DECO_POWER_SIGN_BIG);

            Load(DECO_POLICE_STATION);

            Load(DECO_HOSPITAL);
            #endregion

            #region Map objects
            Notify(ui, "map objects...");
            Load(OBJ_TREE);

            Load(OBJ_WOODEN_DOOR_CLOSED);
            Load(OBJ_WOODEN_DOOR_OPEN);
            Load(OBJ_WOODEN_DOOR_BROKEN);

            Load(OBJ_GLASS_DOOR_CLOSED);
            Load(OBJ_GLASS_DOOR_OPEN);
            Load(OBJ_GLASS_DOOR_BROKEN);

            Load(OBJ_CHAR_DOOR_BROKEN);
            Load(OBJ_CHAR_DOOR_CLOSED);
            Load(OBJ_CHAR_DOOR_OPEN);

            Load(OBJ_WINDOW_CLOSED);
            Load(OBJ_WINDOW_OPEN);
            Load(OBJ_WINDOW_BROKEN);

            Load(OBJ_BENCH);
            Load(OBJ_FENCE);

            Load(OBJ_CAR1);
            Load(OBJ_CAR2);
            Load(OBJ_CAR3);
            Load(OBJ_CAR4);

            Load(OBJ_SHOP_SHELF);
            Load(OBJ_BED);
            Load(OBJ_WARDROBE);
            Load(OBJ_TABLE);
            Load(OBJ_FRIDGE);
            Load(OBJ_DRAWER);
            Load(OBJ_CHAIR);
            Load(OBJ_NIGHT_TABLE);

            Load(OBJ_CHAR_CHAIR);
            Load(OBJ_CHAR_TABLE);

            Load(OBJ_IRON_BENCH);
            Load(OBJ_IRON_FENCE);
            Load(OBJ_IRON_DOOR_BROKEN);
            Load(OBJ_IRON_DOOR_CLOSED);
            Load(OBJ_IRON_DOOR_OPEN);

            Load(OBJ_BARRELS);
            Load(OBJ_JUNK);

            Load(OBJ_POWERGEN_OFF);
            Load(OBJ_POWERGEN_ON);

            Load(OBJ_GATE_CLOSED);
            Load(OBJ_GATE_OPEN);

            Load(OBJ_BOARD);

            Load(OBJ_SMALL_WOODEN_FORTIFICATION);
            Load(OBJ_LARGE_WOODEN_FORTIFICATION);

            Load(OBJ_HOSPITAL_BED);
            Load(OBJ_HOSPITAL_CHAIR);
            Load(OBJ_HOSPITAL_DOOR_BROKEN);
            Load(OBJ_HOSPITAL_DOOR_CLOSED);
            Load(OBJ_HOSPITAL_DOOR_OPEN);
            Load(OBJ_HOSPITAL_NIGHT_TABLE);
            Load(OBJ_HOSPITAL_WARDROBE);
            #endregion

            #region Actors
            Notify(ui, "actors...");
            Load(PLAYER_FOLLOWER);
            Load(PLAYER_FOLLOWER_TRUST);
            Load(PLAYER_FOLLOWER_BOND);

            Load(ACTOR_SKELETON);
            Load(ACTOR_RED_EYED_SKELETON);
            Load(ACTOR_RED_SKELETON);
            Load(ACTOR_ZOMBIE);
            Load(ACTOR_DARK_EYED_ZOMBIE);
            Load(ACTOR_DARK_ZOMBIE);
            Load(ACTOR_MALE_NEOPHYTE);
            Load(ACTOR_FEMALE_NEOPHYTE);
            Load(ACTOR_MALE_DISCIPLE);
            Load(ACTOR_FEMALE_DISCIPLE);
            Load(ACTOR_ZOMBIE_MASTER);
            Load(ACTOR_ZOMBIE_LORD);
            Load(ACTOR_ZOMBIE_PRINCE);
            Load(ACTOR_RAT_ZOMBIE);
            Load(ACTOR_SEWERS_THING);
            Load(ACTOR_JASON_MYERS);
            Load(ACTOR_BIG_BEAR);
            Load(ACTOR_FAMU_FATARU);
            Load(ACTOR_SANTAMAN);
            Load(ACTOR_ROGUEDJACK);
            Load(ACTOR_DUCKMAN);
            Load(ACTOR_HANS_VON_HANZ);
            #endregion

            #region Actor decorations
            Notify(ui, "actor decorations...");

            Load(BLOODIED);

            Load(MALE_SKIN1);
            Load(MALE_SKIN2);
            Load(MALE_SKIN3);
            Load(MALE_SKIN4);
            Load(MALE_SKIN5);
            Load(MALE_SHIRT1);
            Load(MALE_SHIRT2);
            Load(MALE_SHIRT3);
            Load(MALE_SHIRT4);
            Load(MALE_SHIRT5);
            Load(MALE_HAIR1);
            Load(MALE_HAIR2);
            Load(MALE_HAIR3);
            Load(MALE_HAIR4);
            Load(MALE_HAIR5);
            Load(MALE_HAIR6);
            Load(MALE_HAIR7);
            Load(MALE_HAIR8);
            Load(MALE_PANTS1);
            Load(MALE_PANTS2);
            Load(MALE_PANTS3);
            Load(MALE_PANTS4);
            Load(MALE_PANTS5);
            Load(MALE_SHOES1);
            Load(MALE_SHOES2);
            Load(MALE_SHOES3);
            Load(MALE_EYES1);
            Load(MALE_EYES2);
            Load(MALE_EYES3);
            Load(MALE_EYES4);
            Load(MALE_EYES5);
            Load(MALE_EYES6);

            Load(FEMALE_SKIN1);
            Load(FEMALE_SKIN2);
            Load(FEMALE_SKIN3);
            Load(FEMALE_SKIN4);
            Load(FEMALE_SKIN5);
            Load(FEMALE_SHIRT1);
            Load(FEMALE_SHIRT2);
            Load(FEMALE_SHIRT3);
            Load(FEMALE_SHIRT4);
            Load(FEMALE_HAIR1);
            Load(FEMALE_HAIR2);
            Load(FEMALE_HAIR3);
            Load(FEMALE_HAIR4);
            Load(FEMALE_HAIR5);
            Load(FEMALE_HAIR6);
            Load(FEMALE_HAIR7);
            Load(FEMALE_PANTS1);
            Load(FEMALE_PANTS2);
            Load(FEMALE_PANTS3);
            Load(FEMALE_PANTS4);
            Load(FEMALE_PANTS5);
            Load(FEMALE_SHOES1);
            Load(FEMALE_SHOES2);
            Load(FEMALE_SHOES3);
            Load(FEMALE_EYES1);
            Load(FEMALE_EYES2);
            Load(FEMALE_EYES3);
            Load(FEMALE_EYES4);
            Load(FEMALE_EYES5);
            Load(FEMALE_EYES6);

            Load(ARMY_HELMET);
            Load(ARMY_PANTS);
            Load(ARMY_SHIRT);
            Load(ARMY_SHOES);

            Load(BIKER_HAIR1);
            Load(BIKER_HAIR2);
            Load(BIKER_HAIR3);
            Load(BIKER_PANTS);
            Load(BIKER_SHOES);

            Load(GANGSTA_HAT);
            Load(GANGSTA_PANTS);
            Load(GANGSTA_SHIRT);

            Load(CHARGUARD_HAIR);
            Load(CHARGUARD_PANTS);

            Load(POLICE_HAT);
            Load(POLICE_PANTS);
            Load(POLICE_SHOES);
            Load(POLICE_UNIFORM);

            Load(BLACKOP_SUIT);

            Load(HOSPITAL_DOCTOR_UNIFORM);
            Load(HOSPITAL_NURSE_UNIFORM);
            Load(HOSPITAL_PATIENT_UNIFORM);

            Load(SURVIVOR_FEMALE_BANDANA);
            Load(SURVIVOR_MALE_BANDANA);

            Load(DOG_SKIN1);
            Load(DOG_SKIN2);
            Load(DOG_SKIN3);
            #endregion

            #region Items
            Notify(ui, "items...");
            Load(ITEM_SLOT);
            Load(ITEM_EQUIPPED);

            Load(ITEM_AMMO_BOLTS);
            Load(ITEM_AMMO_HEAVY_PISTOL);
            Load(ITEM_AMMO_HEAVY_RIFLE);
            Load(ITEM_AMMO_LIGHT_PISTOL);
            Load(ITEM_AMMO_LIGHT_RIFLE);
            Load(ITEM_AMMO_SHOTGUN);
            Load(ITEM_ARMY_BODYARMOR);
            Load(ITEM_ARMY_PISTOL);
            Load(ITEM_ARMY_RATION);
            Load(ITEM_ARMY_RIFLE);
            Load(ITEM_BANDAGES);
            Load(ITEM_BARBED_WIRE);
            Load(ITEM_BASEBALL_BAT);
            Load(ITEM_BEAR_TRAP);
            Load(ITEM_BIGBEAR_BAT);
            Load(ITEM_BIG_FLASHLIGHT);
            Load(ITEM_BIG_FLASHLIGHT_OUT);
            Load(ITEM_BLACKOPS_GPS);
            Load(ITEM_BOOK);
            Load(ITEM_CANNED_FOOD);
            Load(ITEM_CELL_PHONE);
            Load(ITEM_CHAR_LIGHT_BODYARMOR);
            Load(ITEM_COMBAT_KNIFE);
            Load(ITEM_CROWBAR);
            Load(ITEM_EMPTY_CAN);
            Load(ITEM_FAMU_FATARU_KATANA);
            Load(ITEM_FLASHLIGHT);
            Load(ITEM_FLASHLIGHT_OUT);
            Load(ITEM_FREE_ANGELS_JACKET);
            Load(ITEM_GOLF_CLUB);
            Load(ITEM_GRENADE);
            Load(ITEM_GRENADE_PRIMED);
            Load(ITEM_GROCERIES);
            Load(ITEM_HELLS_SOULS_JACKET);
            Load(ITEM_HUGE_HAMMER);
            Load(ITEM_HUNTER_VEST);
            Load(ITEM_HUNTING_CROSSBOW);
            Load(ITEM_HUNTING_RIFLE);
            Load(ITEM_IMPROVISED_CLUB);
            Load(ITEM_IMPROVISED_SPEAR);
            Load(ITEM_IRON_GOLF_CLUB);
            Load(ITEM_JASON_MYERS_AXE);
            Load(ITEM_HANS_VON_HANZ_PISTOL);
            Load(ITEM_KOLT_REVOLVER);
            Load(ITEM_MAGAZINE);
            Load(ITEM_MEDIKIT);
            Load(ITEM_PILLS_ANTIVIRAL);
            Load(ITEM_PILLS_BLUE);
            Load(ITEM_PILLS_GREEN);
            Load(ITEM_PILLS_SAN);
            Load(ITEM_PISTOL);
            Load(ITEM_POLICE_JACKET);
            Load(ITEM_POLICE_RADIO);
            Load(ITEM_POLICE_RIOT_ARMOR);
            Load(ITEM_PRECISION_RIFLE);
            Load(ITEM_ROGUEDJACK_KEYBOARD);
            Load(ITEM_SANTAMAN_SHOTGUN);
            Load(ITEM_SHOTGUN);
            Load(ITEM_SHOVEL);
            Load(ITEM_SMALL_HAMMER);
            Load(ITEM_SHORT_SHOVEL);
            Load(ITEM_SPIKES);
            Load(ITEM_SPRAYPAINT);
            Load(ITEM_SPRAYPAINT2);
            Load(ITEM_SPRAYPAINT3);
            Load(ITEM_SPRAYPAINT4);
            Load(ITEM_STENCH_KILLER);
            Load(ITEM_SUBWAY_BADGE);
            Load(ITEM_TRUNCHEON);
            Load(ITEM_WOODEN_PLANK);
            Load(ITEM_ZTRACKER);
            #endregion

            #region Effects
            Notify(ui, "effects...");

            Load(EFFECT_BARRICADED);
            Load(EFFECT_ONFIRE);
            #endregion

            #region Misc
            Notify(ui, "misc...");
            Load(UNDEF);
            Load(MAP_EXIT);
            Load(MINI_BLACKOPS_POSITION);
            Load(MINI_FOLLOWER_POSITION);
            Load(MINI_PLAYER_POSITION);
            Load(MINI_PLAYER_TAG1);
            Load(MINI_PLAYER_TAG2);
            Load(MINI_PLAYER_TAG3);
            Load(MINI_PLAYER_TAG4);
            Load(MINI_POLICE_POSITION);
            Load(MINI_UNDEAD_POSITION);
            Load(TRACK_BLACKOPS_POSITION);
            Load(TRACK_FOLLOWER_POSITION);
            Load(TRACK_POLICE_POSITION);
            Load(TRACK_UNDEAD_POSITION);
            Load(WEATHER_RAIN1);
            Load(WEATHER_RAIN2);
            Load(WEATHER_HEAVY_RAIN1);
            Load(WEATHER_HEAVY_RAIN2);
            Load(ROT1_1);
            Load(ROT1_2);
            Load(ROT2_1);
            Load(ROT2_2);
            Load(ROT3_1);
            Load(ROT3_2);
            Load(ROT4_1);
            Load(ROT4_2);
            Load(ROT5_1);
            Load(ROT5_2);
            Load(CORPSE_DRAGGED);
            #endregion

            Notify(ui, "done!");
        }