My guess was right, the text field is 4096 bytes, so the struct is actually this:
Code:
struct OnLevelMessage_Struct {
/*0000*/ char Title[128];
/*0128*/ char Text[4096];
/*4224*/ uint32 Buttons;
/*4228*/ uint32 unknown4228;
/*4232*/ uint32 PopupID;
/*4236*/ uint32 unknown4236;
/*4240*/ uint32 unknown4240;
};
If buttons = 0, just the OK button is displayed and this sends the opcode when pressed.
If buttons = 1, Yes and No buttons are displayed. Clicking Yes sends the opcode, clicking No does nothing.
If buttons = 256, the OK button is displayed, along with the MP3 Player controls!