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.
hmmm, sight could be the problem, that and cellspread if you did a simular thing there. maybe you used an API not suported in 98SE/ME
PaD Wrote:Maybe the units are already there, but the sight is crashing because something's wrong with my values.
The only question which is left then is why many people don't get that error...

I know for a fact that the units are there. I changed the shroud.shp to fog.shp, which is 50% transparent I can see the MCV/starting units then.

On the weekend I?ll do some tests & see if I can find out any more info
Then it's probably sight.

@Bobing:
Sight and CellSpread aren't similar, they're the same.

@Marshall:
I like your idea, I'll see if I find time to disable my new CellSpread/Sight (it's changing 8 addresses so not really much work).
it is quite possibly sight and cellspread then, is there any other way you could increase it other than the 2 methods you've already tried?
The old cellspread calculation you made didn't cause an IE for me (but when I tried a cellspread of about 200 the game slowed down so much I had to restart my machine).

Don't know about your new cellspread method though.

I suggest try removing both cellspread and sight changes. Test.
If succesful, try reimplementing the cellspread changes. Test.
If succesful, then sight alone is the problem.


Note: when I make the patcher program for you, pd, I usually just make it and send it you without testing the patch itself (so as to get it to you asap). In light of the latest OS-specific issue, perhaps I should at least test the patch unmodded first...
Sight and CellSpread work in the same way:
WW made up a table of 12 values (0 to 11, so 11 is the limit).

They made it that way because - you mentioned it - a calculation would slow down the game too much.
My new method is just a valuetable of 121 (0 to 120) values instead of 11, and pointed the old addresses to my new table (no mistakes there, I checked that).

So either it's both Sight and CellSpread or none of them.
I got nothin to do right now so I'll point the addresses back to the old table and send you one of those crap patchers Tongue

It would be nice if you tested the unmodded patch before sending me a patcher, if it doesn't cause any trouble to you.
But note that for some (most?) people, the stuff works, however.
The reason for that should be found soon I hope...

EDIT:
@Bobing:
No, there aren't any possibilities to increase the limits another way.
looks like you've got a windows 98se/me version, and a windows 2000/xp version...
I sent a "non-CellSpread and Sight" version to Marshall and the problem was gone.
Next step is - how he mentioned - add CellSpread back and look what happens.

Prepare for a possible separation from unlimited CellSpread/Sight Unhappy
I had already typed this in yesterday, but decided not to post it. Now, however, it seems even more appropriate:

Who needs sight this big anyway?

Seriously. Cellspread, okay, very nice to have it a little bigger. But sight? I mean, what'd be the use of a unit with Sight=120? I could just build a SpySat Uplink instead. I think Sight=11 is absolutely enough for YR. No need to risk the patch for an extension.
I concur. And contrary to what bobingabout said, I don't think different OS versions of the patch are viable - how would modders (and the 1.002 CP) maintain compatibility then?

Using my super-freaky-cosmic Yuri powers I predict that higher CellSpread will work.
i didn't mean that he should do 1, I'm just saying that he basicly did 1.

is it such a wonder why just about everything release today has a 98SE/ME version and a 2000/XP version? graphics drivers and directX are the main things here. 3DSM 6 doesn't even suport a windows 98SE/ME version anymore, you MUST have 2000/XP to use it at all, which is crap...
Yeah...the reason is that 2000 and XP are basing on the NT-Kernel rather than the 95 one, and there has always been a seperate driver for the NT-series...Rolling eyes

Guest

VeteranSight=0.0 has something to do with it. What if sight has code to check the multiplier, if it is 0, then just put the normal value in before multiplier. I have a funky idea that WW was so lazy that they had an if-elseif-endif table for sight.
Multiply-by-zero is not the divide-by-zero problem.
Besides, Sight=0 works.
multiply by zero is 0, devide by zero is infinity.

so what is 0/0?