private void onChanged(long sessionid, byte index, byte field, Octets data, Octets dataremoved)
        {
            bool __o_flags__;

            if (index < 2)
            {
                __o_flags__ = __flags__.get(index);
                __flags__.set(index);
            }
            else
            {
                __o_flags__ = __subsFlags__.get(sessionid, index - 2);
                __subsFlags__.set(sessionid, index - 2);
            }
            ViewChangedType _t_  = __o_flags__ ? ViewChangedType.REPLACE : ViewChangedType.NEW;
            OctetsStream    _os_ = OctetsStream.wrap(data);

            switch (index)
            {
            case 2:
            {
                FFSimulator.client.views.ViewS.__nickname _s_;
                if (_t_ == ViewChangedType.REPLACE)
                {
                    nickname.TryGetValue(sessionid, out _s_);
                }
                else
                {
                    nickname.Add(sessionid, _s_ = new FFSimulator.client.views.ViewS.__nickname());
                }
                switch (field)
                {
                case 0:
                {
                    _s_.nickname = _os_.unmarshal_string();
                    break;
                }
                }
                __type__ = _t_;
                break;
            }

            case 3:
            {
                FFSimulator.client.views.ViewS.__position _s_;
                if (_t_ == ViewChangedType.REPLACE)
                {
                    position.TryGetValue(sessionid, out _s_);
                }
                else
                {
                    position.Add(sessionid, _s_ = new FFSimulator.client.views.ViewS.__position());
                }
                switch (field)
                {
                case 0:
                {
                    _os_.unmarshal(_s_.position);
                    break;
                }
                }
                __type__ = _t_;
                break;
            }

            case 4:
            {
                FFSimulator.client.views.ViewS.__hp _s_;
                if (_t_ == ViewChangedType.REPLACE)
                {
                    hp.TryGetValue(sessionid, out _s_);
                }
                else
                {
                    hp.Add(sessionid, _s_ = new FFSimulator.client.views.ViewS.__hp());
                }
                switch (field)
                {
                case 0:
                {
                    _s_.hp = _os_.unmarshal_int();
                    break;
                }
                }
                __type__ = _t_;
                break;
            }

            default:
                throw new Exception("view \"" + this + "\" mismatch bind index = \"" + index + "\"");
            }
        }
        private void onChanged(long sessionid, byte index, Octets data)
        {
            bool __o_flags__;

            if (index < 2)
            {
                __o_flags__ = __flags__.get(index);
                __flags__.set(index);
            }
            else
            {
                __o_flags__ = __subsFlags__.get(sessionid, index - 2);
                __subsFlags__.set(sessionid, index - 2);
            }
            ViewChangedType _t_  = __o_flags__ ? ViewChangedType.REPLACE : ViewChangedType.NEW;
            OctetsStream    _os_ = OctetsStream.wrap(data);

            switch (index)
            {
            case 0:
            {
                bool _n_ = _os_.unmarshal_bool();
                isPlaying = _n_;
                onViewChanged(sessionid, "isPlaying", _n_, _t_);
                break;
            }

            case 1:
            {
                string _n_ = _os_.unmarshal_string();
                lastMessage = _n_;
                onViewChanged(sessionid, "lastMessage", _n_, _t_);
                break;
            }

            case 2:
            {
                FFSimulator.client.views.ViewS.__nickname _n_ = new FFSimulator.client.views.ViewS.__nickname();
                _n_.unmarshal(_os_);
                nickname.Remove(sessionid);
                nickname.Add(sessionid, _n_);
                onViewChanged(sessionid, "nickname", _n_, _t_);
                break;
            }

            case 3:
            {
                FFSimulator.client.views.ViewS.__position _n_ = new FFSimulator.client.views.ViewS.__position();
                _n_.unmarshal(_os_);
                position.Remove(sessionid);
                position.Add(sessionid, _n_);
                onViewChanged(sessionid, "position", _n_, _t_);
                break;
            }

            case 4:
            {
                FFSimulator.client.views.ViewS.__hp _n_ = new FFSimulator.client.views.ViewS.__hp();
                _n_.unmarshal(_os_);
                hp.Remove(sessionid);
                hp.Add(sessionid, _n_);
                onViewChanged(sessionid, "hp", _n_, _t_);
                break;
            }

            default:
                throw new Exception("view \"" + this + "\" lost var index = \"" + index + "\"");
            }
        }