+ return NULL;
+}
+
+#ifdef SVQC
+bool bd_controller_send(entity this, entity to, int sf)
+{
+ WriteHeader(MSG_ENTITY, ENT_CLIENT_BD_CONTROLLER);
+ if(sf & BD_SF_UPDATE_ALL)
+ sf &= ~BD_SF_UPDATE_SINGLE;
+
+ WriteByte(MSG_ENTITY, sf);
+ WriteByte(MSG_ENTITY, this.bd_tilelet);
+ WriteString(MSG_ENTITY,this.owner.netname);
+
+ if(sf & BD_SF_UPDATE_SINGLE)
+ {
+ int number = this.bd_forceupdate;
+ //this.bd_forceupdate = 0;
+ int ttype = this.bd_tiletypes[number];
+ int dir = this.bd_dirs[number];
+ WriteByte(MSG_ENTITY, number);
+ WriteByte(MSG_ENTITY, ttype);
+ WriteByte(MSG_ENTITY, dir);
+ }
+
+ if(sf & BD_SF_UPDATE_ALL)
+ {
+ for(int j = 0; j < BD_NUM_CNT; ++j)
+ {
+ int ttype = this.bd_tiletypes[j];
+ int dir = this.bd_dirs[j];
+ WriteByte(MSG_ENTITY, ttype);
+ WriteByte(MSG_ENTITY, dir);
+ }
+ }
+
+ return true;
+}
+#elif defined(CSQC)
+void minigame_read_owner(entity this);
+
+NET_HANDLE(ENT_CLIENT_BD_CONTROLLER, bool isNew)
+{
+ this.classname = "bd_controller";
+ return = true;
+
+ int sf = ReadByte();
+ this.bd_tilelet = ReadByte();
+ minigame_read_owner(this);
+
+ if(sf & BD_SF_UPDATE_SINGLE)
+ {
+ int number = ReadByte();
+ this.bd_tiletypes[number] = ReadByte();
+ this.bd_dirs[number] = ReadByte();
+ }
+
+ if(sf & BD_SF_UPDATE_ALL)
+ {
+ for(int j = 0; j < BD_NUM_CNT; ++j)
+ {
+ this.bd_tiletypes[j] = ReadByte();
+ this.bd_dirs[j] = ReadByte();
+ }
+ }