Well you just encapsulated about 8K lines in that paragraph. I have an engine that can do all of this, but I doubt that is what you want. What do you need help on. I'm fairly sure I can do all of that or at least know how to do it.
For user interface you could use a pre-built library by MS that is a framework for a DX GUI and it acts similar to the Windows message-based system.
But you could build your own too.
If this is for a project for uni, I'd go with a simple UI that had the bitmaps either drawn into the image (like for a title screen) and then just add a button structure to an array and track the mouse by iterating the array when the mouse button was pressed.
Code:
if (mouse.buttondown==0x01)
{
bool bButtonFound=false;
for (int i=0;i<ButtonSys.NumButtons;i++)
{
if (PtInRect(mouse.Pos,ButtonSys[i].rect))
{
bButtonFound=true;
break;
}
}
if (bButtonFound)
{
SendMessage(ButtonSys[i].m_pParent,UI_BTNPUSHED);
}
else ...
...
}
Something like that would do.
For Vector operations you can just use D3DXVECTOR2 as it provides all the functionality you need.
Code:
void CObject::Target(CObject *pTarget)
{
D3DXVECTOR2 ToTarget=Pos-pTarget->Pos;
D3DXVec2Normalize(&ToTarget,&ToTarget);
SetFireVector(ToTarget);
}