For sleeping/delaying a certain amount of time if the specified file
does not exist. Intended for use in delaying games iff no save file
exists, to ease up on the server load from start scumming (especially
automated start scumming).
Sleep 5 seconds if /path/to/file.txt does not exist:
| ifnxsleep 5 "/path/to/file.txt"
redraw { yylval.i = DGLCMD_REDRAW; return TYPE_DGLCMD0; }
rawprint { yylval.i = DGLCMD_RAWPRINT; return TYPE_DGLCMD1; }
sleep { yylval.i = DGLCMD_SLEEP; return TYPE_DGLCMD1; }
+ifnxsleep { yylval.i = DGLCMD_IF_NX_SLEEP; return TYPE_DGLCMD2; }
DEFINE { return TYPE_DEFINE_GAME; }
DGLCMD_SUBMENU, /* submenu "foo" */
DGLCMD_REDRAW, /* redraw */
DGLCMD_RETURN, /* return */
- DGLCMD_SLEEP /* sleep */
+ DGLCMD_SLEEP, /* sleep foo */
+ DGLCMD_IF_NX_SLEEP, /* ifnxsleep foo bar */
} dglcmd_actions;
typedef enum
case DGLCMD_RETURN:
return_from_submenu = 1;
break;
+ case DGLCMD_IF_NX_SLEEP:
+ if (p2) {
+ FILE *tmpfile;
+ tmpfile = fopen(p2, "r");
+ if (tmpfile) {
+ fclose(tmpfile);
+ break;
+ }
+ }
+ /* fall through if file does not exist */
case DGLCMD_SLEEP:
if (p1) {
char *end;
# play_if_exist "foo" "file" = start game "foo", if file "file" exists.
# submenu "foo" = go to submenu "foo"
# return = return from submenu
+# sleep "foo" = sleep for "foo" seconds
+# ifnxsleep "foo" "file" = sleep for "foo" seconds if file "file" does not exist.
#
# NOTE: edit_options-command was removed. use ifnxcp and exec to simulate it.
#