Inside3D!
     

Quake One - Overlay as Menu

 
Post new topic   Reply to topic    Inside3d Forums Forum Index -> Engine Programming
View previous topic :: View next topic  
Author Message
Ranger366



Joined: 18 Mar 2010
Posts: 72
Location: Berlin (Germany)

PostPosted: Mon Jun 28, 2010 4:39 pm    Post subject: Quake One - Overlay as Menu Reply with quote

Hello friends,
i recently came back to PC Engine coding for Quake, everything begun with one simple fix... And something let me think about the HL Menu, because the original Quake Menu is not really the best at all.
Valve used for Half-Life's Menu one Overlay



And i asked me if this is possible in the GLQuake Engine on C, i know that there are Dialogues/Forms ("Starting Quake..."), a little bit VB6 like Interface at editing, but its not possible to realize this with that. Does someone know howto makes such like this Overlay? such Visual basic 6 like. Its interesting for me, because this can be enhanced.

Just a question, i hope this is interesting for someone else here too...
_________________
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Spike



Joined: 05 Nov 2004
Posts: 944
Location: UK

PostPosted: Mon Jun 28, 2010 5:15 pm    Post subject: Reply with quote

if you want to make a menu in VB, you could theoretically do it using a dll. But then you'd end up with an ugly windows-only menu. :P
If you make a widgit system which builds a tree of items, with each item being of some pre-defined type, you can then make a config file or whatever that tells the engine what to create where.
_________________
What's a signature?
Back to top
View user's profile Send private message Visit poster's website
Ranger366



Joined: 18 Mar 2010
Posts: 72
Location: Berlin (Germany)

PostPosted: Mon Jun 28, 2010 5:47 pm    Post subject: Reply with quote

Spike wrote:
if you want to make a menu in VB, you could theoretically do it using a dll. But then you'd end up with an ugly windows-only menu. Razz
If you make a widgit system which builds a tree of items, with each item being of some pre-defined type, you can then make a config file or whatever that tells the engine what to create where.


You know how it can work?
I mean, doing the overlay in the glquake.exe, or i think how valve did it (theory):

GLQuake Engine into one DLL, wich is read by an VB6 Application.
Im good in VB6, but not SO good for displaying this in the Frame!

OH WAIT!
I saw one program, where one active program has been displayed in the VB6 form, i asked for the SourceCode, but he did not replied to this...

This would be good enough for me... and my tests.
how amazing would be VB6 apps on PSP...
_________________
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Spike



Joined: 05 Nov 2004
Posts: 944
Location: UK

PostPosted: Mon Jun 28, 2010 6:13 pm    Post subject: Reply with quote

a window handle is a window handle. you can pass them around as commandline arguments, and use them for your child app's parent window (this is how the preview of screensavers work).
Modify an engine to use that window handle for a parent window and voila, engine embedded in a VB6 app.
Better to use a DLL though. Just don't make it an ActiveX one. In practical terms, its easier to make the engine the DLL and the vb6 app the exe, as VB is a bit easier to interface with that way around.
Just make any UI-exposed functions be exported from your DLL and directly call them in VB, same as any windows api function.
But VB sucks. :P

VB6+PSP? no chance. Not going to happen.

Frankly, halflife having to do a mode switch every time you want to go to the menu is lame and slow.
_________________
What's a signature?
Back to top
View user's profile Send private message Visit poster's website
Ranger366



Joined: 18 Mar 2010
Posts: 72
Location: Berlin (Germany)

PostPosted: Mon Jun 28, 2010 6:44 pm    Post subject: Reply with quote

Spike wrote:
a window handle is a window handle. you can pass them around as commandline arguments, and use them for your child app's parent window (this is how the preview of screensavers work).
Modify an engine to use that window handle for a parent window and voila, engine embedded in a VB6 app.
Better to use a DLL though. Just don't make it an ActiveX one. In practical terms, its easier to make the engine the DLL and the vb6 app the exe, as VB is a bit easier to interface with that way around.
Just make any UI-exposed functions be exported from your DLL and directly call them in VB, same as any windows api function.
But VB sucks. Razz

VB6+PSP? no chance. Not going to happen.

Frankly, halflife having to do a mode switch every time you want to go to the menu is lame and slow.


WOW!
You are truly my god! never worked with such, and my english isnt the best, but im trying now to find out how i will make this, my VB teacher self dont know how to do this.

Thanks Spike
_________________
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
mh



Joined: 12 Jan 2008
Posts: 910

PostPosted: Mon Jun 28, 2010 7:16 pm    Post subject: Reply with quote

You can do it in .NET as well, or anything else that understands what a HWND is.

But Spike is absolutely bang on about that mode switch. I can just picture the Valve designers meeting: "we've got a cool game but I don't think we've done enough things to piss off the player in it yet." "Howabout displaying 'loading' for a few seconds every time you so much as enter a new room or turn a corner?" "Been done before, but it's always good for a giggle. OK, it's in. Anyone else?" "I KNOW! What about a mode switch every time you enter the menu?" "Brilliant! That'll have them swearing at their monitors in no time at all! Well done, have a bonus!"
_________________
DirectQ Engine - New release 1.8.666a, 9th August 2010
MHQuake Blog (General)
Direct3D 8 Quake Engines
Back to top
View user's profile Send private message Visit poster's website
Ranger366



Joined: 18 Mar 2010
Posts: 72
Location: Berlin (Germany)

PostPosted: Mon Jun 28, 2010 7:58 pm    Post subject: Reply with quote

mh wrote:
You can do it in .NET as well, or anything else that understands what a HWND is.

But Spike is absolutely bang on about that mode switch. I can just picture the Valve designers meeting: "we've got a cool game but I don't think we've done enough things to piss off the player in it yet." "Howabout displaying 'loading' for a few seconds every time you so much as enter a new room or turn a corner?" "Been done before, but it's always good for a giggle. OK, it's in. Anyone else?" "I KNOW! What about a mode switch every time you enter the menu?" "Brilliant! That'll have them swearing at their monitors in no time at all! Well done, have a bonus!"


HWND... now i searched everywhere and found documentation about scaling other windows, but nothing useful for displaying the data of one form in one VB6 form.
_________________
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Spike



Joined: 05 Nov 2004
Posts: 944
Location: UK

PostPosted: Mon Jun 28, 2010 8:58 pm    Post subject: Reply with quote

http://msdn.microsoft.com/en-us/library/ms633541%28VS.85%29.aspx
Not sure how well VB will respond to it. Should be okay to use that in Quake though (Actually use the argument in CreateWindowEx).
_________________
What's a signature?
Back to top
View user's profile Send private message Visit poster's website
Ranger366



Joined: 18 Mar 2010
Posts: 72
Location: Berlin (Germany)

PostPosted: Tue Jun 29, 2010 3:05 pm    Post subject: Reply with quote

Spike wrote:
http://msdn.microsoft.com/en-us/library/ms633541%28VS.85%29.aspx
Not sure how well VB will respond to it. Should be okay to use that in Quake though (Actually use the argument in CreateWindowEx).


Ok, i will use this as reference.
Thanks Spike and mh!
_________________
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Inside3d Forums Forum Index -> Engine Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2004 phpBB Group