diff --git a/apps/gipy/app.js b/apps/gipy/app.js index 83ce0757a..f59268c62 100644 --- a/apps/gipy/app.js +++ b/apps/gipy/app.js @@ -95,7 +95,7 @@ function compute_eta(hour, minutes, approximate_speed, remaining_distance) { } class TilesOffsets { - constructor(filename, offset) { + constructor(filename, offset, bytes_per_tile_index) { let header = E.toArrayBuffer(s.read(filename, offset, 4)); let type_size = Uint8Array(header, 0, 1)[0]; offset += 1; @@ -105,9 +105,13 @@ class TilesOffsets { offset += 2; let bytes = (type_size==24)?3:2; - let buffer = E.toArrayBuffer(s.read(filename, offset, 2*non_empty_tiles_number+bytes*non_empty_tiles_number)); - this.non_empty_tiles = Uint16Array(buffer, 0, non_empty_tiles_number); - offset += 2 * non_empty_tiles_number; + let buffer = E.toArrayBuffer(s.read(filename, offset, bytes_per_tile_index*non_empty_tiles_number+bytes*non_empty_tiles_number)); + if (bytes_per_tile_index == 2) { + this.non_empty_tiles = Uint16Array(buffer, 0, non_empty_tiles_number); + } else { + this.non_empty_tiles = Uint24Array(buffer, 0, non_empty_tiles_number); + } + offset += bytes_per_tile_index * non_empty_tiles_number; if (type_size == 24) { this.non_empty_tiles_ends = Uint24Array( buffer, @@ -179,7 +183,11 @@ class Map { offset += 8; // tiles offsets - let res = new TilesOffsets(filename, offset); + let bytes_per_tile_index = 2; + if (this.grid_size[0] * this.grid_size[1]) >= 65536 { + bytes_per_tile_index = 3; + } + let res = new TilesOffsets(filename, offset, bytes_per_tile_index); this.tiles_offsets = res[0]; offset = res[1]; @@ -314,6 +322,10 @@ class Interests { this.side = side_array[0]; offset += 8; + let bytes_per_tile_index = 2; + if (this.grid_size[0] * this.grid_size[1]) >= 65536 { + bytes_per_tile_index = 3; + } let res = new TilesOffsets(filename, offset); offset = res[1]; this.offsets = res[0]; diff --git a/apps/gipy/pkg/gps.d.ts b/apps/gipy/pkg/gps.d.ts index 9ad646068..ff6b5360a 100644 --- a/apps/gipy/pkg/gps.d.ts +++ b/apps/gipy/pkg/gps.d.ts @@ -80,11 +80,11 @@ export interface InitOutput { readonly __wbindgen_malloc: (a: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number) => number; readonly __wbindgen_export_2: WebAssembly.Table; - readonly wasm_bindgen__convert__closures__invoke1_mut__hc18aa489d857d6a0: (a: number, b: number, c: number) => void; + readonly _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hc9126e38b2d002d3: (a: number, b: number, c: number) => void; readonly __wbindgen_add_to_stack_pointer: (a: number) => number; readonly __wbindgen_free: (a: number, b: number) => void; readonly __wbindgen_exn_store: (a: number) => void; - readonly wasm_bindgen__convert__closures__invoke2_mut__h41c3b5af183df3b2: (a: number, b: number, c: number, d: number) => void; + readonly wasm_bindgen__convert__closures__invoke2_mut__h56f743924f545497: (a: number, b: number, c: number, d: number) => void; } export type SyncInitInput = BufferSource | WebAssembly.Module; diff --git a/apps/gipy/pkg/gps.js b/apps/gipy/pkg/gps.js index 0f8b74804..7416d3409 100644 --- a/apps/gipy/pkg/gps.js +++ b/apps/gipy/pkg/gps.js @@ -98,6 +98,14 @@ function takeObject(idx) { return ret; } +const cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + +cachedTextDecoder.decode(); + +function getStringFromWasm0(ptr, len) { + return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); +} + function addHeapObject(obj) { if (heap_next === heap.length) heap.push(heap.length + 1); const idx = heap_next; @@ -107,14 +115,6 @@ function addHeapObject(obj) { return idx; } -const cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); - -cachedTextDecoder.decode(); - -function getStringFromWasm0(ptr, len) { - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); -} - function debugString(val) { // primitive types const type = typeof val; @@ -205,7 +205,7 @@ function makeMutClosure(arg0, arg1, dtor, f) { return real; } function __wbg_adapter_24(arg0, arg1, arg2) { - wasm.wasm_bindgen__convert__closures__invoke1_mut__hc18aa489d857d6a0(arg0, arg1, addHeapObject(arg2)); + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hc9126e38b2d002d3(arg0, arg1, addHeapObject(arg2)); } function _assertClass(instance, klass) { @@ -389,7 +389,7 @@ function handleError(f, args) { } } function __wbg_adapter_86(arg0, arg1, arg2, arg3) { - wasm.wasm_bindgen__convert__closures__invoke2_mut__h41c3b5af183df3b2(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); + wasm.wasm_bindgen__convert__closures__invoke2_mut__h56f743924f545497(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); } /** @@ -464,10 +464,6 @@ function getImports() { imports.wbg.__wbindgen_object_drop_ref = function(arg0) { takeObject(arg0); }; - imports.wbg.__wbindgen_object_clone_ref = function(arg0) { - const ret = getObject(arg0); - return addHeapObject(ret); - }; imports.wbg.__wbindgen_string_new = function(arg0, arg1) { const ret = getStringFromWasm0(arg0, arg1); return addHeapObject(ret); @@ -476,6 +472,10 @@ function getImports() { const ret = fetch(getObject(arg0)); return addHeapObject(ret); }; + imports.wbg.__wbindgen_object_clone_ref = function(arg0) { + const ret = getObject(arg0); + return addHeapObject(ret); + }; imports.wbg.__wbg_signal_31753ac644b25fbb = function(arg0) { const ret = getObject(arg0).signal; return addHeapObject(ret); @@ -665,10 +665,6 @@ function getImports() { const ret = new Uint8Array(getObject(arg0)); return addHeapObject(ret); }; - imports.wbg.__wbg_stringify_d6471d300ded9b68 = function() { return handleError(function (arg0) { - const ret = JSON.stringify(getObject(arg0)); - return addHeapObject(ret); - }, arguments) }; imports.wbg.__wbg_get_765201544a2b6869 = function() { return handleError(function (arg0, arg1) { const ret = Reflect.get(getObject(arg0), getObject(arg1)); return addHeapObject(ret); @@ -681,6 +677,10 @@ function getImports() { const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2)); return ret; }, arguments) }; + imports.wbg.__wbg_stringify_d6471d300ded9b68 = function() { return handleError(function (arg0) { + const ret = JSON.stringify(getObject(arg0)); + return addHeapObject(ret); + }, arguments) }; imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { const ret = debugString(getObject(arg1)); const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); @@ -695,8 +695,8 @@ function getImports() { const ret = wasm.memory; return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper2356 = function(arg0, arg1, arg2) { - const ret = makeMutClosure(arg0, arg1, 293, __wbg_adapter_24); + imports.wbg.__wbindgen_closure_wrapper2340 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 300, __wbg_adapter_24); return addHeapObject(ret); }; diff --git a/apps/gipy/pkg/gps_bg.wasm b/apps/gipy/pkg/gps_bg.wasm index c9e212a13..9a0c28162 100644 Binary files a/apps/gipy/pkg/gps_bg.wasm and b/apps/gipy/pkg/gps_bg.wasm differ diff --git a/apps/gipy/pkg/gps_bg.wasm.d.ts b/apps/gipy/pkg/gps_bg.wasm.d.ts index 251d9c3b1..df018acbe 100644 --- a/apps/gipy/pkg/gps_bg.wasm.d.ts +++ b/apps/gipy/pkg/gps_bg.wasm.d.ts @@ -14,8 +14,8 @@ export function gps_from_area(a: number, b: number, c: number, d: number, e: num export function __wbindgen_malloc(a: number): number; export function __wbindgen_realloc(a: number, b: number, c: number): number; export const __wbindgen_export_2: WebAssembly.Table; -export function wasm_bindgen__convert__closures__invoke1_mut__hc18aa489d857d6a0(a: number, b: number, c: number): void; +export function _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hc9126e38b2d002d3(a: number, b: number, c: number): void; export function __wbindgen_add_to_stack_pointer(a: number): number; export function __wbindgen_free(a: number, b: number): void; export function __wbindgen_exn_store(a: number): void; -export function wasm_bindgen__convert__closures__invoke2_mut__h41c3b5af183df3b2(a: number, b: number, c: number, d: number): void; +export function wasm_bindgen__convert__closures__invoke2_mut__h56f743924f545497(a: number, b: number, c: number, d: number): void;