0 Members and 1 Guest are viewing this topic.
void Irridium::clbkSetClassCaps (FILEHANDLE cfg){ MAX_MAIN_THRUST = 1064360.0; MAX_HOVER_THRUST = 744975.0; MAX_RCS_THRUST = 4500.0; MAX_TANK1_CAPACITY = 35250.0; MAX_TANK2_CAPACITY = 35250.0; MAX_RCS_FUEL_CAPACITY = 2700.0; EMPTY_MASS = 13000.0; ISP = 3.3e4; ISP_P0 = 3e4; Scn.SavedVariable("ISP_AIR", &ISP); Scn.SavedVariable("ISP_VACCUM", &ISP_P0); Scn.SavedVariable("MAIN_THRUST", &MAX_MAIN_THRUST); Scn.SavedVariable("IONIC_THRUST", &MAX_HOVER_THRUST); Scn.SavedVariable("RCS_THRUST", &MAX_RCS_THRUST); Scn.SavedVariable("MAX_TANK1", &MAX_TANK1_CAPACITY); Scn.SavedVariable("MAX_TANK2", &MAX_TANK2_CAPACITY); Scn.SavedVariable("MAX_RCS_FUEL", &MAX_RCS_FUEL_CAPACITY); Scn.SavedVariable("EMPTY_MASS", &EMPTY_MASS);ph_main = CreatePropellantResource (MAX_TANK1_CAPACITY + MAX_TANK2_CAPACITY);etc ... etc ...
void Irridium::clbkSetClassCaps (FILEHANDLE cfg){ MAX_MAIN_THRUST = 0.0; MAX_HOVER_THRUST = 0.0; MAX_RCS_THRUST = 0.0; MAX_TANK1_CAPACITY = 0.0; MAX_TANK2_CAPACITY = 0.0; MAX_RCS_FUEL_CAPACITY = 0.0; EMPTY_MASS = 130000.0; ISP = 0; ISP_P0 = 0;
DanSteph a écrit:Au chargement du scenario tu redefini tes moteurs après le chargement des variables éventuellement changée.
picto a écrit:Le scénario est donc superbement ignoré !
// --------------------------------------------------------------// Read status from scenario file// --------------------------------------------------------------void Irridium::clbkLoadStateEx (FILEHANDLE scn, void *vs){ char *line; while (oapiReadScenario_nextline (scn, line)) { if(Scn.LoadScenario(line)==TRUE||Crew.LoadAllMembersFromOrbiterScenario(line)==TRUE) continue; ParseScenarioLineEx (line, vs); // unrecognised option }}
void Irridium::clbkLoadStateEx (FILEHANDLE scn, void *vs){ char *line; while (oapiReadScenario_nextline (scn, line)) { if(Scn.LoadScenario(line)==TRUE||Crew.LoadAllMembersFromOrbiterScenario(line)==TRUE) continue; ParseScenarioLineEx (line, vs); // unrecognised option } // a partir d'ici toutes tes variables on été lue depuis le scenario // C'est le moment de proceder aux initialisations qui dépendent des scn // Par exemple (pseudo code) MAX_MAIN_THRUST=min(30000,max(MAX_MAIN_THRUST,10000)); // limitation caca du scn SetMaxThrust(MAX_MAIN_THRUST); // reglage moteur , tank etc etc}
PB_ISP_LOADED=max(500,min(800000,PB_ISP_LOADED)); if(PB_ISP_LOADED!=(int)PB_ISP) { DWORD ThrusterNbr=GetThrusterCount(); DWORD i; for(i=0;i<ThrusterNbr;i++) { THRUSTER_HANDLE hThrust=GetThrusterHandleByIndex(i); SetThrusterIsp(hThrust,PB_ISP_LOADED,PB_ISP_LOADED); } } PB_MAXMAINTH_LOADED=max(10000,min(200000,PB_MAXMAINTH_LOADED)); if(PB_MAXMAINTH_LOADED!=(int)PB_MAXMAINTH) { SetThrusterMax0 (th_main,PB_MAXMAINTH_LOADED); SetThrusterMax0 (th_hover,PB_MAXMAINTH_LOADED); }
"mise au point externe""beta testeur" (Pagir ? )
picto a écrit:Pourquoi toute ces fonctions qui ont l'air de faire la même chose ?
picto a écrit:C'est bizarre d'ailleurs ... pourquoi un handle créé dans class cap n'est il pas dispo ensuite n'importe ou dans le code ?Si j'ai ça dans le header de classe pourquoi faut il en redemander un dans LoadStateExt ?
FILE * stream; stream = fopen( "Sound\\DeltaGliderIV\\config.cfg", "wb" ); { fwrite( &Cfg, sizeof( Cfg ), 1, stream ); fclose( stream ); }
FILE * stream; stream = fopen( "Sound\\DeltaGliderIV\\config.cfg", "rb" ); if(stream) { fread( &Cfg, sizeof( Cfg ), 1, stream ); fclose( stream ); }