1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
-- loop until RETURN_QUIT code is sent
RETURN_GAME_LAUNCH = 0
RETURN_GAME_END = 1
RETURN_GAME_PAUSE = 2
RETURN_GAME_UNPAUSE = 3
RETURN_GAME_CREDITS = 4
RETURN_GAME_ESCAPE = 5
RETURN_GUI_PROMPT = 6
RETURN_TIMEDEMO = 7
RETURN_TIMEDEMO_ABORT = 8
RETURN_CREDITS = 9
RETURN_QUIT = 10
RETURN_GUI_ESCAPE = 11
RETURN_PROMPT_ESCAPE = 12
RETURN_PAUSE_ESCAPE = 13
-- enable below to run in timedemo-only mode
if(nil) then
SetCallback("timedemo")
SystemMainLoop()
exit()
end
callback = "gui"
next_callback = {}
next_callback[ RETURN_GAME_LAUNCH ] = "pause"
next_callback[ RETURN_GAME_END ] = "pause"
next_callback[ RETURN_GAME_PAUSE ] = "pause"
next_callback[ RETURN_GAME_UNPAUSE ] = "game"
next_callback[ RETURN_CREDITS ] = "credits"
next_callback[ RETURN_GAME_CREDITS ] = "credits"
next_callback[ RETURN_GAME_ESCAPE ] = "gui"
next_callback[ RETURN_GUI_ESCAPE ] = "pause"
next_callback[ RETURN_PROMPT_ESCAPE ] = "gui"
next_callback[ RETURN_PAUSE_ESCAPE ] = "gui"
next_callback[ RETURN_GUI_PROMPT ] = "configure"
next_callback[ RETURN_TIMEDEMO ] = nil
next_callback[ RETURN_TIMEDEMO_ABORT ] = nil
next_callback[ RETURN_QUIT ] = nil
while 1 do
SetCallback(callback)
-- write(format("[lua] setting callback '%s'\n", callback))
status = SystemMainLoop()
-- write(format("[lua] system returned (%d)\n", status))
if(next_callback[ status ]) then
callback = next_callback[ status ]
else
if(status == 10) then
write(format("[lua] unhandled callback (%d)\n", status))
exit()
end
end
end
|