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.
I hope I'm logged in, incase I'm not, I'll say it now to prevent double posting. I am Bobingabout.

@Fen, reason why the FOW would be too hard is simply because WW "Broke" it while implementing something else, aparanlty, it used to work better than it does now. fixing it would require knowing how the current FOW is set up, and fixing those bugs without interupting the code thats tied into it, causing it to not work right.


@PD, i supose it could be something to do with the gclock anim. I've got a gclock loose in 1 of my mixes thats used for all sides... although, its only done it on that 1 MP game, i did the exact same thing in a skirmish and it never crashed. and its not too easy for me to set up MP games by myself, i kinda have to have another person wanting to play an MP game to actually play 1.
Cannis, from my experience, that sidebar problem has nothing to do with having tons of buildings available. I had such problems when I was fiddling with the ;-RTO section of the rules (the one which contains stuff from TeamDelays= to DissolveUnfilledTeamDelay=). Weird how that can be related, but I am certain this section has something to do with it.

(I remember SeaMan fixed that bug in SR 1.71, perhaps he can tell more about it.)
Maybe he would have the answer. I don't have any AI stuff in the map's code. What I do have is a lot of screwy conyard mods and ridiculously fast build time multipliers on every building. Maybe the AI is constantly checking AIBasePlanningSide for things it has the prereq and techlevel for but shouldn't build since it's the wrong side...
@ BobingAbout:
I was thinking he could make an entriely NEW section with different reference tags to define and determine the FOW behavior. Instead of attempting to fix the mistakes in place, a new section with NEW ref tags may work more effectively.
might work more effectivly, but it also would mean writing the whole thing himself. problem is, he doesn't really know how to do something that would rewuire that much work.

you see, most things simply require new tags, and somewhere to store the data, and then maybe some data pointer changes. that stuff he can handle, but creating a whole new bunch of code would be very difficult.

example, more death anims:
the list stores the SHPs pointers in a spacific place.
the new numbers on weapons point to these places with the specified offsets.



EDIT: Strange... I've just tried my mod for the first time on my laptop, and the yuri AI was acting strange again, like it did when i was first trying to get a working 4th side emulation. seems to me like PDs patch didn't fix it, but it working on my other PC was just some kind of random annomoly...

best get a 4th sided patch going ASAP then...

oh well. CDA is only activatable with PDs patch ATM anyway.
sorry for double posting again. I'm not going into too much detail, I've been asked not to untill we've released the latest version of our mod, which uses this.


but, did you know its possible to seperate the factories? by this i mean, allied units only come from allied factories, soviet units only come from soviet factories, and so on.

only problem with this is that, even though the factories are independant in this fashion, they all go on the same build list. so even if you try and build allied units, and soviet units. the game will only build 1 unit at a time.

so, what I'm asking is that he makes it possible for more than 1 build list. like all units(tanks, ships, jumpjet vehicles) and aircraft, they are displayed in the same menu, but each side(doesn't have to be literal side, could be factory if you know how) has a seperate queue. so you would be able to build for example, an allied war factory, while building a soviet war factory, then in turn, build a grizzly tank, while building a rhyno tank.


