func (p *Parser) ParseNextFrame() (moreFrames bool, err error) {
	defer func() {
		// Make sure all the messages of the frame are handled
		p.msgDispatcher.SyncAllQueues()

		// Close msgQueue (only if we are done)
		if p.msgQueue != nil && !moreFrames {
			close(p.msgQueue)
		}

		if err == nil {
			err = recoverFromUnexpectedEOF(recover())
		}
	}()

	if p.header == nil {
		_, err = p.ParseHeader()
		if err != nil {
			return
		}
	}

	moreFrames = p.parseFrame()

	return moreFrames, p.error()
}
/*
ParseNextFrame attempts to parse the next frame / demo-tick (not ingame tick).

Returns true unless the demo command 'stop' or an error was encountered.

May return ErrUnexpectedEndOfDemo for incomplete / corrupt demos.
May panic if the demo is corrupt in some way.

See also: ParseToEnd() for parsing the complete demo in one go (faster).
*/
ParseNextFrame attempts to parse the next frame / demo-tick (not ingame tick).

Returns true unless the demo command 'stop' or an error was encountered.

May return ErrUnexpectedEndOfDemo for incomplete / corrupt demos.
May panic if the demo is corrupt in some way.

See also: ParseToEnd() for parsing the complete demo in one go (faster).
/ * ParseNextFrame attempts to parse the next frame / demo - tick ( not ingame tick ) . Returns true unless the demo command ' stop ' or an error was encountered . May return ErrUnexpectedEndOfDemo for incomplete / corrupt demos . May panic if the demo is corrupt in some way . See also : ParseToEnd () for parsing the complete demo in one go ( faster ) . * /
func (p *Parser) ParseNextFrame() (moreFrames bool, err error) {
	defer func() {
		p.msgDispatcher.SyncAllQueues()
		if p.msgQueue != nil && !moreFrames {
			close(p.msgQueue)
		}
		if err == nil {
			err = recoverFromUnexpectedEOF(recover())
		}
	}()
	if p.header == nil {
		_, err = p.ParseHeader()
		if err != nil {
			return
		}
	}
	moreFrames = p.parseFrame()
	return moreFrames, p.error()
}
func ( p * Parser ) ParseNextFrame ( ) ( moreFrames bool , err error ) { defer func ( ) { p . msgDispatcher . SyncAllQueues ( ) if p . msgQueue != nil && ! moreFrames { close ( p . msgQueue ) } if err == nil { err = recoverFromUnexpectedEOF ( recover ( ) ) } } ( ) if p . header == nil { _ , err = p . ParseHeader ( ) if err != nil { return } } moreFrames = p . parseFrame ( ) return moreFrames , p . error ( ) }
ParseNextFrame attempts to parse the next frame / demo-tick (not ingame tick).
ParseNextFrame attempts to parse the next frame / demo - tick ( not ingame tick ) .
// Make sure all the messages of the frame are handled // Close msgQueue (only if we are done)