Jump to content
Nyerguds

1.06c development topic

Recommended Posts

For those who clicked my signature, but have no idea what this patching project is really about... read the introduction news post at ModDB.

v1.06c revision 3 is released NOW! Go get it at the website!

 

---

 

Guess I should post this here again...

As I did on cnc-sector, I'll spend a few posts re-posting information about the stuff I've already implemented.

Hopefully, eventually, I'll get around to actually adding more stuff, too ;)

So, without further ado, I present, the Project With No End...

106cbanner.gif

just kidding. I'll finish it... eventually.

Todo:

  • Change the cycle order of the scoreboard/minimap in multiplayer so it switches to the zoomed-out map first.
  • Make the name tooltip show up on tree clumps
  • Look into power values displaying on the power bar label again

1.06d:

  • Convert all changes to hifi's new automatic asm compiling system
  • Implement all ini files to allow full modding

Here's the current features list:

Implemented (in reverse chronological order, so you might want to start reading at the bottom):

1.06c revision 4: (TBA)

  • Added mouse wheel scrolling for the ingame sidebar (thanks to CCHyper and iran)
  • The French briefing of Nod's second N64 Special Ops mission now has correct diacritics
  • The engineer death when getting killed by the ArmorPiercing warhead now plays a correct animation.
  • The custom strings system can now add strings from both mods and language packs, and supports end-of-line characters
  • Removed the code that made the "Unrevealed Terrain" tooltip disappear after mission 3
  • Fixed the bug that made the commando give a move response together with the bombing response
  • AI taunts and player messages now both give a message sound in multiplayer
  • The game now shows tooltips on trees on the first 3 multiplayer maps (this was campaign logic that wasn't disabled in multiplayer)
  • Adapted the client-side user interface of a LAN game to correctly show the 4 game modes.
  • Implemented a system to detect people using the both-sides cheat. Their side will show up as "???" in the listings, rather than "GDI" or "NOD".
  • Fixed a crash related to one of the AI taunt strings in German, which was way too long, making it corrupt the internal memory by writing beyond the reserved space. The taunt function can now handle longer strings, and the string has been shortened to actually fit on the screen in the 640x400 minimum resolution.
  • The Comm Center, Tech Center and all base defense buildings detect stealth, but for some reason, the Advanced Comm Center didn't. This has now been rectified.
  • There seems to be a way for people to get both GDI and Nod construction options in multiplayer. This is cheating, and has been fixed.

1.06c revision 3: (April 5 2012)

  • Added SkirmishPlayers=[1-5] key in conquer.ini
  • Made the 'UseCreditsMusic' key work correctly
  • Updated ccconfig to set compatibility mode on C&C95.exe when CnC-DDraw is disabled
  • A bug has been fixed that messed up the start locations detection in multiplayer maps, when the map itself contained no specific translated name for the game's configured language.
  • CCConfig now allows disabling the "Back Buffer in Video Memory" option if CnC-DDraw is enabled.
  • A bug preventing mods from loading their own custom music settings, rules.ini and mouse cursor files has been fixed
  • The first letter of the side prefix added before missions in the New Missions menu is no longer used to determine whether the chosen mission is GDI or Nod.
  • The last frame of the SSM Launcher's turret graphics without missiles is now coloured to house colour correctly.

1.06c revision 2:

  • The "GDI" and "NOD" prefixes before missions in the New Missions menu are no longer hardcoded in the game, meaning they can now be modified by language packs and mods.
  • Using very high resolutions on small maps no longer crashes when you have a radar minimap
  • The maps in multiplayer now show the amount of players allowed on each map
  • The maximum amount of players possible for a map will now be detected by the game, preventing bugs that occurred when there were less than 6 starting positions on the map.
  • All game fonts have been updated to correct errors
  • The Safe Scrolling option will no longer become enabled for other players in a multiplayer games when one player has it enabled
  • The game can run in any resolution now, without restriction to the inbuilt 640x400 / 640x480 / 1024x768 modes, and as a result of this, the 640x480 mode now uses the full screen area
  • Some maps which had random impassable or unbuildable tiles in them have been fixed
  • All water animations in the graphics of the rivers and shores of the snow theater have been fixed
  • A crash that happened in multiplayer games with a high number of players and a high amount of units on the map has been fixed
  • Automatic network timing negotiation has been enabled for LAN, to allow smooth online play with CnCNet
  • The player can now choose how the game fills in the in-between lines when stretching the videos
  • Snow theater water crossings no longer look like they are two cells wide while only one cell is passable
  • The same savegames can now be used in all game resolutions
  • The radar minimap is no longer zoomed in by default
  • Fixed the colour errors in the stretching on the Nod mission selection map and the Nod final mission info screen
  • Added a new setup tool (CCConfig.exe), with integrated options for CnC-DDraw's advanced settings and windowed mode support
  • The game now correctly checks if a theme exists; it was accidentally set to check if the theme length setting was 0 instead
  • Some positioning errors in the sidebar elements were fixed
  • Added a BaseLanguage option in conquer.ini to specify which language to use to fill in the defaults for partial language packs like Japanese
  • Put the music settings back in the game configuration file
  • Added a beep when receiving a message in multiplay
  • Fixed the bug (from v1.06c revision 1) that made buildings uncapturable in multiplay (this fix already available through the hotfix downloadable from the website)

1.06c:

  • All music settings are now read from an ini file, which allows easily adding new tracks
  • For prerequisites, the Advanced Communications Center now also counts as Communications Center
  • Using the arrow keys on the main menu now lets you go through the options in the right order
  • The New Missions menu will now show missions with numbers up to 999
  • The highest multiplayer map number read by the game has been increased from 99 to 255
  • People can now change the music of special scenes (score/map/menu screens) in rules.ini
  • Added the ForceBriefScreen option for missions, which forces the game to show a text briefing screen
  • Expanded the Warheads array, for modding purposes
  • Changed music settings in the dinosaur missions from "Untamed Land" to its internal code "J1", so it will still play the correct theme if the game is set to a language in which the theme names are translated
  • Removed the ability to start a multiplayer game with a random theme, since it caused game desynchronization errors.
  • The damage percentage calculated on armour is no longer 255/256 when it should be 100%
  • RemoveBuildExceptions option for a mission removes all restrictions the game puts on single player build trees. This unlocks the Nod helipad, APC, MLRS etc, and allows captured construction yards to produce the other side's superweapons. Note that even with this key, normal build level restrictions still apply
  • Moved all special options from the [Advanced] section in conquer.ini to a new rules.ini (inside updatec.mix), to separate user settings from game settings
  • Fixed reading order of mixfiles, so sc*.mix mod addons can override the updat*.mix files added by the patch
  • Fixed the firing sound of the SAM site
  • The steel crate pickup animation now plays for both sides
  • Removed the special dinosaur death sound logic from the game, and linked the death sound to their dying animations instead
  • Player-controlled visceroids now respond using dinosaur voices instead of normal unit voices
  • The computer opponent can no longer capture your Advanced Communications Center
  • The Advanced Communications Center is no longer capturable in multiplayer games
  • Specified building types can now be made capturable in specific missions
  • Renamed the Covert Ops and Special Ops mission files so they all have consecutive mission numbers, so fan-made missions can't show up in between the official ones
  • Dinosaur campaigns added as two mini-campaigns (one for GDI, one for Nod), and put at the top of the New Missions list
  • Radar logo can be overridden through the mission file
  • NoEgoScreen option (to disable the score screen after the mission) can now be added in the mission file
  • Mini-campaigns of up to 15 missions: missions started from the New Missions menu will now try to continue to their other variants (EB, EC, ED...)
  • Official Japanese language from console versions added to the game (unit and EVA sounds only)
  • Mission-specific house colour changes, controlled with ini keys in the mission file
  • New language system that is 100% independent from settings in the exe file, allowing anyone to add new language addons. This system allows the names of multiplayer maps and missions from the New Missions menu to be overridden by the ones specified in the briefings file (normally mission.ini)
  • Added numbers before the multiplayer game mode, so people see there are 4 of them (for example: "[2/4] Capture The Flag")
  • Changed the fact helicopters stay passive in Nod mission 7 to an option in the mission's ini file, so people can use it in their own missions
  • Added 3 new destroyable triggers for mission programming, bringing the total up to 6. You can now destroy triggers named UUUU, VVVV, WWWW, XXXX, YYYY and ZZZZ. This should facilitate multiplayer scripting since it's possible to make one destroyable trigger for each multi-House (typically, for "All Destroyed".)

Share this post


Link to post

Some explanation on the mini-campaigns:

All missions in the New Missions menu ( = the Covert Ops menu) have (file)names ending on "EA" (like, SCG22EA). In the campaign, missions can also have variations of the EB, EC, etc type, for the different choices on the map. Despite the fact only EA, EB, EC, WA and WB are used in the campaign, the game technically allows up to 10 possible alternatives:

EA, EB, EC, ED, EE, WA, WB, WC, WD, WE (originally the last ones were L and not E, but I had to change that because of a problem with how the names are encoded)

The mini-campaigns system will make sure that each mission in the New Missions menu will try to continue to the next alternative in the row. So SCG22EA will continue to SCG22EB. Thus, this system allows each item in the New Missions menu to become the launcher of a mini-campaign of up to 10 missions.

This is done with a simple system that checks whether the next file exists, so all you need to do to make a mini-campaign is name your files accordingly :)

