Renegade Projects Network Forums

Full Version: Patching extra functionality into <gamemd.exe>
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

Guest

Would it be possible to enable map triggers directly in mp modes rule .ini?
ok, 2 addresses that might help PaD out:
005F5A60 is where the parachute animation gets played
and 004251F0 is where the nuke explosion happens (i.e. the warhead goes off)

And 1 question for PaD, where is the code that reads the contents of the paradrop airplane (i.e. where the game iterates through the infantry list and creates all the infantry and stuff)
why you playing with paradrops? i'm pretty sure you never said anything about those... and i'm also sure that PD will be playing with it for his 4th side work, adding the extra sides side spacific paradrop thing. (you know, the 1 where allied use it and get allied units, soviets use it and get soviet units, etc.)
also, would it be possible for PD to clone that so there are more side spacific paradrops? probably best if he didn't... i supose he could, but then he needs an extra tag per side, and if he's adding sides, that could be a lot of tags...

if I'm wrong, forget what i said, its all good, I'm just trying to make sure you both don't go and edit the same code, which would make it difficult to merge your patches...
As far as paradrops are concerned, what about tag which controls paratroopers falling speed and another one which would allow to edit is the Parachute visible in specific paradrop or not? This would be useful in making bombs dropped from paraplanes. They would fall faster and wouldn't need a parachute.
My plan was to look into making the parachute animation paradrop specific (i.e. it would be a tag alongside the tags for parachute plane and stuff that go on the new custom paradrops). And now that I think about it, making a way to turn it off completly would also be possible (by setting the animation to some special "none" value which tells the code not to display the animation).

The 2 other things I am considering are:
1.New theaters
and 2.taking various things that are currently hardcoded into the exe and making them changable via rulesmd.ini keywords (for example, there is a reference to the name of one of the nuke animations hardcoded into the exe wich could be moved to rulesmd.ini)
ok, some updates on a few things:
For prerequisites, if I can find (and figure out) the code that actually checks the prerequisite, I can make more stuff there.

I think a more generic Psycic Reveal (i.e. with per-superweapon tags for the EVA sound to play, reveal sound to play and radius to use) is possible

I am also looking into the Spyplane code to see how it actually does the reveal (to make it possible to have a spyplane with a weapon that does damage)
sounds like a really good idea to me Tongue

also, PD has successfully added fourthpowerplant and fourthload, but fourthbasedefences doesn't work...

and i think he's moved on to cloning superweapons again... good news, but he keeps skipping all over the place recently...
Let me go over various items on the wishlist and state things about them
Tank Bunker bugs:
We managed to get it to display the "enter" cursor for the tank bunker but could not get a hover unit to actually enter the bunker (it would drive up to it and not enter).
However, one fix we can implement (but havent yet done) is to make it impossible for units with Powered=Yes (i.e. units like the robot tank) to go into a tank bunker.

Train Turn bugs, the train turning radius is handled by the Locomotor.
IsTrain=Yes and MovementRestrictedTo=Railroad have nothing to do with it.

Spyplane, I am looking into that to see about making it usable for firing weapons and not just for taking photos

I am looking at the prerequisite code, if I can find where the actual prerequisite checks take place I might be able to add the requested prerequisite stuff.

I am also looking for hard-coded items (specifically animations, units, infantry, aircraft, buildings and stuff, things that are in the lists in rulesmd.ini) to make them unhardcoded.

Being able to declare a new name for an existing tag would be far more trouble than its worth.

For destroyable clifs, I tried an experiment by giving the allied Grizzly Battle Tank weapon an ambient value but they were still unable to attack destroyable cliffs.

For the parachute, I do want to make it possible to give each new custom paradrop a custom parachute animation. There is also a reference to the BombParachute= tag, I plan to see if that tag leads to the possibility of working Parabombs. This would also include custom ChuteSound= settings.

Psychic Reveal, it is possible to make a new version that can have custom reveal sound, custom radius and custom EVA sound, I plan to look into this too

Adding new theaters is definatly possible and I will look into it

Custom re-definable nukes, I will look into those if PD doesnt get to them first.

Making a per-unit CloakSound= tag (with the one in the general section being used only if the per-unit one is not found) shouldnt be too hard if we can find the place where the cloak sound gets played.

