Jump to content
Nyerguds

1.06c development topic

Recommended Posts

SonarPulse: Replacing cnc-DDraw.dll with WINE ddraw.dll isn't a wise choice to do... (at least, it's what i understeand from your post)

Share this post


Link to post

From what I understand, one is supposed to put ddraw.dll (cnc-ddraw) in the game executable's folder, and set ddraw to use dll overrides. This would technically be a system wide override, but as dll is not in the system32 folder (or whatever equivalent for wine), other applicaltions will fall back on the wine built-in version. Also most people would probably use a separate wine prefix anyways. I could be wrong, and in any case this seams like something that people might mess up, hence why I was suggesting that the dll not use the Current directory.

 

The new cncnet dll can even access the command line parameters given to the game on startup.

It would be cool if cncnet could detect whether somebody was using red alert hires in this way by looking for the -w and -h arguments. then again once hifi's hires presumably gets merged into the rest of the red alert 3.04 project my guess is the game will just read the width and height from a *.ini like TD 1.06c r2.

Share this post


Link to post

I have used HIFI's high resolution patch to fix up my high resolution build. I just overlooked some cell viewport.

 

HIFI has officially abandoned the project and haa been passed onto my control. So in a way, HIFI saved my original high resolution project :D

Share this post


Link to post

Protip: HIFI hates it if people write his name in caps :P

 

It would be cool if cncnet could detect whether somebody was using red alert hires in this way by looking for the -w and -h arguments. then again once hifi's hires presumably gets merged into the rest of the red alert 3.04 project my guess is the game will just read the width and height from a *.ini like TD 1.06c r2.

Why would that make any difference whatsoever anyway? It just looks for its own expected command line argument, gets the one it needs, and ignores the rest.

Share this post


Link to post

...Stop it people <_<

Share this post


Link to post

Why would that make any difference whatsoever anyway? It just looks for its own expected command line argument, gets the one it needs, and ignores the rest.

 

Woops, forgot the second part of my idea. It would then put (hires) next to the persons name in the lobby so the other players know what they are up against. kinda pointless, but kinda cool.

 

I have used HIFI's high resolution patch to fix up my high resolution build. I just overlooked some cell viewport.

 

HIFI has officially abandoned the project and haa been passed onto my control. So in a way, HIFI saved my original high resolution project :D

He abandoned making just the hires patch, or hacking RA1 in general?

Share this post


Link to post

I'm not sure hifi has ever been interested in hacking RA1 in general, tbh. From what I've seen he's the kind of guy who sets a goal, reaches it, and then just drops it when he's satisfied with the results.

Share this post


Link to post

I need a hand here. I think I'm missing a basic thing about the [bASE] section.

I'm gonna make a checklist to clear this out:

 

- Mission - GDI for human, Nod for AI

- Build Level: 15

 

- C Yard: YES, 2

3=BadGuy,FACT,256,3795,0,None

11=BadGuy,FACT,256,3678,0,None

 

- Production Trigger: prod=Time,Production,2,BadGuy,None,0

 

[badGuy]

Allies=BadGuy,Multi6

Credits=900

Edge=South

 

Structures envolved = 3*

64=BadGuy,GUN,256,990,32,None

56=BadGuy,SAM,256,988,0,None

66=BadGuy,GUN,256,1929,32,None

(it's more than that, but we just need a few here)

 

[bASE] Section

000=GUN,251665920

001=SAM,251665408

002=GUN,503318784

Count=3

 

Calculations of the base section made with XCC (and Excel to confirm)

 

I have no idea why I got stuck, but I sense it's something obvious (not for me, of course).

This is delaying a lot of things, actually.

Share this post


Link to post

Hmm. Can't see anything wrong. BASE uses numbers, padded to 3 characters.

 

Time triggers can be annoying though. Sometimes it works better if they're set to either the human player, or just None. Trigger effects aren't related to the trigger cause's owner anyway. (Well, except for that odd probably-bug where the side that triggers a celltrigger to receive air strike gets the actual airstrike superweapon, even if it's an AI. Disadvantage of the trick is no control over the delay, of course)

