summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/roster-editor/src/Struct/Model.elm')
-rw-r--r-- | src/roster-editor/src/Struct/Model.elm | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/src/roster-editor/src/Struct/Model.elm b/src/roster-editor/src/Struct/Model.elm index 3dd5c3c..e796df7 100644 --- a/src/roster-editor/src/Struct/Model.elm +++ b/src/roster-editor/src/Struct/Model.elm @@ -3,6 +3,7 @@ module Struct.Model exposing Type, new, add_character_record, + enable_character_records, update_character, update_character_fun, save_character, @@ -18,6 +19,8 @@ module Struct.Model exposing -- Elm ------------------------------------------------------------------------- import Array +import List + import Dict -- Shared ---------------------------------------------------------------------- @@ -103,6 +106,20 @@ add_character char_rec model = ) } +has_loaded_data : Type -> Bool +has_loaded_data model = + ( + ((Array.length model.characters) > 0) + || + ( + (model.portraits /= (Dict.empty)) + && (model.weapons /= (Dict.empty)) + && (model.armors /= (Dict.empty)) + && (model.glyph_boards /= (Dict.empty)) + && (model.glyphs /= (Dict.empty)) + ) + ) + -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- @@ -134,9 +151,21 @@ new flags = add_character_record : Struct.CharacterRecord.Type -> Type -> Type add_character_record char model = - if (condition) - then {model | stalled_characters = (char :: model.stalled_characters)} - else (add_character char model) + if (has_loaded_data model) + then (add_character char model) + else {model | stalled_characters = (char :: model.stalled_characters)} + +enable_character_records : Type -> Type +enable_character_records model = + if (has_loaded_data model) + then + (List.foldr + (add_character) + {model | stalled_characters = []} + model.stalled_characters + ) + else + model add_weapon : Struct.Weapon.Type -> Type -> Type add_weapon wp model = |