Wouldn't this do?


Code:
Code:typedef struct MYDATA1 {
  bool dirty;
  int x;
  char c[20];
} MYDATA;
typedef struct MYDATA2 {
  bool dirty;
  int x;
  int y;
  char c[20];
} MYDATA2;
... 
MYDATA1* mydata1 = { dirty = 0,x = 1; c = "Test!"; }
MYDAT21* mydata2 = { dirty =0, x = 1; y = 1; c = "Test!"; }
 
// sending data
mydata1.dirty=1;
send_data_to(NULL,mydata,sizeof(MYDATA1));
 
//receiving data
function on_client_event(void* buffer) 
{
  if (event_type == EVENT_DATA)
    if(Mydata1.dirty == 1)
    {
       Do_Something_Dirty1();
       mydata1.dirty =0;
    }
      ....
       if(Mydata2.dirty == 1)
    {
       Do_Something_Dirty2();
       mydata2.dirty =0;
    }
...

}