Back to the Korax Forum Archives


Forum

New code for Vavoom

Mon, 31 Jan 2005 18:13:12

Firebrand

I have downloaded the vavoom source code and I have tweaked some stuff from it, nothing too complicated, for now I made some fullscreen HUD for every game (Doom, Heretic, Hexen so far) if you want to give it a try it's on KDev subdir "vavoom". Hope you all like it! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
Wed, 02 Feb 2005 18:36:22

dj_jl

Cool thing, But IMHO it needs some tweeking to be less distractive.
Wed, 02 Feb 2005 22:53:47

Firebrand

Well, maybe making it smaller or something like that, I'm glad you like it Janis <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> . BTW the doom ammo should change like in heretic, but I didn't bother enough to finish it, heh! <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: -->
Wed, 02 Feb 2005 22:54:24

Firebrand

Well, maybe making it smaller or something like that, I'm glad you like it Janis <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> BTW the doom ammo should change like in heretic, but I didn't bother enough to finish it, heh! <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: --> .
Thu, 03 Feb 2005 07:50:34

dj_jl

Probably by using higher virtual resolution will be better. Yeah Doom ammo is wrong, I'll fix it.
Tue, 08 Feb 2005 14:05:25

Firebrand

Hey Janis! I have uploaded to the same subdirectory the latest source code for ZDoomGL which has something called subtractive lights, it's like the dynamic lights but it takes out lightning from the enviroment instead of making it bright, I think it would be a nice effect to implement for KA, but I really don't know if it could be added, also you could check it out to add the flickering dynamic lights to Vavoom it would be cool if you could implement them! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> I hope that this can be useful for you Janis.
Wed, 09 Feb 2005 14:32:13

RambOrc

I'm posting it here because I'm unable to post a new topic. The domain is going to be moved soon to another server (SourceForge), but not the mailboxes. Once the domain has been transferred, I'll leave up the mailboxes for a couple of days for you to get out your mails from there, which you can do by logging in to <!-- w --><a class="postlink" href="http://www.orcishweb.com/webmail">http://www.orcishweb.com/webmail</a><!-- w --> with your e-mail address and username. As to what kind of e-mail services will be available in the future, Janis should be able to tell, I'm not sure whether SF offers mailboxes or only forwards.
Wed, 09 Feb 2005 18:23:33

dj_jl

The users.sourceforge.net are forwards.
Fri, 11 Feb 2005 14:12:45

Firebrand

When will this moving be completed?
Thu, 17 Feb 2005 08:50:07

dj_jl

Now! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
Thu, 17 Feb 2005 11:32:44

RambOrc

People don't forget to empty your mailboxes, I'll delete them from the old server this weekend.
Thu, 17 Mar 2005 16:37:44

Firebrand

Returning to the topic again, I have downloaded the latest source from the Vavoom's CVS repository, but I have had some problems to compile it, I'll post them later when I have some more time.
Fri, 18 Mar 2005 15:53:32

Firebrand

I have been trying to compile the new vcc version (because with the old one the case stack overflows), and I can't compile it, I'm using M$VC 6.0 and I downloaded all the libraries that you specify in the Vavoom readme, this is the errors I get when linking:
constexp.obj : error LNK2001: unresolved external symbol "int __cdecl Pass1::CheckForConstant(class FName)" (?CheckForConstant@Pass1@@YAHVFName@@@Z)
info.obj : error LNK2001: unresolved external symbol "int __cdecl Pass1::ParseStateCode(class TType *)" (?ParseStateCode@Pass1@@YAHPAVTType@@@Z)
info.obj : error LNK2001: unresolved external symbol "void __cdecl Pass1::AddConstant(class FName,int)" (?AddConstant@Pass1@@YAXVFName@@H@Z)
types.obj : error LNK2001: unresolved external symbol "void __cdecl Pass1::ParseMethodDef(class TType *,struct field_t *,struct field_t *,class TType *,int)" (?ParseMethodDef@Pass1@@YAXPAVTType@@PAUfield_t@@10H@Z)
types.obj : error LNK2001: unresolved external symbol "void __cdecl Pass1::ParseDefaultProperties(struct field_t *,class TType *)" (?ParseDefaultProperties@Pass1@@YAXPAUfield_t@@PAVTType@@@Z)
vcc.obj : error LNK2001: unresolved external symbol "void __cdecl Pass1::PA_Parse(void)" (?PA_Parse@Pass1@@YAXXZ)
../../utils/bin/vcc.exe : fatal error LNK1120: 6 unresolved externals
Error executing link.exe.

vcc.exe - 7 error(s), 0 warning(s)
Any help on this will be really appreciated!
Fri, 18 Mar 2005 16:21:29

dj_jl

It's because parse1.cpp wasn't aded to the project. I updated the fixed project file.
Fri, 18 Mar 2005 16:41:44

Firebrand

OK, thanks Janis! BTW the Vavoom executable sends errors when linking too, maybe for the same reason?? Here's the error I get when linking:
Linking...
r_model.obj : error LNK2001: unresolved external symbol _png_destroy_read_struct
r_model.obj : error LNK2001: unresolved external symbol _png_read_end
r_model.obj : error LNK2001: unresolved external symbol _png_read_image
r_model.obj : error LNK2001: unresolved external symbol _png_set_gray_to_rgb
r_model.obj : error LNK2001: unresolved external symbol _png_set_filler
r_model.obj : error LNK2001: unresolved external symbol _png_set_strip_16
r_model.obj : error LNK2001: unresolved external symbol _png_set_tRNS_to_alpha
r_model.obj : error LNK2001: unresolved external symbol _png_get_valid
r_model.obj : error LNK2001: unresolved external symbol _png_set_gray_1_2_4_to_8
r_model.obj : error LNK2001: unresolved external symbol _png_set_palette_to_rgb
r_model.obj : error LNK2001: unresolved external symbol _png_get_color_type
r_model.obj : error LNK2001: unresolved external symbol _png_get_bit_depth
r_model.obj : error LNK2001: unresolved external symbol _png_get_image_height
r_model.obj : error LNK2001: unresolved external symbol _png_get_image_width
r_model.obj : error LNK2001: unresolved external symbol _png_read_info
r_model.obj : error LNK2001: unresolved external symbol _png_set_read_fn
r_model.obj : error LNK2001: unresolved external symbol _png_create_info_struct
r_model.obj : error LNK2001: unresolved external symbol _png_create_read_struct
r_model.obj : error LNK2001: unresolved external symbol _png_sig_cmp
r_model.obj : error LNK2001: unresolved external symbol _png_get_io_ptr
Debug/Vavoom95.exe : fatal error LNK1120: 20 unresolved externals
Error executing link.exe.

Vavoom95.exe - 21 error(s), 120 warning(s)
Mon, 21 Mar 2005 07:44:06

dj_jl

Yeah, you need to add libpng and zlib to the libraries. I think I should have a working project file.
Mon, 21 Mar 2005 15:21:20

Firebrand

How about posting the Vavoom & the DDF2VC project files? DDF2VC also gives me errors while linking, does libpng need all the header files it has?? I ask this because "r_model.cpp" just includes one of them, but I don't know if there's something else needed by it and not included or something
Mon, 21 Mar 2005 16:12:53

dj_jl

I'd say copy to include dir that header file that's being included and the compiller should give you an error if there's some other header file is missing.
Mon, 21 Mar 2005 17:13:01

Firebrand

Yes, it's done, it seems the compiler warns about this:
Compiling...
r_model.cpp
F:\Korax' Heritage\Vavoom\Source\vavoom\source\r_model.cpp(888) : warning C4611: interaction between '_setjmp' and C++ object destruction is non-portable
That's the only error I get from r_model.cpp and then come the linking errors I have detailed above.
Tue, 22 Mar 2005 08:14:49

dj_jl

I posted fixed project file. As of ddf2vc - forget about it, AFAIR it never compiled with MSVC.
Tue, 22 Mar 2005 15:08:54

Firebrand

I really appreciate your help Janis! with this I'll be able to start tweaking with the executable to help you out with some stuff for the light effects that we have discussed before, thank you! and sorry to be bothering you with this "noob" stuff, heh! <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->
Thu, 31 Mar 2005 17:42:53

Firebrand

Hey Janis, which version of LIBPNG you are actually using? I'm asking this because I upgraded the Vavoom source via CVS again, but I really didn't had a chance to test the last change that you posted here, it compiles better, now the only error I get is the one I posted here when linking the LIBPNG.LIB file, which I think it's a good advance for it, but I have been thinking that maybe it's the version that I'm using (1.2.8 ).
Fri, 01 Apr 2005 15:01:51

Firebrand

