Back to the Vavoom Forum Archives


Forum

Vavoom Compile HELP (last msg)

Wed, 19 Apr 2006 15:04:17

PREACHER

my problem is that i don't know where to start, usually i can understand this kind of things, i know a little bit of scripting but i need an example, a little step by step to understand de hierachy of how the things works. To begin with something i think can be easy, i say: How to make Mage throw serpent fireballs with its wand if somebody could put a step by step about how to to this, it will be very apreciated. I guess it will help me a lot.
Thu, 20 Apr 2006 11:27:39

Crimson Wizard

Oh, hello. Well, assuming that you have already installed Vavoom on your computer and downloaded VavoomC progs source as well, I may give you following instructions. 1. Goto the folder, where you unarchived Vavoom progs. 2. Open folders: progs -> hexen -> game "Game" folder contains all the source, related to game process itself, such as physics, objects, monsters, player, et cetera. 3. Since you want to modify Mage's Wand weapon, you shall seek for [color=orange:2cqnoq4f]WeaponMageWand.vc[/color:2cqnoq4f] file. It contains definition of class [color=green:2cqnoq4f]WeaponMageWand[/color:2cqnoq4f] which is a child of class [color=green:2cqnoq4f]Weapon[/color:2cqnoq4f] (base class for all player's weapons). (I hope you now what "class" is, if not, think of it like it is a sort of object's "description") 4. Ok, open that file for edit. Seek a bit down to skip all these comments about Vavoom and copyrights. You'll see a section named "A_MWandAttack". There is a function written there:
void A_MWandAttack()
{
	Player(Player).SpawnPlayerMissile(MageWandMissile);
	Player.MO.PlaySound('MageWandFire', CHAN_WEAPON);
}
What does it do? Two simple things.
Player(Player).SpawnPlayerMissile(MageWandMissile)
this string sais that Player should spawn a projectile of some sort in the direction of its view. In parentheses is a name of spawned missile's class. That's what you should change. Serpent fireballs are named: [color=green:2cqnoq4f]DemonMissile[/color:2cqnoq4f] (fire) and [color=green:2cqnoq4f]Demon2Missile[/color:2cqnoq4f] (gas). (To know these names, and any other, you have to explore "game" folder and learn classes' names. Actually it needs to be documented, I hope I'll find a time to do this, or somebody else will.) Secondly:
Player.MO.PlaySound('MageWandFire', CHAN_WEAPON);
This string orders Player to play sound with a starting point of its body position. You may change this too also if you want. Anyway, try change code above this way:
void A_MWandAttack()
{
	Player(Player).SpawnPlayerMissile(DemonMissile);
	Player.MO.PlaySound('DemonAttack', CHAN_WEAPON);
}
Mage Player will shoot Serpent fireballs with a sound of Serpent's attack. Now progs have to be compiled. First find "utils" folder in the folder where you placed progs source. There open "bin" folder and copy vcc.exe into "progs -> hexen" folder. Run "compile.bat" in "hexen" folder. It should work a bit, then 3 new files must be created: shared.dat clprogs.dat svprogs.dat Use any WAD-editor (WinTex, for example) to open "Vavoom \ basev \ hexen \ wad0.wad" (where "Vavoom" is the folder where you installed Vavoom application). Replace 3 entries named "shared", "clprogs" and "svprogs" in that wad with newly created files. Now run Vavoom (don't forget to set "Game" parameter to "Hexen"). PS. Just to be sure. Vavoom application itself is here: <!-- m --><a class="postlink" href="http://prdownloads.sourceforge.net/vavoom/vavoom-win-1.20.zip?download">http://prdownloads.sourceforge.net/vavo ... p?download</a><!-- m --> And Vavoom progs source you need is here: <!-- m --><a class="postlink" href="http://prdownloads.sourceforge.net/vavoom/vavoom-progs-1.20.zip?download">http://prdownloads.sourceforge.net/vavo ... p?download</a><!-- m -->
Thu, 20 Apr 2006 14:04:21

PREACHER

Crimson: Thank you for open me the door to edit my favourite game once again. I didn't edit since i was fifteen years old!! and now i'm 21 i think this gonna be useful for many users, i suggest you to put it on "tutorials" on a section like "how to start" thanks again
Thu, 20 Apr 2006 19:48:46

PREACHER

right.. i hate myself too WTF is this ?!?! when i go compile.bat i get
[color=white:3vfpiffv] C:\vavoom\progs\heretic>vcc -I../common -P../../basev/common/progs herdefs.vc sh ared.dat herdefs.vc:26: Can't find package herdefs.vc:28: Parent class type expected herdefs.vc:28: Error #26 - Missing semicolon. herdefs.vc:28: Field type expected. herdefs.vc:28: Field name expected herdefs.vc:60: Error #19 - Syntax error in constant expression.Invalid identifie r USER_PROTOCOL_START C:\vavoom\progs\heretic>vcc -I../common -P../../basev/common/progs clprogs.vc cl progs.dat clprogs.vc:28: Can't find package clprogs.vc:29: Can't find package ./cgame/MainClientState.vc:26: Parent class type expected ./cgame/MainClientState.vc:26: Error #26 - Missing semicolon. ./cgame/MainClientState.vc:26: Field type expected. ./cgame/MainClientState.vc:26: Field name expected ./cgame/MainClientState.vc:48: Class name expected ./cgame/MainClientState.vc:48: Error #54 - Missing ']'. ./cgame/MainClientState.vc:48: Error #26 - Missing semicolon. ./cgame/MainClientState.vc:48: Field type expected. ./cgame/MainClientState.vc:48: Field name expected ./cgame/MenuObject.vc:26: Parent class type expected ./cgame/MenuObject.vc:26: Error #26 - Missing semicolon. ./cgame/MenuObject.vc:26: Field type expected. ./cgame/MenuObject.vc:26: Field name expected ./cgame/MenuChoice.vc:58: Error #22 - Missing ')'. ./cgame/MenuChoice.vc:58: Error #23 - Missing '{'. ./cgame/MenuChoice.vc:58: Error #26 - Missing semicolon. ./cgame/MenuChoice.vc:58: Error #40 - Invalid identifier.variable name expected ./cgame/MenuChoice.vc:58: Error #26 - Missing semicolon. ./cgame/MenuChoice.vc:58: Error #26 - Missing semicolon. ./cgame/MenuChoice.vc:58: Error #26 - Missing semicolon. ./cgame/MenuChoice.vc:76: Error #40 - Invalid identifier.variable name expected ./cgame/MenuChoice.vc:76: Error #26 - Missing semicolon. ./cgame/MenuTitleText.vc:26: Field type expected. ./cgame/MenuTitleText.vc:26: Field name expected ./cgame/MenuTitleText.vc:26: Error #26 - Missing semicolon. ./cgame/MenuTitleText.vc:26: Field type expected. ./cgame/MenuTitleText.vc:26: Error #26 - Missing semicolon. ./cgame/MenuTitleText.vc:26: Field name expected ./cgame/MenuTitleText.vc:36: Error #22 - Missing ')'. ./cgame/MenuTitleText.vc:36: Error #23 - Missing '{'. ./cgame/MenuTitleText.vc:36: Error #26 - Missing semicolon. ./cgame/MenuTitleText.vc:44: Error #40 - Invalid identifier.variable name expect ed ./cgame/MenuTitleText.vc:44: Error #26 - Missing semicolon. ./cgame/MenuScreen.vc:26: Field type expected. ./cgame/MenuScreen.vc:26: Field name expected ./cgame/MenuScreen.vc:26: Error #26 - Missing semicolon. ./cgame/MenuScreen.vc:26: Field name expected ./cgame/MenuScreen.vc:26: Error #26 - Missing semicolon. ./cgame/MenuScreen.vc:26: Field name expected ./cgame/MenuScreen.vc:48: Error #22 - Missing ')'. ./cgame/MenuScreen.vc:48: Error #23 - Missing '{'. ./cgame/MenuScreen.vc:48: Error #26 - Missing semicolon. ./cgame/MenuScreen.vc:62: Error #26 - Missing semicolon. ./cgame/MenuScreen.vc:143: Error #45 - Function redeclared.Function: MenuChoice. InitWindow C:\vavoom\progs\heretic>vcc -I../common -P../../basev/common/progs svprogs.vc sv progs.dat svprogs.vc:28: Can't find package svprogs.vc:29: Can't find package ./game/Actor.vc:26: Parent class type expected ./game/Actor.vc:26: Error #26 - Missing semicolon. ./game/Actor.vc:27: Field type expected. ./game/Actor.vc:27: Field name expected ./game/Actor.vc:139: Field type expected. ./game/Actor.vc:139: Error #26 - Missing semicolon. ./game/Actor.vc:139: Field type expected. ./game/Actor.vc:139: Field name expected ./game/Actor.vc:164: Field type expected. ./game/Actor.vc:164: Error #26 - Missing semicolon. ./game/Actor.vc:164: Field type expected. ./game/Actor.vc:164: Field name expected ./game/Actor.vc:171: Field type expected. ./game/Actor.vc:171: Redeclared field ./game/Actor.vc:171: Error #26 - Missing semicolon. ./game/Actor.vc:171: Field type expected. ./game/Actor.vc:171: Field name expected ./game/Actor.vc:172: Field type expected. ./game/Actor.vc:172: Redeclared field ./game/Actor.vc:172: Error #26 - Missing semicolon. ./game/Actor.vc:172: Field type expected. ./game/Actor.vc:172: Field name expected ./game/Actor.vc:174: Field type expected. ./game/Actor.vc:174: Redeclared field ./game/Actor.vc:174: Error #26 - Missing semicolon. ./game/Actor.vc:174: Field type expected. ./game/Actor.vc:174: Field name expected ./game/Actor.vc:175: Field type expected. ./game/Actor.vc:175: Redeclared field ./game/Actor.vc:175: Error #26 - Missing semicolon. ./game/Actor.vc:175: Field type expected. ./game/Actor.vc:175: Field name expected ./game/Actor.vc:179: Field type expected. ./game/Actor.vc:179: Redeclared field ./game/Actor.vc:179: Error #26 - Missing semicolon. ./game/Actor.vc:179: Field type expected. ./game/Actor.vc:179: Field name expected ./game/Actor.vc:190: Error #44 - Invalid variable type. C:\vavoom\progs\heretic>pause Presione una tecla para continuar . . . [/color:3vfpiffv]
Fri, 21 Apr 2006 03:00:57

Firebrand

There's a common directory in the progs section of the source, you need to copy a compile.bat with the vcc.exe to that directory, edit the compile.bat so that it has the following:
vcc common.vc common.dat
vcc clcommon.vc clcommon.dat
vcc svcommon.vc svcommon.dat
Run the compile.bat, it will compile the common progs, and move the common.dat, clcommon.dat and svcommon.dat files to the basev\common\progs\ directory, then try to compile agian, you shouldn't have anymore problems, if you have, please post here again and I'll try to help you out ASAP <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
Fri, 21 Apr 2006 08:29:19

Crimson Wizard

Ouch... damn. I haven't tested that myself, thinking that nothing had changed from previous version, sorry. Well, actually, I suppose, it is more convenient to make following compile.bat in the game's folder ("progs\hexen" in our case):
vcc -I../common -P../common ../common/common.vc ../common/common.dat
vcc -I../common -P../common ../common/clcommon.vc ../common/clcommon.dat 
vcc -I../common -P../common ../common/svcommon.vc ../common/svcommon.dat

vcc -I../common -P../common hexndefs.vc shared.dat
vcc -I../common -P../common clprogs.vc clprogs.dat
vcc -I../common -P../common svprogs.vc svprogs.dat
Tested, worked... <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> Then again, do not forget to subst entries mentioned in vavoom/basev/hexenwad0.wad by newly created files: shared.dat, clprogs.dat and svprogs.dat Also don't forget to copy hexen.wad (main wad) into vavoom's directory. And that MUST be PATCHED wad (v 1.1, of year 1996) - I mention this trying to cover every problem you may meet there. BTW, WinTex does not substs old files when you use "Load entry from file" command. So, I recommend, if you use WinTex, delete old entries (shared, clprogs and svprogs) first, then load new ones. Notice, that they MUST be positioned BETWEEN two markers; this is how wad contents should look like: PR_START SHARED CLPROGS SVPROGS PR_END -------- some other entries here --------- wrtiting...... testing......... ...... Mage firing Serpent fireballs! Yeeeha! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> EDIT: Eeeew... <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( --> these fireballs are much less powerfull than original wand's projectiles. Heh, I recommend fire with these:
void A_MWandAttack()
{
	Player(Player).SpawnPlayerMissile(DragonMissile); 
	Player.MO.PlaySound('DragonAttack', CHAN_WEAPON);
}
*giggle* <!-- s:twisted: --><img src="{SMILIES_PATH}/icon_twisted.gif" alt=":twisted:" title="Twisted Evil" /><!-- s:twisted: -->

Back to the Vavoom Forum Archives