I originally implemented this system to add the Funpark missions into the New Missions menu as mini-campaigns (one for GDI and one for Nod), completely removing the need to start in Funpark mode.

 

Screenshot of the 4th (GDI) Funpark mission from the New Missions menu minicampaign. You see on the menu that the name is SCG20ED.

dino_minicampaign.png

 

Colour schemes

Colour schemes allow you to change the colours of the houses in a mission, and even assign a secondary colour like Nod uses. You can also assign custom radar colours, either by taking them from a different existing scheme, or by setting them manually as indexes on the game's colour palette.

Available tags, in reverse order of priority: (most general options to most specific options)
ColorScheme: Sets the colour scheme to use for this house. A colour scheme is the complete set of primary colour, secondary colour and radar colours.
SecondaryScheme: Sets the colour to use for the buildings of this house. The MCV and Harvester are also shown in this colour because of their transforming/docking animations with the differently-coloured buildings.
RadarScheme: Copies the radar colours from an existing colour scheme.
BuildingRadarColor: Sets an index on the colour palette to use as building radar colour.
UnitRadarColor: Sets an index on the colour palette to use as unit radar colour.

Available colour schemes:

  • GDI (has different radar colour than MP yellow)
  • Nod (grey with red as secondary colour and red radar colours)
  • Yellow (Multiplayer yellow)
  • Red (Multiplayer red)
  • Teal (Multiplayer blue/greenish)
  • Orange (Multiplayer orange)
  • Green (Multiplayer green)
  • Gray/Grey (Multiplayer light grey. The same colour as Nod's units in the normal game)
  • Neutral (yellow remap, grey on radar. Used by house Special too)
  • Jurassic (Neutral scheme with red radar colour; used for the Funpark missions)
  • DarkGray/DarkGrey (new)
  • Brown (new)

For the radar colours, the (non-crossed-out) colour indexes on this colour palette can be used:

cnc_usable_palette.png

(the crossed out colours are those that change between the theaters)

Example:

[GoodGuy]
Allies=GoodGuy

Edge=North
Credits=40
ColorScheme=Teal
SecondaryScheme=Green
BuildingRadarColor=211
UnitRadarColor=161

The (fugly) result:

missioncolors.png

 

Mission options

These options can be added in the [basic] section of any mission. I'm including the older mission options from 1.06a too, but the last ones are new ;)

Boolean options: These are all disabled by default. Put the value to "Yes" or "True" or "1" to enable. (e.g. "NoBibs=true")

CustomBuildlevel: Campaign missions only: This will force the game to read and use this mission's BuildLevel setting in the ini file. Normally, in the campaign, the game ignores this setting, and always uses the mission number as buildlevel instead. Note that since patch 1.06b, the global option that enables this is normally activated in the rules file.
TrueNames: Show true names for civilians and civilian buildings
SeparateHelipad: Build helipads without helicopters, for only $300
MCVUndeploy: Construction yard undeploys to MCV when you sell it
NoBibs: Disable concrete foundations under buildings
Patsux: Laser Orcas. Special upgrade implemented for the PATSUX Playstation mission
PassiveHelis: Makes AI helicopters remain on their helipad just like the player's helis. Note that this is not the same as "Sleep" mode: if you attack the helicopter it'll still retaliate.
NoEgoScreen: Disables the score screen after this mission.
RemoveBuildExceptions: Makes this mission ignore all build rule irregularities that were added for the campaigns. This unlocks the Nod helipad, APC and MLRS, and allows captured construction yards to build superweapons. It does NOT remove the build level restrictions though.
ForceBriefScreen: Forces the game to show a text briefing screen, even if it played a Briefing video.

Other options:

RadarLogo: With this, you can override the default GDI or Nod radar logo shown in a mission. I made this option to be able to show the T-rex radar logo in the Funpark minicampaign.

The value given to this option is actually the file extension for the SHP file it tries to load as radar logo (HRADAR.*). Existing ones in the game are GDI, NOD and JP (the dino logo), but the system can perfectly load custom ones added to the game. The way this is used in the Funpark minicampaign is simply "RadarLogo=JP".

 

Line breaks in briefings:

This feature already works in 1.06b. In mission briefings, you can end a line with ## to make the briefing window insert a line break at that point. This is already used in 1.06b too, for the Covert Ops mission "Infiltrated":

[briefing]
1=Infiltration!##
2=Nod has breached our base in Eastern Sudan and has begun taking it
3=over! Recapture the base and reestablish our military dominance
4=in the area.

Note that the ## code only has effect when placed at the end of a line. Adding empty lines with ## works too.

 

Mission-specific building capturability

This largely enhances your choice in capture targets for missions. It works exactly like mission-specific building options in RA1 and later games. To make the Temple of Nod capturable, all you need to do is add this:

[TMPL]
Capturable=True

Note that this can also be used the other way around. You can perfectly use this to make the silos uncapturable:

[SILO]
Capturable=False

All buildings for which the option isn't specified in the ini file are left as they were, of couse. As with all options, use of savegames causes no bugs whatsoever; the changes all save and load correctly.

Share this post


Link to post

The Language System

 

Despite all that other neat stuff, this is actually what I think is the crowning feature of v1.06c. But that's mostly just because I learned how to open, read and close custom ini files to pull this off.

 

The system itself is actually ridiculously simple. The game first reads the conquer.ini, and reads the language setting. So, now, as an example, say that the language is set to XXX.

 

(conquer.ini)

[Language]

Language=XXX

 

It then tries to open "lang_???.ini", where the '???' is replaced by the language string. So, in this case, "lang_XXX.ini".

 

Then, it just reads the values from that ini and replaces the original text strings or file names the game would use by these new ones. If some don't need to be replaced, they should simply be left out of the language ini file completely. Any unspecified options revert to the English defaults in the exe file. If the ini file for the configured language doesn't exist at all, then all options are simply reverted to the English defaults.

 

Here's the language ini, with suggested filenames:

 

(lang_XXX.ini)

[Language]

MisNametag=NameXXX

MisBrieftag=BriefXXX

StringsExt=XXX

Brieffile=miss_XXX.ini

CDDir=XXX

PCXTitleLo=ttlloXXX.pcx

PCXTitleHi=ttlhiXXX.pcx

MIXSpeech=speecXXX.mix

MIXTalk=talkXXX.mix

MIXIcnh=iXXX.mix

SHPPips=pipsXXX.shp

SHPRepair=reprXXX.shp

SHPSell=sellXXX.shp

SHPMap=mapXXX.shp

FNTGrad6=grad6XXX.fnt

FNT12green=12grnXXX.fnt

FNT12grngrd=12grdXXX.fnt

FNT8fat=8fatXXX.fnt

FNTVcr=VcrXXX.fnt

WSAMulScore=mltscXXX.wsa

CPSAttract=attrcXXX.cps

 

The special mixfile name format "lang_???.mix" (again, with that language code) is provided to add all loose files for the language pack. Mixfiles can't be inside other mixfiles in C&C1 though.

 

The full explanation for all of the replaced files and strings can be found here. All the files necessary to make a new language pack can be found here, though some more strings may still be added to the strings file in the final 1.06c.

 

The basic language pack is normally a lang_XXX.mix file, in which this language ini file, the strings file, the briefings file and any other loose files like the sell/repair/map/pips SHP files are kept. Besides that, the packs usually also include the custom icons mixfiles, and possibly (EVA) speech and (unit) talk mixfiles.

 

v1.06c will only include the 4 languages in which C&C was originally released, namely, English, French, German and Japanese (speech & talk only, from the console versions). All of these are implemented with this language system.

 

The Spanish language that was added in 1.06b will be taken out and offered as external language pack. Siberian_GRemlin is most likely also going to release a Russian language pack... which is actually the only reason these font replacement tags exist :P

Share this post


Link to post

great work, I'm looking forward to this :thumbsup:

 

Is there any chance of fixing the scrolling problem? Mine scrolls so fast even on the lowest setting! Also when i try to change the settings to 1024x768 I cannot load up any save games. Can a fix be added for this?

 

EDIT: Found your savegames for the high res, should really read your other sources before posting here!!

Share this post


Link to post

The fast scrolling problem can usually be fixed by enabling the Back Buffer option on ccsetup.exe

Share this post


Link to post

woo, looks like I'm hacking again! Taking it slowly though, since I'm ill.

 

I wrote up there that the mission-specific building capturability could use True and False, but this wasn't really implemented yet. It could only use 1 and 0.

This was mainly because the capturability state isn't a real boolean, since it has 3 states: "capturable", "uncapturable" and "no change". The game's ini reading functions work with a Default value to return when the value could not be read, and obviously I had made my own boolean reading function the same way, so, it only accepted 0 or 1 as default. So I couldn't use that, and just read the value as a number instead.

 

This is now fixed; I can give -1 as default to the boolean ini reading function, so after reading the state for a building I can check if the returned value is indeed -1, which means the building's capturability should not be touched at all.

 

This means the building capturability stuff now works perfectly as described above :)

