/*virtual*/ void MIDINoteOnEvent::Save( const IDataStream& Stream ) const { MIDIMIDIEvent::Save( Stream ); Stream.WriteUInt8( m_Note ); Stream.WriteUInt8( m_Velocity ); }
// TODO: Add meaningful return values int Surface::LoadBMP( const IDataStream& Stream ) { SBitmapFileHeader BMPFileHeader; SBitmapInfoHeader BMPInfoHeader; Stream.Read( sizeof( SBitmapFileHeader ), &BMPFileHeader ); Stream.Read( sizeof( SBitmapInfoHeader ), &BMPInfoHeader ); int Width = BMPInfoHeader.m_Width; int Height = BMPInfoHeader.m_Height; int Stride = ComputeStride( BMPInfoHeader.m_Width, BMPInfoHeader.m_BitCount ); Reset( Width, Height, BMPInfoHeader.m_BitCount ); #if BUILD_WINDOWS_NO_SDL Stream.Read( Stride * Height, m_pPixels ); #endif #if BUILD_SDL // SDL stores surfaces from top to bottom, so flip the rows byte* pPixels = m_pPixels + ( ( Height - 1 ) * Stride ); for( int Row = 0; Row < Height; ++Row, pPixels -= Stride ) { Stream.Read( Stride, pPixels ); } #endif return 0; }
void WBScene::Load( const IDataStream& Stream ) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if( Version >= VERSION_UID ) { m_UID = Stream.ReadUInt32(); } if( Version >= VERSION_LASTENTITYSCENEHANDLE ) { m_LastEntitySceneHandle = Stream.ReadUInt32(); } uint NumEntities = Stream.ReadUInt32(); for( uint EntityIndex = 0; EntityIndex < NumEntities; ++EntityIndex ) { WBEntity* pNewEntity = new WBEntity; pNewEntity->Load( Stream ); AddEntity( pNewEntity, pNewEntity->GetSceneHandle() ); WBWorld::GetInstance()->AddEntity( pNewEntity, pNewEntity->GetUID() ); pNewEntity->SendOnInitializedEvent(); } }
/*virtual*/ void MIDINoteOnEvent::Load( const IDataStream& Stream ) { MIDIMIDIEvent::Load( Stream ); m_Note = Stream.ReadUInt8(); m_Velocity = Stream.ReadUInt8(); }
void WBCompEldWatson::Save( const IDataStream& Stream ) { Stream.WriteUInt32( VERSION_CURRENT ); Stream.WriteBool( m_Activated ); Stream.WriteBool( m_Primed ); }
void WBEvent::Save( const IDataStream& Stream ) const { WBPackedEvent PackedEvent; Pack( PackedEvent ); Stream.WriteUInt32( PackedEvent.GetSize() ); Stream.Write( PackedEvent.GetSize(), PackedEvent.GetData() ); }
void WBCompEldVisible::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_VISIBLE) { m_Visible = Stream.ReadBool(); } }
void WBCompOwner::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_OWNER) { Stream.Read(sizeof(WBEntityRef), &m_Owner); } }
void WBCompState::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_STATE) { m_State = Stream.ReadHashedString(); } }
void WBCompEldWallet::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_MONEY) { m_Money = Stream.ReadUInt32(); } }
void WBCompEldPickup::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_PRICE) { m_Price = Stream.ReadUInt32(); } }
void WBCompEldFrobber::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_FROBDISABLED) { m_FrobDisabled = Stream.ReadBool(); } }
void WBCompEldEndgameCounter::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_COUNT) { m_Count = Stream.ReadUInt32(); } }
void WBCompEldFaction::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_FACTION) { m_Faction = Stream.ReadHashedString(); } }
IDataStream * IDataStream::GetRootParent(void) { IDataStream * parent = GetParent(); if(parent) return parent->GetRootParent(); else return this; }
void WBCompEldSleeper::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_AWAKE) { m_IsAwake = Stream.ReadBool(); } }
void WBCompRodinBehaviorTree::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_PAUSED) { m_Paused = Stream.ReadBool(); } }
void WBEvent::Load( const IDataStream& Stream ) { const uint PackedEventSize = Stream.ReadUInt32(); WBPackedEvent PackedEvent; PackedEvent.Reinit( NULL, PackedEventSize ); Stream.Read( PackedEventSize, PackedEvent.GetData() ); Unpack( PackedEvent ); }
void WBCompRodinBlackboard::Save( const IDataStream& Stream ) { Stream.WriteUInt32( VERSION_CURRENT ); WBPackedEvent PackedEvent; m_BlackboardEntries.Pack( PackedEvent ); Stream.WriteUInt32( PackedEvent.GetSize() ); Stream.Write( PackedEvent.GetSize(), PackedEvent.GetData() ); }
void MIDI::SaveVariableLengthValue( const IDataStream& Stream, uint32 Value ) const { while( Value > 0x7F ) { Stream.WriteUInt8( ( uint8 )( 0x80 | ( Value & 0x7F ) ) ); Value >>= 7; } Stream.WriteUInt8( ( uint8 )Value ); }
void WBCompEldHands::Load( const IDataStream& Stream ) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if( Version >= VERSION_HIDEHANDSREFS ) { m_HideHandsRefs = Stream.ReadInt32(); } }
void WBCompEldLock::Load( const IDataStream& Stream ) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if( Version >= VERSION_LOCKED ) { m_Locked = Stream.ReadBool(); } }
void EldritchPersistence::Save( const IDataStream& Stream ) const { Stream.WriteUInt32( VERSION_CURRENT ); Stream.WriteUInt32( m_BankMoney ); Stream.WriteUInt32( m_OpenLocks.Size() ); FOR_EACH_SET( OpenLockIter, m_OpenLocks, HashedString ) { Stream.WriteHashedString( OpenLockIter.GetValue() ); }
void WBCompEldHard::Load( const IDataStream& Stream ) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if( Version >= VERSION_HARD ) { m_Hard = Stream.ReadBool(); } }
void WBCompEldAnchor::Load( const IDataStream& Stream ) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if( Version >= VERSION_ANCHOR ) { Stream.Read( sizeof( Vector ), &m_AnchorPoint ); m_IsAnchored = Stream.ReadBool(); } }
void WBCompEldLight::Load( const IDataStream& Stream ) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if( Version >= VERSION_LIGHT ) { m_HasAddedLight = Stream.ReadBool(); Stream.Read( sizeof( Vector ), &m_LightLocation ); } }
bool IDataStream::eof() const { IDataStream* s = const_cast<IDataStream*>(this); const auto pos = s->seek(0, std::ios_base::cur); if (pos < 0) { return false; } const auto size = s->seek(0, std::ios_base::end); s->seek(pos); return pos >= size; }
void WBCompTransform::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_LOCATION) { Stream.Read(sizeof(Vector), &m_Location); } if (Version >= VERSION_VELOCITY) { Stream.Read(sizeof(Vector), &m_Velocity); } }
void WBCompEldRope::Load(const IDataStream& Stream) { XTRACE_FUNCTION; const uint Version = Stream.ReadUInt32(); if (Version >= VERSION_ANCHOR) { Stream.Read(sizeof(Vector), &m_Anchor); } if (Version >= VERSION_DROPPED) { m_Dropped = Stream.ReadBool(); } }
size_t IDataStream::size() const { IDataStream* s = const_cast<IDataStream*>(this); const auto pos = s->seek(0, std::ios_base::cur); if (pos < 0) { return 0; } const auto size = s->seek(0, std::ios_base::end); s->seek(pos); return static_cast<size_t>(size); }