| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/battlemap/src/Comm/CharacterTurn.elm | 4 | ||||
| -rw-r--r-- | src/battlemap/src/Comm/LoadBattlemap.elm | 4 | ||||
| -rw-r--r-- | src/battlemap/src/ElmModule/Init.elm | 2 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/Flags.elm | 18 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/Model.elm | 63 | ||||
| -rw-r--r-- | src/battlemap/src/Util/List.elm | 6 | 
6 files changed, 70 insertions, 27 deletions
| diff --git a/src/battlemap/src/Comm/CharacterTurn.elm b/src/battlemap/src/Comm/CharacterTurn.elm index 9287c45..c0fc96f 100644 --- a/src/battlemap/src/Comm/CharacterTurn.elm +++ b/src/battlemap/src/Comm/CharacterTurn.elm @@ -99,9 +99,9 @@ try_encoding model =           (Just              (Json.Encode.object                 [ -                  ("stk", (Json.Encode.string "0")), +                  ("stk", (Json.Encode.string model.session_token)),                    ("pid", (Json.Encode.string model.player_id)), -                  ("bid", (Json.Encode.string "0")), +                  ("bid", (Json.Encode.string model.battlemap_id)),                    (                       "cix",                       (Json.Encode.int (Struct.Character.get_index char)) diff --git a/src/battlemap/src/Comm/LoadBattlemap.elm b/src/battlemap/src/Comm/LoadBattlemap.elm index 97c2db2..cd29acf 100644 --- a/src/battlemap/src/Comm/LoadBattlemap.elm +++ b/src/battlemap/src/Comm/LoadBattlemap.elm @@ -23,9 +23,9 @@ try_encoding model =     (Just        (Json.Encode.object           [ -            ("stk", (Json.Encode.string "0")), +            ("stk", (Json.Encode.string model.session_token)),              ("pid", (Json.Encode.string model.player_id)), -            ("bmi", (Json.Encode.string "0")) +            ("bmi", (Json.Encode.string model.battlemap_id))           ]        )     ) diff --git a/src/battlemap/src/ElmModule/Init.elm b/src/battlemap/src/ElmModule/Init.elm index 3e6cc52..83c2c58 100644 --- a/src/battlemap/src/ElmModule/Init.elm +++ b/src/battlemap/src/ElmModule/Init.elm @@ -18,7 +18,7 @@ import Struct.Model  --------------------------------------------------------------------------------  init : Struct.Flags.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))  init flags = -   let model = (Struct.Model.new) in +   let model = (Struct.Model.new flags) in        (           model,           (case (Comm.LoadBattlemap.try model) of diff --git a/src/battlemap/src/Struct/Flags.elm b/src/battlemap/src/Struct/Flags.elm index d25f432..c0316f0 100644 --- a/src/battlemap/src/Struct/Flags.elm +++ b/src/battlemap/src/Struct/Flags.elm @@ -1,11 +1,14 @@  module Struct.Flags exposing     ( -      Type +      Type, +      maybe_get_param     )  -- Elm ------------------------------------------------------------------------- +import List  -- Battlemap ------------------------------------------------------------------- +import Util.List  --------------------------------------------------------------------------------  -- TYPES ----------------------------------------------------------------------- @@ -24,3 +27,16 @@ type alias Type =  --------------------------------------------------------------------------------  -- EXPORTED --------------------------------------------------------------------  -------------------------------------------------------------------------------- +maybe_get_param : String -> Type -> (Maybe String) +maybe_get_param param flags = +   case +      (Util.List.get_first +         (\e -> ((List.head e) == (Just param))) +         flags.url_params +      ) +   of +      Nothing -> Nothing +      (Just a) -> +         case (List.tail a) of +            Nothing -> Nothing +            (Just b) -> (List.head b) diff --git a/src/battlemap/src/Struct/Model.elm b/src/battlemap/src/Struct/Model.elm index 7ed6cb3..0095364 100644 --- a/src/battlemap/src/Struct/Model.elm +++ b/src/battlemap/src/Struct/Model.elm @@ -28,6 +28,7 @@ import Struct.Battlemap  import Struct.Character  import Struct.CharacterTurn  import Struct.Error +import Struct.Flags  import Struct.HelpRequest  import Struct.Tile  import Struct.TurnResult @@ -51,6 +52,8 @@ type alias Type =        tiles: (Dict.Dict Struct.Tile.Ref Struct.Tile.Type),        error: (Maybe Struct.Error.Type),        player_id: String, +      battlemap_id: String, +      session_token: String,        player_ix: Int,        ui: Struct.UI.Type,        char_turn: Struct.CharacterTurn.Type, @@ -64,23 +67,45 @@ type alias Type =  --------------------------------------------------------------------------------  -- EXPORTED --------------------------------------------------------------------  -------------------------------------------------------------------------------- -new : Type -new = -   { -      help_request = Struct.HelpRequest.None, -      animator = Nothing, -      battlemap = (Struct.Battlemap.empty), -      characters = (Array.empty), -      weapons = (Dict.empty), -      armors = (Dict.empty), -      tiles = (Dict.empty), -      error = Nothing, -      player_id = "0", -      player_ix = 0, -      ui = (Struct.UI.default), -      char_turn = (Struct.CharacterTurn.new), -      timeline = (Array.empty) -   } +new : Struct.Flags.Type -> Type +new flags = +   let +      maybe_battlemap_id = (Struct.Flags.maybe_get_param "id" flags) +      model = +         { +            help_request = Struct.HelpRequest.None, +            animator = Nothing, +            battlemap = (Struct.Battlemap.empty), +            characters = (Array.empty), +            weapons = (Dict.empty), +            armors = (Dict.empty), +            tiles = (Dict.empty), +            error = Nothing, +            battlemap_id = "", +            player_id = +               ( +                  if (flags.user_id == "") +                  then "0" +                  else flags.user_id +               ), +            session_token = flags.token, +            player_ix = 0, +            ui = (Struct.UI.default), +            char_turn = (Struct.CharacterTurn.new), +            timeline = (Array.empty) +         } +   in +      case maybe_battlemap_id of +         Nothing -> +            (invalidate +               (Struct.Error.new +                  Struct.Error.Failure +                  "Could not find battlemap id." +               ) +               model +            ) + +         (Just id) -> {model | battlemap_id = id}  add_character : Struct.Character.Type -> Type -> Type  add_character char model = @@ -148,7 +173,6 @@ full_debug_reset model =        armors = (Dict.empty),        tiles = (Dict.empty),        error = Nothing, -      -- player_id remains        ui = (Struct.UI.default),        char_turn = (Struct.CharacterTurn.new),        timeline = (Array.empty) @@ -223,8 +247,7 @@ update_character_fun ix fun model =  invalidate : Struct.Error.Type -> Type -> Type  invalidate err model =     {model | -      error = (Just err), -      ui = (Struct.UI.set_displayed_tab Struct.UI.StatusTab model.ui) +      error = (Just err)     }  clear_error : Type -> Type diff --git a/src/battlemap/src/Util/List.elm b/src/battlemap/src/Util/List.elm index c4db397..2bc5217 100644 --- a/src/battlemap/src/Util/List.elm +++ b/src/battlemap/src/Util/List.elm @@ -1,4 +1,4 @@ -module Util.List exposing (pop) +module Util.List exposing (..)  import List @@ -10,3 +10,7 @@ pop l =        (Nothing, _) -> Nothing        (_ , Nothing) -> Nothing        ((Just head), (Just tail)) -> (Just (head, tail)) + +get_first : (a -> Bool) -> (List a) -> (Maybe a) +get_first fun list = +   (List.head (List.filter fun list)) | 


