Pages: [1]
  Print  
Author Topic: Custom Compile Results in Missing In-game Overlays  (Read 14362 times)
randombloke
Nub


Cakes 0
Posts: 28


« on: November 09, 2007, 06:08:29 AM »

I have compiled a version of Open Arena (711)under VS2005.  I merged the game logic into the existing code base and created the necesary .dll (rather than .qvm).

My issue is with the in-game overlays, such as when you kill a person or get killed.  Normally an overlay appears and presents you with the numbers of kills, or your current ranking.  This has been replaced with a small orange graphic (when killing someone) and nothing when you die.  Also, when you finish the level, no podium graphics are appearing and the buttons are missing.

Anyone got any ideas?
Did I leave out a define somewhere?
Logged
dmn_clown
Posts a lot
*

Cakes 1
Posts: 1324


« Reply #1 on: November 09, 2007, 09:06:56 AM »

podium graphics aren't appearing

No one has done the podium model yet, so it wouldn't show up.
Logged

randombloke
Nub


Cakes 0
Posts: 28


« Reply #2 on: November 09, 2007, 09:50:26 AM »

podium graphics aren't appearing

No one has done the podium model yet, so it wouldn't show up.

Perhaps we have our wires crossed.  I'm using the standard pack that was deployed as 0.70.  Let's forget about 0.711 for a moment.

At the end of each map, in single player mode, it provides you with the top three players.  They are arranged in a Podium fashion, with the winner in the center.  Below them are three buttons, Menu, Next and something else, I forget now.

In the build I just completed, this does not show up.  If I use the .exe provided by OpenArena it does show up.

Now, that I have established that, I must mention that I had modified the paks a little.  So, I just reverted to the paks provided with 0.70.  On testing, I tried to load a level in single player mode and it fails, with the following error:

"^3 Menu File Not Found: UI/HUD.TXT, Using Default"

It then promptly returns me to the main menu.

If I place the HUD.TXT and additional files into the UI folder of pak5-TA.pk3, then I can play the game.  The problem is that its the wrong HUD.  As I mentioned earlier I get no on-screen count (when I kill someone) of the number of people I have killed, nor do I get a ranking when I die.

Its almost as if the HUD is missing from the source code and being replace by the default HUD by ID software.
Logged
dmn_clown
Posts a lot
*

Cakes 1
Posts: 1324


« Reply #3 on: November 09, 2007, 10:40:12 AM »

Now, that I have established that, I must mention that I had modified the paks a little.  So, I just reverted to the paks provided with 0.70.  On testing, I tried to load a level in single player mode and it fails, with the following error:

"^3 Menu File Not Found: UI/HUD.TXT, Using Default"

It then promptly returns me to the main menu.

If I place the HUD.TXT and additional files into the UI folder of pak5-TA.pk3, then I can play the game.  The problem is that its the wrong HUD.  As I mentioned earlier I get no on-screen count (when I kill someone) of the number of people I have killed, nor do I get a ranking when I die.

Its almost as if the HUD is missing from the source code and being replace by the default HUD by ID software.

Sounds like you are using one of the missionpack dll's in baseoa, they should be built in separate directories.  Use the dll's that get built in the baseoa or baseq3 directory (however your project defines it).
Logged

randombloke
Nub


Cakes 0
Posts: 28


« Reply #4 on: November 09, 2007, 11:18:13 AM »

Sounds like you are using one of the missionpack dll's in baseoa, they should be built in separate directories.  Use the dll's that get built in the baseoa or baseq3 directory (however your project defines it).

Ok, let's make sure we're on the same page here.

The source file ioq3-src-oa.tar.bz2, contains the engine code.  As far as I can tell, the game logic is not contained within this source.

The game logic can be found here:

http://openarena.ws/svn/source/code/

To create the dlls, this code must be merged with the source code.  The project called "UI" must be removed and libs added for OpenAL and Ogg support.  The dll output of q3_UI must be renamed uix86.dll and added to the compile list.  All the files in q3_UI marked not to compile, should be set to compile.

Firstly, am I merging the correct code?
Secondly, am I missing anything?

When I do this, I get a functioning copy of Open Arena, but I get the following error when trying to load a single player map:

"^3 Menu File Not Found: UI/HUD.TXT, Using Default"

This indicates that there is something wrong with my q3_UI package.
Logged
dmn_clown
Posts a lot
*

Cakes 1
Posts: 1324


« Reply #5 on: November 09, 2007, 12:02:19 PM »

The source file ioq3-src-oa.tar.bz2, contains the engine code.  As far as I can tell, the game logic is not contained within this source.

The game logic can be found here:

http://openarena.ws/svn/source/code/

To create the dlls, this code must be merged with the source code.  The project called "UI" must be removed and libs added for OpenAL and Ogg support.

Yes, openal headers are included in code/AL so you should only need to an openal.dll.  You have the ogg support correct. and no do not remove ui support as the baseoa/q3 vms share a small amount of code.  The "ui" project should be built in a separate "missionpack" directory.

Quote
The dll output of q3_UI must be renamed uix86.dll and added to the compile list.


yes

Quote
All the files in q3_UI marked not to compile, should be set to compile.

There are two ui directories.  code/ui and ../ui.  ../ui includes required header files and has to be included.  Code/ui is the missionpack ui.  q3_ui is the old clunky base ui.  All of the files should be included during compile and you should end up with two sets of dlls, One set for baseoa/baseq3 the other for missionpack.

Quote
Firstly, am I merging the correct code?
Secondly, am I missing anything?

When I do this, I get a functioning copy of Open Arena, but I get the following error when trying to load a single player map:

"^3 Menu File Not Found: UI/HUD.TXT, Using Default"

This indicates that there is something wrong with my q3_UI package.

No, that indicates that you are using the missionpack ui in the base game because your project files are incorrect.  Hopefully that sorts it Smiley
Logged

randombloke
Nub


Cakes 0
Posts: 28


« Reply #6 on: November 09, 2007, 12:38:25 PM »

Yes, openal headers are included in code/AL so you should only need to an openal.dll.  You have the ogg support correct. and no do not remove ui support as the baseoa/q3 vms share a small amount of code.  The "ui" project should be built in a separate "missionpack" directory.

I'm trying to remove the qvms completely.  Basically, I delete the vm folder from within pak0 when testing.

There are two ui directories.  code/ui and ../ui.  ../ui includes required header files and has to be included.  Code/ui is the missionpack ui.  q3_ui is the old clunky base ui.  All of the files should be included during compile and you should end up with two sets of dlls, One set for baseoa/baseq3 the other for missionpack.