It would be good to create a superweapon type that does absolutly nothing but is still valid. This would allow the effect with Explodes=Yes, DeathWeapon= and so on desribed here:
http://www.cannis.net/forum/index.php?showtopic=4097
to be used without having any particular side effects. Perhaps add several so you can have multiple custom SWs?

A custom genetic mutator with non-hardcoded-stuff is also very possible, if PD doesnt get to it first, I might look into this.

Changing the limit of players in skirmish/multiplayer is not possible without a LOT of work

There is no limit for filenames in mix files per se (look at filenames like ls800germany.shp) but some data storage areas may be of limited size.

Changing to true-color instead of the palettes is not possible without a LOT of work.

Being able to play RA2 in a windowed mode would be VERY nice, if I can find out how to do it I will give it a go adding a -win option or something to make it windowed.

Questions to do with this:
1.Are there things here we dont want to fix at all
2.PD, are there things here you are going to do (i.e. stuff I shouldnt do)
3.Destroyable Cliffs, how do you make them "work" (i.e. work so they blow up when shot with the Ambiant= weapon). Can you put Ambient= on something like the Grizzly Battle Tank and make it able to destroy cliffs?
4.Does anyone know where the code that actually checks prerequisites is? Or how it works?
5.For parachutes, I need to know where the code that actually takes the list of infantry to parachute and creates the infantry is, anyone know where that is?
6.Is a windowed mode usefull? Is having a -win switch for the exe file (like the -debug switch added by PD) the best way to do it? PD, if I implement this with a -win switch, can I add to the end of Mypcd_NewEXECommands?
7.Are there any particular hardcoded items where being able to change them would be usefull?
8.Do we want to stop units with Powered=Yes from being able to enter a tank bunker (regardless of locomotor)?
9.PD, if you know where any of the relavent code for these things (e.g. the code where the cloak sound gets played) is located, do let me know Smile
10.For the new theaters, how many should I support?
The plan is to have something like this
[Theaters]
0=Indoors
1=Jungle
2=Mars
etc

Then each theater would have a section like
[Indoors]
Name=indoors
UIName=Name:Indoors
IniName=INDOORS ;also used for one of the mix files
MixName1=ISOINDO
MixName2=ISOIND
Extention=IND
FrameworkExtention=MMI
SpecialLetter=I

If you created a theater with the same Name= (i.e. the name used on maps and stuff) as a standard theater, it would still use the settings for the standard theater (since it comes first in the list)

There may be other items (for example, there are some unknown floating point and integer values in the theater information, some of which might need to be changed for new theaters)

The main thing to find is a way so that if a map requests a theater that doesnt exist, things wont go south, anyone got any ideas?

Anyway, PD, if you can answer these things, I will then have a go at whatever from this list I can have a go at Smile
There already is a windowed mode, but it jumps to fullscreen when the actual game starts. As for extra theaters, how are you going to design maps in them? As I see it, you'd have to hack FA2 to support them as well.
If new theaters are made, ways to make maps in them will be figured out somehow.

Also, how does this windowed mode (the one that doesnt work in-game) work? (i.e. how do I enable it?)
jonwil;date=May 4 2005, 06:54 AM;post=1076 Wrote:The main thing to find is a way so that if a map requests a theater that doesnt exist, things wont go south, anyone got any ideas?
Find where the game knows to check .YRM files, and add another extension for it to check. New maps could use .RTB Wink
Quote:Red Alert 2 EXE Switches

It is actually possible to customize the running of Red Alert 2 by running the RA2.EXE file from the command line and adding any of the following switches. The syntax of the command should be (remember to change the drive and directory as appropriate as this is the default installation path);-

C:\Westwood\RA2\RA2.EXE? [apply switches here]

The available switches are (note that they are case sensitive);-

-X?? Forces the game to run in DOS 1.19 or later compatibility mode (obsolete)
-O?? Forces the game to run in DOS 1.07 compatibility mode (obsolete)
-WIN?? Runs the game in a new Desktop Window instead of full screen mode
-16?? Forces 16-bit color (although the game defaults to this anyway)
-480?? Sets screen height to 480 pixels instead of 400 in 640x400 resolution (DOS compatibility setting)
xXy?? Runs the game with the resolution settings as specified (height X width)
-ATTRACT? Unknown
-MESSAGES? Allows incoming messages from outside the game (WOL)
-STEALTH? Hides players names in multiplayer LAN and Internet games
-NOROUTER? Unknown
-DROP=? Unknown
-DLINK1? (YR) Unknown but related to Network options
-NETGEAR? Enable additional NetGear logic (helps with NetGear based LAN configurations)
-MPDEBUG? Runs the game with Multiplayer Debug Mode enabled
-SOCKET? Specifies a network socket number (between 0 and 16383)
-DESTNET? Destination network address (IP format, nn.nn.nn.nn)
-SPEEDCONTROL (YR) Unknown but related to Network options
-CD?? Specifies CD-ROM from which to run the game (0 or 1, but 2 can be used if YR is installed)
/h?? Meant to query the application's help file (obsolete)
-h?? Meant to query the application's help file (obsolete)
-??? Meant to query the application's command line parameters (obsolete)
/??? Meant to query the application's command line parameters (obsolete)
-play [filename]? Plays a game movie file (IPB format)
-record?? Creates a game movie file (defaults to SESSION.IPB) in the Red Alert 2 directory
-noaudio? Switches all audio off (useful for players with sound card issues)
-nostr?? Starts the game without reading the .CSF file
-str?? As above but the game will read the .CSF file (although the game defaults to this anyway)
-jabber?? Disables reading of the .CSF file resulting in much jibberish!
GrabPatches? Launches the game and gets it only to check for an updated version (patch)
I've only gotten the destroyable cliffs to blow when hit by a rail gun or a sonic zap. Give any land unit the dolphin weapon and see the cliffs blow up. Seems that any value for Damage overrides the ability of AmbientDamage to cause the cliff destruction.
As of now units with PoweredUnit=Yes cant enter buildings with Bunker=Yes
Here is what I propose for superweapon clones:
Every clone should have an EVAReadySound= tag, EVADetectedSound=, tag and EVAActivatedSound= tag which will be played in the right places. (PD, since this applies to the Psychic Dominator clone too, mabie this is something you should code?). We should make this so that the custom parachute code gets to play an EVA other than "reinforcements ready" too (e.g. if you have an effect that makes it a Parabomb)

For the Genetic Mutator clone, the following tags will be added:
Animation= (replaces the global IonBlast= tag)
Explosion= (replaces the global MutateExplosion= tag)
MutateWarhead= (replaces the global MutateWarhead= tag)
ExplosionWarhead= (replaces the global MutateExplosionWarhead= tag)
InfantryMutate= (replaces the global InfantryMutate= tag)
ActivateSound= (replaces the global GeneticMutatorActivateSound= tag)
PD, with your changes to that infantry death stuff, exactly how do I need to be handling InfantryMutate? Do I need to give the clone a per-clone InfantryMutate value?

For the Psychic Reveal clone, the following tags will be added:
RevealRadius= (replaces the global PsychicRevealRadius= tag)
ActivateSound= (replaces the global PsychicRevealActivateSound= tag)

For the paradrop clone that is already present, the following tags will be added:
ParachuteAnim= (replaces the global Parachute= tag)
ParachuteSound= (replaces the global ChuteSound= tag)

For the Nuke clone, the following tags will be added:
TakeOff= (replaces the global NukeTakeOff= tag)
InfantryNuked= (replaces the global InfantryNuked= tag)
Warhead= (replaces the global NukeWarhead= tag)
Down= (replaces the global NukeDown= tag)
Projectile= (replaces the global NukeProjectile= tag)
BallAnim= (replaces the hard-coded NUKEBALL animation)
Payload= (replaces the hard-coded NukePayload weapon)
Again, PD, what do I do with InfantryNuked, do I need to give the clone a per-clone InfantryNuked= value?

Is there anything else for any of these superweapons that is currently hardcoded or "global" and that should be un-hardcoded and/or made "superweapon specific"?

BTW, I am also adding a number of "do nothing" superweapons (for the trick mentioned before), how many should I add? (They will support Ready and Detected sounds no doubt and mabie if there is a use for it Activated sound)

There is no benifit to creating a clone of the Iron Curtain, Chronosphere or Force Shield
PD is currently working on the Psychic Dominator and has said not to do the Lightning Storm
We are still looking for the code that takes the "photo" for the spyplane

Also, bear in mind that this is subject to change as and when the various related items get implemented into the game Smile