summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/tonkadur/Tonkadur/Compute.elm | 1 | ||||
-rw-r--r-- | src/shared/tonkadur/Tonkadur/Execute.elm | 1 | ||||
-rw-r--r-- | src/shared/tonkadur/Tonkadur/PlayerInput.elm | 2 | ||||
-rw-r--r-- | src/shared/tonkadur/Tonkadur/Types.elm | 36 |
4 files changed, 38 insertions, 2 deletions
diff --git a/src/shared/tonkadur/Tonkadur/Compute.elm b/src/shared/tonkadur/Tonkadur/Compute.elm index b22c3ac..92e5527 100644 --- a/src/shared/tonkadur/Tonkadur/Compute.elm +++ b/src/shared/tonkadur/Tonkadur/Compute.elm @@ -1,6 +1,7 @@ module Tonkadur.Compute exposing (compute) -- Elm ------------------------------------------------------------------------- +import Dict import List -- Tonkadur -------------------------------------------------------------------- diff --git a/src/shared/tonkadur/Tonkadur/Execute.elm b/src/shared/tonkadur/Tonkadur/Execute.elm index 6876e80..200d4a7 100644 --- a/src/shared/tonkadur/Tonkadur/Execute.elm +++ b/src/shared/tonkadur/Tonkadur/Execute.elm @@ -1,6 +1,7 @@ module Tonkadur.Execute exposing (execute) -- Elm ------------------------------------------------------------------------- +import Dict import List -- Tonkadur -------------------------------------------------------------------- diff --git a/src/shared/tonkadur/Tonkadur/PlayerInput.elm b/src/shared/tonkadur/Tonkadur/PlayerInput.elm index 0cd75aa..c5fd837 100644 --- a/src/shared/tonkadur/Tonkadur/PlayerInput.elm +++ b/src/shared/tonkadur/Tonkadur/PlayerInput.elm @@ -1,8 +1,8 @@ module Tonkadur.PlayerInput exposing (..) -- Elm ------------------------------------------------------------------------- -import List import Dict +import List -- Tonkadur -------------------------------------------------------------------- import Tonkadur.Types diff --git a/src/shared/tonkadur/Tonkadur/Types.elm b/src/shared/tonkadur/Tonkadur/Types.elm index 3393970..3c3806f 100644 --- a/src/shared/tonkadur/Tonkadur/Types.elm +++ b/src/shared/tonkadur/Tonkadur/Types.elm @@ -87,7 +87,9 @@ type alias State = allocated_data : Int, last_choice_index : Int, available_options : (List.List Option), - memorized_target : Value + memorized_target : Value, + + last_instruction_effect : InstructionEffect } -------------------------------------------------------------------------------- @@ -223,3 +225,35 @@ get_default state type_name = case (Dict.get other state.user_types) of (Just default) -> default Nothing -> (StringValue ("Unknown type '" + other + "'")) + +apply_at_address : ( + (List.List String) -> + ( + String -> + (Dict.Dict String Value) -> + (Dict.Dict String Value) + ) + (Dict.Dict String Value) -> + (Dict.Dict String Value) + ) +apply_at_address address fun memory = + case address of + [] -> memory + (last_element :: []) -> (fun last_element memory) + (next_element :: next_address) -> + (Dict.update + next_element + (\maybe_value -> + case maybe_value of + (Just value) -> + (Just + (apply_at_address + next_address + fun + (Tonkadur.Types.value_to_dict value) + ) + ) + + Nothing -> Nothing + ) + ) |