rem: FragPtr = (SHIP_FRAGMENTPTR)LockStarShip (pQueue, hStarShip);
context: LoadShipQueue (DECODE_REF fh, PQUEUE pQueue, BOOLEAN MakeQ){	COUNT num_links;	cread ((PBYTE)&num_links, sizeof (num_links), 1, fh);	if (num_links)	{		if (MakeQ)			InitQueue (pQueue, num_links, sizeof (SHIP_FRAGMENT));		do		{			HSTARSHIP hStarShip;			SHIP_FRAGMENTPTR FragPtr;			COUNT Index, Offset;			PBYTE Ptr;			cread ((PBYTE)&Index, sizeof (Index), 1, fh);			if (pQueue == &GLOBAL (avail_race_q))			{				hStarShip = GetStarShipFromIndex (pQueue, Index);				Offset = 0;			}			else			{				hStarShip = CloneShipFragment (Index, pQueue, 0);				Offset = (PBYTE)&FragPtr->ShipInfo						- (PBYTE)&FragPtr->RaceDescPtr;			}			FragPtr = (SHIP_FRAGMENTPTR)LockStarShip (pQueue, hStarShip);			Ptr = ((PBYTE)&FragPtr->ShipInfo) - Offset;			cread ((PBYTE)Ptr,					((PBYTE)&FragPtr->ShipInfo.race_strings) - Ptr,					1, fh);			if (Offset == 0)			{				EXTENDED_SHIP_FRAGMENTPTR ExtFragPtr;				ExtFragPtr = (EXTENDED_SHIP_FRAGMENTPTR)FragPtr;				Ptr = (PBYTE)&ExtFragPtr->ShipInfo.actual_strength;				cread ((PBYTE)Ptr, ((PBYTE)&ExtFragPtr[1]) - Ptr, 1, fh);			}			UnlockStarShip (pQueue, hStarShip);		} while (--num_links);	}}