//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // FeatureControl::CopyName(); //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- CFStringRef FeatureControl::CopyName() const { CFStringRef name = NULL; switch (GetClassID()) { case kCMIOHueControlClassID: name = CFSTR("Hue"); break; case kCMIOSaturationControlClassID: name = CFSTR("Saturation"); break; case kCMIOContrastControlClassID: name = CFSTR("Contrast"); break; case kCMIOSharpnessControlClassID: name = CFSTR("Sharpness"); break; case kCMIOBrightnessControlClassID: name = CFSTR("Brightness"); break; case kCMIOGainControlClassID: name = CFSTR("Gain"); break; case kCMIOIrisControlClassID: name = CFSTR("Iris"); break; case kCMIOShutterControlClassID: name = CFSTR("Shutter"); break; case kCMIOExposureControlClassID: name = CFSTR("Exposure"); break; case kCMIOWhiteBalanceUControlClassID: name = CFSTR("White Balance U"); break; case kCMIOWhiteBalanceVControlClassID: name = CFSTR("White Balance V"); break; case kCMIOGammaControlClassID: name = CFSTR("Gamma"); break; case kCMIOTemperatureControlClassID: name = CFSTR("Temperature"); break; case kCMIOZoomControlClassID: name = CFSTR("Zoom"); break; case kCMIOFocusControlClassID: name = CFSTR("Focus"); break; case kCMIOPanControlClassID: name = CFSTR("Pan"); break; case kCMIOTiltControlClassID: name = CFSTR("Tilt"); break; case kCMIOOpticalFilterClassID: name = CFSTR("Optical Filter"); break; case kCMIOBacklightCompensationControlClassID: name = CFSTR("Backlight Compensation"); break; case kCMIOPowerLineFrequencyControlClassID: name = CFSTR("Power Line Frequency"); break; case kCMIONoiseReductionControlClassID: name = CFSTR("Noise Reduction"); break; default: name = CFSTR("Unknown"); break; } return name; }
OSErr TRandom3D::Read(BFPB *bfpb) { long version; ClassID id; OSErr err = 0; if (err = TMover::Read(bfpb)) return err; StartReadWriteSequence("TRandom3D::Read()"); if (err = ReadMacValue(bfpb, &id)) return err; if (id != GetClassID ()) { TechError("TRandom3D::Read()", "id != GetClassID", 0); return -1; } if (err = ReadMacValue(bfpb, &version)) return err; if (version > TRandom3D_FileVersion) { printSaveFileVersionError(); return -1; } if (err = ReadMacValue(bfpb, &fDiffusionCoefficient)) return err; if (err = ReadMacValue(bfpb, &fUncertaintyFactor)) return err; if (gMearnsVersion || version > 1) { if (err = ReadMacValue(bfpb, &fVerticalDiffusionCoefficient)) return err; if (err = ReadMacValue(bfpb, &fHorizontalDiffusionCoefficient)) return err; //if (err = ReadMacValue(bfpb, &fVerticalDiffusionCoefficient)) return err; } if (version>1) if (err = ReadMacValue(bfpb, &bUseDepthDependentDiffusion)) return err; return 0; }
OSErr TimeGridWindRect::Read(BFPB *bfpb) { char c, msg[256], fileName[256], newFileName[64]; long i, version, numTimes, numPoints; ClassID id; float val; Seconds time; Boolean bPathIsValid = true; OSErr err = 0; if (err = TimeGridVel::Read(bfpb)) return err; StartReadWriteSequence("TimeGridWindRect::Read()"); if (err = ReadMacValue(bfpb, &id)) return err; if (id != GetClassID ()) { TechError("TimeGridWindRect::Read()", "id != TYPE_TIMEGRIDWINDRECT", 0); return -1; } if (err = ReadMacValue(bfpb, &version)) return err; if (version > TimeGridWindRectREADWRITEVERSION) { printSaveFileVersionError(); return -1; } // anything here? done: if(err) { TechError("TimeGridWindRect::Read(char* path)", " ", 0); if(fTimeHdl) {DisposeHandle((Handle)fTimeHdl); fTimeHdl=0;} } return err; }
void AircraftClass::InitCountermeasures (void) { //int type = GetClassID ( //DOMAIN_AIR, CLASS_VEHICLE, TYPE_BOMB, STYPE_BOMB_IRON, SPTYPE_MK82, VU_ANY, VU_ANY, VU_ANY) + //VU_LAST_ENTITY_TYPE; // JB 010220 int type = GetClassID( DOMAIN_AIR, CLASS_VEHICLE, TYPE_BOMB, STYPE_CHAFF, SPTYPE_CHAFF1, VU_ANY, VU_ANY, VU_ANY ) + VU_LAST_ENTITY_TYPE ; // JB 010220 // Add Chaff and flares // NOTE: Since chaff and flares are created upon deployment, the use of a full hardpoint // is kinda wasteful. The debris could probably be created upon need as well to save // a bunch of extra "bombs" hanging arround in memory. counterMeasureStation[FLARE_STATION].weaponCount = af->auxaeroData->nFlare; counterMeasureStation[FLARE_STATION].weaponPointer.reset(); counterMeasureStation[CHAFF_STATION].weaponCount = af->auxaeroData->nChaff; counterMeasureStation[CHAFF_STATION].weaponPointer.reset(); counterMeasureStation[DEBRIS_STATION].weaponPointer.reset(); counterMeasureStation[DEBRIS_STATION].weaponCount = af->auxaeroData->nChaff; }
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // FeatureControl::CopyAbsoluteUnitName(); //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- CFStringRef FeatureControl::CopyAbsoluteUnitName() const { CFStringRef name = NULL; switch (GetClassID()) { case kCMIOHueControlClassID: name = CFSTR("Degrees"); break; case kCMIOSaturationControlClassID: name = CFSTR("%"); break; case kCMIOSharpnessControlClassID: name = CFSTR("Units"); break; case kCMIOBrightnessControlClassID: name = CFSTR("%"); break; case kCMIOGainControlClassID: name = CFSTR("dB"); break; case kCMIOIrisControlClassID: name = CFSTR("F"); break; case kCMIOShutterControlClassID: name = CFSTR("Seconds"); break; case kCMIOExposureControlClassID: name = CFSTR("EV"); break; case kCMIOWhiteBalanceUControlClassID: name = CFSTR("K"); break; case kCMIOWhiteBalanceVControlClassID: name = CFSTR("K"); break; case kCMIOGammaControlClassID: name = CFSTR("Units"); break; case kCMIOTemperatureControlClassID: name = CFSTR("Units"); break; case kCMIOZoomControlClassID: name = CFSTR("Power"); break; case kCMIOFocusControlClassID: name = CFSTR("Meters"); break; case kCMIOPanControlClassID: name = CFSTR("Degrees"); break; case kCMIOTiltControlClassID: name = CFSTR("Degrees"); break; case kCMIOOpticalFilterClassID: name = CFSTR("Units"); break; case kCMIOBacklightCompensationControlClassID: name = CFSTR("Units"); break; case kCMIOPowerLineFrequencyControlClassID: name = CFSTR("Hertz"); break; } return name; }
OSErr GridCurrentMover::Read(BFPB *bfpb) { long version; ClassID id; OSErr err = 0; if (err = TCurrentMover::Read(bfpb)) return err; StartReadWriteSequence("GridCurrentMover::Read()"); if (err = ReadMacValue(bfpb,&id)) return err; if (id != GetClassID ()) { TechError("GridCurrentMover::Read()", "id != TYPE_GRIDCURRENTMOVER", 0); return -1; } if (err = ReadMacValue(bfpb,&version)) return err; if (version > GridCurrentMoverREADWRITEVERSION) { printSaveFileVersionError(); return -1; } //// // read the type of grid used for the GridCurrent mover if (err = ReadMacValue(bfpb,&id)) return err; switch(id) { case TYPE_TIMEGRIDVELRECT: timeGrid = new TimeGridVelRect; break; //case TYPE_TIMEGRIDVEL: timeGrid = new TimeGridVel; break; case TYPE_TIMEGRIDVELCURV: timeGrid = new TimeGridVelCurv; break; case TYPE_TIMEGRIDVELTRI: timeGrid = new TimeGridVelTri; break; case TYPE_TIMEGRIDCURRECT: timeGrid = new TimeGridCurRect; break; case TYPE_TIMEGRIDCURTRI: timeGrid = new TimeGridCurTri; break; default: printError("Unrecognized Grid type in GridCurrentMover::Read()."); return -1; } // code goes here, should also have a name/path done: if(err) { TechError("GridCurrentMover::Read(char* path)", " ", 0); } return err; }
///////////////////////////////////////////////////////////////////////////// // CDataSource::GetObjectDesc // ///////////////////////////////////////////////////////////////////////////// WCHAR* CDataSource::GetObjectDesc() { if(!m_strObjectDesc && m_pIPersist) { CLSID clsid; GetClassID(&clsid, &m_strObjectDesc); } return m_strObjectDesc; }
void IFWL_Widget::GetPopupPos(FX_FLOAT fMinHeight, FX_FLOAT fMaxHeight, const CFX_RectF& rtAnchor, CFX_RectF& rtPopup) { if (GetClassID() == FWL_Type::ComboBox) { if (m_pWidgetMgr->IsFormDisabled()) { m_pWidgetMgr->GetAdapterPopupPos(this, fMinHeight, fMaxHeight, rtAnchor, rtPopup); return; } GetPopupPosComboBox(fMinHeight, fMaxHeight, rtAnchor, rtPopup); return; } if (GetClassID() == FWL_Type::DateTimePicker && m_pWidgetMgr->IsFormDisabled()) { m_pWidgetMgr->GetAdapterPopupPos(this, fMinHeight, fMaxHeight, rtAnchor, rtPopup); return; } GetPopupPosGeneral(fMinHeight, fMaxHeight, rtAnchor, rtPopup); }
OSErr NetCDFWindMoverCurv::Read(BFPB *bfpb) { long i, version, index, numPoints; ClassID id; WorldPointF vertex; OSErr err = 0; if (err = NetCDFWindMover::Read(bfpb)) return err; StartReadWriteSequence("NetCDFWindMoverCurv::Read()"); if (err = ReadMacValue(bfpb,&id)) return err; if (id != GetClassID ()) { TechError("NetCDFWindMoverCurv::Read()", "id != TYPE_NETCDFWINDMOVERCURV", 0); return -1; } if (err = ReadMacValue(bfpb,&version)) return err; if (version != NetCDFWindMoverCurvREADWRITEVERSION) { printSaveFileVersionError(); return -1; } //// if (err = ReadMacValue(bfpb, &numPoints)) goto done; if (numPoints > 0) { fVerdatToNetCDFH = (LONGH)_NewHandleClear(sizeof(long)*numPoints); // for curvilinear if(!fVerdatToNetCDFH) {TechError("NetCDFWindMoverCurv::Read()", "_NewHandle()", 0); err = memFullErr; goto done;} for (i = 0 ; i < numPoints ; i++) { if (err = ReadMacValue(bfpb, &index)) goto done; INDEXH(fVerdatToNetCDFH, i) = index; } } if (err = ReadMacValue(bfpb, &numPoints)) goto done; fVertexPtsH = (WORLDPOINTFH)_NewHandleClear(sizeof(WorldPointF)*numPoints); // for curvilinear if(!fVertexPtsH) {TechError("NetCDFWindMoverCurv::Read()", "_NewHandle()", 0); err = memFullErr; goto done;} for (i = 0 ; i < numPoints ; i++) { if (err = ReadMacValue(bfpb, &vertex.pLat)) goto done; if (err = ReadMacValue(bfpb, &vertex.pLong)) goto done; INDEXH(fVertexPtsH, i) = vertex; } done: if(err) { TechError("NetCDFWindMoverCurv::Read(char* path)", " ", 0); if(fVerdatToNetCDFH) {DisposeHandle((Handle)fVerdatToNetCDFH); fVerdatToNetCDFH=0;} if(fVertexPtsH) {DisposeHandle((Handle)fVertexPtsH); fVertexPtsH=0;} } return err; }
OSErr GridWindMover::Read(BFPB *bfpb) { char c, msg[256], fileName[256], newFileName[64]; long i, version, numTimes, numPoints; ClassID id; float val; Seconds time; Boolean bPathIsValid = true; OSErr err = 0; if (err = TWindMover::Read(bfpb)) return err; StartReadWriteSequence("GridWindMover::Read()"); if (err = ReadMacValue(bfpb, &id)) return err; if (id != GetClassID ()) { TechError("GridWindMover::Read()", "id != TYPE_GRIDWINDMOVER", 0); return -1; } if (err = ReadMacValue(bfpb, &version)) return err; if (version > GridWindMoverREADWRITEVERSION) { printSaveFileVersionError(); return -1; } // read the type of grid used for the GridWind mover if (err = ReadMacValue(bfpb,&id)) return err; switch(id) { case TYPE_TIMEGRIDWINDRECT: timeGrid = new TimeGridVelRect; break; //case TYPE_TIMEGRIDVEL: timeGrid = new TimeGridVel; break; case TYPE_TIMEGRIDWINDCURV: timeGrid = new TimeGridVelCurv; break; default: printError("Unrecognized Grid type in GridWindMover::Read()."); return -1; } // if (err = ReadMacValue(bfpb, &bShowGrid)) return err; if (err = ReadMacValue(bfpb, &bShowArrows)) return err; if (err = ReadMacValue(bfpb, &fUserUnits)) return err; if (err = ReadMacValue(bfpb, &fArrowScale)) return err; if (err = ReadMacValue(bfpb, &fWindScale)) return err; ///////////////// done: if(err) { TechError("GridWindMover::Read(char* path)", " ", 0); } return err; }
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Control::GetVariant() //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- UInt32 Control::GetVariant() const { // Setup the answer CMIOObjectPropertyElement answer = GetClassID(); // Setup the property address PropertyAddress address(kCMIOControlPropertyVariant); // Make sure the property exists if (HasProperty(address)) { // Get the property data UInt32 dataUsed = 0; GetPropertyData(address, 0, NULL, sizeof(UInt32), dataUsed, &answer); } return answer; }
OSErr TClassID::Write(BFPB *bfpb) { long version = TClassID_FileVersion; ClassID id = GetClassID (); OSErr err = noErr; StartReadWriteSequence("TClassID::::Write()"); if (err = WriteMacValue(bfpb, id)) return err; if (err = WriteMacValue(bfpb, version)) return err; //bDirty -- no need to write this to the file bDirty = false; // we are writing if (err = WriteMacValue(bfpb, bOpen)) return err; if (err = WriteMacValue(bfpb, bActive)) return err; if (err = WriteMacValue(bfpb, className, kMaxNameLen)) return err; if (err = WriteMacValue(bfpb, fUniqueID.ticksAtCreation)) return err; if (err = WriteMacValue(bfpb, fUniqueID.counter)) return err; return err; }
int EjectedPilotClass::ClassType() { if(_classTypeFound == FALSE) { _classType = GetClassID ( DOMAIN_AIR, CLASS_VEHICLE, TYPE_EJECT, STYPE_EJECT1, SPTYPE_ANY, VU_ANY, VU_ANY, VU_ANY ) + VU_LAST_ENTITY_TYPE; _classTypeFound = TRUE; } return _classType; }
void FlareClass::InitTrail (void) { //Falcon4EntityClassType* classPtr; //I-Hawk - Removed, old flare graphics stuff /* trailGlow = NULL; trailSphere = NULL; */ flags |= IsFlare; displayIndex = GetClassID (DOMAIN_AIR, CLASS_SFX, TYPE_FLARE, STYPE_FLARE1, SPTYPE_ANY, VU_ANY, VU_ANY, VU_ANY); if (!drawPointer || drawPointer == (DrawableObject*)0xbaadf00d) // FRB { drawPointer = NULL; } if (drawPointer) { //OTWDriver.RemoveObject(drawPointer, TRUE); // FRB - causes CTD drawPointer = NULL; } // I-Hawk - Removed, old flare graphics stuff /* classPtr = &Falcon4ClassTable[displayIndex]; trail = new DrawableTrail( TRAIL_FLARE ); trail = (DrawableTrail*)DrawableParticleSys::PS_AddTrail( TRAIL_FLARE, XPos(), YPos(), ZPos()); if (IsAwake()) { OTWDriver.CreateVisualObject (this, classPtr->visType[0], OTWDriver.Scale()); displayIndex = -1; } Tpoint newPoint = {0.0f, 0.0f, 0.0f}; trailGlow = new Drawable2D( DRAW2D_MISSILE_GLOW, 6.0f, &newPoint ); trailSphere = new Drawable2D( DRAW2D_EXPLCIRC_GLOW, 8.0f, &newPoint ); */ }
OSErr TClassID::Read(BFPB *bfpb) { long version; ClassID id; OSErr err = noErr; StartReadWriteSequence("TClassID::::Read()"); if (err = ReadMacValue(bfpb, &id)) return err; if (id != GetClassID ()) { TechError("TClassID::Read()", "id != GetClassID", 0); return -1; } if (err = ReadMacValue(bfpb, &version)) return err; if (version != TClassID_FileVersion) { printSaveFileVersionError(); return -1; } bDirty = false; // we are reading if (err = ReadMacValue(bfpb, &bOpen)) return err; if (err = ReadMacValue(bfpb, &bActive)) return err; if (err = ReadMacValue(bfpb, className, kMaxNameLen)) return err; if (err = ReadMacValue(bfpb, &fUniqueID.ticksAtCreation)) return err; if (err = ReadMacValue(bfpb, &fUniqueID.counter)) return err; return err; }
OSErr TimeGridWindRect::Write(BFPB *bfpb) { long i, version = TimeGridWindRectREADWRITEVERSION; ClassID id = GetClassID (); Seconds time; OSErr err = 0; if (err = TimeGridVel::Write(bfpb)) return err; StartReadWriteSequence("TimeGridWindRect::Write()"); if (err = WriteMacValue(bfpb, id)) return err; if (err = WriteMacValue(bfpb, version)) return err; // anything here? done: if(err) TechError("TimeGridWindRect::Write(char* path)", " ", 0); return err; }
ECode CPorterDuffColorFilter::Equals( /* [in] */ IInterface* object, /* [out] */ Boolean* equals) { VALIDATE_NOT_NULL(equals); *equals = TRUE; if (TO_IINTERFACE(this) == IInterface::Probe(object)) { return NOERROR; } ClassID id1, id2; GetClassID(&id1); if (object == NULL || id1 != (IObject::Probe(object)->GetClassID(&id2), id2)) { *equals = FALSE; return NOERROR; } AutoPtr<IPorterDuffColorFilter> other = IPorterDuffColorFilter::Probe(object); if (mColor != ((CPorterDuffColorFilter*)other.Get())->mColor || mMode != ((CPorterDuffColorFilter*)other.Get())->mMode) { *equals = FALSE; return NOERROR; } return NOERROR; }
OSErr TimeGridWindCurv::Write (BFPB *bfpb) { long i, version = TimeGridWindCurvREADWRITEVERSION; //JLM ClassID id = GetClassID (); long numPoints, index; WorldPointF vertex; OSErr err = 0; if (err = TimeGridWindRect::Write (bfpb)) return err; StartReadWriteSequence("TimeGridWindCurv::Write()"); if (err = WriteMacValue(bfpb, id)) return err; if (err = WriteMacValue(bfpb, version)) return err; //// numPoints = _GetHandleSize((Handle)fVerdatToNetCDFH)/sizeof(**fVerdatToNetCDFH); if (err = WriteMacValue(bfpb, numPoints)) goto done; for (i=0;i<numPoints;i++) { index = INDEXH(fVerdatToNetCDFH,i); if (err = WriteMacValue(bfpb, index)) goto done; } numPoints = _GetHandleSize((Handle)fVertexPtsH)/sizeof(**fVertexPtsH); if (err = WriteMacValue(bfpb, numPoints)) goto done; for (i=0;i<numPoints;i++) { vertex = INDEXH(fVertexPtsH,i); if (err = WriteMacValue(bfpb, vertex.pLat)) goto done; if (err = WriteMacValue(bfpb, vertex.pLong)) goto done; } done: if(err) TechError("TimeGridWindCurv::Write(char* path)", " ", 0); return err; }
//#define TRandom3D_FileVersion 1 OSErr TRandom3D::Write(BFPB *bfpb) { long version = TRandom3D_FileVersion; ClassID id = GetClassID (); OSErr err = 0; if (err = TMover::Write(bfpb)) return err; StartReadWriteSequence("TRandom3D::Write()"); if (err = WriteMacValue(bfpb, id)) return err; if (err = WriteMacValue(bfpb, version)) return err; if (err = WriteMacValue(bfpb, fDiffusionCoefficient)) return err; if (err = WriteMacValue(bfpb, fUncertaintyFactor)) return err; if (err = WriteMacValue(bfpb, fVerticalDiffusionCoefficient)) return err; if (err = WriteMacValue(bfpb, fHorizontalDiffusionCoefficient)) return err; //if (err = WriteMacValue(bfpb, fVerticalBottomDiffusionCoefficient)) return err; if (err = WriteMacValue(bfpb, bUseDepthDependentDiffusion)) return err; return 0; }
OSErr GridCurrentMover::Write (BFPB *bfpb) { long version = GridCurrentMoverREADWRITEVERSION; //JLM ClassID id = GetClassID (); OSErr err = 0; if (err = TCurrentMover::Write (bfpb)) return err; StartReadWriteSequence("GridCurrentMover::Write()"); if (err = WriteMacValue(bfpb, id)) return err; if (err = WriteMacValue(bfpb, version)) return err; //// id = timeGrid -> GetClassID (); if (err = WriteMacValue(bfpb, id)) return err; if (err = timeGrid -> Write (bfpb)) goto done; // code goes here, may want to add a name/path done: if(err) TechError("GridCurrentMover::Write(char* path)", " ", 0); return err; }
OSErr GridWindMover::Write(BFPB *bfpb) { long i, version = GridWindMoverREADWRITEVERSION; ClassID id = GetClassID (); long numTimes = timeGrid->GetNumTimesInFile(); Seconds time; OSErr err = 0; if (err = TWindMover::Write(bfpb)) return err; StartReadWriteSequence("GridWindMover::Write()"); if (err = WriteMacValue(bfpb, id)) return err; if (err = WriteMacValue(bfpb, version)) return err; //// id = timeGrid -> GetClassID (); if (err = WriteMacValue(bfpb, id)) return err; if (err = timeGrid -> Write (bfpb)) goto done; //if (err = WriteMacValue(bfpb, fPathName, kMaxNameLen)) goto done; //if (err = WriteMacValue(bfpb, fFileName, kPtCurUserNameLen)) return err; if (err = WriteMacValue(bfpb, bShowGrid)) return err; if (err = WriteMacValue(bfpb, bShowArrows)) return err; if (err = WriteMacValue(bfpb, fUserUnits)) return err; if (err = WriteMacValue(bfpb, fArrowScale)) return err; if (err = WriteMacValue(bfpb, fWindScale)) return err; //////////////// done: if(err) TechError("GridWindMover::Write(char* path)", " ", 0); return err; }
OSErr TShioTimeValue::Write(BFPB *bfpb) { long i, n = 0, version = TShioMoverREADWRITEVERSION; ClassID id = GetClassID (); TimeValuePair pair; OSErr err = 0; double fLatitude, fLongitude; // now the station info is is TOSSMTimeValue... if (err = TOSSMTimeValue::Write(bfpb)) return err; StartReadWriteSequence("TShioTimeValue::Write()"); if (err = WriteMacValue(bfpb, id)) return err; if (err = WriteMacValue(bfpb, version)) return err; ///////////////////////////////// if (err = WriteMacValue(bfpb, fStationName, MAXSTATIONNAMELEN)) return err; // don't swap !! if (err = WriteMacValue(bfpb,fStationType)) return err; // just to keep save files matched up... fLatitude = fStationPosition.p.pLat / 1.e6; fLongitude = fStationPosition.p.pLong / 1.e6; if (err = WriteMacValue(bfpb,fLatitude)) return err; if (err = WriteMacValue(bfpb,fLongitude)) return err; if (err = WriteMacValue(bfpb,fConstituent.DatumControls.datum)) return err; if (err = WriteMacValue(bfpb,fConstituent.DatumControls.FDir)) return err; if (err = WriteMacValue(bfpb,fConstituent.DatumControls.EDir)) return err; if (err = WriteMacValue(bfpb,fConstituent.DatumControls.L2Flag)) return err; if (err = WriteMacValue(bfpb,fConstituent.DatumControls.HFlag)) return err; if (err = WriteMacValue(bfpb,fConstituent.DatumControls.RotFlag)) return err; // write the number of elements in the handle, then the handle values if(fConstituent.H) n = _GetHandleSize((Handle)fConstituent.H)/sizeof(**fConstituent.H); else n = 0; if (err = WriteMacValue(bfpb,n)) return err; for(i = 0; i<n;i++) { if (err = WriteMacValue(bfpb,INDEXH(fConstituent.H,i))) return err; } // write the number of elements in the handle, then the handle values if(fConstituent.kPrime) n = _GetHandleSize((Handle)fConstituent.kPrime)/sizeof(**fConstituent.kPrime); else n = 0; if (err = WriteMacValue(bfpb,n)) return err; for(i = 0; i<n;i++) { if (err = WriteMacValue(bfpb,INDEXH(fConstituent.kPrime,i))) return err; } if (err = WriteMacValue(bfpb,fHeightOffset.HighTime.val)) return err; if (err = WriteMacValue(bfpb,fHeightOffset.HighTime.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fHeightOffset.LowTime.val)) return err; if (err = WriteMacValue(bfpb,fHeightOffset.LowTime.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fHeightOffset.HighHeight_Mult.val)) return err; if (err = WriteMacValue(bfpb,fHeightOffset.HighHeight_Mult.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fHeightOffset.HighHeight_Add.val)) return err; if (err = WriteMacValue(bfpb,fHeightOffset.HighHeight_Add.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fHeightOffset.LowHeight_Mult.val)) return err; if (err = WriteMacValue(bfpb,fHeightOffset.LowHeight_Mult.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fHeightOffset.LowHeight_Add.val)) return err; if (err = WriteMacValue(bfpb,fHeightOffset.LowHeight_Add.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBefFloodTime.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBefFloodTime.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.FloodTime.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.FloodTime.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBefEbbTime.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBefEbbTime.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.EbbTime.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.EbbTime.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.FloodSpdRatio.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.FloodSpdRatio.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.EbbSpdRatio.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.EbbSpdRatio.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBFloodSpd.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBFloodSpd.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBFloodDir.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBFloodDir.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MaxFloodSpd.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MaxFloodSpd.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MaxFloodDir.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MaxFloodDir.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBEbbSpd.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBEbbSpd.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBEbbDir.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MinBEbbDir.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MaxEbbSpd.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MaxEbbSpd.dataAvailFlag)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MaxEbbDir.val)) return err; if (err = WriteMacValue(bfpb,fCurrentOffset.MaxEbbDir.dataAvailFlag)) return err; ///////////////////////////////////////////////// if (fStationType == 'C') // values to show on list for tidal currents { long i,numEbbFloods = GetNumEbbFloodValues(); if (err = WriteMacValue(bfpb,numEbbFloods)) return err; for (i=0;i<numEbbFloods;i++) { if (err = WriteMacValue(bfpb,INDEXH(fEbbFloodDataHdl,i).time)) return err; if (err = WriteMacValue(bfpb,INDEXH(fEbbFloodDataHdl,i).speedInKnots)) return err; if (err = WriteMacValue(bfpb,INDEXH(fEbbFloodDataHdl,i).type)) return err; } } if (fStationType == 'H') // values to show on list for tidal heights { long i,numHighLows = GetNumHighLowValues(); if (err = WriteMacValue(bfpb,numHighLows)) return err; for (i=0;i<numHighLows;i++) { if (err = WriteMacValue(bfpb,INDEXH(fHighLowDataHdl,i).time)) return err; if (err = WriteMacValue(bfpb,INDEXH(fHighLowDataHdl,i).height)) return err; if (err = WriteMacValue(bfpb,INDEXH(fHighLowDataHdl,i).type)) return err; } if (err = WriteMacValue(bfpb,fHighLowValuesOpen)) return err; if (err = WriteMacValue(bfpb,fEbbFloodValuesOpen)) return err; } if (fStationType == 'P') // values to show on list for tidal heights { long i,numHighLows = GetNumHighLowValues(); if (err = WriteMacValue(bfpb,numHighLows)) return err; for (i=0;i<numHighLows;i++) { if (err = WriteMacValue(bfpb,INDEXH(fHighLowDataHdl,i).time)) return err; if (err = WriteMacValue(bfpb,INDEXH(fHighLowDataHdl,i).height)) return err; if (err = WriteMacValue(bfpb,INDEXH(fHighLowDataHdl,i).type)) return err; } if (err = WriteMacValue(bfpb,fHighLowValuesOpen)) return err; //if (err = WriteMacValue(bfpb,fEbbFloodValuesOpen)) return err; } return 0; }
BOOL COleControl::GetPropsetData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium, REFCLSID fmtid) { ASSERT_VALID(this); ASSERT(AfxIsValidAddress(lpFormatEtc, sizeof(FORMATETC), FALSE)); ASSERT(AfxIsValidAddress(lpStgMedium, sizeof(STGMEDIUM))); BOOL bGetDataHere = (lpStgMedium->tymed != TYMED_NULL); // Allow IStream or IStorage as the storage medium. if (!(lpFormatEtc->tymed & (TYMED_ISTREAM|TYMED_ISTORAGE))) { TRACE0("Propset only supported for stream or storage.\n"); return FALSE; } LPSTORAGE lpStorage = NULL; LPSTREAM lpStream = NULL; if (lpFormatEtc->tymed & TYMED_ISTORAGE) { // Caller wants propset data in a storage object. if (bGetDataHere) { // Use the caller-supplied storage object. lpStorage = lpStgMedium->pstg; } else { // Create a storage object on a memory ILockBytes implementation. LPLOCKBYTES lpLockBytes = NULL; if (FAILED(CreateILockBytesOnHGlobal(NULL, TRUE, &lpLockBytes))) { TRACE0("CreateILockBytesOnHGlobal failed.\n"); return FALSE; } ASSERT_POINTER(lpLockBytes, ILockBytes); if (FAILED(StgCreateDocfileOnILockBytes(lpLockBytes, STGM_SHARE_EXCLUSIVE|STGM_CREATE|STGM_READWRITE, 0, &lpStorage))) { TRACE0("StgCreateDocfileOnILockBytes failed.\n"); lpLockBytes->Release(); return FALSE; } // Docfile now has reference to ILockBytes, so release ours. lpLockBytes->Release(); } ASSERT_POINTER(lpStorage, IStorage); // Create a stream within the storage. if (FAILED(lpStorage->CreateStream(OLESTR("Contents"), STGM_SHARE_EXCLUSIVE|STGM_CREATE|STGM_READWRITE, 0, 0, &lpStream))) { TRACE0("IStorage::CreateStream failed.\n"); if (!bGetDataHere) lpStorage->Release(); return FALSE; } } else { // Caller wants propset data in a stream object. if (bGetDataHere) { // Use the caller-supplied stream object lpStream = lpStgMedium->pstm; } else { lpStream = _AfxCreateMemoryStream(); if (lpStream == NULL) return FALSE; } } ASSERT_POINTER(lpStream, IStream); // Create the property set. CLSID clsid; GetClassID(&clsid); CPropertySet pset(clsid); pset.SetOSVersion(MAKELONG(LOWORD(GetVersion()), OSTYPE)); CPropertySection* ppsec = pset.AddSection(fmtid); if (ppsec == NULL) { TRACE0("CPropertySet::AddSection failed.\n"); lpStream->Release(); lpStorage->Release(); return FALSE; } // Set the name, based on the ambient display name (from the container). ppsec->SetSectionName(AmbientDisplayName()); CPropsetPropExchange propx(*ppsec, lpStorage, FALSE); BOOL bPropExchange = FALSE; TRY { DoPropExchange(&propx); bPropExchange = TRUE; } END_TRY if (!bPropExchange) { TRACE0("DoPropExchange failed.\n"); lpStream->Release(); lpStorage->Release(); return FALSE; } // Store the property set in the stream. if (FAILED(pset.WriteToStream(lpStream))) { TRACE0("CPropertySet::WriteToStream failed.\n"); lpStream->Release(); lpStorage->Release(); return FALSE; } // Return the property set in the requested medium. if (lpFormatEtc->tymed & TYMED_ISTORAGE) { // Return as a storage object. ASSERT_POINTER(lpStorage, IStorage); lpStream->Release(); lpStgMedium->pstg = lpStorage; lpStgMedium->tymed = TYMED_ISTORAGE; lpStgMedium->pUnkForRelease = NULL; } else { // Return as a stream. ASSERT_POINTER(lpStream, IStream); lpStgMedium->pstm = lpStream; lpStgMedium->tymed = TYMED_ISTREAM; lpStgMedium->pUnkForRelease = NULL; } return TRUE; }
void AircraftClass::DropFlare (void) { vector pos, posDelta; int type; BombClass *weapon; if (counterMeasureStation[FLARE_STATION].weaponCount > 0) { if (this == FalconLocalSession->GetPlayerEntity()) g_intellivibeData.FlareDropped++; { static int chaffsid=0; // just need a fake id so multiple chaffs can play at once. chaffsid = (chaffsid + 1) & 0xf; SoundPos.Sfx( af->auxaeroData->sndBBFlare, chaffsid); } /* pos.x = XPos(); pos.y = YPos(); pos.z = ZPos(); posDelta.x = XDelta() * 0.75F; posDelta.y = YDelta() * 0.75F; posDelta.z = ZDelta() * 0.75F; */ // MLR 2003-11-16 New positional dispensers int NumToLaunch = 1; if(af->auxaeroData->Flare.Sequence==2) { NumToLaunch=af->auxaeroData->Flare.Count; } int i; for(i=0;i<NumToLaunch && counterMeasureStation[FLARE_STATION].weaponCount > 0;i++) { counterMeasureStation[FLARE_STATION].weaponCount--; Tpoint work; MatrixMult( &((DrawableBSP*)af->platform->drawPointer)->orientation, &af->auxaeroData->Flare.Pos[flareDispenser], &work ); pos.x=work.x + XPos(); pos.y=work.y + YPos(); pos.z=work.z + ZPos(); MatrixMult( &((DrawableBSP*)af->platform->drawPointer)->orientation, &af->auxaeroData->Flare.Vec[flareDispenser], &work ); posDelta.x=work.x + XDelta(); posDelta.y=work.y + YDelta(); posDelta.z=work.z + ZDelta(); switch(af->auxaeroData->Flare.Sequence) { case 0: // alternate dispensers; case 2: flareDispenser++; if(flareDispenser>=af->auxaeroData->Flare.Count) flareDispenser=0; break; case 1: // use 1 dispenser, then move to the next default: flareUsed++; if(flareUsed>=af->auxaeroData->Flare.Decoys[flareDispenser]) { flareUsed=0; flareDispenser++; if(flareDispenser>=af->auxaeroData->Flare.Count) flareDispenser=0; } break; } //type = GetClassID (DOMAIN_AIR, CLASS_VEHICLE, TYPE_BOMB, STYPE_BOMB_IRON, SPTYPE_MK82, VU_ANY, VU_ANY, VU_ANY) + VU_LAST_ENTITY_TYPE; // JB 010220 type = GetClassID (DOMAIN_AIR, CLASS_VEHICLE, TYPE_BOMB, STYPE_FLARE1, SPTYPE_CHAFF1 + 1, VU_ANY, VU_ANY, VU_ANY) + VU_LAST_ENTITY_TYPE; // JB 010220 weapon = new FlareClass (type); weapon->Init(); weapon->SetParent(this); weapon->Start(&pos, &posDelta, 0.2f); vuDatabase->/*Quick*/Insert(weapon); weapon->Wake(); } SetFlareExpireTime( SimLibElapsedTime + FlareTime ); SetNewestFlareID( weapon->Id() ); } //MI for EWS stuff if(g_bRealisticAvionics && this == FalconLocalSession->GetPlayerEntity()) { if(counterMeasureStation[FLARE_STATION].weaponCount == 0) { //F4SoundFXSetDist(af->auxaeroData->sndBBChaffFlareOut, TRUE, 0.0f, 1.0f); SoundPos.Sfx(af->auxaeroData->sndBBChaffFlareOut); //make sure we don't get here again, no sounds from now on counterMeasureStation[FLARE_STATION].weaponCount--; } else if(OTWDriver.pCockpitManager->mpIcp->FlareBingo == counterMeasureStation[FLARE_STATION].weaponCount) { if(OTWDriver.pCockpitManager->mpIcp->EWS_BINGO_ON) SoundPos.Sfx(af->auxaeroData->sndBBChaffFlareLow); //F4SoundFXSetDist( af->auxaeroData->sndBBChaffFlareLow, TRUE, 0.0f, 1.0f ); } //MI moved further down /*else if(counterMeasureStation[FLARE_STATION].weaponCount > 0) F4SoundFXSetDist(SFX_BB_CHAFLARE, FALSE, 0.0f, 1.0f);*/ } // If this is the player and they want unlimited chaff, let 'em have it if (IsSetFlag(MOTION_OWNSHIP) && PlayerOptions.UnlimitedChaff()) counterMeasureStation[FLARE_STATION].weaponCount++; }
void AircraftClass::DropChaff (void) { vector pos, posDelta; int type; BombClass *weapon; if (counterMeasureStation[CHAFF_STATION].weaponCount > 0) { if (this == FalconLocalSession->GetPlayerEntity()) g_intellivibeData.ChaffDropped++; /* pos.x = XPos(); pos.y = YPos(); pos.z = ZPos(); posDelta.x = XDelta() * 0.75F; posDelta.y = YDelta() * 0.75F; posDelta.z = ZDelta() * 0.75F; */ // new positional Dispensers int NumToLaunch = 1; if(af->auxaeroData->Chaff.Sequence==2) { NumToLaunch=af->auxaeroData->Chaff.Count; } int i; for(i=0;i<NumToLaunch && counterMeasureStation[CHAFF_STATION].weaponCount > 0;i++) { counterMeasureStation[CHAFF_STATION].weaponCount--; Tpoint work; MatrixMult( &((DrawableBSP*)af->platform->drawPointer)->orientation, &af->auxaeroData->Chaff.Pos[chaffDispenser], &work ); pos.x=work.x + XPos(); pos.y=work.y + YPos(); pos.z=work.z + ZPos(); MatrixMult( &((DrawableBSP*)af->platform->drawPointer)->orientation, &af->auxaeroData->Chaff.Vec[chaffDispenser], &work ); posDelta.x=work.x + XDelta(); posDelta.y=work.y + YDelta(); posDelta.z=work.z + ZDelta(); switch(af->auxaeroData->Chaff.Sequence) { case 0: // alternate dispensers; case 2: chaffDispenser++; if(chaffDispenser>=af->auxaeroData->Chaff.Count) chaffDispenser=0; break; case 1: // use 1 dispenser, then move to the next default: chaffUsed++; if(chaffUsed>=af->auxaeroData->Chaff.Decoys[chaffDispenser]) { chaffUsed=0; chaffDispenser++; if(chaffDispenser>=af->auxaeroData->Chaff.Count) chaffDispenser=0; } break; } // TODO: Use a different (much higher drag) type for the chaff //type = GetClassID (DOMAIN_AIR, CLASS_SFX, TYPE_CHAFF, STYPE_CHAFF, SPTYPE_CHAFF1, VU_ANY, VU_ANY, VU_ANY) + VU_LAST_ENTITY_TYPE; // JB 010220 type = GetClassID (DOMAIN_AIR, CLASS_VEHICLE, TYPE_BOMB, STYPE_CHAFF, SPTYPE_CHAFF1, VU_ANY, VU_ANY, VU_ANY) + VU_LAST_ENTITY_TYPE; // JB 010220 weapon = new ChaffClass(type); weapon->Init(); weapon->SetParent(this); weapon->Start(&pos, &posDelta, 0.2f); vuDatabase->/*Quick*/Insert(weapon); weapon->Wake(); } SetChaffExpireTime( SimLibElapsedTime + ChaffTime ); SetNewestChaffID( weapon->Id() ); } //MI for EWS stuff if(g_bRealisticAvionics && this == FalconLocalSession->GetPlayerEntity()) { if(counterMeasureStation[CHAFF_STATION].weaponCount == 0) { SoundPos.Sfx(af->auxaeroData->sndBBChaffFlareOut); //make sure we don't get here again, no sounds from now on counterMeasureStation[CHAFF_STATION].weaponCount--; } else if(OTWDriver.pCockpitManager->mpIcp->ChaffBingo == counterMeasureStation[CHAFF_STATION].weaponCount) { if(OTWDriver.pCockpitManager->mpIcp->EWS_BINGO_ON) SoundPos.Sfx(af->auxaeroData->sndBBChaffFlareLow); } //MI Moved further down /*if(counterMeasureStation[CHAFF_STATION].weaponCount > 0) F4SoundFXSetDist(SFX_BB_CHAFLARE, FALSE, 0.0f, 1.0f);*/ } // If this is the player and they want unlimited chaff, let 'em have it if (IsSetFlag(MOTION_OWNSHIP) && PlayerOptions.UnlimitedChaff()) counterMeasureStation[CHAFF_STATION].weaponCount++; }
int DogfightClass::AdjustClassId(int oldid, int team) { Falcon4EntityClassType *classPtr = &Falcon4ClassTable[oldid]; return GetClassID(classPtr->vuClassData.classInfo_[0],classPtr->vuClassData.classInfo_[1],classPtr->vuClassData.classInfo_[2],classPtr->vuClassData.classInfo_[3],classPtr->vuClassData.classInfo_[4],team,VU_ANY,VU_ANY); }
void HelicopterClass::InitDamageStation (void) { #if 0 // KCK Removed on 6/23 - This stuff isn't really necessary and breaks a unification assumption Falcon4EntityClassType* classPtr; VuEntityType* eclassPtr = NULL; int i, debrisvis; Tpoint simView = {0.0F, 0.0F, 0.0F}; Trotation viewRotation = IMatrix; // current parts are: // fuselage // 2 wings // tail numBodyParts = 4; damageStation = new WeaponStation; damageStation->onRail = new SimBaseClass*[numBodyParts]; damageStation->SetupPoints(numBodyParts); // get the aircraft's class info // for each aircraft, visType[1] should indicate the specific type for // the aircraft's damaged version eclassPtr = EntityType(); F4Assert (eclassPtr); classPtr = &(Falcon4ClassTable[ GetClassID( eclassPtr->classInfo_[VU_DOMAIN], eclassPtr->classInfo_[VU_CLASS], eclassPtr->classInfo_[VU_TYPE], eclassPtr->classInfo_[VU_STYPE], eclassPtr->classInfo_[VU_SPTYPE], VU_ANY, VU_ANY, VU_ANY) ]); /* classPtr = &(Falcon4ClassTable[ GetClassID( eclassPtr->classInfo_[VU_DOMAIN], eclassPtr->classInfo_[VU_CLASS], eclassPtr->classInfo_[VU_TYPE], eclassPtr->classInfo_[VU_STYPE], classPtr->visType[3], VU_ANY, VU_ANY, VU_ANY) ]); */ for (i=0, debrisvis=0; i<numBodyParts; i++) { damageStation->onRail[i] = new SimBaseClass(Type()); CalcTransformMatrix (damageStation->onRail[i]); OTWDriver.CreateVisualObject(damageStation->onRail[i], classPtr->visType[i+2], &simView, &viewRotation, OTWDriver.Scale()); /* if ( i > 0 ) { ((DrawableBSP*)(damageStation->onRail[0]->drawPointer))->GetChildOffset(i, &simView); ((DrawableBSP*)(damageStation->onRail[0]->drawPointer))->AttachChild(((DrawableBSP*)(damageStation->onRail[i]->drawPointer)), i); } damageStation->SetSubPosition(i, simView.x, simView.y, simView.z); damageStation->SetSubRotation(i, 0.0F, 0.0F); */ } // Init smoke trails numSmokeTrails = 4; smokeTrail = new DrawableTrail*[numSmokeTrails]; for (i=0; i<numSmokeTrails; i++) smokeTrail[i] = new DrawableTrail(TRAIL_SMOKE); #endif }
OSErr TShioTimeValue::Read(BFPB *bfpb) { long i, n, version; ClassID id; TimeValuePair pair; float f; OSErr err = 0; if (err = TOSSMTimeValue::Read(bfpb)) return err; StartReadWriteSequence("TShioTimeValue::Read()"); if (err = ReadMacValue(bfpb,&id)) return err; if (id != GetClassID ()) { TechError("TShioTimeValue::Read()", "id != TYPE_SHIOMOVER", 0); return -1; } if (err = ReadMacValue(bfpb,&version)) return err; //if (version != TShioMoverREADWRITEVERSION) { printSaveFileVersionError(); return -1; } if (version > TShioMoverREADWRITEVERSION) { printSaveFileVersionError(); return -1; } ///////////////////////////////// if (err = ReadMacValue(bfpb, fStationName, MAXSTATIONNAMELEN)) return err; // don't swap !! if (err = ReadMacValue(bfpb,&fStationType)) return err; //if (version == 1) { double fLatitude, fLongitude; // now the station info is is TOSSMTimeValue... if (err = ReadMacValue(bfpb,&fLatitude)) return err; if (err = ReadMacValue(bfpb,&fLongitude)) return err; // should set the station position fStationPosition.p.pLat = fLatitude * 1.e6; fStationPosition.p.pLong = fLongitude * 1.e6; } if (err = ReadMacValue(bfpb,&fConstituent.DatumControls.datum)) return err; if (err = ReadMacValue(bfpb,&fConstituent.DatumControls.FDir)) return err; if (err = ReadMacValue(bfpb,&fConstituent.DatumControls.EDir)) return err; if (err = ReadMacValue(bfpb,&fConstituent.DatumControls.L2Flag)) return err; if (err = ReadMacValue(bfpb,&fConstituent.DatumControls.HFlag)) return err; if (err = ReadMacValue(bfpb,&fConstituent.DatumControls.RotFlag)) return err; // read the number of elements in the handle, then the handle values if (err = ReadMacValue(bfpb,&n)) return err; if(n > 0) { if(sizeof(f) != sizeof(**fConstituent.H)) { printError("fConstituent.H size mismatch"); return -1; } fConstituent.H = (float**)_NewHandle(n*sizeof(**fConstituent.H)); if(!fConstituent.H) {TechError("TLEList::Read()", "_NewHandle()", 0); return -1; } for(i = 0; i<n;i++) { if (err = ReadMacValue(bfpb,&f)) return err; INDEXH(fConstituent.H,i) = f; } } // read the number of elements in the handle, then the handle values if (err = ReadMacValue(bfpb,&n)) return err; if(n > 0) { if(sizeof(f) != sizeof(**fConstituent.kPrime)) { printError("fConstituent.kPrime size mismatch"); return -1; } fConstituent.kPrime = (float**)_NewHandle(n*sizeof(**fConstituent.kPrime)); if(!fConstituent.kPrime) {TechError("TLEList::Read()", "_NewHandle()", 0); return -1; } for(i = 0; i<n;i++) { if (err = ReadMacValue(bfpb,&f)) return err; INDEXH(fConstituent.kPrime,i) = f; } } if (err = ReadMacValue(bfpb,&fHeightOffset.HighTime.val)) return err; if (err = ReadMacValue(bfpb,&fHeightOffset.HighTime.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fHeightOffset.LowTime.val)) return err; if (err = ReadMacValue(bfpb,&fHeightOffset.LowTime.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fHeightOffset.HighHeight_Mult.val)) return err; if (err = ReadMacValue(bfpb,&fHeightOffset.HighHeight_Mult.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fHeightOffset.HighHeight_Add.val)) return err; if (err = ReadMacValue(bfpb,&fHeightOffset.HighHeight_Add.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fHeightOffset.LowHeight_Mult.val)) return err; if (err = ReadMacValue(bfpb,&fHeightOffset.LowHeight_Mult.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fHeightOffset.LowHeight_Add.val)) return err; if (err = ReadMacValue(bfpb,&fHeightOffset.LowHeight_Add.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBefFloodTime.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBefFloodTime.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.FloodTime.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.FloodTime.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBefEbbTime.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBefEbbTime.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.EbbTime.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.EbbTime.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.FloodSpdRatio.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.FloodSpdRatio.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.EbbSpdRatio.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.EbbSpdRatio.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBFloodSpd.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBFloodSpd.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBFloodDir.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBFloodDir.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MaxFloodSpd.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MaxFloodSpd.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MaxFloodDir.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MaxFloodDir.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBEbbSpd.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBEbbSpd.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBEbbDir.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MinBEbbDir.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MaxEbbSpd.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MaxEbbSpd.dataAvailFlag)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MaxEbbDir.val)) return err; if (err = ReadMacValue(bfpb,&fCurrentOffset.MaxEbbDir.dataAvailFlag)) return err; // ///////////////////////////////////////////////// if (fStationType == 'C') // values to show on list for tidal currents { long i,numEbbFloods; EbbFloodData ebbFloodData; if (err = ReadMacValue(bfpb,&numEbbFloods)) return err; fEbbFloodDataHdl = (EbbFloodDataH)_NewHandleClear(sizeof(EbbFloodData)*numEbbFloods); if(!fEbbFloodDataHdl) {TechError("TShioTimeValue::Read()", "_NewHandleClear()", 0); err = memFullErr; return err;} for (i=0;i<numEbbFloods;i++) { if (err = ReadMacValue(bfpb,&(ebbFloodData.time))) return err; if (err = ReadMacValue(bfpb,&(ebbFloodData.speedInKnots))) return err; if (err = ReadMacValue(bfpb,&(ebbFloodData.type))) return err; INDEXH(fEbbFloodDataHdl,i) = ebbFloodData; } } if (fStationType == 'H') // values to show on list for tidal heights { long i,numHighLows; HighLowData highLowData; if (err = ReadMacValue(bfpb,&numHighLows)) return err; fHighLowDataHdl = (HighLowDataH)_NewHandleClear(sizeof(HighLowData)*numHighLows); if(!fHighLowDataHdl) {TechError("TShioTimeValue::Read()", "_NewHandleClear()", 0); err = memFullErr; return err;} for (i=0;i<numHighLows;i++) { if (err = ReadMacValue(bfpb,&(highLowData.time))) return err; if (err = ReadMacValue(bfpb,&(highLowData.height))) return err; if (err = ReadMacValue(bfpb,&(highLowData.type))) return err; INDEXH(fHighLowDataHdl,i) = highLowData; } if (err = ReadMacValue(bfpb,&fHighLowValuesOpen)) return err; if (err = ReadMacValue(bfpb,&fEbbFloodValuesOpen)) return err; } if (fStationType == 'P') // values to show on list for tidal heights { long i,numHighLows; HighLowData highLowData; if (err = ReadMacValue(bfpb,&numHighLows)) return err; fHighLowDataHdl = (HighLowDataH)_NewHandleClear(sizeof(HighLowData)*numHighLows); if(!fHighLowDataHdl) {TechError("TShioTimeValue::Read()", "_NewHandleClear()", 0); err = memFullErr; return err;} for (i=0;i<numHighLows;i++) { if (err = ReadMacValue(bfpb,&(highLowData.time))) return err; if (err = ReadMacValue(bfpb,&(highLowData.height))) return err; if (err = ReadMacValue(bfpb,&(highLowData.type))) return err; INDEXH(fHighLowDataHdl,i) = highLowData; } if (err = ReadMacValue(bfpb,&fHighLowValuesOpen)) return err; //if (err = ReadMacValue(bfpb,&fEbbFloodValuesOpen)) return err; } return err; }