From: simon Date: Thu, 26 Jun 2008 19:09:07 +0000 (+0000) Subject: Handle a by passing it in to the C side as X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/commitdiff_plain/cbbe322f15df1d4fbd15d31a9e211880a3315ff7 Handle a by passing it in to the C side as argv[1], which in turn feeds it into the midend as a game ID. This can of course take any of the forms supported by the native C puzzles: a pure game parameter string, a params:description specific game ID, or a params#seed random game ID. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@8095 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/PuzzleApplet.java b/PuzzleApplet.java index ef7ca7e..f68dddf 100644 --- a/PuzzleApplet.java +++ b/PuzzleApplet.java @@ -33,6 +33,7 @@ public class PuzzleApplet extends JApplet implements Runtime.CallJavaCB { private JLabel statusBar; private PuzzlePanel pp; private Runtime runtime; + private String[] puzzle_args; private Graphics2D gg; private Timer timer; private int xarg1, xarg2, xarg3; @@ -172,9 +173,23 @@ public class PuzzleApplet extends JApplet implements Runtime.CallJavaCB { runtimeCall("jcallback_timer_func", new int[0]); } }); + String gameid; + try { + gameid = getParameter("game_id"); + } catch (java.lang.NullPointerException ex) { + gameid = null; + } + System.out.println("ooh " + gameid); + if (gameid == null) { + puzzle_args = null; + } else { + puzzle_args = new String[2]; + puzzle_args[0] = "puzzle"; + puzzle_args[1] = gameid; + } SwingUtilities.invokeLater(new Runnable() { public void run() { - runtime.start(); + runtime.start(puzzle_args); runtime.execute(); } }); diff --git a/nestedvm.c b/nestedvm.c index 0a23a30..757b65f 100644 --- a/nestedvm.c +++ b/nestedvm.c @@ -376,6 +376,8 @@ int main(int argc, char **argv) _fe = snew(frontend); _fe->timer_active = FALSE; _fe->me = midend_new(_fe, &thegame, &nestedvm_drawing, _fe); + if (argc > 1) + midend_game_id(_fe->me, argv[1]); /* ignore failure */ midend_new_game(_fe->me); if ((n = midend_num_presets(_fe->me)) > 0) {