Share this post


Link to post

Yeah he is hacking again, Thats great news but dont do to much if your ill :)

(3rd website now, 2nd ive registed for and have no other purpose there other than for checking this forum)

Share this post


Link to post

(3rd website now, 2nd ive registed for and have no other purpose there other than for checking this forum)

Keeps you on your toes though! I thought I'd registered here years ago but maybe they updated the forum...

 

Also, don't work too hard Nyer! Get your school work done first n all ^_^

Share this post


Link to post

School? School's over. I'm missing out on a rather awesome summer job though :(

 

 

btw, since the savegames keep the capturability state for each building as Uncapturable (-1), No change (0) and Capturable (1), this means only the states of the changed buildings are saved and loaded. Any capturability changes you make to other buildings, through modding, are not overwritten by this system :)

 

On the first time this system is accessed (normally the first mission load from either a savegame or a mission file), the original values are stored in memory somewhere, so they can be used to reset the data when a different mission is loaded.

Share this post


Link to post

I wantz moar Nyer, moar!!!

Share this post


Link to post

And you'll get it... eventually :P

Share this post


Link to post

Nyerguds' - urging teenagers to sell their parents over C&C, ever since 1890!

Edited by godly-cheese

Share this post


Link to post

Now don't stretch it. I specifically said "since 2010" :P

