Update Multistage2015 Update to OpenOrbiter2024

Maybe I've accidentally linked some D3D9 component. I'm not sure, but I'll check.
I have the ext activated too.
I need to check the Multistage2015::AutoJettison() function; the problem must be there or in its calls
This is the most serious bug, I think it's when the function is being called, it seems to skipped?
That's weird, maybe some array is misconfigured.
Maybe just a debug output error? So far interstages are working fine.
I also want to replace arrays with tools from the blessed C++ STL. At least as far as I can.
(y)
...and thanks for hacking this one out:)
 
So regarding the Multistage2015-MFD here is what I can observe :
(same with internal MFD, External MFD and DX9 External MFD)

1) Opening MFD internal or windowed= ok
2) Selecting Multistage2015_MFD in the list = ok (the MFD is displayed correctly)
3) then...
- Key (or tab) selection VEH => CTD
- Key (or tab) selection GNC => CTD
- Key (or tab) selection PLD => CTD
(I haven't tested the other keys but I assume it's same)

There was no such issue with the February version...
 
Cannot confirm with the MFD, all buttons working!
@jacquesmomo can you post a log?

Just tested with complex flight on: same as above but on manual booster jet. it CTDs.
 
I still can't wrap my head around why when there are multiple boosters attached on the first stage, only the last one ignites on launch. From what I'm seeing in the log file, all are being recognized and loaded up. Thrust starts are all set at 0.00s.
 
Last edited:
Cannot confirm with the MFD, all buttons working!
@jacquesmomo can you post a log?

Just tested with complex flight on: same as above but on manual booster jet. it CTDs.
I'm pretty sure there's an overflow error in the complex flight function, in case anyone spots it before I do...
C++:
void Multistage2015::ComplexFlight()
{
    UpdateComplex+=oapiGetSimStep();
    if(UpdateComplex>=1)
    {
        UpdateComplex=0;

        for(int i=0;i<stage[currentStage].nEngines;i++)
        {
            
            double newMax=(stage[currentStage].thrust/stage[currentStage].nEngines)*(1+(stage[currentStage].engine_amp[i]*sin(2*PI/stage[currentStage].freq[i]*MET+stage[currentStage].engine_phase[i])));
            SetThrusterMax0(stage[currentStage].th_main_h[i],newMax);
            /*double test=(1+stage[currentStage].engine_amp[i]*sin(2*PI/60*MET+stage[currentStage].engine_phase[i]));
            sprintf(logbuff,"MET:%.1f engine:%i TEST:%.6f",MET,i,test);
            oapiWriteLog(logbuff);*/
        }
        if(wBoosters)
        {
            for(int j=0;j<booster[currentBooster].N;j++)
            {
                double newMax=booster[currentBooster].thrust*(1+(booster[currentBooster].engine_amp[j]*sin(2*PI/booster[currentBooster].freq[j]*MET+booster[currentBooster].engine_phase[j])));
                SetThrusterMax0(booster[currentBooster].th_booster_h[j],newMax);
            }
        }
    }


    return;
}
 
So I want to ask and if I'm off in left field, kick me out of play.
Fred's Multistage2015 had a dependency on @BrianJ Stage.dll and he included it as part of the 2015 package.
Could the Stage.dll be causing the jettison and ignite issues since it hasn't been updated since 2010 and maybe something in the 2024 library changed?
 
So I want to ask and if I'm off in left field, kick me out of play.
Fred's Multistage2015 had a dependency on @BrianJ Stage.dll and he included it as part of the 2015 package.
Could the Stage.dll be causing the jettison and ignite issues since it hasn't been updated since 2010 and maybe something in the 2024 library changed?
Excellent point.
I just took the Stage_2010_dll code from @BrianJ and updated it. But I haven't distributed it in the updated Multistage package.

So, now I'm asking @BrianJ if he'll allow me to update his module and redistribute it in these new Multistage2015 builds for OpenOrbiter2024.
Obviously, I'd give credit to the corresponding creators.
 
So, now I'm asking @BrianJ if he'll allow me to update his module and redistribute it in these new Multistage2015 builds for OpenOrbiter2024.
Yes, by all means.
....and thanks to everyone for your work to make MS2015 compatible with O2024 (y)
Cheers,
Brian
 
Yes, by all means.
....and thanks to everyone for your work to make MS2015 compatible with O2024 (y)
Cheers,
Brian
Thanks so much @BrianJ.

I'm now trying to replace the old arrays with std::array to see if I can resolve an overflow issue with stage[currentStage].
 
And I've deactivated it (ExtMFD too) and still don't get a CTD!?! So DX9EXTMFD is a redherring, must be something else?
 
I tried in default graphics. and ctd when pressing button on the mfd
000028.982: Module Multistage2015.dll .... [Build 250720, API 241231]
000028.984: Multistage Version: 170506
 
Dear friends, I've made a somewhat drastic decision: rewrite the entire Multistage2015.cpp to incorporate C++ STL and reread all the code again to familiarize myself with how it works and finally put an end to the strange and elusive errors it contains.

What I'm going to do is, with the text editor on one side of the screen, rewrite the code on the other side and test it little by little.

This is going to take time; it's around 4,900 lines of code, but I think it's the best thing to do, given that the rockets aren't even firing right now.

In any case, I'll continue receiving your error reports, which will guide me to pay more attention to the details of what I need to fix.
 
No longer MS2015...welcome, Multistage2025
Sounds good! But I should ask Fred's permission first because it's ultimately his work, and I don't want to take credit for something that isn't my own invention.
 
Sounds good! But I should ask Fred's permission first because it's ultimately his work, and I don't want to take credit for something that isn't my own invention.
Well done!

You're brave, but I think it might be a good decision.

Multistage was originally made by Vinka.
Fred18 adapted it for Orbiter 2016 (or 2010, I don't remember) and, more importantly, improved it.

I don't think he's against your project...
 
Back
Top