package org.runite.client; // TODO MapSceneDefinition or something public final class MapSceneDefinition { public int color; public int sprite; public boolean aBoolean69 = false; public final void decode(DataBuffer buffer) { while (true) { int opcode = buffer.readUnsignedByte(); if (opcode == 0) { return; } this.decode(buffer, opcode); } } /** * @param rotations The amount of rotations the sprite should be turned clockwise. Each rotation rotates the sprite * by 90 degrees clockwise. */ public final LDIndexedSprite getSprite(int rotations) { LDIndexedSprite sprite = (LDIndexedSprite) TextureOperation2.aReferenceCache_3369.get((long) rotations << 16 | this.sprite); if (sprite != null) { return sprite; } KeyboardListener.aClass153_1916.retrieveSpriteFile(this.sprite); sprite = Unsorted.method1539(this.sprite, KeyboardListener.aClass153_1916); if (sprite != null) { sprite.method1668(Class102.anInt2136, Class46.anInt740, Class158.anInt2015); sprite.anInt1469 = sprite.width; sprite.anInt1467 = sprite.height; for (int var5 = 0; var5 < rotations; ++var5) { sprite.rotateClockwise(); } TextureOperation2.aReferenceCache_3369.put(sprite, (long) rotations << 16 | this.sprite); } return sprite; } private void decode(DataBuffer buffer, int opcode) { if (opcode == 1) { this.sprite = buffer.readUnsignedShort(); } else if (opcode == 2) { this.color = buffer.readMedium(); } else if (opcode == 3) { this.aBoolean69 = true; } else if (opcode == 4) { this.sprite = -1; } } }