Go to your Gamestudio installation folder, then open the "include" subfolder. Among others you'll find atypes.h in there. You might have seen and looked into it before but still, check it out. There's the PANEL definition inside:
Code
typedef struct PANEL {
	C_LINK link;
	long	type;		// internal use only
	var	layer;		// layer number (read only)
	var	pos_x,pos_y;	// screen position in pixels
	long	flags;		// 
	var	alpha;		// transparency factor
	BMAP	*bmap;		// background bitmap
	var	scale_x,scale_y;
	var	blue,green,red;	// color for background and Truetype fonts
	var	size_x,size_y;	// panel dimension
	var	angle;			// rotation angle (6.5 or above)
	var	center_x,center_y;	// rotation center
	BMAP	*mouse_map;
	BMAP	*target_map;
	EVENT	event;		// panel function, executed on mouse click
	var   skill_x,skill_y; // general purpose variables
	byte  pad[PAD_PANEL];
} PANEL;


You can use skill_x/y freely. center_x/y might be usable (in a hacky way sort of) as well, never tried it.
If you've got the code to move one panel you have it to move them all. You need to know beforehand which panels to move of course.
What about something like this (needs more stuff to work but you get the idea):

Code
typedef struct
{
	PANEL* pnl;
	int isSelected;
	var diffX, diffY;
} PANEL_EXTENDED;
#define PANELS_EXTENDED_MAX 8
PANEL_EXTENDED panelsExtended[PANELS_EXTENDED_MAX];

void panelsExtendedInit()
{
	panelsExtended[0].pnl = myPanel1;
	panelsExtended[0].isSelected = 1;
	
	panelsExtended[1].pnl = myPanel2;
	
	panelsExtended[2].pnl = myPanel3;
	panelsExtended[2].isSelected = 1;
}

void panelsExtendedSetDiffs() // call this on left mouse presses (once, like on_mouse_left)
{
	int i;
	for(i = 0; i < PANELS_EXTENDED_MAX; i++)
	{
		PANEL_EXTENDED *pnlExtended = &panelsExtended[i];
		PANEL* pnl = pnlExtended.pnl;
		if(pnl != NULL && pnlExtended.isSelected)
		{
			pnlExtended.diffX = pnl.pos_x - mouse_pos.x;
			pnlExtended.diffY = pnl.pos_y - mouse_pos.y;
		}
	}	
}

void panelsExtendedMove()
{
	int i;
	for(i = 0; i < PANELS_EXTENDED_MAX; i++)
	{
		PANEL_EXTENDED *pnlExtended = &panelsExtended[i];
		PANEL* pnl = pnlExtended.pnl;
		if(pnl != NULL && pnlExtended.isSelected)
		{
			pnl.pos_x = mouse_pos.x + pnlExtended.diffX;
			pnl.pos_y = mouse_pos.y + pnlExtended.diffY;
		}
	}
}


Last edited by Superku; 08/02/20 23:09.

"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends