TweakScale

TweakScale

1M Downloads

Reorganize the Scaling Engines

Lisias opened this issue · 5 comments

commented

That's the problem: I was terribly wrong about the Editor's bug that it's overwritting Part data when ModulePartVariant is used.

KSP Editor is screwed since 1.4.4 or 1.4.5 as it appears. The following problem is happening on 1.4.5, 1.5.1, 1.6.1 and 1.7.3:

2

But when launching it directly into the runway, there's no problem:

1-2

Interesting enough, on KSP 1.8.1 the problem didn't happed! Squad fixed it properly on KSP 1.8.x!! (note: KSP-Recall's AttachedOnEditor is not needed on KSP 1.8.x). [EDIT: nope, see the comments below!]

But so on KSP 1.9.0 they broke Editor again, and that was the straw that broke TweakScale's back.

From KSP 1.4.4 (probably the first to present the problem) to KSP 1.12.3, only KSP 1.8.0 and KSP 1.8.1 had Editor working fine. [EDIT: Nope. Everything before 1.9.0 is working fine, see comments below]

So this is what I think it happened:

  1. From KSP 1.4.4 to 1.7.0, I didn't touched any part with VARIANT on TweakScale. So I never had the chance to be hit by the problem.
  2. On KSP 1.7.1 (more or less), I introduced support to Making History (i.e., ModulePartVariants) and whatever I did, I ended up coding TweakScale over the bug without being aware. [EDIT: I did exactly that, but the bug I coded over was my own!]
  3. On KSP 1.8.x, the problem was fixed and by some reason the kludge I ended up doing on TweakScale didn't broke anything. Plain luck, I think.
  4. On KSP 1.9.0 they screwed up Editor again in a way that broke the kludge on TweakScale. Then I made another kludge over the kludge and called it a day.

Recently I decided to get rid of all the tech debits from TweakScale (as they were potentially screwing up 3rd parties the same way Editor was screwing me), and transferred to KSP-Recall the duty to work around the Editor's stupidity from KSP >= 1.9.0 - but I didn't coded a workaround for [1.4.4 <= KSP <= 1.7.3]'s stupidity [EDIT: the stupidity was mine! See comments below!], as I didn't knew it existed.

Oh, well… At least I know about it now.

There's a chance that the code used to scale things on KSP 1.8.x is the only real scaling code to be used, and that the TS support for KSP < 1.8.0 is compromised since ever.

TASK: GET RID OF THIS NONSENSE FOR GOOD.

commented

Some background:

  • Scale.PartDB.13x is used for [1.3.0 <= KSP < 1.4.0]
    • Classic PartModule support
  • Scale.PartDB.14x is used for [1.4.0 <= KSP <= 1.4.3]
    • Supports the First Generation for ModulePartVariant.
  • Scale.PartDB.15x is used for [1.4.4 <= KSP < 1.8.0]
    • Supports the 2nd Generation for ModulePartVarian:
      • Cost and Mass are now variant.
  • Scale.PartDB.18x is used for [1.8.0 <= KSP < 1.9.0]
    - Apparently the only Scale Engine that doesn't needs KSP-Recall… :/
    - [EDIT: Only KSP >= 1.9.0 needs Recall. The real cause was determined, see below]
    - [EDIT: This engine was determined to not be needed and was merged into 15x]
  • Scale.PartDB.19x is used for KSP >= 1.9.0
    - The most problematic support ever.
commented

I considered that perhaps my diagnosis could be wrong, i.e., [1.4.4 <= KSP < 1.8.0] could be fine, KSP 1.8.0 could be broken, and somehow the way I coded TweakScale was masking the bug on 1.8.0 and screwing up the previous ones.

But, then, 1.4.3 would be screwed too.

So I still tempted to consider the 14x Scaling Engine as fine, KSP 1.8.x as good and anything else (but KSP <= 1.4.3) as flawed somehow on the Editor.

commented

OUKEY…. Found something interesting. :)

I was wrong, completely wrong, on my last post. In fact, I just realised that [1.4.4 <= KSP < 1.8.0] are fine, and the problem was on the Scaling Engine itself.

What happened is that, as I added support for KSP 1.9.x by brute force, I ended up screwing support for [1.4.4 <= KSP <= 1.7.3] on the Scale core - and then had to add some code to unscrew the mess on the 15x Scale Engine!

When KSP-Recall started to be in charge of KSP idiosyncrasies, I removed the kludges but by then, that extra code I had to add before started to cause problems.

In the end, I'm fixing things by removing code. :)

commented

Well, things appears to be fine. Closing it.

commented

New landscape:

  • Scale.PartDB.13x is used for [1.3.0 <= KSP < 1.4.0]
    • Classic PartModule support
  • Scale.PartDB.14x is used for [1.4.0 <= KSP <= 1.4.3]
    • Supports the First Generation for ModulePartVariant.
  • Scale.PartDB.15x is used for [1.4.4 <= KSP < 1.9.0]
    • Supports the 2nd Generation for ModulePartVarian:
      • Cost and Mass are now variant.
  • Scale.PartDB.19x is used for KSP >= 1.9.0
    • The most problematic support ever.