Scratch that one, I was finally able to compile the Vavoom executable using LIBPNG and ZLIB as dynamic linking libraries (DLL's) that are loaded when you run the game, I see you are doing an awesome work for the next version, I feel a much improved peformance on it, it runs really well with the new Allegro GL stuff you added to it, also I noticed some bugs with the new ACS stuff, here's the problem I get when playing the Seven Portals in Hexen:
- (.GetPlanePointZ)
- TProgs::ExecuteFunction
- (ExecuteLineSpecial)
- VACS::RunScript
- VACS::Tick
- RunThinkers
- P_Ticker
- SV_Ticker
- ServerFrame
- Host_Frame


Exiting due to external exception
Also I noticed that when teleporting you still keep your normal velocity, which is not the normal teleport behavior, you should lost it when teleporting, maybe something was moved with the teleporting for the new types of teleport spots, so far this is what I have noticed myself, I'll repost it on the Vavoom forums when you make the release, for now I just want to say that you are doing a great work on Vavoom Janis! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
Wed, 04 May 2005 13:15:45

Firebrand

I have been testing the games (mainly Heretic and Doom) and I found some bugs on the progs with the minotaur in Heretic, when the minotaur makes it's charge attack he flies away if he passes trough two sectors with different heights, I fixed this one <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: --> . In Doom if you kill a flying monster it falls too quick (not like in ZDoom or the original), also fixed this one too. And finally in Hexen the teleport bug I posted in my last post here is also fixed, you forgot a "!" in the last check for the teleport, fixed too <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: --> . I have uploaded a new zip file with these changes so you can test them and give me your comments on them.
Thu, 05 May 2005 07:04:00

dj_jl

I have been testing the games (mainly Heretic and Doom) and I found some bugs on the progs with the minotaur in Heretic, when the minotaur makes it's charge attack he flies away if he passes trough two sectors with different heights, I fixed this one <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: --> .
Yeah, it looks like it bounces off the floor with 2 times more speed.
In Doom if you kill a flying monster it falls too quick (not like in ZDoom or the original), also fixed this one too.
I must try this to see the difference.
And finally in Hexen the teleport bug I posted in my last post here is also fixed, you forgot a "!" in the last check for the teleport, fixed too <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: --> .
I already fixed this a long time ago.
Fri, 10 Jun 2005 14:22:27

Firebrand

I have been playing around fixing some more stuff from the Vavoom progs, in Heretic I fixed the volcano blasts to fly correctly, it might not work exactly as in Heretic because I needed to turn on and off the bNoGravity flag in the projectiles, but I think it workd fine <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->, also in Heretic, I tweaked the distance in which the minotaur does the floor fire attack as it is in ZDoom (I really haven't check the value in the original Heretic source, but I think it works a bit better), in Doom I fixed the status bar to look better and in Hexen I noticed that the Mage's lightning weapon did zigzag too much, that's because the zigzag count needs to be initialized in 0 (ZDoom and even the original Hexen source do it like this), I just added the line of code to initialize it, every change was uploaded to the KDev, please give it a check and tell me what you think Janis
Thu, 16 Jun 2005 17:47:21

dj_jl

I have been playing around fixing some more stuff from the Vavoom progs, in Heretic I fixed the volcano blasts to fly correctly, it might not work exactly as in Heretic because I needed to turn on and off the bNoGravity flag in the projectiles, but I think it workd fine <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->,
Hmmm, I'll chec it later. Maybe it's simplet to add more vertical force.
also in Heretic, I tweaked the distance in which the minotaur does the floor fire attack as it is in ZDoom (I really haven't check the value in the original Heretic source, but I think it works a bit better),
192 / 256 = 0.75, so I don't see any difference here.
in Doom I fixed the status bar to look better
That's cool.
and in Hexen I noticed that the Mage's lightning weapon did zigzag too much, that's because the zigzag count needs to be initialized in 0 (ZDoom and even the original Hexen source do it like this), I just added the line of code to initialize it
The memory for objects when created is initialised to zeroes, so it should be 0 already. I'll check if it's possible to be other than 0.
Sun, 03 Jul 2005 19:17:18

Firebrand

I have been playing around with the AUTOPAGE lumps for Doom and Strife, I uploaded a new zip file to KDev that contains the new lumps (colored correctly for both games), and some new default colors to suit better the new colors, feel free to change anything you don't like <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->. Also, I have a small question regarding the new texture manager, I downloaded some hi-res textures for Heretic from the j-files batchs, but there seems to be something wrong with them, because the game doesn't start once I run a map, here's the error I get:
- TFlatTexture::GetPixels
- VDirect3DDrawer::GenerateTexture
- VDirect3DDrawer::SetTexture
- R_PrecacheLevel
- R_Start
- CL_ParseServerInfo
- CL_ParseServerMessage
- CL_ReadFromServer
- Host_Frame


Exiting due to external exception
I don't know if it's a problem with the textures or something else, oh, and before I forget, I had to made some changes to the "d3d_tex.cpp" and to the "r_tex.cpp", to compile the source without errors (I don't really remember which errors the compiler sent, but that might be a problem too).
Tue, 05 Jul 2005 06:09:36

dj_jl

I'll check autopages later today. Well, it crashes while loading non-hi-res version of flat. It didin't crash without hi-res textures? I haven't yet tried to compile new version on Windoze. Can you post output of 'cvs -z3 diff' in source dir.
Tue, 05 Jul 2005 16:06:33

Firebrand

[quote="dj_jl":3ndfy95p]I'll check autopages later today. Sure, no problem <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> . [quote="dj_jl":3ndfy95p]Well, it crashes while loading non-hi-res version of flat. It didin't crash without hi-res textures? It crashes only using the OpenGL or the Direct3D renderers, if you play using the software renderer there's no crash <!-- s:? --><img src="{SMILIES_PATH}/icon_confused.gif" alt=":?" title="Confused" /><!-- s:? --> . [quote="dj_jl":3ndfy95p]I haven't yet tried to compile new version on Windoze. Can you post output of 'cvs -z3 diff' in source dir. Is there a way to do it using Tortoise CVS? I found an option that says "make patch", using it makes a source.patch file, which I'm posting here (if you want me to upload the .patch file just ask, OK? Here it goes:
? source/vavoom.aps
Index: source/d3d_tex.cpp
===================================================================
RCS file: /cvsroot/vavoom/vavoom/source/d3d_tex.cpp,v
retrieving revision 1.26
diff -u -r1.26 d3d_tex.cpp
--- source/d3d_tex.cpp	26 May 2005 16:50:14 -0000	1.26
+++ source/d3d_tex.cpp	8 Jun 2005 22:25:58 -0000
@@ -363,7 +363,7 @@
 		return;
 	}
 
-	tex = GTextureManager.TextureAnimation(tex);
+	handle = GTextureManager.TextureAnimation(handle);
 
 	if (!GTextureManager.Textures[handle]->DriverData)
 	{
Index: source/r_tex.cpp
===================================================================
RCS file: /cvsroot/vavoom/vavoom/source/r_tex.cpp,v
retrieving revision 1.30
diff -u -r1.30 r_tex.cpp
--- source/r_tex.cpp	3 Jul 2005 12:06:56 -0000	1.30
+++ source/r_tex.cpp	3 Jul 2005 17:21:32 -0000
@@ -1097,7 +1097,7 @@
 		}
 
 		byte* pPix = Pixels;
-		for (int i = 0; i < NumPixels; i++, pPix++)
+		for (i = 0; i < NumPixels; i++, pPix++)
 		{
 			*pPix = Remap[*pPix];
 		}
@@ -1934,7 +1934,7 @@
 				best_dist = dist;
 			}
 		}
-		for (int i = 0; i < Width * Height; i++)
+		for (i = 0; i < Width * Height; i++)
 		{
 			if (Palette[Pixels].a == 0)
 				Pixels = 0;
@@ -2098,7 +2098,7 @@
 				best_dist = dist;
 			}
 		}
-		for (int i = 0; i < Width * Height; i++)
+		for (i = 0; i < Width * Height; i++)
 		{
 			if (Palette[Pixels].a == 0)
 				Pixels = 0;
There's not much changes, I just took out the "int" stuff from each for statement because the compiler said it was redefining an existing variable, that's all I also changed a "tex = GTextureManager.TextureAnimation(tex);" to "handle = GTextureManager.TextureAnimation(handle);", because the compiler said that the variable "tex" wasn't defined, I don't know if this change was right or not BTW.
Wed, 06 Jul 2005 06:17:03

dj_jl

I like the automap backgrounds. I'll check what could cause the crashes. This patch was exactly what I needed. Fixes have been commited in CVS.
Wed, 06 Jul 2005 13:00:20

Firebrand

I'm glad I was able to help you out Janis <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> . The next fix will be for the Heretic volcano projectiles (just add more vertical speed). EDIT: It's done, I'm posting the patches here:
Index: progs/heretic/game/Volcano.vc
===================================================================
RCS file: /cvsroot/vavoom/vavoom/progs/heretic/game/Volcano.vc,v
retrieving revision 1.1
diff -u -r1.1 Volcano.vc
--- progs/heretic/game/Volcano.vc	26 Oct 2002 16:32:23 -0000	1.1
+++ progs/heretic/game/Volcano.vc	6 Jul 2005 13:28:07 -0000
@@ -59,7 +59,7 @@
 		blast.Angles.yaw = angle;
 		blast.Velocity.x = cos(angle) * 35.0;
 		blast.Velocity.y = sin(angle) * 35.0;
-		blast.Velocity.z = (2.5 + Random() * 4.0) * 35.0;
+		blast.Velocity.z = (7.5 + Random() * 12.0) * 35.0;
 		blast.PlaySound('VolcanoBlast', CHAN_VOICE);
 		blast.CheckMissileSpawn();
 	}
Index: progs/heretic/game/VolcanoBlast.vc
===================================================================
RCS file: /cvsroot/vavoom/vavoom/progs/heretic/game/VolcanoBlast.vc,v
retrieving revision 1.1
diff -u -r1.1 VolcanoBlast.vc
--- progs/heretic/game/VolcanoBlast.vc	26 Oct 2002 16:32:23 -0000	1.1
+++ progs/heretic/game/VolcanoBlast.vc	6 Jul 2005 13:28:21 -0000
@@ -70,7 +70,7 @@
 		tiny.Angles.yaw = angle;
 		tiny.Velocity.x = 0.7 * cos(angle) * 35.0;
 		tiny.Velocity.y = 0.7 * sin(angle) * 35.0;
-		tiny.Velocity.z = (1.0 + Random() * 2.0) * 35.0;
+		tiny.Velocity.z = (3.0 + Random() * 6.0) * 35.0;
 		tiny.CheckMissileSpawn();
 	}
 }
Thu, 07 Jul 2005 18:05:02

dj_jl

Applied.
Fri, 15 Jul 2005 02:06:02

Firebrand

Fixed an easy one, the vertical speed for the played jump in Hexen, it works fine now in the default levels, you normally didn't reach places that in the default port you could reach (like a certain place on the shadow wood, for example). here are the changes for it:
Index: progs/hexen/game/Player.vc
===================================================================
RCS file: /cvsroot/vavoom/vavoom/progs/hexen/game/Player.vc,v
retrieving revision 1.8
diff -u -r1.8 Player.vc
--- progs/hexen/game/Player.vc	28 Mar 2005 07:44:09 -0000	1.8
+++ progs/hexen/game/Player.vc	13 Jul 2005 22:56:59 -0000
@@ -1133,11 +1133,11 @@
 	{
 		if (MorphTime)
 		{
-			MO.Velocity.z = 6.0 * 35.0;
+			MO.Velocity.z = 6.5 * 35.0;
 		}
 		else
 		{
-			MO.Velocity.z = 9.0 * 35.0;
+			MO.Velocity.z = 9.5 * 35.0;
 		}
 		MO.bOnMobj = false;
 		JumpTime = 0.5;
EDIT: BTW Janis, I don't want to bother you with this but, could you upload the new models you have made somewhere so I can give them a check? I'm a bit interested on that, but if you can't, no problem, I'll wait until the official release <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> .
Sat, 16 Jul 2005 09:57:13

dj_jl

Im uploading right now models to koraxdev Vavoom folder.
Sat, 16 Jul 2005 11:11:34

Firebrand

Cool! Thanks Janis <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> .
Mon, 25 Jul 2005 20:05:18

Firebrand

Oh! I almost forgot it, I fixed the MP3 support in Vavoom to be compatible with the latest FMOD version (3.74 I think), here are the changes in the source code for it:
? source/vavoom.aps
Index: source/s_win32m.cpp
===================================================================
RCS file: /cvsroot/vavoom/vavoom/source/s_win32m.cpp,v
retrieving revision 1.11
diff -u -r1.11 s_win32m.cpp
--- source/s_win32m.cpp	24 Sep 2004 10:54:11 -0000	1.11
+++ source/s_win32m.cpp	23 May 2005 13:59:35 -0000
@@ -25,7 +25,7 @@
 
 // HEADER FILES ------------------------------------------------------------
 
-//#define TEST_MP3
+#define TEST_MP3
 
 #include "winlocal.h"
 #include <dmusici.h>
@@ -459,7 +459,7 @@
 		FL_FindFile(va("music/%s.ogg", song), RealName))
 	{
 		StopMidiSong();
-		fmodStream = FSOUND_Stream_OpenFile(RealName, FSOUND_NORMAL, 0);
+		fmodStream = FSOUND_Stream_Open(RealName, FSOUND_LOOP_NORMAL, 0, 0);
 		if (!fmodStream)
 		{
 			GCon->Logf("Couldn't open %s", RealName);
@@ -630,14 +630,10 @@
 
 //**************************************************************************
 //**
-//**	qmus2mid.c
-//**
 //**    Quick MUS->MID ! by S.Bacquet
 //**
 //**************************************************************************
 
-// HEADER FILES ------------------------------------------------------------
-
 // MACROS ------------------------------------------------------------------
 
 #define MUSMAGIC     		"MUS\032"
@@ -786,7 +782,7 @@
     }
   	while (1)
     {
-		TWriteByte(tracknum, (byte)(buffer & 0xff));
+		TWriteByte(tracknum, buffer);
       	if (buffer & 0x80)
 			buffer >>= 8 ;
       	else
@@ -827,12 +823,13 @@
 	byte				et;
 	int					MUSchannel;
 	int					MIDIchannel;
-	int					MIDItrack;
+	int					MIDItrack = 0;
 	int					NewEvent;
 	int 				i;
 	int					event;
 	int					data;
 	dword				DeltaTime;
+	dword				TotalTime = 0;
 	byte				MUS2MIDcontrol[15] =
 	{
 	    0,				/* Program change - not a MIDI control change */
@@ -877,7 +874,7 @@
 
 	if (MUSh->channels > 15)	 /* <=> MUSchannels+drums > 16 */
     {
-    	GCon->Log(NAME_Dev, "Too many channels");
+    	GCon->Log(NAME_Dev,"Too meny channels");
 		return false;
 	}
 
@@ -898,7 +895,7 @@
 		{
 	  		MIDIchannel = MUS2MIDchannel[MUSchannel] =
 	    		(MUSchannel == 15 ? 9 : FirstChannelAvailable());
-	  		MIDItrack   = MIDIchan2track[MIDIchannel] = (byte)TrackCnt++;
+	  		MIDItrack   = MIDIchan2track[MIDIchannel] = TrackCnt++;
 			tracks[MIDItrack].data = (char *)Z_Malloc(TRACKBUFFERSIZE, PU_MUSIC, 0);
 		}
       	else
@@ -967,7 +964,7 @@
   			break;
 		 case 5:
 		 case 7:
-			GCon->Log(NAME_Dev, "MUS file corupted");
+			GCon->Log(NAME_Dev,"MUS file corupted");
   			return false;
 		 default:
            	break;
@@ -975,6 +972,7 @@
       	if (last(event))
 		{
 	  		DeltaTime = ReadTime(&mus_ptr);
+	  		TotalTime += DeltaTime;
 	  		for (i = 0; i < (int)TrackCnt; i++)
 	    		tracks.DeltaTime += DeltaTime;
 		}
@@ -990,15 +988,15 @@
 		}
 	}
 
-    for (i = 0; i < TrackCnt; i++)
+    for (i=0; i<TrackCnt; i++)
     {
 		TWriteBuf(i, track_end, 4);
 	}
 
 	if (ouch)
     {
-		GCon->Log(NAME_Dev, "WARNING : There are bytes missing at the end.");
-		GCon->Log(NAME_Dev, "The end of the MIDI file might not fit the original one.");
+		GCon->Logf(NAME_Dev, "WARNING : There are bytes missing at the end.");
+		GCon->Logf(NAME_Dev, "The end of the MIDI file might not fit the original one.");
 	}
 
 	return true;
@@ -1010,7 +1008,7 @@
 //
 //==========================================================================
 
-static void WriteBuf(const void *p, int size)
+static void WriteBuf(void *p, int size)
 {
 	memcpy(mid_file, p, size);
 	mid_file += size;
@@ -1073,7 +1071,7 @@
 //
 //==========================================================================
 
-static int qmus2mid(char *mus, char *mid, int length)
+int qmus2mid(char *mus, char *mid, int length)
 {
 	mid_file = mid;
 
Hope that they are useful for you Janis <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Thu, 22 Sep 2005 15:34:22

Firebrand

I fixed the vertical distance check on the PIT_RadiusAttack for KA, and I think it would be a cool addition to the other games too, here are the lines I fixed from the code, hope you find it useful Janis:
	if (fabs((Actor(Other).Origin.z + Actor(Other).Height) - Actor(bombspot/*bombsource*/).Origin.z) > bombdistance)
	{
		// too high/low
		return true;
	}
Just add this check to the PIT_RadiusAttack and it should work, it was the main problem the darkness missile and the poison cloud had to hit you when you were higher or lower than the projectiles. This seems to fix the problem.
Tue, 04 Oct 2005 01:35:29

Firebrand

I applied the latest changes to Vavoom from the CVS to KA, and it sometimes crashed with the following error:
- Z_Resize
- VMMSystemMidiDevice::BuildFileIndex
- VMMSystemMidiDevice::Play
- PlaySong
- COMMAND Music
- Host_Frame


Exiting due to external exception
BTW, the new MIDI driver works really well <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Thu, 06 Oct 2005 23:12:03

dj_jl

Ooops, my mistake. Get new version.
Sun, 09 Oct 2005 18:49:15

Firebrand

Tomorrow I'll post some new code for Vavoom that I have done for the status bar and some other stuff (the mage's lightning missiles mainly) <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Tue, 11 Oct 2005 01:16:05

Firebrand

I posted them inside a TXT file in the Vavoom folder, sorry for the delay <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->.
Thu, 20 Oct 2005 13:04:50

Firebrand

I downloaded the latest Vavoom changes and I got this error when trying to begin the game:
- VStreamMusicPlayer::Tick
- S_UpdateSounds
- Host_Frame


Exiting due to external exception
It seems a problem with the recent changes, if you run the game without music it runs fine.
Sat, 22 Oct 2005 13:20:53

dj_jl

Yes, there were some bugs. The latest update should work fine.
Mon, 31 Oct 2005 16:53:49

Firebrand

I got the latest code changes, but there seems to be a problem with the OGG Vorbis decoder, the music sounds faster than it should, also, it only decodes a few seconds of music before looping back to the beginning, I got the latest release of the LibVorbis to compile the source, unless I'm using a version of the library older or newer somehow, the MOD & MP3 music seems to work fine tought, also, I got an updated project file for Vavoom under M$VC that could be useful for you, I'm posting a diff patch for you here, hope it's useful for you <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->. NEW VAVOOM95 PROJECT FILE:
ndex: Vavoom95/Vavoom95.dsp
===================================================================
RCS file: /cvsroot/vavoom/vavoom/msvc/Vavoom95/Vavoom95.dsp,v
retrieving revision 1.2
diff -u -r1.2 Vavoom95.dsp
--- Vavoom95/Vavoom95.dsp	22 Mar 2005 07:50:40 -0000	1.2
+++ Vavoom95/Vavoom95.dsp	31 Oct 2005 16:34:58 -0000
@@ -43,7 +43,7 @@
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W4 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MT /W4 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x426 /d "NDEBUG"
@@ -53,7 +53,8 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib ole32.lib winmm.lib opengl32.lib openal32.lib wsock32.lib libpng.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib ole32.lib winmm.lib opengl32.lib openal32.lib wsock32.lib libpng.lib zlib.lib libmad.lib vorbis_static.lib ogg_static.lib mikmod.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"msvcrt.lib" /nodefaultlib:"libcd.lib" /nodefaultlib:"libcmtd.lib" /nodefaultlib:"msvcrtd.lib" /libpath:"C:\Gamma\Microsoft Visual C++ Toolkit 2003\lib"
+# SUBTRACT LINK32 /pdb:none
 
 !ELSEIF  "$(CFG)" == "Vavoom95 - Win32 Debug"
 
@@ -79,8 +80,8 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib ole32.lib winmm.lib opengl32.lib openal32.lib wsock32.lib libpng.lib /nologo /subsystem:windows /debug /machine:I386
-# SUBTRACT LINK32 /profile
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib ole32.lib winmm.lib opengl32.lib openal32.lib wsock32.lib libpng.lib fmodvc.lib zlib.lib /nologo /subsystem:windows /debug /machine:I386
+# SUBTRACT LINK32 /pdb:none
 
 !ENDIF 
 
@@ -370,6 +371,10 @@
 
 SOURCE=..\..\source\vavoom_2.ico
 # End Source File
+# Begin Source File
+
+SOURCE=..\..\source\vavoom_3.ico
+# End Source File
 # End Group
 # Begin Group "Assembler Files"
 
@@ -1652,11 +1657,6 @@
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\source\qmus2mid.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\source\s_al.cpp
 # End Source File
 # Begin Source File
@@ -1684,6 +1684,14 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\source\s_mikmod.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\s_mp3.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\source\s_sdl.cpp
 # PROP Exclude_From_Build 1
 # End Source File
@@ -1699,6 +1707,14 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\source\s_tmidty.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\s_vorbis.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\source\s_win32.cpp
 # ADD CPP /W4
 # End Source File
@@ -2093,5 +2109,101 @@
 SOURCE=..\..\source\winlocal.h
 # End Source File
 # End Group
+# Begin Group "Timidity Driver"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\source\timidity\common.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\common.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\config.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\controls.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\controls.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\filter.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\filter.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\instrum.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\instrum.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\mix.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\mix.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\output.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\output.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\playmidi.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\playmidi.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\readmidi.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\readmidi.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\resample.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\resample.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\tables.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\tables.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\timidity.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\source\timidity\timidity.h
+# End Source File
+# End Group
 # End Target
 # End Project
Tue, 01 Nov 2005 17:29:16

dj_jl

I know that Vorbis driver has this problem. It needs some rewriting, I'll do it soon. Thanks for the patch.
Sun, 06 Nov 2005 17:45:22

Firebrand

I got the latest changes, there were some missing stuff that was needed to take out from the win32 sound files, here's are the diff files from what I took out <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->:
ndex: s_win32.cpp
===================================================================
RCS file: /cvsroot/vavoom/vavoom/source/s_win32.cpp,v
retrieving revision 1.30
diff -u -r1.30 s_win32.cpp
--- s_win32.cpp	5 Nov 2005 15:50:07 -0000	1.30
+++ s_win32.cpp	6 Nov 2005 17:31:00 -0000
@@ -564,7 +564,7 @@
 //
 //==========================================================================
 
-static LPDIRECTSOUNDBUFFER CreateBuffer(int sound_id, const char *VoiceName)
+static LPDIRECTSOUNDBUFFER CreateBuffer(int sound_id)
 {
 	HRESULT					result;
 	LPDIRECTSOUNDBUFFER		dsbuffer;
@@ -599,12 +599,12 @@
 	}
 
 	//	Check, that sound lump is loaded
-	if (!S_LoadSound(sound_id, VoiceName))
+	if (!S_LoadSound(sound_id))
 	{
 		//	Missing sound.
 		return NULL;
 	}
-	sfxinfo_t &sfx = VoiceName ? S_VoiceInfo : S_sfx[sound_id];
+	sfxinfo_t &sfx = /*VoiceName ? S_VoiceInfo :*/ S_sfx[sound_id];
 
 	// Set up wave format structure.
 	memset(&pcmwf, 0, sizeof(WAVEFORMATEX));
@@ -728,7 +728,7 @@
 		return; //no free channels.
 	}
 
-	dsbuffer = CreateBuffer(sound_id, NULL);
+	dsbuffer = CreateBuffer(sound_id);
 	if (!dsbuffer)
 	{
 		return;
@@ -836,7 +836,7 @@
 	S_StopAllSound();
 
 	//	Create buffer
-	dsbuffer = CreateBuffer(sound_id, NULL);
+	dsbuffer = CreateBuffer(sound_id);
 	if (!dsbuffer)
 	{
 		return;
Index: s_data.cpp
===================================================================
RCS file: /cvsroot/vavoom/vavoom/source/s_data.cpp,v
retrieving revision 1.14
diff -u -r1.14 s_data.cpp
--- s_data.cpp	5 Nov 2005 15:50:07 -0000	1.14
+++ s_data.cpp	6 Nov 2005 17:20:42 -0000
@@ -68,6 +68,8 @@
 
 void S_InitScript(void)
 {
+	int Lump;
+
 	guard(S_InitScript);
 	//
 	//	Allocate memory for sound info
@@ -110,7 +112,7 @@
 	SC_Close();
 
 	//	Add Strife voices.
-	for (int Lump = W_IterateNS(-1, WADNS_Voices); Lump >= 0;
+	for (Lump = W_IterateNS(-1, WADNS_Voices); Lump >= 0;
 		Lump = W_IterateNS(Lump, WADNS_Voices))
 	{
 		char SndName[16];
@@ -130,7 +132,7 @@
 	//
 	//	Load script SNDINFO
 	//
-	for (int Lump = W_IterateNS(-1, WADNS_Global); Lump >= 0;
+	for (Lump = W_IterateNS(-1, WADNS_Global); Lump >= 0;
 		Lump = W_IterateNS(Lump, WADNS_Global))
 	{
 		if (!stricmp(W_LumpName(Lump), "sndinfo"))
Mon, 07 Nov 2005 22:56:03

dj_jl

Thanks.
Fri, 11 Nov 2005 16:42:16

Firebrand

There's a new problem with the latest Vavoom changes, KA can't be started anymore, I don't know what's the problem, my guess it's that the multi MAPINFO parser broke something that has to do with the different map names that we are using, but it could be something else, the problem I have is that Vavoom doesn't even show any error messages, I have tested the build I made with the original games and it works fine, so it's something related to KA. Any help will be appreciated, thanks!
Sat, 12 Nov 2005 14:24:13

dj_jl

I found the problem.
Sun, 13 Nov 2005 00:05:37

Firebrand

Well, that wasn't the problem, it seems <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( -->, by making some changes to the Vavoom project file I was able to build a debug build of it, this is what the M$ debugger says:
Unhandled exception at 0x004151fd in Vavoom95.exe: 0xC0000005: Access violation reading location 0x00000bfc.
This is the call stack contents of the error:
>	Vavoom95.exe!FName::operator*()  Line 86 + 0x10	C++
 	Vavoom95.exe!TTextureManager::CheckNumForName(FName Name={...}, int Type=2, unsigned char bOverload='', unsigned char bCheckAny=0)  Line 404 + 0x8	C++
 	Vavoom95.exe!ParseMapInfo()  Line 302 + 0x24	C++
 	Vavoom95.exe!InitMapInfo()  Line 165	C++
 	Vavoom95.exe!Host_Init()  Line 162	C++
 	Vavoom95.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, HINSTANCE__ * __formal=0x00000000, int iCmdShow=10)  Line 813	C++
 	Vavoom95.exe!_WinMainCRTStartup()  + 0xe0	
 	kernel32.dll!7c816d4f() 	
 	kernel32.dll!7c8399f3() 	
Hope it's enough to fix the problem or at least orient me on a way to fix it. Thanks!
Sun, 13 Nov 2005 10:52:25

dj_jl

Strange, since I can run KA just fine. And I don't see any reason how it can crash where it does. Try to comment out the loop that searches for all mapinfo lumps and use something like this:
SC_OpenLump("mapinfo");
ParseMapInfo();
Sun, 13 Nov 2005 18:11:36

Firebrand

Yes, that helped me to start Vavoom normally, I think there's a problem with the code there, how about making the MAPINFO lump additvie, i.e. it loads the data it finds from each MAPINFO lump, so if you declare a MAP01 in one MAPINFO lump and a MAP02 in another one (different PWAD for example), it loads both maps? I think it's overwriting the info found in the different lumps maybe. EDIT: Would it be possible to do the same with SNDINFO entries? I had to copy all the sounds from hexen to define new song lumps for the maps in a test i made.
Mon, 14 Nov 2005 17:57:12

dj_jl

Yes, that helped me to start Vavoom normally, I think there's a problem with the code there, how about making the MAPINFO lump additvie, i.e. it loads the data it finds from each MAPINFO lump, so if you declare a MAP01 in one MAPINFO lump and a MAP02 in another one (different PWAD for example), it loads both maps? I think it's overwriting the info found in the different lumps maybe.
That's how it's suposed to work. For some reason it doesn't want to work for you.
EDIT: Would it be possible to do the same with SNDINFO entries? I had to copy all the sounds from hexen to define new song lumps for the maps in a test i made.
I already implemented this some time ago.
Mon, 14 Nov 2005 19:14:23

Firebrand

[quote="dj_jl":2bm89omm]That's how it's suposed to work. For some reason it doesn't want to work for you. Hmm, I'll take a look at the code and try to find the problem myself then. If you find something please post it here, thanks! [quote="dj_jl":2bm89omm]
EDIT: Would it be possible to do the same with SNDINFO entries? I had to copy all the sounds from hexen to define new song lumps for the maps in a test i made.
I already implemented this some time ago. OK, I didn't knew, I'll check my test map, maybe I made something wrong.
Mon, 14 Nov 2005 21:02:49

Firebrand

I didn't notice this warning:
--------------------Configuration: Vavoom95 - Win32 Debug--------------------
Compiling...
mapinfo.cpp
E:\Korax\Vavoom\New_Source\vavoom\source\mapinfo.cpp(34) : warning C4005: 'MAPINFO_SCRIPT_NAME' : macro redefinition
        e:\korax\vavoom\new_source\vavoom\source\mapinfo.cpp(0) : see previous definition of 'MAPINFO_SCRIPT_NAME'
I know it's something really stupid, considering that the macro it's only defined in that file. EDIT: I don't think it's the cause of the problem, because I also tried the fix you proposed using this lines of code:
if (!stricmp(W_LumpName(Lump), "mapinfo"))
{
         SC_OpenLumpNum(Lump);
	ParseMapInfo();
}
Which it's still very strange...
Tue, 15 Nov 2005 18:09:10

dj_jl

How about replacing MAPINFO_SCRIPT_NAME with "mapinfo" in the loop.
Tue, 15 Nov 2005 21:18:36

Firebrand

Yes! That made the trick, it works fine now, thanks a lot for the help Janis <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Fri, 18 Nov 2005 14:09:49

Firebrand

I got this error when I applied the latest Vavoom changes in Hexen MAP01:
- S_GetSoundPlayingInfo
- SN_UpdateActiveSequences
- S_UpdateSounds
- Host_Frame


Exiting due to external exception
BTW, I made the Strife intro to work as in the original game, here's the patch for it:
Index: progs/strife/client/title.vc
===================================================================
RCS file: /cvsroot/vavoom/vavoom/progs/strife/client/title.vc,v
retrieving revision 1.7
diff -u -r1.7 title.vc
--- progs/strife/client/title.vc	5 Nov 2005 15:50:55 -0000	1.7
+++ progs/strife/client/title.vc	11 Nov 2005 14:00:53 -0000
@@ -57,52 +57,59 @@
 	switch (demosequence)
 	{
 	case 0:
-		pagetime = 5.0;
+		pagetime = 12.0;
 		page_pic = R_RegisterPic("TITLEPIC", PIC_PATCH);
 		CmdBuf_AddText("music play d_logo");
 		break;
 
 	case 1:
+		pagetime = 5.0;
+		page_pic = R_RegisterPic("RGELOGO", PIC_PATCH);
+		LocalSound('CrusaderActive');
+		break;
+
+	case 2:
+		CmdBuf_AddText("music play d_intro");
 		pagetime = 7.0;
 		page_pic = R_RegisterPic("PANEL1", PIC_PATCH);
 		LocalSound('svox/pro1');
 		break;
 
-	case 2:
+	case 3:
 		pagetime = 9.0;
 		page_pic = R_RegisterPic("PANEL2", PIC_PATCH);
 		LocalSound('svox/pro2');
 		break;
 
-	case 3:
+	case 4:
 		pagetime = 12.0;
 		page_pic = R_RegisterPic("PANEL3", PIC_PATCH);
 		LocalSound('svox/pro3');
 		break;
 
-	case 4:
+	case 5:
 		pagetime = 11.0;
 		page_pic = R_RegisterPic("PANEL4", PIC_PATCH);
 		LocalSound('svox/pro4');
 		break;
 
-	case 5:
+	case 6:
 		pagetime = 10.0;
 		page_pic = R_RegisterPic("PANEL5", PIC_PATCH);
 		LocalSound('svox/pro5');
 		break;
 
-	case 6:
+	case 7:
 		pagetime = 16.0;
 		page_pic = R_RegisterPic("PANEL6", PIC_PATCH);
 		LocalSound('svox/pro6');
 		break;
 
-	case 7:
+	case 9:
 		CmdBuf_AddText("PlayDemo demo1\n");
 		break;
 
-	case 8:
+	case 10:
 		pagetime = 6.0;
 		page_pic = R_RegisterPic("CREDIT", PIC_PATCH);
 		break;
Also, there are some super shotgun sounds missing from the Doom2 SNDINFO lump (or maybe not renamed).
Fri, 18 Nov 2005 20:12:30

dj_jl

I got this error when I applied the latest Vavoom changes in Hexen MAP01:
Fixed.
BTW, I made the Strife intro to work as in the original game
That's cool.
Also, there are some super shotgun sounds missing from the Doom2 SNDINFO lump (or maybe not renamed).
Missed one sound while renaming.
Sat, 19 Nov 2005 11:55:02

Firebrand

Also, some small things in Strife, there's a missing water splash sound for liquids on it, and the crossbow arrow icons are inverted in the status bar, here's a patch that fixes this last one:
RCS file: /cvsroot/vavoom/vavoom/progs/strife/client/statbar.vc,v
retrieving revision 1.14
diff -u -r1.14 statbar.vc
--- progs/strife/client/statbar.vc	6 Nov 2005 19:11:13 -0000	1.14
+++ progs/strife/client/statbar.vc	19 Nov 2005 11:51:30 -0000
@@ -211,8 +211,8 @@
 	pic_ammo[am_clip] = R_RegisterPic("BLITA0", PIC_PATCH);
-	pic_ammo[am_electric_arrow] = R_RegisterPic("PQRLA0", PIC_PATCH);
-	pic_ammo[am_poison_arrow] = R_RegisterPic("XQRLA0", PIC_PATCH);
+	pic_ammo[am_electric_arrow] = R_RegisterPic("XQRLA0", PIC_PATCH);
+	pic_ammo[am_poison_arrow] = R_RegisterPic("PQRLA0", PIC_PATCH);
 	pic_ammo[am_cell] = R_RegisterPic("CPACA0", PIC_PATCH);
Also, there was a small issue in the wad.c file from the GLBSP source, here's the fix for it:
RCS file: /cvsroot/vavoom/vavoom/utils/glbsp/wad.c,v
retrieving revision 1.8
diff -u -r1.8 wad.c
--- utils/glbsp/wad.c	13 Nov 2005 19:45:55 -0000	1.8
+++ utils/glbsp/wad.c	18 Nov 2005 00:58:32 -0000
@@ -1632,13 +1632,10 @@
 void ReportV5Switches(void)
 {
   lump_t *cur;
+  int saw_zdbsp = FALSE;
 
  PrintMsg(
    "V5 FORMAT UPGRADES.  The following levels require a Doom port\n"
    "which supports V5 GL-Nodes, otherwise they will fail (or crash).\n\n"
  );
 
-  int saw_zdbsp = FALSE;
 
  PrintMsg(
    "V5 FORMAT UPGRADES.  The following levels require a Doom port\n"
Sat, 03 Dec 2005 17:41:31

Firebrand

I got the latest Vavoom changes, here are some more small changes and fixes for them:
Index: source/r_main.cpp
===================================================================
RCS file: /cvsroot/vavoom/vavoom/source/r_main.cpp,v
retrieving revision 1.29
diff -u -r1.29 r_main.cpp
--- source/r_main.cpp	13 Nov 2005 18:44:55 -0000	1.29
+++ source/r_main.cpp	28 Nov 2005 18:18:49 -0000
@@ -212,7 +212,7 @@
 COMMAND(SizeDown)
 {
 	R_SetViewSize(screenblocks - 1);
-	S_StartSoundName("MenuSwitch");
+	S_StartSoundName("menu/change");
 }
 
 //==========================================================================
@@ -224,7 +224,7 @@
 COMMAND(SizeUp)
 {
 	R_SetViewSize(screenblocks + 1);
-	S_StartSoundName("MenuSwitch");
+	S_StartSoundName("menu/change");
 }
Also, the VCC source code had some compiling problems I fixed, here are the diffs for them:
Index: utils/vcc/expressn.cpp
===================================================================
RCS file: /cvsroot/vavoom/vavoom/utils/vcc/expressn.cpp,v
retrieving revision 1.31
diff -u -r1.31 expressn.cpp
--- utils/vcc/expressn.cpp	30 Nov 2005 23:55:05 -0000	1.31
+++ utils/vcc/expressn.cpp	1 Dec 2005 16:02:52 -0000
@@ -481,8 +481,8 @@
 		ERR_Exit(ERR_ILLEGAL_EXPR_IDENT, true, "Identifier: %s", *Name);
 		break;
 
-	 default:
-	   	break;
+/*	 default:
+	   	break;*/
 	}
Index: utils/vcc/pcode.cpp
===================================================================
RCS file: /cvsroot/vavoom/vavoom/utils/vcc/pcode.cpp,v
retrieving revision 1.23
diff -u -r1.23 pcode.cpp
--- utils/vcc/pcode.cpp	30 Nov 2005 23:55:05 -0000	1.23
+++ utils/vcc/pcode.cpp	1 Dec 2005 16:02:52 -0000
@@ -408,9 +408,10 @@
 
 void EndCode(int FuncNum)
 {
+	int i;
 	functions[FuncNum].FirstStatement = CodeBufferSize;
 
-	for (int i = 0; i < NumInstructions; i++)
+	for (i = 0; i < NumInstructions; i++)
 	{
 		Instructions.Address = CodeBufferSize;
 		CodeBuffer[CodeBufferSize++] = Instructions.Opcode;
@@ -424,7 +425,7 @@
 	}
 	Instructions[NumInstructions].Address = CodeBufferSize;
 
-	for (int i = 0; i < NumInstructions; i++)
+	for (i = 0; i < NumInstructions; i++)
 	{
 		switch (Instructions.Opcode)
 		{
Thu, 08 Dec 2005 14:57:19

Firebrand

I yesterday uploaded a "msvc.zip" file to the Vavoom directory on KDev it has the M$VC 6 projects files changed to be multithreaded libraries and utils, in my experience with testing this small change, it makes the game speed increase a bit, also load times between maps reduce, so I consider it to be a good change <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Tue, 13 Dec 2005 18:45:49

Firebrand

I got a couple of small problems regarding the Vavoom source code I compile Janis, first problem, I got the latest Vavoom changes, but when I run the game it exits with this error:
- VRootWindow::StaticInit
- Host_Init


ERROR: PR_GlobalNumForName: global GRoot not found
Also, I have uploaded a couple of screenshots showing a problem with the Direct3D renderer (I don't really know what's the problem), it has happened since some time now, I haven't really made a test using the latest Vavoom version (not compiled by me), I'll do it ASAP and post the results here too. [url:4x7id99q]http://downloads.orcishweb.com/koraxdev/vavoom/screenshots/shot0000.png [url:4x7id99q]http://downloads.orcishweb.com/koraxdev/vavoom/screenshots/shot0001.png [url:4x7id99q]http://downloads.orcishweb.com/koraxdev/vavoom/screenshots/shot0002.png
Tue, 13 Dec 2005 19:48:39

RambOrc

PCX is from the DOS days and is barely supported by anything these days. Even back on Winblows I had to get a viewer that could open just about any graphics format to be able to view PCX, professional graphics apps like MacroMedia Fireworks don't support it and neither do modern browsers. LOL my point is pls upload the pix in some other format. <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->
Tue, 13 Dec 2005 20:53:15

Firebrand

Sure! I'll made it a png or jpg shortly, sorry for the shity image format,heh! <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz" /><!-- s:P -->. EDIT: Aahh! Good ol' Paint Shop Pro did the trick nicely and easy, it's done now, check the post for updated links <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Tue, 13 Dec 2005 21:31:45

RambOrc

ouch that looks real bad... just a question, does Vavoom really need a D3D renderer these days? Are there still games out there using it or has everybody gone over to OpenGL?
Tue, 13 Dec 2005 21:59:58

Firebrand

To be honest with you Ramborc, I reallly don't know if it's a problem with my video card drivers or something, I don't know if Col J.P. used D3D to test KA with the old version, however I'm able to use the OpenGL driver for display, it would be cool if someone else could test the last KA version and see if there are any problems with D3D, if there aren't problems, then I think it's my video card and maybe nothing to worry about <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->, anyway I'm posting it just to be sure of it. I'm working now as I write on testing this with Vavoom 1.18, that's the latest version built by Janis to see if it's something that has changed recently or a bug that could be introduced with the executable I build myself. EDIT: The problem comes from Vavoom 1.18 executable so, unless someone that is able to make a quick test of KA using D3D and doesn't has this problem, I'll think it's something related to my video card drivers (which can make everyone calm about it). I'll really appeciate this, thanks!
Wed, 14 Dec 2005 18:59:02

dj_jl

first problem, I got the latest Vavoom changes, but when I run the game it exits with this error
Forgot to commit engine part of the changes.
Also, I have uploaded a couple of screenshots showing a problem with the Direct3D renderer
If it works in OpenGL, that means it's a problem in driver. But I haven't changed anything there. When I'll have time to boot Windows, I'll check how it works for me.
Thu, 22 Dec 2005 16:54:02

Firebrand

I fixed an annoying problem that Vavoom had, it was when flying actors got stuck in your head or with other actors, it seems to be a working fix, check it out and tell me what you think Janis, here's the code:
RCS file: /cvsroot/vavoom/vavoom/progs/doom/game/Actor.vc,v
retrieving revision 1.20
diff -u -r1.20 Actor.vc
--- progs/doom/game/Actor.vc	12 Dec 2005 20:33:49 -0000	1.20
+++ progs/doom/game/Actor.vc	21 Dec 2005 22:02:42 -0000
@@ -1611,27 +1611,28 @@
 					bOnMobj = false;
 				}
 			}
-			else if (bIsPlayer)
+			else
 			{
-				if (Velocity.z < -GRAVITY * 0.25 && !bFly)
+				if (bIsPlayer)
 				{
-					PlayerLandedOnThing();
+					if (Velocity.z < -GRAVITY * 0.25 && !bFly)
+					{
+						PlayerLandedOnThing();
+					}
 				}
 				if (onmo.Origin.z + onmo.Height - Origin.z <= MaxStepHeight)
 				{
-					Player.ViewHeight -=
-						onmo.Origin.z + onmo.Height - Origin.z;
-					Player.DeltaViewHeight =
-						(VIEWHEIGHT - Player.ViewHeight) * 4.0;
+					if (bIsPlayer)
+					{
+						Player.ViewHeight -=
+							onmo.Origin.z + onmo.Height - Origin.z;
+						Player.DeltaViewHeight =
+							(VIEWHEIGHT - Player.ViewHeight) * 4.0;
+					}
 					Origin.z = onmo.Origin.z + onmo.Height;
-					bOnMobj = true;
-					Velocity.z = 0.0;
-				}
-				else
-				{
-					// hit the bottom of the blocking actor
-					Velocity.z = 0.0;
 				}
+				bOnMobj = true;
+				Velocity.z = 0.0;
 			}
 		}
I discovered it long time ago when playing doom and in KA frozen things would make you stuck because they won't explode if they are above your head, that was what make me look for a solution BTW, heh!
Sun, 25 Dec 2005 11:21:34

dj_jl

Looks good to me.
Mon, 26 Dec 2005 16:31:43

Firebrand

I forgot to say that this fix may come handy for every game Vavoom supports, since this bug also happened in heretic with the disciples and in Hexen with the frozen corpses too.
Fri, 30 Dec 2005 17:20:28

Firebrand

I got the latest Vavoom changes, but apparently there's a problem with the ingame GLVIS plugin, I reinstalled Strife to test Vavoom with it, Vavoom builds the GL nodes fine, but when it comes to the GLVIS tables, it crashes with this debug output:
Loaded MAP04, 4855 vertexes, 9881 segs, 1970 subsectors, 7222 portals

- W_BuildGLNodes
- VLevel::LoadMap
- SV_LoadLevel
- SV_SpawnServer
- COMMAND Map
- Host_Frame


ERROR: Leaf portals saw into leaf
Maybe there's something wrong with the latest GLBSP changes and how GLVIS works now.
Fri, 30 Dec 2005 20:31:06

dj_jl

Must be something with glBSP. Can you try it with older version of glBSP?
Fri, 30 Dec 2005 22:25:53

Firebrand

Yes, it seems to work with GLBSP 2.10c, so it must be some kind of incompatibility or a change that is not actually supported or that screws something with GLVIS.
Thu, 05 Jan 2006 00:13:48

Firebrand

I uploaded some diff patchs for the change I made to Actor.vc fixing the problem with flying objects getting stuck inside other actors for Heretic, Hexen and Strife it's inside the Vavoom directory in KDev.
Mon, 09 Jan 2006 20:32:28

Firebrand

I've got a question regarding the 3d floors for you Janis, I made an example wad to try to fix the ceiling and floor lightning missiles to clip on 3d floors, so far I was succesful with the floor one, but the ceiling one is a pain in the back, and when debugging the ceiling and floor heights for the 3d floor in my example wad I discovered that FloorZ (this is the 3d sector floor height) is different from Sector->floorheight (the original sector floor's height), but CeilingZ is the same as Sector->ceilingheight, so there's no variable that makes reference to the 3d floor ceiling height? I tought it could be a problem in the way 3d floors are built, or maybe a missin assignation for a value, but I think I'll ask you first.
Mon, 09 Jan 2006 20:51:49

dj_jl

CeilingZ is 3d floor ceiling height.
Mon, 09 Jan 2006 22:31:22

Firebrand

But in my text when you print the value of CeilingZ it says 512, which is the same height as the original sector, the 3d floor height in my example is 192, which is not the same, I can upload you the example and the code if you wish to test it yourself.
Mon, 09 Jan 2006 22:38:44

RambOrc

If I understood it right you're both meaning the same, i.e. a 3D floor on a sector, both the sector and the 3D floor having the same ceiling at the Z value of 512, or?
Tue, 10 Jan 2006 00:30:36

Firebrand

I'm talking code wise, there are different variables that store the ceiling height, I made a quick example to make some tests for the lightning missile to clip against 3d floors, the base sector is 512 units in ceiling height and 0 units on floor height. On this sector I created a 3d floor which floor is at 256 units of height, and it's ceiling it's at 192 units in height. Then I started thinking on a way to make the ceiling and floor lightning missiles to clip with, obviously the floor lightning will have to clip only with the floors in 3d sectors, and the same with the ceiling lightning (it will only clip with the ceiling lightning). AFAIK there are different variables to determine the height of things and ceilings/floors in the code. If you use the FloorZ and CeilingZ variables, they will have the value of the 3d sector floor and ceiling respectively (in my example 192 for ceiling, 256 for floor). But if you use the Sector->floorheight and Sector->ceilingheight, you are refering to the BASE SECTOR's floor and ceiling heights (in my example 0 for floor and 512 for height). When I implemented the ceiling checks, it seemed weird that using the CeilingZ variable wasn't working as I tought, after a long trial of test and error I decided to print the values for debugging, surprisingly enough, the CeilingZ value was 512, as the Sector->ceilingheight value too, what made me think that there was a problem with something in the executable or the progs, I have uploaded my test map and the code changes I made to a TXT file for you to test Janis, the file is called 3d_lightning.zip.
Thu, 12 Jan 2006 14:00:14

Firebrand

OK, I was working it wrong, I got both lightning missiles clipping correctly now, here's the diff for it, BTW I'm amazed to make this work <!-- s8) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8)" title="Cool" /><!-- s8) --> .
RCS file: /cvsroot/vavoom/vavoom/progs/hexen/game/LightningMissile.vc,v
retrieving revision 1.2
diff -u -r1.2 LightningMissile.vc
--- progs/hexen/game/LightningMissile.vc	8 Mar 2003 12:41:43 -0000	1.2
+++ progs/hexen/game/LightningMissile.vc	10 Jan 2006 22:16:03 -0000
@@ -142,7 +142,11 @@
 
 	if (Class == LightningFloor)
 	{
-		Origin.z = FloorZ;
+		if(Sector->bHasExtrafloors && LightningLink && Instigator.Origin.z >= LightningLink.FloorZ)
+			Origin.z = LightningLink.FloorZ;
+		else
+			Origin.z = FloorZ;
+
 		if (LightningLink)
 			targ = LightningLink.Enemy;
 		else
@@ -150,9 +154,14 @@
 	}
 	else if (Class == LightningCeiling)
 	{
-		Origin.z = CeilingZ - Height;
+		if(Sector->bHasExtrafloors && LightningLink && Instigator.Origin.z <= LightningLink.CeilingZ)
+			Origin.z = LightningLink.CeilingZ - Height;
+		else
+			Origin.z = CeilingZ - Height;
+
 		targ = Enemy;
 	}
+
 	if (Class == LightningFloor)
 	{
Thu, 12 Jan 2006 23:30:37

dj_jl

Nice. <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
Mon, 06 Feb 2006 17:30:35

Firebrand

I've got the latest Vavoom code changes, now Vavoom crashes at startup, I don't even see the title screen, here's the debug output:
  0x4000000 (64.000000 meg) allocated for zone, ZoneBase: 0x1D60020
- Host_Init


Exiting due to external exception
Maybe something to do with the changes for other OS's.
Mon, 06 Feb 2006 21:47:00

dj_jl

Found the problem.
Mon, 06 Feb 2006 22:33:32

Firebrand

As always, Thanks Janis! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> EDIT: It works fine for now, but while I was running on some KA maps I've got this:
- (.P_PathTraverse)
- TProgs::ExecuteFunction
- (Player.PlayerTick)
- SV_RunClients
- SV_Ticker
- ServerFrame
- Host_Frame


ERROR: Function TraceTraverse not found
Seems that there are some missing functions somewhere.
Tue, 07 Feb 2006 19:45:18

dj_jl

Also fixed.
Fri, 10 Feb 2006 04:22:23

Firebrand

I applied the latest Vavoom change, and made a quick test to verify that everything was in order, then I found that the status bar numbers displaying the current player experience level, experience count and next levels show strange numbers since the beginning (3, 2, 322X), it took me some time to find what was changed, and I made a check for everything, it seems all it's normal, but this bug persists, I don't know if it's something buggy in the KA code (but I haven't touched that part of code lately) i.e. some bug that was already there since some time ago, or something that started after this code change, could you give it a check Janis? Thanks!
Fri, 10 Feb 2006 20:50:20

dj_jl

I just moved the code to the class, I didn't change the logic. BTW I noticed that additional variables in client_state_t and in Player class doesn't match.
Fri, 10 Feb 2006 20:53:44

Firebrand

That could be part of the problem?
Sat, 11 Feb 2006 12:22:36

dj_jl

Actually it doesn't seam so. I'll check it out.
Sat, 11 Feb 2006 14:48:57

dj_jl

Found the problem.
Sun, 12 Feb 2006 00:55:24

Firebrand

Yes, that seems to fix this problem, thanks a lot! <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> When entering the control setup menus, I've got this:
- (MenuScreenControls.CursorMoved)
- TProgs::ExecuteFunction
- (MenuScreen.InitWindow)
- VWindow::Init
- VWindow::CreateNewWindow
- (MenuScreenControls2)
- TProgs::ExecuteFunction
- (ClientGame.MenuResponder)
- IN_ProcessEvents
- Host_Frame


Exiting due to external exception
Mon, 13 Feb 2006 12:39:43

dj_jl

Fixed.
Sat, 18 Feb 2006 17:43:42

Firebrand

I've got the latest changes for KA, but there seems to be some kind of problem, here's the debug output:
- (Object.VectorAngles)
- RunFunction
- (Object.VectorAngles 8928117)
- RunFunction
- (HexenLevelInfo.SpawnMapThing 319)
- TProgs::ExecuteFunction
- (HexenLevelInfo.SpawnMapThing)
- SV_SpawnServer
- COMMAND Map
- Host_Frame


Exiting due to external exception
This error also happens in Strife and Doom. In heretic, the game crashed in the D'Sparil's map, saying that there's no BossSpot class.
Sun, 19 Feb 2006 20:41:01

dj_jl

Fixed.
Mon, 20 Feb 2006 15:10:55

Firebrand

There are some more problems with this fix, the bots don't get spawned using the addbot command anymore, also the bobbing items (weapons, mana, artifacts, etc.) don't bob up and down, the bots problem is general from the original Hexen game too.
Mon, 20 Feb 2006 17:58:10

dj_jl

I see that you already fixed problem with floating objects. I fixed the problem with bots.
Mon, 20 Feb 2006 18:05:03

Firebrand

Yes, I found what the problem was with that, as for the bot problem, Thanks a lot! <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
Tue, 21 Feb 2006 03:25:08

Firebrand

I've got the latest changes, when using the "map" command from the console I get this error message:
- COMMAND Spawn
- SV_RunClientCommand
- SV_ReadClientMessages
- SV_RunClients
- SV_Ticker
- ServerFrame
- Host_Frame


Exiting due to external exception
Starting a game and exiting maps normally doesn't seem to have any problems.
Tue, 21 Feb 2006 18:00:19

dj_jl

Fixed.
Wed, 22 Feb 2006 17:06:32

Firebrand

Janis, this is a question about the code, I see that the secotr_t structure has a member called floorheight and another called base_floorheight, if I understand correctly, the floorheight is for 3d floors and the base_floorheight is for the base sector??
Wed, 22 Feb 2006 17:25:08

dj_jl

No, base_* are original values and are used during update of the level to see if they were changed and need to be sent to client. Don't touch them from progs.
Wed, 22 Feb 2006 18:13:50

Firebrand

Ah, I get it now, thanks! <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
Sat, 25 Feb 2006 03:41:15

Firebrand

I've got the latest code changes, but now I can't compile the executable, here's the errors I get:
Compiling...
s_flac.cpp
\vavoom\source\s_flac.cpp(43) : error C2086: 'Stream' : redefinition
\Vavoom\vavoom\source\s_flac.cpp(62) : warning C4511: 'FStream' : copy constructor could not be generated
\Vavoom\vavoom\source\s_flac.cpp(40) : see declaration of 'FStream'
\Vavoom\vavoom\source\s_flac.cpp(73) : error C2086: 'Stream' : redefinition
\Vavoom\vavoom\source\s_flac.cpp(100) : warning C4511: 'FStream' : copy constructor could not be generated
\Vavoom\vavoom\source\s_flac.cpp(70) : see declaration of 'FStream'
\Vavoom\vavoom\source\s_flac.cpp(179) : error C2664: '__thiscall FLAC::Decoder::Stream::FLAC::Decoder::Stream(const class FLAC::Decoder::Stream &)' : cannot convert parameter 1 from 'class VStream' to 'const class FLAC::Decoder::Stream &'
        Reason: cannot convert from 'class VStream' to 'const class FLAC::Decoder::Stream'
        No constructor could take the source type, or constructor overload resolution was ambiguous
\Vavoom\vavoom\source\s_flac.cpp(181) : error C2039: 'Seek' : is not a member of 'Stream'
\MVS\VC98\INCLUDE\FLAC++/decoder.h(91) : see declaration of 'Stream'
\Vavoom\vavoom\source\s_flac.cpp(182) : error C2039: 'TotalSize' : is not a member of 'Stream'
\MVS\VC98\INCLUDE\FLAC++/decoder.h(91) : see declaration of 'Stream'
\Vavoom\vavoom\source\s_flac.cpp(208) : error C2039: 'Serialise' : is not a member of 'Stream'
\MVS\VC98\INCLUDE\FLAC++/decoder.h(91) : see declaration of 'Stream'
\Vavoom\vavoom\source\s_flac.cpp(376) : error C2273: 'function-style cast' : illegal as right side of '->' operator
\Vavoom\vavoom\source\s_flac.cpp(376) : error C2227: left of '->Seek' must point to class/struct/union
\Vavoom\vavoom\source\s_flac.cpp(377) : error C2273: 'function-style cast' : illegal as right side of '->' operator
\Vavoom\vavoom\source\s_flac.cpp(377) : error C2227: left of '->TotalSize' must point to class/struct/union
\Vavoom\vavoom\source\s_flac.cpp(398) : error C2664: '__thiscall FLAC::Decoder::Stream::FLAC::Decoder::Stream(const class FLAC::Decoder::Stream &)' : cannot convert parameter 1 from 'class VStream *' to 'const class FLAC::Decoder::Stream &'
        Reason: cannot convert from 'class VStream *' to 'const class FLAC::Decoder::Stream'
        No constructor could take the source type, or constructor overload resolution was ambiguous
\Vavoom\vavoom\source\s_flac.cpp(400) : error C2327: 'VFlacAudioCodec::Stream' : member from enclosing class is not a type name, static, or enumerator
\Vavoom\vavoom\source\s_flac.cpp(400) : error C2327: 'VFlacAudioCodec::Stream' : member from enclosing class is not a type name, static, or enumerator
\Vavoom\vavoom\source\s_flac.cpp(400) : error C2819: type 'FLAC::Decoder::Stream' does not have an overloaded member 'operator ->'
\MVS\VC98\INCLUDE\FLAC++/decoder.h(91) : see declaration of 'Stream'
\Vavoom\vavoom\source\s_flac.cpp(400) : error C2227: left of '->Seek' must point to class/struct/union
\Vavoom\vavoom\source\s_flac.cpp(401) : error C2819: type 'FLAC::Decoder::Stream' does not have an overloaded member 'operator ->'
\MVS\VC98\INCLUDE\FLAC++/decoder.h(91) : see declaration of 'Stream'
\Vavoom\vavoom\source\s_flac.cpp(401) : error C2227: left of '->TotalSize' must point to class/struct/union
\Vavoom\vavoom\source\s_flac.cpp(420) : error C2327: 'VFlacAudioCodec::Stream' : member from enclosing class is not a type name, static, or enumerator
\Vavoom\vavoom\source\s_flac.cpp(420) : error C2327: 'VFlacAudioCodec::Stream' : member from enclosing class is not a type name, static, or enumerator
\Vavoom\vavoom\source\s_flac.cpp(420) : error C2819: type 'FLAC::Decoder::Stream' does not have an overloaded member 'operator ->'
\MVS\VC98\INCLUDE\FLAC++/decoder.h(91) : see declaration of 'Stream'
\Vavoom\vavoom\source\s_flac.cpp(420) : error C2227: left of '->Close' must point to class/struct/union
\Vavoom\vavoom\source\s_flac.cpp(421) : error C2541: delete : cannot delete objects that are not pointers
\Vavoom\vavoom\source\s_flac.cpp(482) : error C2327: 'VFlacAudioCodec::Stream' : member from enclosing class is not a type name, static, or enumerator
\Vavoom\vavoom\source\s_flac.cpp(482) : error C2819: type 'FLAC::Decoder::Stream' does not have an overloaded member 'operator ->'
\MVS\VC98\INCLUDE\FLAC++/decoder.h(91) : see declaration of 'Stream'
\Vavoom\vavoom\source\s_flac.cpp(482) : error C2227: left of '->Serialise' must point to class/struct/union
For me, it seems as if the Stream member of the FStream class was being took as something else, maybe try to rename it to something else?
Sat, 25 Feb 2006 18:59:03

Firebrand

I've got it fixed, here's the diff patch for it:
RCS file: /cvsroot/vavoom/vavoom/source/s_flac.cpp,v
retrieving revision 1.4
diff -u -r1.4 s_flac.cpp
--- source/s_flac.cpp	22 Feb 2006 20:33:51 -0000	1.4
+++ source/s_flac.cpp	25 Feb 2006 18:53:26 -0000
@@ -40,7 +40,7 @@
 	class FStream : public FLAC::Decoder::Stream
 	{
 	public:
-		VStream&			Stream;
+		VStream&			FStrm;
 		size_t				BytesLeft;
 		int					SampleBits;
 		int					SampleRate;
@@ -70,7 +70,7 @@
 	class FStream : public FLAC::Decoder::Stream
 	{
 	public:
-		VStream*			Stream;
+		VStream*			FStrm;
 		size_t				BytesLeft;
 		int					NumChannels;
 		int					SampleBits;
@@ -171,15 +171,15 @@
 //==========================================================================
 
 VFlacSampleLoader::FStream::FStream(VStream& InStream)
-: Stream(InStream)
+: FStrm(InStream)
 , SampleBits(0)
 , SampleRate(0)
 , Data(0)
 , DataSize(0)
 {
 	guard(VFlacSampleLoader::FStream::FStream);
-	Stream.Seek(0);
-	BytesLeft = Stream.TotalSize();
+	FStrm.Seek(0);
+	BytesLeft = FStrm.TotalSize();
 	unguard;
 }
 
@@ -205,7 +205,7 @@
 			{
 				*bytes = BytesLeft;
 			}
-			Stream.Serialise(buffer, *bytes);
+			FStrm.Serialise(buffer, *bytes);
 			BytesLeft -= *bytes;
 			return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
 		}
@@ -373,8 +373,8 @@
 void VFlacAudioCodec::Restart()
 {
 	guard(VFlacAudioCodec::Restart);
-	Stream->Stream->Seek(0);
-	Stream->BytesLeft = Stream->Stream->TotalSize();
+	Stream->FStrm->Seek(0);
+	Stream->BytesLeft = Stream->FStrm->TotalSize();
 	Stream->reset();
 	unguard;
 }
@@ -386,7 +386,7 @@
 //==========================================================================
 
 VFlacAudioCodec::FStream::FStream(VStream* InStream)
-: Stream(InStream)
+: FStrm(InStream)
 , NumChannels(0)
 , SampleBits(0)
 , SampleRate(0)
@@ -397,8 +397,8 @@
 , StrmSize(0)
 {
 	guard(VFlacAudioCodec::FStream::FStream);
-	Stream->Seek(0);
-	BytesLeft = Stream->TotalSize();
+	FStrm->Seek(0);
+	BytesLeft = FStrm->TotalSize();
 	init();
 	process_until_end_of_metadata();
 	unguard;
@@ -417,8 +417,8 @@
 	{
 		Z_Free(SamplePool[0]);
 		SamplePool[0] = NULL;
-		Stream->Close();
-		delete Stream;
+		FStrm->Close();
+		delete FStrm;
 	}
 	unguard;
 }
@@ -479,7 +479,7 @@
 			{
 				*bytes = BytesLeft;
 			}
-			Stream->Serialise(buffer, *bytes);
+			FStrm->Serialise(buffer, *bytes);
 			BytesLeft -= *bytes;
 			return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
 		}
Sun, 26 Feb 2006 14:24:40

dj_jl

Yes, renaming fixes the problem.
Sun, 26 Feb 2006 17:52:16

Firebrand

There's some other error I get with the latest changes, something about override of a virtual function in VStream (operator<<), I think I have an idea of how to fix it, but I'm not very sure, also I'll try to post the exact error ASAP. EDIT: This is the error as I get it:
sv_save.cpp
\Vavoom\vavoom\source\sv_save.cpp(128) : error C2555: 'VSaveLoaderStream::<<' : overriding virtual function differs from 'VStream::<<' only by return type or calling convention
\Vavoom\vavoom\source\stream.h(36) : see declaration of 'VStream'
\Vavoom\vavoom\source\sv_save.cpp(219) : error C2555: 'VSaveWriterStream::<<' : overriding virtual function differs from 'VStream::<<' only by return type or calling convention
\Vavoom\vavoom\source\stream.h(36) : see declaration of 'VStream'
Again, it might need some renaming, or maybe doing a casting to solve the problem.
Sun, 26 Feb 2006 20:59:59

dj_jl

I just commited some more savegame improvements that also fixes this problem.
Sat, 04 Mar 2006 17:05:55

Firebrand

I've got the latest changes, it seems there are still some small problems, I've got this error:
  0x8000000 (128.000000 meg) allocated for zone, ZoneBase: 0x1D10020
- FL_Init
- Host_Init


Exiting due to external exception
The exams week made me forget to post a small fix for the "types.cpp" file from VCC, it fixes some compiling problems with M$VC, here it is <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
RCS file: /cvsroot/vavoom/vavoom/utils/vcc/types.cpp,v
retrieving revision 1.46
diff -u -r1.46 types.cpp
--- utils/vcc/types.cpp	28 Feb 2006 19:17:20 -0000	1.46
+++ utils/vcc/types.cpp	1 Mar 2006 02:55:55 -0000
@@ -232,19 +232,21 @@
 
 TType CheckForType(TClass* InClass)
 {
+	int i;
+
 	if (tk_Token == TK_KEYWORD)
 	{
 		return CheckForTypeKeyword();
 	}
 
-	for (int i = 0; i < classtypes.Num(); i++)
+	for (i = 0; i < classtypes.Num(); i++)
 	{
 		if (TK_Check(classtypes->Name))
 		{
 			return TType(classtypes);
 		}
 	}
-	for (int i = 0; i < structtypes.Num(); i++)
+	for (i = 0; i < structtypes.Num(); i++)
 	{
 		if (structtypes->OuterClass == InClass && TK_Check(structtypes->Name))
 		{
@@ -266,19 +268,21 @@
 
 TType CheckForType(TClass* InClass, VName Name)
 {
+	int i;
+
 	if (Name == NAME_None)
 	{
 		return TType(ev_unknown);
 	}
 
-	for (int i = 0; i < classtypes.Num(); i++)
+	for (i = 0; i < classtypes.Num(); i++)
 	{
 		if (Name == classtypes->Name)
 		{
 			return TType(classtypes);
 		}
 	}
-	for (int i = 0; i < structtypes.Num(); i++)
+	for (i = 0; i < structtypes.Num(); i++)
 	{
 		if (structtypes->OuterClass == InClass && Name == structtypes->Name)
 		{
@@ -564,6 +568,8 @@
 
 void TType::GetName(char* Dest) const
 {
+	int i;
+
 	switch (type)
 	{
 	case ev_int:		strcpy(Dest, "int"); break;
@@ -571,7 +577,7 @@
 	case ev_name:		strcpy(Dest, "name"); break;
 	case ev_string:		strcpy(Dest, "string"); break;
 	case ev_pointer:	GetPointerInnerType().GetName(Dest); 
-		for (int i = 0; i < PtrLevel; i++) strcat(Dest, "*"); break;
+		for (i = 0; i < PtrLevel; i++) strcat(Dest, "*"); break;
 	case ev_reference:	strcpy(Dest, Class ? *Class->Name : "none"); break;
 	case ev_array:		GetArrayInnerType().GetName(Dest); strcat(Dest, "[]"); break;
 	case ev_struct:		strcpy(Dest, *Struct->Name); break;
Tue, 07 Mar 2006 04:09:26

Firebrand

There seems to be a certain problem with the glVIS plug-in from Vavoom, it builds the VIS data every time you start a game or change a map, curiously enough the debug output shows this:
Log: Can't close ./doom2.gwa, some lumps are in use
Log: PVS build not performed
Dev: Client level loaded
Something might be wrong with it somehow.
Tue, 07 Mar 2006 12:30:07

dj_jl

Yeah, I also noticed this.

Back to the Korax Forum Archives