internal SelectorNameTextReader(CssToken token) { this.token = token; #if DEBUG position = this.token.selectorNamePosition; #endif }
internal SelectorClassTextReader(CssToken token) { this.token = token; #if DEBUG this.position = this.token.selectorClassPosition; #endif }
protected internal bool MoveToNextRun(ref Fragment fragment, ref FragmentPosition position, bool skipInvalid) { InternalDebug.Assert(position.run >= fragment.head - 1 && position.run <= fragment.tail); int run = position.run; if (run != fragment.tail) { InternalDebug.Assert(run >= fragment.head || (position.runDeltaOffset == 0 && position.runOffset == fragment.headOffset)); if (run >= fragment.head) { position.runOffset += this.runList[run].Length; position.runDeltaOffset = 0; } run++; if (skipInvalid) { while (run != fragment.tail && this.runList[run].Type == RunType.Invalid) { position.runOffset += this.runList[run].Length; run++; } } position.run = run; return(run != fragment.tail); } return(false); }
protected internal bool MoveToNextRun(ref Fragment fragment, ref FragmentPosition position, bool skipInvalid) { int num = position.run; if (num != fragment.tail) { if (num >= fragment.head) { position.runOffset += runList[num].Length; position.runDeltaOffset = 0; } num++; if (skipInvalid) { while (num != fragment.tail && runList[num].Type == RunType.Invalid) { position.runOffset += runList[num].Length; num++; } } position.run = num; return(num != fragment.tail); } return(false); }
internal TextReader(Token token) { this.token = token; #if DEBUG this.position = this.token.wholePosition; #endif }
internal PropertyValueTextReader(CssToken token) { this.token = token; #if DEBUG this.position = this.token.propertyValuePosition; #endif }
internal TagUnstructuredContentTextReader(HtmlToken token) { InternalDebug.Assert(token.TokenId == HtmlTokenId.Tag); this.token = token; #if DEBUG this.position = this.token.unstructuredPosition; #endif }
internal TagNameTextReader(HtmlToken token) { InternalDebug.Assert(token.TokenId == HtmlTokenId.Tag); this.token = token; #if DEBUG this.position = this.token.namePosition; #endif }
internal AttributeValueTextReader(HtmlToken token) { InternalDebug.Assert(token.TokenId == HtmlTokenId.Tag); this.token = token; #if DEBUG this.position = this.token.attrValuePosition; #endif }
protected internal bool SkipLeadingWhitespace(LexicalUnit unit, ref FragmentPosition position) { int num = unit.head; if (num != -1) { int num2 = unit.headOffset; RunEntry runEntry = runList[num]; uint majorKind = runEntry.MajorKind; int runDeltaOffset = 0; int i; do { if (runEntry.Type == (RunType)3221225472u) { if (runEntry.Value > 65535) { break; } CharClass charClass = ParseSupport.GetCharClass((char)runEntry.Value); if (!ParseSupport.WhitespaceCharacter(charClass)) { break; } } else if (runEntry.Type == (RunType)2147483648u) { for (i = num2; i < num2 + runEntry.Length; i++) { CharClass charClass = ParseSupport.GetCharClass(buffer[i]); if (!ParseSupport.WhitespaceCharacter(charClass)) { break; } } if (i < num2 + runEntry.Length) { goto Block_7; } } num2 += runEntry.Length; runEntry = runList[++num]; }while (runEntry.MajorKindPlusStartFlag == majorKind); goto IL_EF; Block_7: runDeltaOffset = i - num2; IL_EF: position.run = num; position.runOffset = num2; position.runDeltaOffset = runDeltaOffset; if (num == unit.head || runEntry.MajorKindPlusStartFlag == majorKind) { return(true); } } return(false); }
public void Rewind() { this.AssertCurrent(); this.token.wholePosition.Rewind(this.token.whole); #if DEBUG this.position = this.token.wholePosition; #endif }
public int Read(char[] buffer, int offset, int count) { this.AssertCurrent(); int countRead = this.token.Read(ref this.token.selectorList[this.token.currentSelector].name, ref this.token.selectorNamePosition, buffer, offset, count); #if DEBUG this.position = this.token.selectorNamePosition; #endif return(countRead); }
public int Read(char[] buffer, int offset, int count) { this.AssertCurrent(); int countRead = this.token.Read(ref this.token.propertyList[this.token.currentProperty].value, ref this.token.propertyValuePosition, buffer, offset, count); #if DEBUG this.position = this.token.propertyValuePosition; #endif return(countRead); }
public int Read(char[] buffer, int offset, int count) { AssertCurrent(); var countRead = token.Read(token.attributeList[token.currentAttribute].name, ref token.attrNamePosition, buffer, offset, count); #if DEBUG position = token.attrNamePosition; #endif return(countRead); }
public int Read(char[] buffer, int offset, int count) { AssertCurrent(); var countRead = token.Read(ref token.selectorList[token.currentSelector].className, ref token.selectorClassPosition, buffer, offset, count); #if DEBUG position = token.selectorClassPosition; #endif return(countRead); }
public int Read(char[] buffer, int offset, int count) { AssertCurrent(); var countRead = token.Read(ref token.propertyList[token.currentProperty].name, ref token.propertyNamePosition, buffer, offset, count); #if DEBUG position = token.propertyNamePosition; #endif return(countRead); }
public int Read(char[] buffer, int offset, int count) { this.AssertCurrent(); int countRead = this.token.Read(this.token.attributeList[this.token.currentAttribute].value, ref this.token.attrValuePosition, buffer, offset, count); #if DEBUG this.position = this.token.attrValuePosition; #endif return(countRead); }
public int Read(char[] buffer, int offset, int count) { this.AssertCurrent(); int countRead = this.token.Read(this.token.unstructured, ref this.token.unstructuredPosition, buffer, offset, count); #if DEBUG this.position = this.token.unstructuredPosition; #endif return(countRead); }
private List <int[]> getShiftedLocations(List <int[]> locations, FragmentPosition fragmentPosition) { List <int[]> ret = new List <int[]>(); switch (fragmentPosition) { case FragmentPosition.LeftHalf: case FragmentPosition.TopHalf: case FragmentPosition.TopLeftCorner: ret.AddRange(locations); break; case FragmentPosition.RightHalf: case FragmentPosition.TopRightCorner: foreach (int[] coord in locations) { int[] shifted = { coord[0] + LevelContent.LEVEL_SIZE_HALF - 1, coord[1] }; ret.Add(shifted); } break; case FragmentPosition.BottomHalf: case FragmentPosition.BottomLeftCorner: foreach (int[] coord in locations) { int[] shifted = { coord[0], coord[1] + LevelContent.LEVEL_SIZE_HALF - 1 }; ret.Add(shifted); } break; case FragmentPosition.BottomRightCorner: foreach (int[] coord in locations) { int[] shifted = { coord[0] + LevelContent.LEVEL_SIZE_HALF - 1, coord[1] + LevelContent.LEVEL_SIZE_HALF - 1 }; ret.Add(shifted); } break; } return(ret); }
public Texture2D getDebugTexture(FragmentPosition position) { switch (position) { case FragmentPosition.TopLeftCorner: case FragmentPosition.TopHalf: case FragmentPosition.LeftHalf: return(fragmentGrid[0, 0].levelTextureDebug); case FragmentPosition.TopRightCorner: case FragmentPosition.RightHalf: return(fragmentGrid[1, 0].levelTextureDebug); case FragmentPosition.BottomLeftCorner: case FragmentPosition.BottomHalf: return(fragmentGrid[0, 1].levelTextureDebug); case FragmentPosition.BottomRightCorner: return(fragmentGrid[1, 1].levelTextureDebug); default: return(null); } }
public List <int[]> getCollectableLocations(FragmentPosition fragmentPosition) { return(getShiftedLocations(collectableLocations, fragmentPosition)); }
public List <int[]> getEnemyLocations(FragmentPosition fragmentPosition) { return(getShiftedLocations(enemyLocations, fragmentPosition)); }
public List <int[]> getPrisonerLocations(FragmentPosition fragmentPosition) { return(getShiftedLocations(prisonerLocations, fragmentPosition)); }
public bool SameAs(FragmentPosition pos2) { return(run == pos2.run && runOffset == pos2.runOffset && runDeltaOffset == pos2.runDeltaOffset); }
public List<int[]> getPowerupLocations(FragmentPosition fragmentPosition) { return getShiftedLocations(powerupLocations, fragmentPosition); }
public List<int[]> getEnemyLocations(FragmentPosition fragmentPosition) { return getShiftedLocations(enemyLocations, fragmentPosition); }
public List<int[]> getCollectableLocations(FragmentPosition fragmentPosition) { return getShiftedLocations(collectableLocations, fragmentPosition); }
// Helper function to set parts of the level private void setFragmentIntoLevel(LevelFragment fragment, FragmentPosition position) { int texWidth = fragment.levelTexture.Width; int texHeight = fragment.levelTexture.Height; int gridWidth = fragment.grid.GetLength(0); int gridHeight = fragment.grid.GetLength(1); int texStartWidth = 0; int texStartHeight = 0; int gridStartWidth = 0; int gridStartHeight = 0; switch (position) { case FragmentPosition.LeftHalf: case FragmentPosition.TopHalf: texStartWidth = 0; texStartHeight = 0; gridStartWidth = 0; gridStartHeight = 0; break; case FragmentPosition.TopLeftCorner: texStartWidth = 0; texStartHeight = 0; gridStartWidth = 0; gridStartHeight = 0; break; case FragmentPosition.RightHalf: case FragmentPosition.TopRightCorner: texStartWidth = texWidth + TILE_SIZE; texStartHeight = 0; gridStartWidth = gridWidth - 1; gridStartHeight = 0; break; case FragmentPosition.BottomHalf: case FragmentPosition.BottomLeftCorner: texStartWidth = 0; texStartHeight = texHeight + TILE_SIZE; gridStartWidth = 0; gridStartHeight = gridHeight - 1; break; case FragmentPosition.BottomRightCorner: texStartWidth = texWidth + TILE_SIZE; texStartHeight = texHeight + TILE_SIZE; gridStartWidth = gridWidth - 1; gridStartHeight = gridHeight - 1; break; } //cut off last row/column if necessary switch (position) { case FragmentPosition.LeftHalf: case FragmentPosition.BottomLeftCorner: gridHeight--; break; case FragmentPosition.TopHalf: case FragmentPosition.TopRightCorner: gridWidth--; break; case FragmentPosition.RightHalf: case FragmentPosition.BottomHalf: case FragmentPosition.BottomRightCorner: gridWidth--; gridHeight--; break; } //color grid switch (position) { case FragmentPosition.LeftHalf: fragmentGrid[0, 0] = fragment; fragmentGrid[0, 1] = fragment; break; case FragmentPosition.RightHalf: fragmentGrid[1, 0] = fragment; fragmentGrid[1, 1] = fragment; break; case FragmentPosition.TopHalf: fragmentGrid[0, 0] = fragment; fragmentGrid[1, 0] = fragment; break; case FragmentPosition.BottomHalf: fragmentGrid[0, 1] = fragment; fragmentGrid[1, 1] = fragment; break; case FragmentPosition.TopLeftCorner: fragmentGrid[0, 0] = fragment; break; case FragmentPosition.TopRightCorner: fragmentGrid[1, 0] = fragment; break; case FragmentPosition.BottomLeftCorner: fragmentGrid[0, 1] = fragment; break; case FragmentPosition.BottomRightCorner: fragmentGrid[1, 1] = fragment; break; } //level grid grid.setDataRectangle<LevelContent.LevelTile>(new Rectangle(gridStartWidth, gridStartHeight, gridWidth, gridHeight), fragment.grid); //locations collectableLocations.AddRange(fragment.getCollectableLocations(position)); enemyLocations.AddRange(fragment.getEnemyLocations(position)); prisonerLocations.AddRange(fragment.getPrisonerLocations(position)); powerupLocations.AddRange(fragment.getPowerupLocations(position)); }
public Texture2D getTexture(FragmentPosition position) { switch (position) { case FragmentPosition.TopLeftCorner: case FragmentPosition.TopHalf: case FragmentPosition.LeftHalf: return fragmentGrid[0, 0].levelTexture; case FragmentPosition.TopRightCorner: case FragmentPosition.RightHalf: return fragmentGrid[1, 0].levelTexture; case FragmentPosition.BottomLeftCorner: case FragmentPosition.BottomHalf: return fragmentGrid[0, 1].levelTexture; case FragmentPosition.BottomRightCorner: return fragmentGrid[1, 1].levelTexture; default: return null; } }
public List <int[]> getPowerupLocations(FragmentPosition fragmentPosition) { return(getShiftedLocations(powerupLocations, fragmentPosition)); }
protected internal bool SkipLeadingWhitespace(LexicalUnit unit, ref FragmentPosition position) { int run = unit.head; if (run != -1) { int runOffset = unit.headOffset; CharClass charClass; RunEntry runEntry = this.runList[run]; uint kind = runEntry.MajorKind; int deltaOffset = 0; do { if (runEntry.Type == RunType.Literal) { if (runEntry.Value > 0xFFFF) { break; } charClass = ParseSupport.GetCharClass((char)runEntry.Value); if (!ParseSupport.WhitespaceCharacter(charClass)) { break; } } else if (runEntry.Type == RunType.Normal) { int offset = runOffset; while (offset < runOffset + runEntry.Length) { charClass = ParseSupport.GetCharClass(this.buffer[offset]); if (!ParseSupport.WhitespaceCharacter(charClass)) { break; } offset++; } if (offset < runOffset + runEntry.Length) { deltaOffset = offset - runOffset; break; } } runOffset += runEntry.Length; runEntry = this.runList[++run]; }while (runEntry.MajorKindPlusStartFlag == kind); position.run = run; position.runOffset = runOffset; position.runDeltaOffset = deltaOffset; if (run == unit.head || runEntry.MajorKindPlusStartFlag == kind) { return(true); } } return(false); }
public List<int[]> getPrisonerLocations(FragmentPosition fragmentPosition) { return getShiftedLocations(prisonerLocations, fragmentPosition); }
protected internal int Read(LexicalUnit unit, ref FragmentPosition position, char[] buffer, int offset, int count) { InternalDebug.Assert(count != 0); int startOffset = offset; if (unit.head != -1) { uint kind = this.runList[unit.head].MajorKind; int run = position.run; if (run == unit.head - 1) { run = position.run = unit.head; } RunEntry runEntry = this.runList[run]; if (run == unit.head || runEntry.MajorKindPlusStartFlag == kind) { int runOffset = position.runOffset; int runDeltaOffset = position.runDeltaOffset; do { InternalDebug.Assert(count != 0); if (runEntry.Type == RunType.Literal) { int literalLength = Token.LiteralLength(runEntry.Value); if (runDeltaOffset != literalLength) { if (literalLength == 1) { InternalDebug.Assert(runDeltaOffset == 0); buffer[offset++] = (char)runEntry.Value; count--; } else { InternalDebug.Assert(literalLength == 2); if (runDeltaOffset != 0) { InternalDebug.Assert(runDeltaOffset == 1); buffer[offset++] = Token.LiteralLastChar(runEntry.Value); count--; } else { buffer[offset++] = Token.LiteralFirstChar(runEntry.Value); count--; if (count == 0) { runDeltaOffset = 1; break; } buffer[offset++] = Token.LiteralLastChar(runEntry.Value); count--; } } } } else if (runEntry.Type == RunType.Normal) { InternalDebug.Assert(runDeltaOffset >= 0 && runDeltaOffset < runEntry.Length); int copyCount = Math.Min(count, runEntry.Length - runDeltaOffset); InternalDebug.Assert(copyCount != 0); { Buffer.BlockCopy(this.buffer, (runOffset + runDeltaOffset) * 2, buffer, offset * 2, copyCount * 2); offset += copyCount; count -= copyCount; if (runDeltaOffset + copyCount != runEntry.Length) { runDeltaOffset += copyCount; break; } } } runOffset += runEntry.Length; runDeltaOffset = 0; runEntry = this.runList[++run]; }while (runEntry.MajorKindPlusStartFlag == kind && count != 0); position.run = run; position.runOffset = runOffset; position.runDeltaOffset = runDeltaOffset; } } return(offset - startOffset); }
private List<int[]> getShiftedLocations(List<int[]> locations, FragmentPosition fragmentPosition) { List<int[]> ret = new List<int[]>(); switch (fragmentPosition) { case FragmentPosition.LeftHalf: case FragmentPosition.TopHalf: case FragmentPosition.TopLeftCorner: ret.AddRange(locations); break; case FragmentPosition.RightHalf: case FragmentPosition.TopRightCorner: foreach (int[] coord in locations) { int[] shifted = { coord[0] + LevelContent.LEVEL_SIZE_HALF - 1, coord[1] }; ret.Add(shifted); } break; case FragmentPosition.BottomHalf: case FragmentPosition.BottomLeftCorner: foreach (int[] coord in locations) { int[] shifted = { coord[0], coord[1] + LevelContent.LEVEL_SIZE_HALF - 1 }; ret.Add(shifted); } break; case FragmentPosition.BottomRightCorner: foreach (int[] coord in locations) { int[] shifted = { coord[0] + LevelContent.LEVEL_SIZE_HALF - 1, coord[1] + LevelContent.LEVEL_SIZE_HALF - 1 }; ret.Add(shifted); } break; } return ret; }
protected internal int Read(LexicalUnit unit, ref FragmentPosition position, char[] buffer, int offset, int count) { int num = offset; if (unit.head != -1) { uint majorKind = runList[unit.head].MajorKind; int num2 = position.run; if (num2 == unit.head - 1) { num2 = (position.run = unit.head); } RunEntry runEntry = runList[num2]; if (num2 == unit.head || runEntry.MajorKindPlusStartFlag == majorKind) { int num3 = position.runOffset; int num4 = position.runDeltaOffset; int num6; while (true) { if (runEntry.Type == (RunType)3221225472u) { int num5 = LiteralLength(runEntry.Value); if (num4 != num5) { if (num5 == 1) { buffer[offset++] = (char)runEntry.Value; count--; } else if (num4 != 0) { buffer[offset++] = LiteralLastChar(runEntry.Value); count--; } else { buffer[offset++] = LiteralFirstChar(runEntry.Value); count--; if (count == 0) { break; } buffer[offset++] = LiteralLastChar(runEntry.Value); count--; } } } else if (runEntry.Type == (RunType)2147483648u) { num6 = Math.Min(count, runEntry.Length - num4); Buffer.BlockCopy(this.buffer, (num3 + num4) * 2, buffer, offset * 2, num6 * 2); offset += num6; count -= num6; if (num4 + num6 != runEntry.Length) { goto Block_10; } } num3 += runEntry.Length; num4 = 0; runEntry = runList[++num2]; if (runEntry.MajorKindPlusStartFlag != majorKind || count == 0) { goto IL_1CF; } } num4 = 1; goto IL_1CF; Block_10: num4 += num6; IL_1CF: position.run = num2; position.runOffset = num3; position.runDeltaOffset = num4; } } return(offset - num); }
// Helper function to set parts of the level private void setFragmentIntoLevel(LevelFragment fragment, FragmentPosition position) { int texWidth = fragment.levelTexture.Width; int texHeight = fragment.levelTexture.Height; int gridWidth = fragment.grid.GetLength(0); int gridHeight = fragment.grid.GetLength(1); int texStartWidth = 0; int texStartHeight = 0; int gridStartWidth = 0; int gridStartHeight = 0; switch (position) { case FragmentPosition.LeftHalf: case FragmentPosition.TopHalf: texStartWidth = 0; texStartHeight = 0; gridStartWidth = 0; gridStartHeight = 0; break; case FragmentPosition.TopLeftCorner: texStartWidth = 0; texStartHeight = 0; gridStartWidth = 0; gridStartHeight = 0; break; case FragmentPosition.RightHalf: case FragmentPosition.TopRightCorner: texStartWidth = texWidth + TILE_SIZE; texStartHeight = 0; gridStartWidth = gridWidth - 1; gridStartHeight = 0; break; case FragmentPosition.BottomHalf: case FragmentPosition.BottomLeftCorner: texStartWidth = 0; texStartHeight = texHeight + TILE_SIZE; gridStartWidth = 0; gridStartHeight = gridHeight - 1; break; case FragmentPosition.BottomRightCorner: texStartWidth = texWidth + TILE_SIZE; texStartHeight = texHeight + TILE_SIZE; gridStartWidth = gridWidth - 1; gridStartHeight = gridHeight - 1; break; } //cut off last row/column if necessary switch (position) { case FragmentPosition.LeftHalf: case FragmentPosition.BottomLeftCorner: gridHeight--; break; case FragmentPosition.TopHalf: case FragmentPosition.TopRightCorner: gridWidth--; break; case FragmentPosition.RightHalf: case FragmentPosition.BottomHalf: case FragmentPosition.BottomRightCorner: gridWidth--; gridHeight--; break; } //color grid switch (position) { case FragmentPosition.LeftHalf: fragmentGrid[0, 0] = fragment; fragmentGrid[0, 1] = fragment; break; case FragmentPosition.RightHalf: fragmentGrid[1, 0] = fragment; fragmentGrid[1, 1] = fragment; break; case FragmentPosition.TopHalf: fragmentGrid[0, 0] = fragment; fragmentGrid[1, 0] = fragment; break; case FragmentPosition.BottomHalf: fragmentGrid[0, 1] = fragment; fragmentGrid[1, 1] = fragment; break; case FragmentPosition.TopLeftCorner: fragmentGrid[0, 0] = fragment; break; case FragmentPosition.TopRightCorner: fragmentGrid[1, 0] = fragment; break; case FragmentPosition.BottomLeftCorner: fragmentGrid[0, 1] = fragment; break; case FragmentPosition.BottomRightCorner: fragmentGrid[1, 1] = fragment; break; } //level grid grid.setDataRectangle <LevelContent.LevelTile>(new Rectangle(gridStartWidth, gridStartHeight, gridWidth, gridHeight), fragment.grid); //locations collectableLocations.AddRange(fragment.getCollectableLocations(position)); enemyLocations.AddRange(fragment.getEnemyLocations(position)); prisonerLocations.AddRange(fragment.getPrisonerLocations(position)); powerupLocations.AddRange(fragment.getPowerupLocations(position)); }