git-subtree-dir: game-sml git-subtree-mainline:aa5357714dgit-subtree-split:113c3e67ab
41 lines
1.2 KiB
Standard ML
41 lines
1.2 KiB
Standard ML
structure TitleUpdate =
|
|
struct
|
|
open TitleType
|
|
|
|
fun update (titleState, input: FrameInputType.t, userKeys, time) =
|
|
case #focus titleState of
|
|
START_BUTTON =>
|
|
let
|
|
val mode =
|
|
if CoreKey.containsAttack (userKeys, #newKeys input) then
|
|
GameType.LEVEL LevelType.initial
|
|
else
|
|
let
|
|
val titleState =
|
|
if #downHeld input then {focus = OPTIONS_BUTTON}
|
|
else titleState
|
|
in
|
|
GameType.TITLE titleState
|
|
end
|
|
in
|
|
{mode = mode, userKeys = userKeys, saveKeys = false}
|
|
end
|
|
| OPTIONS_BUTTON =>
|
|
let
|
|
val mode =
|
|
if CoreKey.containsAttack (userKeys, #newKeys input) then
|
|
let val options = OptionsType.init userKeys
|
|
in GameType.OPTIONS options
|
|
end
|
|
else
|
|
let
|
|
val titleState =
|
|
if #upHeld input then {focus = START_BUTTON} else titleState
|
|
in
|
|
GameType.TITLE titleState
|
|
end
|
|
in
|
|
{mode = mode, userKeys = userKeys, saveKeys = false}
|
|
end
|
|
end
|