Share this post


Link to post

Here's another suggestion for 1.06c.

 

As I said before at C&C Comm. Would it be possible in multiplayer that every time you receive a message from another player in the game. It would make a certain sound that would be recognizable to the player. I know that C&C95 has a bunch of bleeps and sounds that you could use.

Edited by godly-cheese

Share this post


Link to post

I'll look into that!

Share this post


Link to post

Pah. EVERYTHING is dead easy to you -_-

Share this post


Link to post

I expanded the minicampaigns to 15 missions. The A,B,C,D,E series can be used three times now: for E, for W and for X.

SC?##EA

SC?##EB

SC?##EC

SC?##ED

SC?##EE

 

SC?##WA

SC?##WB

SC?##WC

SC?##WD

SC?##WE

 

SC?##XA

SC?##XB

SC?##XC

SC?##XD

SC?##XE

:)

 

I used X so the missions would still be sorted correctly when you just sort them alphabetically in a file browser.

 

I'm also working on a system that might expand the entire covert ops list to 999 missions for each side. This will probably have the side effect that old savegames will no longer be compatible though, since I stored the special mission options in the 3 previously-unused bytes of the mission number. That would obviously give problems now, if the full 4-byte value were suddenly seen as the mission number.

 

[edit]

 

Nevermind, I found a way around it. Savegames will keep working. It turned out that the saved value where I stored these options in is only used to check if the mission number is above 20, and thus Covert Ops. It's not the actual place where the mission number is saved, just a quick extra put at the start of the savegame so the game can do a CD check :)

 

