summaryrefslogtreecommitdiff
path: root/apps/plugins/puzzles/src/nestedvm.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/puzzles/src/nestedvm.c')
-rw-r--r--apps/plugins/puzzles/src/nestedvm.c34
1 files changed, 24 insertions, 10 deletions
diff --git a/apps/plugins/puzzles/src/nestedvm.c b/apps/plugins/puzzles/src/nestedvm.c
index f7a2ae8ec5..0ad0f3fab4 100644
--- a/apps/plugins/puzzles/src/nestedvm.c
+++ b/apps/plugins/puzzles/src/nestedvm.c
@@ -17,7 +17,7 @@
17extern void _pause(); 17extern void _pause();
18extern int _call_java(int cmd, int arg1, int arg2, int arg3); 18extern int _call_java(int cmd, int arg1, int arg2, int arg3);
19 19
20void fatal(char *fmt, ...) 20void fatal(const char *fmt, ...)
21{ 21{
22 va_list ap; 22 va_list ap;
23 fprintf(stderr, "fatal error: "); 23 fprintf(stderr, "fatal error: ");
@@ -53,7 +53,7 @@ void frontend_default_colour(frontend *fe, float *output)
53 output[0] = output[1]= output[2] = 0.8f; 53 output[0] = output[1]= output[2] = 0.8f;
54} 54}
55 55
56void nestedvm_status_bar(void *handle, char *text) 56void nestedvm_status_bar(void *handle, const char *text)
57{ 57{
58 _call_java(4,0,(int)text,0); 58 _call_java(4,0,(int)text,0);
59} 59}
@@ -79,7 +79,7 @@ void nestedvm_unclip(void *handle)
79} 79}
80 80
81void nestedvm_draw_text(void *handle, int x, int y, int fonttype, int fontsize, 81void nestedvm_draw_text(void *handle, int x, int y, int fonttype, int fontsize,
82 int align, int colour, char *text) 82 int align, int colour, const char *text)
83{ 83{
84 frontend *fe = (frontend *)handle; 84 frontend *fe = (frontend *)handle;
85 _call_java(5, x + fe->ox, y + fe->oy, 85 _call_java(5, x + fe->ox, y + fe->oy,
@@ -259,7 +259,7 @@ void activate_timer(frontend *fe)
259void jcallback_config_ok() 259void jcallback_config_ok()
260{ 260{
261 frontend *fe = (frontend *)_fe; 261 frontend *fe = (frontend *)_fe;
262 char *err; 262 const char *err;
263 263
264 err = midend_set_config(fe->me, fe->cfg_which, fe->cfg); 264 err = midend_set_config(fe->me, fe->cfg_which, fe->cfg);
265 265
@@ -273,19 +273,22 @@ void jcallback_config_ok()
273void jcallback_config_set_string(int item_ptr, int char_ptr) { 273void jcallback_config_set_string(int item_ptr, int char_ptr) {
274 config_item *i = (config_item *)item_ptr; 274 config_item *i = (config_item *)item_ptr;
275 char* newval = (char*) char_ptr; 275 char* newval = (char*) char_ptr;
276 sfree(i->sval); 276 assert(i->type == C_STRING);
277 i->sval = dupstr(newval); 277 sfree(i->u.string.sval);
278 i->u.string.sval = dupstr(newval);
278 free(newval); 279 free(newval);
279} 280}
280 281
281void jcallback_config_set_boolean(int item_ptr, int selected) { 282void jcallback_config_set_boolean(int item_ptr, int selected) {
282 config_item *i = (config_item *)item_ptr; 283 config_item *i = (config_item *)item_ptr;
283 i->ival = selected != 0 ? TRUE : FALSE; 284 assert(i->type == C_BOOLEAN);
285 i->u.boolean.bval = selected != 0 ? TRUE : FALSE;
284} 286}
285 287
286void jcallback_config_set_choice(int item_ptr, int selected) { 288void jcallback_config_set_choice(int item_ptr, int selected) {
287 config_item *i = (config_item *)item_ptr; 289 config_item *i = (config_item *)item_ptr;
288 i->ival = selected; 290 assert(i->type == C_CHOICES);
291 i->u.choices.selected = selected;
289} 292}
290 293
291static int get_config(frontend *fe, int which) 294static int get_config(frontend *fe, int which)
@@ -298,7 +301,18 @@ static int get_config(frontend *fe, int which)
298 _call_java(10, (int)title, 0, 0); 301 _call_java(10, (int)title, 0, 0);
299 for (i = fe->cfg; i->type != C_END; i++) { 302 for (i = fe->cfg; i->type != C_END; i++) {
300 _call_java(5, (int)i, i->type, (int)i->name); 303 _call_java(5, (int)i, i->type, (int)i->name);
301 _call_java(11, (int)i->sval, i->ival, 0); 304 switch (i->type) {
305 case C_STRING:
306 _call_java(11, (int)i->u.string.sval, 0, 0);
307 break;
308 case C_BOOLEAN:
309 _call_java(11, 0, i->u.boolean.bval, 0);
310 break;
311 case C_CHOICES:
312 _call_java(11, (int)i->u.choices.choicenames,
313 i->u.choices.selected, 0);
314 break;
315 }
302 } 316 }
303 _call_java(12,0,0,0); 317 _call_java(12,0,0,0);
304 free_cfg(fe->cfg); 318 free_cfg(fe->cfg);
@@ -363,7 +377,7 @@ int jcallback_preset_event(int ptr_game_params)
363int jcallback_solve_event() 377int jcallback_solve_event()
364{ 378{
365 frontend *fe = (frontend *)_fe; 379 frontend *fe = (frontend *)_fe;
366 char *msg; 380 const char *msg;
367 381
368 msg = midend_solve(fe->me); 382 msg = midend_solve(fe->me);
369 383