SpinOff World Editor Modifications

Several editors and editor modifications are availible. This bug is common to every existend editor! When you copy multiple entities, they show up in all views. But using the entity editor and leaving it again, all the entities suddenly disapear from their position and are now at position 0,0,0 (or somewhere else). This bug doesn't show up, when you copy the entities, go to select mode, press "move" and move all entities contained in the Lib object a little bit. This is basicly, what I do in the code modification.
in File FusionView.cpp
in Function OnLButtonUp(UINT nFlags, CPoint point)

beginning in line 956:
else if(IsCopying)
{
// MS We need to switch to move mode, to
// correctly place groups of entities. 
	// Switch to move mode
	OnToolsBrushMoverotatebrush();
	// Do what has to be done
	DoneMovingBrushes ();
	// switch bach to Select mode
	GetDocument()->DoGeneralSelect();
// ~MS
	IsCopying = FALSE;
}
The next bug is simillar: When you place a lib object containing entities to its dedicated position and press enter, the object shows up in all views. But using the entity editor and leaving it again all the entities suddenly disapear are now at position 0,0,0 (or somewhere else). This bug doesn't show up, when you place the lib object, press enter, go to select mode, press "move" and move all entities contained in the Lib object a little bit. So this is basicly, what I do in the code modification.
in File FusionDoc.cpp
in Function OnBrushAddtoworld()

beginning in line 1020:
if (Placed)
{ 
// MS: We need to simualate a "move", to finally place 
// Lib objects to where they were placed in Template mode
	// switch to move mode
	mCurrentTool=ID_TOOLS_BRUSH_MOVEROTATEBRUSH;
	ConfigureCurrentTool();
	// fake a move
	DoneMove ();
	// Back to select mode
	DoGeneralSelect();
// ~MS
	SetModifiedFlag();
}
Another annoying feature is, that when you can't change to face adjustment mode, when you have the "move" or "resize" button down. This is corrected by these two lines of code: in File FusionDoc.cpp

line 2200 new code:
void CFusionDoc::OnToolsFaceAdjustmentmode() 
{
//MS change to select mode before changing to face adjustment
	DoGeneralSelect();
	if( /*mModeTool == ID_GENERALSELECT && 
		!IsSelectionLocked() && */
		mCurrentTool == CURTOOL_NONE )
	{
		SetAdjustmentMode( ADJUST_MODE_FACE ) ;
	}
}

void CFusionDoc::OnToolsToggleadjustmode() 
{
//MS change to select mode before changing to face adjustment
	DoGeneralSelect();	
	if( /*mModeTool == ID_GENERALSELECT && 
		!IsSelectionLocked() && */
		mCurrentTool == CURTOOL_NONE )
	{
		SetAdjustmentMode( ADJUST_MODE_TOGGLE ) ;	// Flip between Brush & face 
	}
}
The bug that won't rotate entities, only brushes is corrected in several editors. Anyway, here ist what you have to do, in file FusionDoc.cpp line 4110:
 geVec3d_Add(v, &FinalRot, &FinalRot);
	geXForm3d_SetEulerAngles(&rm, v);
	for(i=0;i < NumBrushes;i++)
	{
		Brush *pBrush = SelBrushList_GetBrush (pList, i);
		Brush_Rotate (pBrush, &rm, &RotationPoint);
	}
	CEntityArray *Entities = Level_GetEntities (pLevel);
	const EntityTable *EntityTable = Level_GetEntityDefs (pLevel);
	for(i=0;i < Entities->GetSize();i++)
	{
		if ((*Entities)[i].IsSelected ())
		{
			(*Entities)[i].Rotate(&rm, &RotationPoint, EntityTable);
		}
	}
}/* CFusionDoc::RotateSelectedBrushList */
I did several other changes, they were all made, to enable bloody beginners to use the world editor as "SpinOff construction set". These changes consist of disabling advanced features. I doubt anyone will see them.