From 532ec4f74ea0f4ca27d513de8fdb8ee96f58ec41 Mon Sep 17 00:00:00 2001 From: Collin Smith Date: Wed, 25 Dec 2019 02:56:54 -0800 Subject: [PATCH] Created Excel for MonPreset --- core/src/com/riiablo/Files.java | 3 ++ .../com/riiablo/codec/excel/MonPreset.java | 45 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 core/src/com/riiablo/codec/excel/MonPreset.java diff --git a/core/src/com/riiablo/Files.java b/core/src/com/riiablo/Files.java index d94f5598..56a55376 100644 --- a/core/src/com/riiablo/Files.java +++ b/core/src/com/riiablo/Files.java @@ -28,6 +28,7 @@ import com.riiablo.codec.excel.Misc; import com.riiablo.codec.excel.Missiles; import com.riiablo.codec.excel.MonAI; import com.riiablo.codec.excel.MonMode; +import com.riiablo.codec.excel.MonPreset; import com.riiablo.codec.excel.MonStats; import com.riiablo.codec.excel.MonStats2; import com.riiablo.codec.excel.Obj; @@ -85,6 +86,7 @@ public class Files { public final MonMode MonMode; public final MonStats monstats; public final MonStats2 monstats2; + public final MonPreset MonPreset; public final Objects objects; public final ObjMode ObjMode; public final Overlay Overlay; @@ -142,6 +144,7 @@ public class Files { MonMode = load(MonMode.class); monstats = load(MonStats.class, Excel.EXPANSION); monstats2 = load(MonStats2.class, Excel.EXPANSION); + MonPreset = load(MonPreset.class, Excel.EXPANSION); RarePrefix = load(RarePrefix.class, Excel.EXPANSION); RareSuffix = load(RareSuffix.class, Excel.EXPANSION); Runes = load(Runes.class); diff --git a/core/src/com/riiablo/codec/excel/MonPreset.java b/core/src/com/riiablo/codec/excel/MonPreset.java new file mode 100644 index 00000000..ba90f1e7 --- /dev/null +++ b/core/src/com/riiablo/codec/excel/MonPreset.java @@ -0,0 +1,45 @@ +package com.riiablo.codec.excel; + +import java.util.Arrays; + +@Excel.Binned +public class MonPreset extends Excel { + private static final int MAX_ACTS = 5; + private static final int MAX_ENTRIES = 64; + + private final int[][] lookup = new int[MAX_ACTS + 1][MAX_ENTRIES]; + private final int[] index = new int[MAX_ACTS + 1]; + + @Override + protected void put(int id, Entry value) { + super.put(id, value); + int act = value.Act; + lookup[act][index[act]++] = id; + } + + @Override + protected void init() { + for (int act = 1; act <= MAX_ACTS; act++) { + int[] lookup = this.lookup[act]; + Arrays.fill(lookup, index[act], lookup.length, -1); + } + } + + public Entry get(int act, int id) { + return get(lookup[act][id]); + } + + public String getPlace(int act, int id) { + return get(act, id).Place; + } + + public int getSize(int act) { + return index[act]; + } + + @Excel.Index + public static class Entry extends Excel.Entry { + @Column public int Act; + @Column public String Place; + } +}