Share this post


Link to post

Other thing I didn't understand quite well yet.

 

I have found this trigger commands in one mission:

dat1=Destroyed,Dstry Teams,0,BadGuy,att0,0

dat2=Destroyed,Dstry Teams,0,BadGuy,att1,0

 

First thing is: ATT0 and ATT1 don't exist in the list of the teamtypes. But that's OK, since sometimes mapmakers just leave nonworking triggers in the middle of the trigger section.

 

The thing that I'd like to know is: how "Destroy Teams" work actually? It would destroy the WHOLE TEAMTYPES SECTION?

Or just the ones listed, like above? If so, why wouldn't it be " destroy TEAM"?

Edited by Solo

Share this post


Link to post

As far as I know, "Dstry Teams" is just the opposite of Create Team.

 

"Create Team" takes a bunch of units without orders that are on the map, and makes them into a group that executes orders, as specified by a teamtype.

"Dstry Teams" just disbands teams of a certain teamtype name back into their original, free units. The fact "teams" is plural is because obviously, a trigger has no way of selecting a specific team created by the Create Team trigger. So it disbands all teams of the given teamtype.

The team destroy trigger hasn't been experimented much with though. Feel free to do some more in-depth research. But I'm pretty sure I'm right on this.

 

By the way, a big misconception about Create Team is that it makes the AI build and then send out a team of units. This isn't true; a teamtype just has an extra parameter that causes the units listed in the teamtype definition to be constructed. At the moment the team is created though, there is no guarantee that it will use these newly built units, if others are available on the map too. This also means that for any teamtype set to produce, the units WILL be built, even if a Create Team trigger doesn't exist for it. They'll just sit around their factory building doing nothing.

Share this post


Link to post

Here a suggestion:

ISSUE 1)

I don't know if you can do that or if it is convenient, but we could have a code number of the series like SCG999 and or SCB999, where you can put all missions of a campaign and it will appear on the NEW MISSIONS menu, from EA to XE.

Or it could be whenever you use SCX, for example. That would be a code for the mapmaking stage.

In practice right now if you have (get/find/receive) a campaign and have to test it, you have to rename them for the tests and rename them back after it, one by one.

 

Or could be something at MIX file level, like you call the mix file SCXnnn.MIX or XSCnnn.mix and all the maps inside will go to the end of the NEW MISSIONS menu, for example, without having to rename them.

The moment you turn the MIX file back to SCG or SCB, it will read the files in its normal position on the list and only EA will be shown.

 

 

/edit

ISSUE 2)

Another issue came to mind.

Is it possible to put 2 or mores flares in a mission? I mean, different waypoints.

I think I have seen some triggers somewhere, but couldn't see it working at all.

 

If not , would it be possible to create it the same you've done to the other 3 DSTRY TRIG. It would be something like DZ at "Y" and DZ at "X" and it would use WP24 and WP23.

Share this post


Link to post

For #1, I don't really get what you mean... but filtering anything out on mixfile is impossible. The game literally doesn't know which mixfile a file is found in. It just requests a file to the file finder, which returns the file, without any additional information.

 

I hope I'll be able to finish that mix ID comparison tool soon though... once that's finished it'll immediately give you a list of ALL conflicting mission file names, and tell you for all numbers how far you can use the addon campaign system until duplicates with lower mission numbers occur.

 

As for the flares: interesting idea, but chances are I'll have to do some serious messing with that to customize the waypoint. The Destroy triggers were already one single function called with a different trigger name, so all I had to clone was the section in the actual triggers list. For this, I'll have to give the function an actual extra parameter... which be pretty hard.

Share this post


Link to post

For #1, I was meaning like a prototype number.

If I receive a campaign with the code from SCG86EA to SCG68XC, I would need all of them finishing in EA to test it.

I was thinking a way of changing it and change back, without much effort. Maybe it doesn't have to envolve CNC at all, maybe a batch file or something.

I'll consult Pichorra about it.

 

 

