public void Handle(int opcode, JagexBuffer buffer) { var index = buffer.ReadUShort(); var size = buffer.ReadUShort(); var desc = GameContext.Cache.GetWidgetConfig(index); if (desc == null) { return; } if (desc.ItemIndices == null) { return; } for (var i = 0; i < size; i++) { var count = buffer.ReadUByte(); if (count == IntId) { count = buffer.ReadImeInt(); } desc.ItemIndices[i] = buffer.ReadLEUShortA(); desc.ItemAmounts[i] = count; GameContext.InvalidateItemTexture(index, i); } }
public GraphicConfig(JagexBuffer s) { SetDefaults(); var opcode = s.ReadUByte(); while (opcode != 0) { if (opcode == 1) { ModelIndex = s.ReadUShort(); } else if (opcode == 2) { SequenceIndex = s.ReadUShort(); Sequence = GameContext.Cache.GetSeq(SequenceIndex); } else if (opcode == 4) { Scale = s.ReadUShort(); } else if (opcode == 5) { Height = s.ReadUShort(); } else if (opcode == 6) { Rotation = s.ReadUByte(); } else if (opcode == 7) { Brightness = s.ReadUByte(); } else if (opcode == 8) { Specular = s.ReadUByte(); } opcode = s.ReadUByte(); } int colorCumulative = 0; if (OldColors != null && OldColors.Length > 0) { foreach (var j in NewColors) { colorCumulative += j; } } UniqueId = (ModelIndex << 16) | (SequenceIndex << 8); UniqueId += colorCumulative; }
public void Handle(int opcode, JagexBuffer buffer) { var widgetId = buffer.ReadUShort(); if (widgetId == InvalidId) { widgetId = 0; } int tabIndex = buffer.ReadUByteA(); GameContext.TabArea.Tabs[tabIndex].WidgetId = widgetId; }
public void Handle(int opcode, JagexBuffer buffer) { var msg = buffer.ReadString(10); var index = buffer.ReadUShortA(); var desc = GameContext.Cache.GetWidgetConfig(index); if (desc == null) { return; } desc.MessageDisabled = msg; GameContext.InvalidateWidgetDisabledMessage(index); }
public void Handle(int opcode, JagexBuffer buffer) { var index = buffer.ReadUByte(); var exp = buffer.ReadMeInt(); var level = buffer.ReadUShort(); var maxLevel = buffer.ReadUShort(); GameContext.SkillExperiences[index] = exp; GameContext.SkillCurrentLevels[index] = level; GameContext.SkillMaxLevels[index] = 1; for (int i = 0; i < 98; i++) { if (exp >= GameConstants.SkillXPTable[i]) { GameContext.SkillMaxLevels[index] = i + 2; } } }
/// <summary> /// Creates a skin list from binary data. /// </summary> /// <param name="buf">The buffer containing the binary data.</param> public SkinList(JagexBuffer buf) { Count = buf.ReadUByte(); Opcodes = new int[Count]; Vertices = new int[Count][]; for (var i = 0; i < Count; i++) { Opcodes[i] = buf.ReadUByte(); } for (var i = 0; i < Count; i++) { var size = buf.ReadUByte(); Vertices[i] = new int[size]; for (var j = 0; j < size; j++) { Vertices[i][j] = buf.ReadUByte(); } } }
public void Handle(int opcode, JagexBuffer buffer) { GameContext.TargetRegionY = buffer.ReadUByteC(); GameContext.TargetRegionX = buffer.ReadUByteC(); }
public void Handle(int opcode, JagexBuffer buffer) { GameContext.HandleTargetPacket(buffer, opcode); }