MCPcopy Create free account
hub / github.com/crownengine/crown / html5_save_game_init

Function html5_save_game_init

src/device/save_game.cpp:38–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36
37#if CROWN_PLATFORM_EMSCRIPTEN
38static void html5_save_game_init(const char *save_dir)
39{
40 // code-format off
41 MAIN_THREAD_EM_ASM({
42 var saveDir = UTF8ToString($0);
43 if (saveDir.charAt(0) != "/")
44 saveDir = "/" + saveDir;
45
46 Module.CrownSaveGame = Module.CrownSaveGame || {};
47 var state = Module.CrownSaveGame;
48
49 if (state.mountDir == saveDir && state.ready)
50 return;
51
52 state.mountDir = saveDir;
53 state.ready = 0;
54 state.error = 0;
55 state.syncing = 0;
56 state.syncError = 0;
57
58 function mkdirTree(dir)
59 {
60 var path = "";
61 var parts = dir.split("/");
62 for (var ii = 0; ii < parts.length; ++ii) {
63 if (!parts[ii])
64 continue;
65 path += "/" + parts[ii];
66 try {
67 FS.mkdir(path);
68 } catch (err) {
69 }
70 }
71 }
72
73 try {
74 mkdirTree(saveDir);
75 FS.mount(IDBFS, {}, saveDir);
76 FS.syncfs(true, function(err)
77 {
78 state.error = err ? 1 : 0;
79 state.ready = 1;
80 });
81 } catch (err) {
82 console.error(err);
83 state.error = 1;
84 state.ready = 1;
85 }
86 }
87 , save_dir
88 );
89 // code-format on
90}
91
92static bool html5_save_game_ready()
93{

Callers 1

SaveGameMethod · 0.85

Calls 3

mkdirTreeFunction · 0.85
functionClass · 0.50
errorMethod · 0.45

Tested by

no test coverage detected