Mind you; while 1.06b savegames will keep working, any special options saved in them will NOT work anymore, since they're loaded from a different spot in the savegame now.

 

Not to mention, some campaign exceptions like the passive helis are also special options now, so if you got a savegame of Nod mission 7C, chances are that that Orca you need to steal won't just lie down for you anymore, unless you restart the mission. Same goes for the capturability of the Advanced Comm Center in Nod mission 12 :P

Share this post


Link to post

Covert Ops missions with numbers up to 999 work :D

 

 

Since Covert Ops missions start from 20, that means 979 list entries... for 2 sides... with a maximum of 15 missions on each entry...

 

Cool. That means the New Missions list can contain up to 29370 missions :D

Share this post


Link to post

Hey Nyerguds,

 

First of all, thnx for all your work, your making this game even more fun to play. Can't stop playing.

 

I've been using the CombatIQ alot lately and I think it's amazing. There's just one thing that's really annoying and thats that if the harvester is being attacked it will try to run over the enemies (if infantry) or try to dodge the bullets, but stops it's harvesting operations. Also direct order to the unit to go back to the base are ignored as soon as it gets hit again.

 

I don't know if it's in your power to disable it for harvesters and MCV's. Thought might be a nice thing to change.

 

Also my second question is, how do I find the Rules.ini file in c&c95 ? It's not in my folder. I have used it alot in RA, but can't seem to find it in c&c.

 

Many thanks for your time and reply in advance and thnx for the great mod.

Edited by Forcer990

Share this post


Link to post

Also my second question is, how do I find the Rules.ini file in c&c95 ? It's not in my folder. I have used it alot in RA, but can't seem to find it in c&c.

 

I believe the rules.ini file is being added in 1.06c.

 

Many thanks for your time and reply in advance and thnx for the great mod.

 

Mod? This be no mod! This be patch for fans (even EA promotes it :P

Share this post


Link to post

and the C&C95 rules.ini starts with this text:

 

;;

;; RULES.INI

;;

;

; You expected awesome text-based modding settings here? Tough luck.

; I only split this because it became a mess in conquer.ini, and because many

; of these options cause desync errors in Multiplayer. So change these settings

; at your own risk.

;

; -Nyerguds

 

:P

 

 

As for combatIQ... I'm not going to mess with those. I personally prefer them to be off anyway, since they seriously mess up AI behaviour. Try playing the Covert Ops mission "The Tiberium Strain" if tanks you attack with chem warriors keep trying to crush you right away. It's unplayable.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×