diff --git a/RabiClone_0.0a.zip b/RabiClone_0.0a.zip index 804db76..8e27fea 100644 Binary files a/RabiClone_0.0a.zip and b/RabiClone_0.0a.zip differ diff --git a/bin/RabiClone.jar b/bin/RabiClone.jar index 69005f9..2ef8437 100644 Binary files a/bin/RabiClone.jar and b/bin/RabiClone.jar differ diff --git a/lib/bin/net/java/games/input/DefaultControllerEnvironment.class b/lib/bin/net/java/games/input/DefaultControllerEnvironment.class index 2221516..4365ab6 100644 Binary files a/lib/bin/net/java/games/input/DefaultControllerEnvironment.class and b/lib/bin/net/java/games/input/DefaultControllerEnvironment.class differ diff --git a/lib/bin/net/java/games/input/DirectAndRawInputEnvironmentPlugin.class b/lib/bin/net/java/games/input/DirectAndRawInputEnvironmentPlugin.class index ee9b572..61f7787 100644 Binary files a/lib/bin/net/java/games/input/DirectAndRawInputEnvironmentPlugin.class and b/lib/bin/net/java/games/input/DirectAndRawInputEnvironmentPlugin.class differ diff --git a/lib/bin/net/java/games/input/DirectInputEnvironmentPlugin$ShutdownHook.class b/lib/bin/net/java/games/input/DirectInputEnvironmentPlugin$ShutdownHook.class index dea7316..761c25f 100644 Binary files a/lib/bin/net/java/games/input/DirectInputEnvironmentPlugin$ShutdownHook.class and b/lib/bin/net/java/games/input/DirectInputEnvironmentPlugin$ShutdownHook.class differ diff --git a/lib/bin/net/java/games/input/DirectInputEnvironmentPlugin.class b/lib/bin/net/java/games/input/DirectInputEnvironmentPlugin.class index 47b7287..899bf39 100644 Binary files a/lib/bin/net/java/games/input/DirectInputEnvironmentPlugin.class and b/lib/bin/net/java/games/input/DirectInputEnvironmentPlugin.class differ diff --git a/lib/jinput.jar b/lib/jinput.jar index b3465d6..cc7d74c 100644 Binary files a/lib/jinput.jar and b/lib/jinput.jar differ diff --git a/src/sig/RabiClone.java b/src/sig/RabiClone.java index 77d74e5..95966a1 100644 --- a/src/sig/RabiClone.java +++ b/src/sig/RabiClone.java @@ -25,7 +25,6 @@ import sig.engine.PaletteColor; import java.awt.Toolkit; import java.awt.event.KeyEvent; -import java.lang.reflect.Constructor; public class RabiClone{ public static final String PROGRAM_NAME="RabiClone"; @@ -44,6 +43,7 @@ public class RabiClone{ public static PaletteColor BACKGROUND_COLOR = PaletteColor.DARK_ORCHID; public static LevelRenderer level_renderer; + public static ConfigureControls control_settings_menu; public static Player player; public static Maps CURRENT_MAP = Maps.WORLD1; @@ -138,7 +138,7 @@ public class RabiClone{ if (Key.isKeyHeld(KeyEvent.VK_F3)) { OBJ.clear(); ResetGame(); - OBJ.add(new ConfigureControls(p)); + OBJ.add(control_settings_menu=new ConfigureControls(p)); } if (Key.isKeyHeld(KeyEvent.VK_F5)&&System.currentTimeMillis()-lastControllerScan>5000) { CONTROLLERS=ControllerEnvironment.getDefaultEnvironment().rescanControllers(); @@ -158,6 +158,7 @@ public class RabiClone{ private static void ResetGame() { player=null; level_renderer=null; + control_settings_menu=null; } private static void StartGame() { diff --git a/src/sig/engine/Panel.java b/src/sig/engine/Panel.java index 3298b37..9d165ec 100644 --- a/src/sig/engine/Panel.java +++ b/src/sig/engine/Panel.java @@ -404,11 +404,8 @@ public class Panel extends JPanel implements Runnable,KeyListener { if (!Key.isKeyHeld(e.getKeyCode())) { Key.setKeyHeld(e.getKeyCode(), true); } - for (Object o : RabiClone.OBJ) { - if (o instanceof ConfigureControls) { - ((ConfigureControls)o).rawKeyPressed(e.getKeyCode()); - break; - } + if (RabiClone.control_settings_menu!=null) { + RabiClone.control_settings_menu.rawKeyPressed(e.getKeyCode()); } //System.out.println("Key List: "+KEYS); } diff --git a/src/sig/objects/ConfigureControls.java b/src/sig/objects/ConfigureControls.java index 6a0cabc..e9d2338 100644 --- a/src/sig/objects/ConfigureControls.java +++ b/src/sig/objects/ConfigureControls.java @@ -1,10 +1,10 @@ package sig.objects; import java.awt.event.MouseEvent; +import java.util.ArrayList; import java.util.List; import net.java.games.input.Component; -import net.java.games.input.Controller; import net.java.games.input.Event; import net.java.games.input.Component.Identifier; import net.java.games.input.Component.POV; @@ -21,10 +21,24 @@ public class ConfigureControls extends Object{ Action selectedAction = Action.MOVE_RIGHT; boolean assigningKey = false; + List> actionHighlightSections = new ArrayList<>(); public ConfigureControls(Panel panel) { super(panel); RabiClone.BACKGROUND_COLOR = PaletteColor.WHITE; + int index=0; + for (Action a : Action.values()) { + actionHighlightSections.add(new ArrayList()); + for (int i=0;i sectionList = actionHighlightSections.get(a.ordinal()); + sectionList.add(renderedText.length()); + renderedText.append(c.getName()); + sectionList.add(renderedText.length()); + renderedText.append(i!=KeyBind.KEYBINDS.get(a).size()-1?",":""); + } + } } @Override @@ -67,6 +81,15 @@ public class ConfigureControls extends Object{ selectedAction=a; Draw_Rect(p,(byte)PaletteColor.PEACH.ordinal(),0,getY()+y,RabiClone.BASE_WIDTH,Font.PROFONT_12.getGlyphHeight()+4); } + for (int i=0;i sectionList = actionHighlightSections.get(a.ordinal()); + int startX=sectionList.get(i)*Font.PROFONT_12.getGlyphWidth()-4; + int endX=sectionList.get(i+1)*Font.PROFONT_12.getGlyphWidth()+4; + if (RabiClone.MOUSE_POS.getY()>=getY()+y&&RabiClone.MOUSE_POS.getY()=startX&&RabiClone.MOUSE_POS.getX()<=endX) { + Draw_Rect(p,(byte)PaletteColor.AZURE.ordinal(),startX,getY()+y,endX-startX,Font.PROFONT_12.getGlyphHeight()+4); + break; + } + } Draw_Text_Ext(4,getY()+y,DisplayActionKeys(a),Font.PROFONT_12,Alpha.ALPHA0,PaletteColor.MIDNIGHT_BLUE); y+=Font.PROFONT_12.getGlyphHeight()+4; }