struct op2image {
   int size_scanline;
   char* img_data;
   int size_y;
   int size_x;
   short type;
   short palette;
};

// Note: order determined by local pic_index
struct picture_table { // 6-Table
   short pos_x;
   short pos_y;
   short pic_offset;
};

struct frame_table { // E-Table
   short reserved = 0x7FFE;
   char unknown [6];		// + 2
   
   short pic_count;		// + 8
   picture_table * index_6 [];	// + A
   
};

// Note: An index for every frame; order same as frames
// Note 2: 3/4 are regardless of 1/2 always on same position
struct extinfo_table { // 4-Table
   char unknown1, unknown2;
   char unknown3, unknown4;
};

struct apdx {
   int unknown1;
   int unknown2;
   int unknown3;
   int unknown4;
};

struct mem_group {
   int unknown1;
   int sel_left;
   int sel_top;
   int sel_right;
   int sel_bottom;
   int center_x;
   int center_y;
   int unknown8;
   int frame_count;
   frame_table * index_e [];
   int index_4;			// Global 4-index; count from 0000
   int apdx_count;
   apdx appendix [apdx_count];
};

struct mem_art {
   __fixed 0 = 4EFD68
   char * lpPalData [0x12 * ##pal_size];
   int pal_size;
   op2image image_header [##image_count];	// [0E150000 @ 00002504]
   
   __fixed 0 + 1B628 = 50B390
   int image_count;				//  0D150000 @ 00002504
   mem_group group [##group_count];		// [1F080000 @ 0001CA20]
   
   __fixed 0 + 56E2C = 546B94
   int group_count;				//  1F080000 @ 0001CA20
   int * lpArtInfoBMP;
   frame_table * tab_e [];			// [795E0000 @ 0001CA24]
   picture_table * tab_6 [];			// [9A740200 @ 0001CA28]
   extinfo_table * tab_4 [];	// = 0		// [7C170000 @ 0001CA2C]
   int * lpUnknownClass;	// maybe for file-access [+24]
   
   
   
};



