public void Read( BinaryReader R ) { m_sortStage = (SORT_STAGE) R.ReadInt32(); ReadListOfStrings( R, m_unknownParms ); }
public void Parse( string _parms ) { m_sortStage = SORT_STAGE.UNKNOWN; Parser P = new Parser( _parms ); while ( P.OK ) { string token = P.ReadString(); if ( token == null ) break; // Done! if ( token.StartsWith( "//" ) ) { RecordSingleLineCommentVariable( m_unknownParms, token, P ); continue; } if ( token.StartsWith( "/*" ) ) { RecordCommentVariable( m_unknownParms, token, P ); continue; } if ( token.EndsWith( "{" ) ) { // Handle problematic parms without space before their values token = token.Substring( 0, token.Length-1 ); P.m_Index--; } P.SkipSpaces(); switch ( token.ToLower() ) { case "stagesort": { string sortStageName = P.ReadString(); switch ( sortStageName.ToLower() ) { case "sortcoverage": m_sortStage = SORT_STAGE.sortCoverage; break; case "sortboatvolume": m_sortStage = SORT_STAGE.sortBoatVolume; break; case "sortemit": m_sortStage = SORT_STAGE.sortEmit; break; case "sortemitonly": m_sortStage = SORT_STAGE.sortEmitOnly; break; case "sortshadowwalk": m_sortStage = SORT_STAGE.sortShadowWalk; break; case "sortwater": m_sortStage = SORT_STAGE.sortWater; break; case "sortdecal": m_sortStage = SORT_STAGE.sortDecal; break; case "sorttranssort": m_sortStage = SORT_STAGE.sortTransSort; break; case "sorttrans": m_sortStage = SORT_STAGE.sortTrans; break; case "sortdarkvision": m_sortStage = SORT_STAGE.sortDarkVision; break; case "sorthud": m_sortStage = SORT_STAGE.sortHud; break; case "sortperturber": m_sortStage = SORT_STAGE.sortPerturber; break; case "sortautomap": m_sortStage = SORT_STAGE.sortAutomap; break; case "sortposttonemap": m_sortStage = SORT_STAGE.sortPostTonemap; break; default: throw new Exception( "Unhandled sort stage!" ); } break; } default: m_unknownParms.Add( token + " " + P.ReadToEOL() ); break; } } }