For #2,

the other day I was trying to put a Waypoint or a cell trigger in place of Z and see if it would work.

That's where the idea came from. And also, I saw a mission recently , where the author tried to put 2 flares in that mission, but didn't have time to play and see if it works.

I would have to search for it again, don't remember which one was it.

I'm always thinking a way to twist and squash the commands ehehehehehehh

Share this post


Link to post

For #1, I was meaning like a prototype number.

If I receive a campaign with the code from SCG86EA to SCG68XC, I would need all of them finishing in EA to test it.

Ohhh... I see. That's... kinda hard actually, since the EA->EB->EC continuing logic for covert ops was built purely into the End of Mission logic. There's nothing in the scanning logic to go over these, and I don't see any simple way of adding that either. There's not even anything scanning them all. The logic just checks if the next one exists, that's all. It doesn't loop in any way (besides the fact it's in the main "mission -> win -> next mission -> win -> next mission etc." system).

 

 

the other day I was trying to put a Waypoint or a cell trigger in place of Z and see if it would work.

That's where the idea came from. And also, I saw a mission recently , where the author tried to put 2 flares in that mission, but didn't have time to play and see if it works.

I would have to search for it again, don't remember which one was it.

I'm always thinking a way to twist and squash the commands ehehehehehehh

Triggers in C&C1 are absolute strings. The flare trigger will ONLY work if it says exactly "DZ at 'Z'". Just like you can't just insert any trigger name into the "Dstr trig 'XXXX'". It's case insensitive, but no part of the trigger action text is in any way variable.

 

I can add new ones (or clones, at least), but there's no way to change the basic design of what kind of data a trigger contains. It's always a cause, an effect, a value related to the cause, a house related to the cause, a teamtype related to the effect, and a repeat status.

 

As you see, that does NOT contain any value besides a teamtype that would in any way influence the effect.

 

Those things are 100% set in stone, and can't be changed without changing the format of the triggers as they're stored internally in memory in C&C. Not only do I not have enough information about how that stuff is stored, I'm also pretty sure that changing it will break all older savegames which still have triggers stored the original way. Savegames are literally dumps of that information from memory, after all.

Share this post


Link to post

Solo's request reminded my of an old wish. I completely don't expect this to be possible, but it would be really cool to be able to "unlock" beaten missions so one can play midway from the campaign without keeping a bunch of saves around.

Share this post


Link to post

The only way to do that is to add them to the New Missions menu, actually. Where the alternatives will unfortunately act as minicampaigns (unless I build in extra exceptions for that) :P

 

I could probably pull it off (including the extra choices and such), but in the end, the status would just be written to conquer.ini anyway, so anyone could unlock it manually. Unless I bit-shift it a bit. Hmmm :P

 

I kinda wish I could actually make a clone of the New Missions menu for it, but that'd mean adding an extra main menu button for it. And looking back at the mess I went through just to get the existing buttons in the right ORDER, I don't feel like trying that.

Share this post


Link to post

Yeah, unless you find an easier way to add UI elements, I wouldn't bother with another method. Not to be that guy, but now that CnCnet is out, what do you want to do before you release 1.06c r3

Share this post


Link to post

r3? Whatever happened to r2? :P

Anyway, still looking into that radar crash... and I still need to update the setup tool with cnc-ddraw's new stuff.

Share this post


Link to post

As the main menu of the game clearly says, the hotfix is r1f1.

Share this post


Link to post

Small update... my PC at home had some fatal crashes this weekend, and refused to start afterwards. It seems my main hard disk is failing.

 

I got it booted up in the end, and made a backup of the entire Project 1.06 folder, so the patch development is safe, at least. But if the situation gets worse, and I'm going to have to buy a new hard disk, it's possible I won't be able to continue working on it for a while.

 

Just thought I'd let you know. I can still keep you updated using the laptop I got from work, but the current issue I'm working on can't be solved on my laptop since it doesn't occur on it (the radar crash only happens on big resolutions; my laptop's monitor isn't big enough to reproduce it)

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.

×