I was dropping the code/ui project from VS and merging q3_ui code (http://openarena.ws/svn/source/code/q3_ui/) with code/q3_ui.

If we forget about the missionpack for a moment, surely I only required three dlls for the main game:

cgamex86.dll
qagamex86.dll
uix86.dll

Basically, I was taking the source tar.bz and merging the contents of cgame, game and q3_ui from the svn (http://openarena.ws/svn/source/code/).

No, that indicates that you are using the missionpack ui in the base game because your project files are incorrect.  Hopefully that sorts it Smiley

That explains a lot of what I have been seeing.  So, is the following location the source for a missionpack, or the qvm used in pak0:

http://openarena.ws/svn/source/code/

If it is the source for the qvm, why do I get a missionpack when I merge this code with the source tar.bz?
Logged
dmn_clown
Posts a lot
*

Cakes 1
Posts: 1324


« Reply #7 on: November 09, 2007, 01:52:22 PM »

If we forget about the missionpack for a moment, surely I only required three dlls for the main game:

cgamex86.dll
qagamex86.dll
uix86.dll

Basically, I was taking the source tar.bz and merging the contents of cgame, game and q3_ui from the svn (http://openarena.ws/svn/source/code/).

correct

Quote
That explains a lot of what I have been seeing.  So, is the following location the source for a missionpack, or the qvm used in pak0:

http://openarena.ws/svn/source/code/

That is for the qvm in pak0.

Quote
If it is the source for the qvm, why do I get a missionpack when I merge this code with the source tar.bz?

you did say you weren't compiling q3_ui.

Also you don't need to delete the vm folder from pak0 to use dlls/so/dylibs just start the engine with +set sv_pure 0 +set vm_cgame 0 +set vm_game 0 +set vm_ui 0 as long as the dlls are in /baseoa that will work.
Logged

randombloke
Nub


Cakes 0
Posts: 28


« Reply #8 on: November 09, 2007, 02:14:37 PM »

Quote
you did say you weren't compiling q3_ui.

Sorry, if I gave that impression.  Actually, I've been trying different combinations.  Basically, the issue revolves around the UI project and q3_UI project.  If I simply merge the contents of the svn code directory with cgame, game and q3_UI, then compile, I get 4 dlls.

cgamex86.dll (cgame)
qagamex86.dll (game)
uix86.dll (UI)
uix86_old.dll (q3_UI)

If I try to use this uix86.dll, then Open Arena fails to load and simply hangs at a white screen after launch.  The problem is that there are only 9 files in the UI project.  These files are the basic init files and have none of the menu system within them.

If I now exclude the UI project from the build and use the q3_UI project as my uix86.dll, then I get a fully functional version of Open Arena.  The q3_UI project contains all the source code for all the menu systems, the project contains 45 source files.  The only thing missing is the new HUD.  This seems to be replaced by an older type of hud that displays only a small 2D image of another character with their name written underneath.  Events such as a double kill, are represented by what appears to be an orange speech bubble, with a small graphic depicting the scenario.

So, my problem is that I cannot locate the source code that displays the same in-game UI/HUD as the distributed compiled version.
Logged
dmn_clown
Posts a lot
*

Cakes 1
Posts: 1324


« Reply #9 on: November 09, 2007, 02:28:35 PM »

only three dlls should be compiled cgame, qagame, and ui. Your VS files appear to be b0rked

The 0.7 ui is in code/q3_ui
Logged

randombloke
Nub


Cakes 0
Posts: 28


« Reply #10 on: November 09, 2007, 02:30:33 PM »

This should help, its a picture of the projects as I see them.  As you will notice, there are only a small number of files in the UI project.  The q3_UI project has 45 files, but does not provide the correct UI/HUD when playing the game.

Logged
randombloke
Nub


Cakes 0
Posts: 28


« Reply #11 on: November 09, 2007, 03:17:34 PM »

Well, I went back to the source made available through the svn.  I built it without modifications except for OpenAL and renaming uix68_old.dll.

The build gave the following error when loading the map:

"^3 Menu File Not Found: UI/HUD.TXT, Using Default"

So, I looked about for a define MISSIONPACK and removed two entries, one from the properties of cgame, the other from game.  I searched for more entries, but I found nothing.

The problem is that the ifdef statements relating to MISSIONPACK are not greyed out. 

I'm obviously missing another define somewhere, any ideas?
Logged
dmn_clown
Posts a lot
*

Cakes 1
Posts: 1324


« Reply #12 on: November 09, 2007, 05:35:32 PM »

The problem is that the ifdef statements relating to MISSIONPACK are not greyed out.

I'm obviously missing another define somewhere, any ideas?

Do a complete search for #ifdef MISSIONPACK and comment the out completely.
« Last Edit: November 09, 2007, 06:11:59 PM by dmn_clown » Logged

randombloke
Nub


Cakes 0
Posts: 28


« Reply #13 on: November 09, 2007, 10:54:09 PM »

Do a complete search for #ifdef MISSIONPACK and comment the out completely.

Found the problem.  Each of the files in both cgame and game have the following preprocesser definition set:

$(NoInherit)

It means that any preprocesser definition set at the project level, will not apply to each of the files.  Each source file had a preprocesser definition for MISSIONPACK and this needs to be removed.

Thanks for you help.
Logged
Pages: [1]
  Print  
 
Jump to: