Overview
Need help modding this Beautifully remastered game?Come no further!I dug up some of my old code and made this guide to help myself and others who have hard time figuring out how to mess around with this game.I’ll try to expand on this and make more guides but i make no promises.I hope this helps you
Visual Studio Madness
Hello Everyone,
If you’re like me and either have a burning passion for C&C games or have a nostalgic feeling from growing up with them. You know how much fun it is to strategically blow up a base or create chaos on the battlefield. This source code has allowed me to tweak and play with various different aspects of the game and it saddens me to not see more content around. However this guide seeks to help you understand and create your own impact in the C&C universe. I’ll be starting from the very basics to create a solid foundation.
Step 1. Visual Studio Madness
Yes its madness and a pain in the ass.
You’ll want to download the Visual Studio 2017 community edition to get started from the link below
(Sure you could get 2019, but lets start somewhere safe)
After installing 2017 and clicking on the modify button, you can add components to Visual Studio
With Visual Studio 2017, You need 3 things. The Windows 10 SDK, C++ ATL tools and C++ MFC tools. (You can get Win 8.1 sdk if you want, both 10 and 8.1 work)
Once it finishes grabbing the files,
You can then have visual Studio open up the solution file in your C&C Sourcecode Located in
SteamsteamappscommonCnCRemasteredSOURCECODE
Once its opened with visual Studio, you want to go to Project > Properties
Make sure You have the right SDK selected
If this all looks good, All you’ll need to do is then hit Build and watch your code come together
If you get an error like Mismatched header size or something like that, you’ll need to add in that exception on the c++ preprocessor page
If you get an error like missing .h file or whatever, The C++ tools are not installed correctly / won’t work with your SDK
Actually doing the thing
All right, you have a good foundation and can build code without C&C Crashing (I hope)
Lets break it
I’m going to make a new Unit, with grenades for now.
Go to 3 quarters of a way down on IDATA.CPP, right below delphi and paste in the following code
This changes all the variables needed to get a basic unit going, I’m going to go through the various locations where we need to edit / add in new information to fit the new objects we created
static InfantryTypeClass const C9TEST( // DinoMod
INFANTRY_TEST, // Infantry type number.
TXT_C9TEST, // Translate name number for infantry type.
“C9TEST”, // INI name for infantry.
3, // Build level.
STRUCTF_NONE, // Building prerequisite.
false, // Is this a female type?
true, // Is a leader type?
true, // Has crawling animation frames?
false, // Is this a civlian?
true, // Always use the given name for the infantry?
false, // Is this a “fraidycat” run-away type infantry?
false, // Can this infantry type capture a building?
false, // Theater specific graphic image?
-1, // Number of shots it has (default).
&MiniGunnerDos[0][0], // ptr to DO table
2, // Frame of projectile launch.
0, // Frame of projectile launch while prone.
5, // Strength of infantry (in damage points).
0, // Sight range.
10, // Cost of infantry (in credits).
1, // Scenario when they first appear.
0, 1, // Risk/Reward of this infantry unit.
HOUSEF_MULTI1 |
HOUSEF_MULTI2 |
HOUSEF_MULTI3 |
HOUSEF_MULTI4 |
HOUSEF_MULTI5 |
HOUSEF_MULTI6 |
HOUSEF_JP |
HOUSEF_GOOD |
HOUSEF_BAD |
HOUSEF_NEUTRAL, // Who can own this infantry unit.
WEAPON_GRENADE, WEAPON_NONE, //DinoMod
MPH_SLOW_ISH
);
Lists all infantry. You want to make sure your unit is in here.Calls it by the Ini name
Lists all Infantry types, You want to make sure your unit is in here.
Defining the TXT_C9Text entry. Makes it easier to name it down the road
This entry above, basically creates the overall shape of the unit. I’m using rmbo(commando) for reference and using its shape so that will be how big it is
Now, If you go through all the pictures I posted and Create entries in each place, once you build the code and run it, you should have something that looks like this
Giving it some Flavor
So you made some custom white squares that can throw grenades, big whoop. My granny can do that.
Lets name that sucker cause right now <Missing> C9Test isn’t doing it for me
Now you should have this directory from the Nuketank mod(I renamed folders and already did a few things)
Make the following entries btw CASE SENSITIVE – DO NOT EDIT in EXCEL – Notepad++
Preferred
Next, go into the directory below and edit the xml file inside,
Basically copy the nuke tank one and paste it below
Then fill it out with the following info
Now, If you did this all correctly then this should happen in game
Ahh yes Look at that Cameo art, that amazing title and superb description!
Now we’re getting somewhere! (If you’re reading this part and having issues above, take closer looks at your code. It took me many various trial and error attempts to get this working since I easily miss little details. However I made sure to put all the correct and working steps in this guide)
Gimme some actual art up in here
Allright so we’ve made it to this point and you almost have a unit. Now in the code I had you copy and paste, we’re basically using the moveset for the Basic minigunner trooper. For simplicity sake we’re just going to use that unit’s art for now. (I’ll probably do a custom weapon and art addition but I’m already tired right now)
Now the directory you want to go to is
CnCRemasteredModsTiberian_DawnUnholyTDDataXMLTilesets
Oooh boy now that looks nasty
Lets mess with it.
So <Name>A10 field – Looks to point back to the ininame of the unit
<Frame>a10A10-0000.tga looks to point back to the a10 folder in the actual game files and goes to the exact file for that one frame. Since we’re using the minigunner’s moveset lets cheat and steal his frames. (Is there an easier way to do this? – Probably but this is the method I’ve been using)
We know for a fact that Minigunner’s go by the ini name E1
Oooh look at all those precious frames~ Lets grab all of E1’s tiles
Hmmm, Lets rename E1 too something like..
C9TEST
Now, lets copy that back into TD_Units.xml at the bottom (Make sure you follow the tile hierarchy)
Now if you did this all correctly,
You should have something like below
Look at those little datbois!
Wait who gave them lasers??? (I did, will be making a custom weapon guide soonish, this took a lot of effort to make lol)
Hope this guide helps you!!