would basicly mean copying the internal build queues, make them determinable by (currently not allowed to reveal thing), and then(since you probably don't want it always like this) make it activatable by some tag in the [General] section.


note: if you know how to do it, and reveal it, i can explain in more detail. but then that would ruin the feature in our mod...
Bobingabout Wrote:sorry for double posting again. I'm not going into too much detail, I've been asked not to untill we've released the latest version of our mod, which uses this.
but, did you know its possible to seperate the factories? by this i mean, allied units only come from allied factories, soviet units only come from soviet factories, and so on.

only problem with this is that, even though the factories are independant in this fashion, they all go on the same build list. so even if you try and build allied units, and soviet units. the game will only build 1 unit at a time.

so, what I'm asking is that he makes it possible for more than 1 build list. like all units(tanks, ships, jumpjet vehicles) and aircraft, they are displayed in the same menu, but each side(doesn't have to be literal side, could be factory if you know how) has a seperate queue. so you would be able to build for example, an allied war factory, while building a soviet war factory, then in turn, build a grizzly tank, while building a rhyno tank.
would basicly mean copying the internal build queues, make them determinable by (currently not allowed to reveal thing), and then(since you probably don't want it always like this) make it activatable by some tag in the [General] section.
note: if you know how to do it, and reveal it, i can explain in more detail. but then that would ruin the feature in our mod...


PD would need to add another "VehicleTypes"... The only way to make separate build lists is by having different factory types... which would be a cool thing for the game...
Banshee Wrote:PD would need to add another "VehicleTypes"...? The only way to make separate build lists is by having different factory types... which would be a cool thing for the game...


rulesmd.ini Wrote:[NAWEAP]
WeaponsFactory=yes
Factory=UnitType

[NAYARD]
WeaponsFactory=yes
Factory=UnitType
Naval=yes ;GS

both navel yard and weapons factory are both unittype. only difference is navel yard is navel, so builds navel units.

atleast you thinking, i like that.

but i had 3 ideas.

first was having a new tag, like navel=, but the tag is for units only, and says BuiltBy=, only problem is, that doesn't really fix the problem, you'd also need something on the war factory to tell it thats its different from the others.

second idea was side spacific. determined by the AIBasePlanningSide= of the factory, and something on the unit, so it knows what factory to come out of. my trick could fix this.

first and second together might do it, but then thats limited to 1 per side, modder might not want that.


3rd, is it determines the list in the same way that my trick works. but i'd have to break my promice to tell you... unless someone else revealed how i did it.


BTW, i havn't added it to the wish list yet, because i don't want to untill i know what to put. its not a case of not knowing, its a case of not knowing without breaking the promice of not revealing how i made the units come from the spacific factories. its too simple!
Bobingabout Wrote:you see, most things simply require new tags, and somewhere to store the data, and then maybe some data pointer changes. that stuff he can handle, but creating a whole new bunch of code would be very difficult.


Wouldent it be easy to go though and bring back several things, and it doesnt sound like it would take too long.


I am not a programer, so please excuse my lack of knowlage...
anything that's been damaged by WWs hacks would need a previous version reserecting, thats harder to do than you think because PD has to re-allign all the addresses. even if he manages to allign all those addresses, there are chances that even then it won't work properly. needing further hacking.

Guest

Jesus Christ, get off your goddamned high horse and either give the INI code for the separate factories trick or shut up about it.
I'm bound by a promice, I'm willing to share, but i'd rather coax it out from someone else who might know than break a promice. com'on blade, you know most things, take a guess, 'tis just TOO simple. and i beleave in fact i did shut up. last thing was about why PD can't just yank code out of 1 file and stick it in YR. why making FOW work is beyond his current tallants.

if it existed before, or just needs to store variables, maybe from a tag, he can get it working, with time and effort(countries is many variables, 4 sides would be even more variables, but the logic basicly already exists, hence how WW easilly added yuri), even with the simularities between YR and TS is very very hard to copy things from TS to YR. but something new, or from another game is almost impossable.


EDIT:

I've been playing with things to see what actually needs adding for 4 sides again

made a rather shocking discovery. i set AIBasePlanningSide to 3(thats the 4th 1, it starts at 0 here) and the triggers in the AImd.ini file to 4(starts at 1 here) and to my shock, it worked! well, not even as good as 4th side emulation, but:

the yuri AI was crippled, seems to be something with powerplant04= things. seems to revert back to previous side. they only build 1 of each base defence, which seems to sugest they need their own basedefences= tag. and i havn't seem them build a wall yet. there probably something with these tags in the AI section that has a limit like the baseunit= tag to only read in the first 3. but getting this far, I'd say its kind of progress. i wouldn't call it progress if i was just modding, but since PD is working on extra sides, now its progress.

for more details see the test results section(2b) of this file: neededfor4sidesv2.txt
FOW seems even to be beyond WW's talents.
So don't blame ME for admitting that I got no idea how I would make that work Big Grin
It's not just hacking, it's programming with a real concept.
In CPP for example, if I got the real source code, it would be an hour-job or something; but in assembly, it's really almost impossible.

As I just said, I'm having a break right now.
I'm going to continue soon when I got my internet connection.

@Bobing:
Just to sum it up: Great work!

I'll make - or better I'll HAVE to make use - of your finds.
You found out some things which really make life easier...
So 4th side could be the next thing finished.?

@Guest:
He mentioned it not to do kid stuff like "I know it but I won't tell you", but because it could open a bunch of new possibilities.
To be honest, I don't think it's a great thing, but that's something everybody has his own opinion about.

Compability with the "pure game" is questionnable, too.
You know, my patch should change nothing unless the modder wants it to be changed.
I dunno if I'm ever going to work on that seperating factories...

@Banshee:
A second VehicleTypes wouldn't be required.
I'd "just have to make the game check what units should be built in what factories and determine what units should be disabled in the sidebar when building one".

It sounds MUCH too easy as it really is.
hi PD. erm, yes, that seperate build lists things were for asking PD to consider it as a wish kinda thing. i am with PD that that would be a lot more work than it sounds, just like 4th side seems to be getting easier and easier to do as i play with trying to implement it without the patch. besides, its buggy as it is now, because although the units come from the proper factories, they are still 1 factory in the way that you can only build 1 tank at a time even if they are coming from different factories.

back to 4 sides: sure, i'm making it sound easy to implement, but lets not forget, that its still very hard to do. would require lots of hacking for adding these new tags, using new files etc. it seems to revert to last thing on the list of you go past the end for most things, in some cases, breaking yuri. would need fixes for these. the "reverting" to last used setting can be seen on yuri loading screens since he uses red text.

1 of the few exceptions that means no hacking is the GUI itself, the game already forces the use of sidec04.mix, causing an internal error if its not there. same with AI, the logic to add sides is still there, but things that require tags, or filenames means it doesn't work properly, theirieticly, all you'd need to do is place the filenames, and values from the tags in the correct place, in an array after yuri, might need teh array size expanding. AIBasePlanningSide= and the side number in the AI triggers don't need playing with.

basicly, the same with his playable countries patch, so overall, doable, just need to find where the game access things.

baseunit= more than 100 units, and 74 units bug are still mysteries, so, they might take a while. as PD said, he can't seem to find anything causing the problem.
Here's what i found out about BaseUnit=
From the coding I see in gamemd.exe BaseUnit= is hardcoded to only have 3 entries. The game itself will only recognize 2 commas in the tag.
Here's some other tags with similiar coding:
Shipyard=, RepairBay=, HarvesterUnit=
BuildConst=, BuildPower=, BuildRefinery=, BuildTech=, BuildWeapons=, BuildDefense=, BuildPDefense=, BuildAA=, BuildHelipad=, BuildRadar=, ConcreteWalls=
they all seem to have the same restrictions:
TAG=Object1,Object2,Object3

I don't know if that helps at all... :huh: