コード例 #1
0
        private void RemoveObjectRef(RoomObject obj)
        {
            string id = GetItemID(obj);

            RoomItemRefs.Remove(id);
            DesignItems.Remove(id);
        }
コード例 #2
0
        private void UpdateCharacterRef(Character c, string oldID)
        {
            if (!RoomItemRefs.ContainsKey(oldID))
            {
                return;
            }
            string newID = GetItemID(c);

            // If the new key is also present that means we are swapping two items
            if (RoomItemRefs.ContainsKey(newID))
            {
                var char2 = RoomItemRefs[newID];
                RoomItemRefs.Remove(newID);
                RoomItemRefs.Remove(oldID);
                RoomItemRefs.Add(newID, c);
                RoomItemRefs.Add(oldID, char2);
                // We must keep DesignTimeProperties!
                var char1Item = DesignItems[oldID];
                var char2Item = DesignItems[newID];
                DesignItems.Remove(newID);
                DesignItems.Remove(oldID);
                DesignItems.Add(newID, char1Item);
                DesignItems.Add(oldID, char2Item);
            }
            else
            {
                RoomItemRefs.Remove(oldID);
                RoomItemRefs.Add(newID, c);
                // We must keep DesignTimeProperties!
                DesignItems.Add(newID, DesignItems[oldID]);
                DesignItems.Remove(oldID);
            }
        }
コード例 #3
0
        private Character GetCharacter(int x, int y, RoomEditorState state)
        {
            foreach (Character character in _game.RootCharacterFolder.AllItemsFlat)
            {
                DesignTimeProperties p;
                if (!DesignItems.TryGetValue(GetItemID(character), out p))
                {
                    continue; // character is not in the room
                }
                if (!p.Visible || p.Locked)
                {
                    continue;
                }

                AgsView view = _game.FindViewByID(character.NormalView);

                if (view != null && view.Loops.Count > 0)
                {
                    if (HitTest(x, y, character, view))
                    {
                        return(character);
                    }
                }
            }
            return(null);
        }
コード例 #4
0
        private void RemoveCharacterRef(Character c)
        {
            string id = GetItemID(c);

            RoomItemRefs.Remove(id);
            DesignItems.Remove(id);
        }
コード例 #5
0
 private void AddObjectRef(RoomObject obj)
 {
     string id = GetItemID(obj);
     if (RoomItemRefs.ContainsKey(id))
         return;
     RoomItemRefs.Add(id, obj);
     DesignItems.Add(id, new DesignTimeProperties());
 }
コード例 #6
0
 private void InitGameEntities()
 {
     // Initialize item reference
     RoomItemRefs = InitItemRefs();
     // Initialize design-time properties
     // TODO: load last design settings
     DesignItems.Clear();
     foreach (var item in RoomItemRefs)
         DesignItems.Add(item.Key, new DesignTimeProperties());
 }
コード例 #7
0
        private void AddCharacterRef(Character c)
        {
            string id = GetItemID(c);

            if (RoomItemRefs.ContainsKey(id))
            {
                return;
            }
            RoomItemRefs.Add(id, c);
            DesignItems.Add(id, new DesignTimeProperties());
        }
コード例 #8
0
 public void PaintToHDC(IntPtr hdc, RoomEditorState state)
 {
     foreach (Character character in _game.RootCharacterFolder.AllItemsFlat)
     {
         DesignTimeProperties p;
         if (DesignItems.TryGetValue(GetItemID(character), out p) && p.Visible)
         {
             DrawCharacter(character, state);
         }
     }
 }
コード例 #9
0
 private void UpdateObjectRef(RoomObject obj, string oldID)
 {
     if (!RoomItemRefs.ContainsKey(oldID))
         return;
     string newID = GetItemID(obj);
     RoomItemRefs.Remove(oldID);
     RoomItemRefs.Add(newID, obj);
     // We must keep DesignTimeProperties!
     DesignItems.Add(newID, DesignItems[oldID]);
     DesignItems.Remove(oldID);
 }
コード例 #10
0
        private void UpdateCharacterRef(Character c, string oldID)
        {
            if (!RoomItemRefs.ContainsKey(oldID))
            {
                return;
            }
            string newID = GetItemID(c);

            RoomItemRefs.Remove(oldID);
            RoomItemRefs.Add(newID, c);
            // We must keep DesignTimeProperties!
            DesignItems.Add(newID, DesignItems[oldID]);
            DesignItems.Remove(oldID);
        }