+ int num = 1;
+ switch(tag->id) {
+ case TAGID_PLACEOBJECT2:
+ num++;
+ case TAGID_PLACEOBJECT: {
+ struct reader_t r;
+ reader_init (&r, tag->data, tag->length);
+ if(num>=2) {
+ char b = reader_readu8(&r);
+ if(!(b&2))
+ return -1;
+ }
+ reader_readu16(&r);
+ return reader_readu16(&r);
+ }
+ break;
+ case TAGID_REMOVEOBJECT:
+ return tag->data[0]+tag->data[1]*256;
+ break;
+ case TAGID_REMOVEOBJECT2:
+ return -1;
+ break;
+ }
+
+ return tag->data[0]+tag->data[1]*256;