Joto,
If scapp is made to interact with MOHAA, then why not use the client game wrapper?
With most of the basic clientside and serverside stuff reversed, you can use a custom UI in the game using engine functions. This will be much more effective than OGL because OGL can be laggy when you're rendering stuff on screen.
I wrote a tutorial and posted it on GD & TMT about how to make a menu using the cgamex wrapper.
If you already have scapp functioning with MOHAA and it's able to communicate then just use the engine functions to create your UI. You'll be able to make buttons for menus and other things. A chat box may be a bit hard, but perhaps you can figure out a way to integrate it with MOHAA's ingame chat.
You can setup a cvar like scapp_chat 1
if it's enabled then it makes MOHAA's ingame chat communicate with the scapp host, otherwise if the cvar is set to 0 then it'll be a standard ingame messaging system like we're used to.
Just something to ponder. Not sure if that's what you're after.
Anywho, here is the thread I made on GD: http://www.gamedeception.net/threads...fixid=Tutorial
okidoki also posted his technique. It's ALOT easier now that we have so much source code reversed and the technique is just as effective as what I mentioned above.
Here is the end result of the widgets I created:
http://x-null.net/version/menu.JPG
you can use bitblt for bitmaps
I do something like this
Code:
HBITMAP bitmap1 = (HBITMAP)LoadImage(NULL,"bitmap1.bmp", IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
SendMessage(myBox,STM_SETIMAGE, (WPARAM)IMAGE_BITMAP,(LPARAM)bitmap1);
It may be a little different for MOHAA. This is using Win32 API for a standard Windows App. Obviously for *nix the syntax for loading bitmaps will be different, I'm just not sure.
I hope this is some food for thought though and that it's a bit helpful.