summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/roster-editor/src/Struct/Model.elm')
-rw-r--r--src/roster-editor/src/Struct/Model.elm35
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 =