Fix for negative coordinates
parent
dd692187f7
commit
1c40c44d7e
|
|
@ -87,3 +87,8 @@
|
||||||
* Reduce framerate if locked
|
* Reduce framerate if locked
|
||||||
* Stroke to move around in the map
|
* Stroke to move around in the map
|
||||||
* Fix for missing paths in display
|
* Fix for missing paths in display
|
||||||
|
|
||||||
|
0.20:
|
||||||
|
* Large display for instant speed
|
||||||
|
* Bugfix for negative coordinates
|
||||||
|
* Disable menu while the map is not loaded
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,15 @@
|
||||||
|
|
||||||
|
+ disable backlight during day ?
|
||||||
|
+ put back foot only ways
|
||||||
|
+ disable bluetooth
|
||||||
|
+ disable lcd completely
|
||||||
|
+ try fiddling with jit
|
||||||
|
+ put back street names
|
||||||
|
+ put back shortest paths but with points cache this time and jit
|
||||||
|
+ how to display paths from shortest path ?
|
||||||
|
|
||||||
|
|
||||||
|
misc:
|
||||||
+ use Bangle.project(latlong)
|
+ use Bangle.project(latlong)
|
||||||
|
|
||||||
* additional features
|
|
||||||
|
|
||||||
- config screen
|
|
||||||
- are we on foot (and should use compass)
|
|
||||||
|
|
||||||
- we need to buzz 200m before sharp turns (or even better, 30seconds)
|
|
||||||
(and look at more than next point)
|
|
||||||
|
|
||||||
- display distance to next water/toilet ?
|
|
||||||
- display scale (100m)
|
|
||||||
|
|
||||||
- compress path ?
|
|
||||||
|
|
||||||
* misc
|
|
||||||
|
|
||||||
- code is becoming messy
|
|
||||||
|
|
|
||||||
|
|
@ -152,7 +152,7 @@ class Map {
|
||||||
color_array[2] / 255,
|
color_array[2] / 255,
|
||||||
];
|
];
|
||||||
offset += 3;
|
offset += 3;
|
||||||
this.first_tile = Uint32Array(buffer, offset, 2); // absolute tile id of first tile
|
this.first_tile = Int32Array(buffer, offset, 2); // absolute tile id of first tile
|
||||||
offset += 2 * 4;
|
offset += 2 * 4;
|
||||||
this.grid_size = Uint32Array(buffer, offset, 2); // tiles width and height
|
this.grid_size = Uint32Array(buffer, offset, 2); // tiles width and height
|
||||||
offset += 2 * 4;
|
offset += 2 * 4;
|
||||||
|
|
@ -471,7 +471,7 @@ class Map {
|
||||||
|
|
||||||
class Interests {
|
class Interests {
|
||||||
constructor(buffer, offset) {
|
constructor(buffer, offset) {
|
||||||
this.first_tile = Uint32Array(buffer, offset, 2); // absolute tile id of first tile
|
this.first_tile = Int32Array(buffer, offset, 2); // absolute tile id of first tile
|
||||||
offset += 2 * 4;
|
offset += 2 * 4;
|
||||||
this.grid_size = Uint32Array(buffer, offset, 2); // tiles width and height
|
this.grid_size = Uint32Array(buffer, offset, 2); // tiles width and height
|
||||||
offset += 2 * 4;
|
offset += 2 * 4;
|
||||||
|
|
@ -971,12 +971,18 @@ class Status {
|
||||||
.drawString(
|
.drawString(
|
||||||
"" +
|
"" +
|
||||||
approximate_speed +
|
approximate_speed +
|
||||||
"km/h (in." +
|
"km/h",
|
||||||
approximate_instant_speed +
|
|
||||||
")",
|
|
||||||
0,
|
0,
|
||||||
g.getHeight() - 15
|
g.getHeight() - 15
|
||||||
);
|
);
|
||||||
|
|
||||||
|
g.setFont("6x8:3")
|
||||||
|
.setFontAlign(1, -1, 0)
|
||||||
|
.drawString(
|
||||||
|
""+approximate_instant_speed,
|
||||||
|
g.getWidth(),
|
||||||
|
g.getHeight() - 22
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.path === null || this.position === null) {
|
if (this.path === null || this.position === null) {
|
||||||
|
|
@ -1374,6 +1380,46 @@ function start_gipy(path, maps, interests) {
|
||||||
console.log("starting");
|
console.log("starting");
|
||||||
status = new Status(path, maps, interests);
|
status = new Status(path, maps, interests);
|
||||||
|
|
||||||
|
setWatch(
|
||||||
|
function () {
|
||||||
|
if (in_menu) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
in_menu = true;
|
||||||
|
const menu = {
|
||||||
|
"": { title: "choose action" },
|
||||||
|
"Go Backward": {
|
||||||
|
value: go_backwards,
|
||||||
|
format: (v) => (v ? "On" : "Off"),
|
||||||
|
onchange: (v) => {
|
||||||
|
go_backwards = v;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Zoom: {
|
||||||
|
value: zoomed,
|
||||||
|
format: (v) => (v ? "In" : "Out"),
|
||||||
|
onchange: (v) => {
|
||||||
|
status.invalidate_caches();
|
||||||
|
zoomed = v;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"back to map": function () {
|
||||||
|
in_menu = false;
|
||||||
|
E.showMenu();
|
||||||
|
g.clear();
|
||||||
|
g.flip();
|
||||||
|
if (status !== null) {
|
||||||
|
status.display();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
E.showMenu(menu);
|
||||||
|
},
|
||||||
|
BTN1,
|
||||||
|
{ repeat: true }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
if (status.path !== null) {
|
if (status.path !== null) {
|
||||||
let start = status.path.point(0);
|
let start = status.path.point(0);
|
||||||
status.displayed_position = start;
|
status.displayed_position = start;
|
||||||
|
|
@ -1455,44 +1501,6 @@ function start_gipy(path, maps, interests) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setWatch(
|
|
||||||
function () {
|
|
||||||
if (in_menu) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
in_menu = true;
|
|
||||||
const menu = {
|
|
||||||
"": { title: "choose action" },
|
|
||||||
"Go Backward": {
|
|
||||||
value: go_backwards,
|
|
||||||
format: (v) => (v ? "On" : "Off"),
|
|
||||||
onchange: (v) => {
|
|
||||||
go_backwards = v;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Zoom: {
|
|
||||||
value: zoomed,
|
|
||||||
format: (v) => (v ? "In" : "Out"),
|
|
||||||
onchange: (v) => {
|
|
||||||
status.invalidate_caches();
|
|
||||||
zoomed = v;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"back to map": function () {
|
|
||||||
in_menu = false;
|
|
||||||
E.showMenu();
|
|
||||||
g.clear();
|
|
||||||
g.flip();
|
|
||||||
if (status !== null) {
|
|
||||||
status.display();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
||||||
E.showMenu(menu);
|
|
||||||
},
|
|
||||||
BTN1,
|
|
||||||
{ repeat: true }
|
|
||||||
);
|
|
||||||
|
|
||||||
let files = s.list(".gps");
|
let files = s.list(".gps");
|
||||||
if (files.length <= 1) {
|
if (files.length <= 1) {
|
||||||
|
|
|
||||||
|
|
@ -67,11 +67,11 @@ export interface InitOutput {
|
||||||
readonly __wbindgen_malloc: (a: number) => number;
|
readonly __wbindgen_malloc: (a: number) => number;
|
||||||
readonly __wbindgen_realloc: (a: number, b: number, c: number) => number;
|
readonly __wbindgen_realloc: (a: number, b: number, c: number) => number;
|
||||||
readonly __wbindgen_export_2: WebAssembly.Table;
|
readonly __wbindgen_export_2: WebAssembly.Table;
|
||||||
readonly _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hab13c10d53cd1c5a: (a: number, b: number, c: number) => void;
|
readonly _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__heb2f4d39a212d7d1: (a: number, b: number, c: number) => void;
|
||||||
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
|
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
|
||||||
readonly __wbindgen_free: (a: number, b: number) => void;
|
readonly __wbindgen_free: (a: number, b: number) => void;
|
||||||
readonly __wbindgen_exn_store: (a: number) => void;
|
readonly __wbindgen_exn_store: (a: number) => void;
|
||||||
readonly wasm_bindgen__convert__closures__invoke2_mut__h26ce002f44a5439b: (a: number, b: number, c: number, d: number) => void;
|
readonly wasm_bindgen__convert__closures__invoke2_mut__h362f82c7669db137: (a: number, b: number, c: number, d: number) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
||||||
|
|
|
||||||
|
|
@ -205,7 +205,7 @@ function makeMutClosure(arg0, arg1, dtor, f) {
|
||||||
return real;
|
return real;
|
||||||
}
|
}
|
||||||
function __wbg_adapter_24(arg0, arg1, arg2) {
|
function __wbg_adapter_24(arg0, arg1, arg2) {
|
||||||
wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hab13c10d53cd1c5a(arg0, arg1, addHeapObject(arg2));
|
wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__heb2f4d39a212d7d1(arg0, arg1, addHeapObject(arg2));
|
||||||
}
|
}
|
||||||
|
|
||||||
function _assertClass(instance, klass) {
|
function _assertClass(instance, klass) {
|
||||||
|
|
@ -369,7 +369,7 @@ function handleError(f, args) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function __wbg_adapter_84(arg0, arg1, arg2, arg3) {
|
function __wbg_adapter_84(arg0, arg1, arg2, arg3) {
|
||||||
wasm.wasm_bindgen__convert__closures__invoke2_mut__h26ce002f44a5439b(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
|
wasm.wasm_bindgen__convert__closures__invoke2_mut__h362f82c7669db137(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -460,6 +460,21 @@ function getImports() {
|
||||||
const ret = getObject(arg0).fetch(getObject(arg1));
|
const ret = getObject(arg0).fetch(getObject(arg1));
|
||||||
return addHeapObject(ret);
|
return addHeapObject(ret);
|
||||||
};
|
};
|
||||||
|
imports.wbg.__wbg_signal_31753ac644b25fbb = function(arg0) {
|
||||||
|
const ret = getObject(arg0).signal;
|
||||||
|
return addHeapObject(ret);
|
||||||
|
};
|
||||||
|
imports.wbg.__wbg_new_6396e586b56e1dff = function() { return handleError(function () {
|
||||||
|
const ret = new AbortController();
|
||||||
|
return addHeapObject(ret);
|
||||||
|
}, arguments) };
|
||||||
|
imports.wbg.__wbg_abort_064ae59cda5cd244 = function(arg0) {
|
||||||
|
getObject(arg0).abort();
|
||||||
|
};
|
||||||
|
imports.wbg.__wbg_newwithstrandinit_05d7180788420c40 = function() { return handleError(function (arg0, arg1, arg2) {
|
||||||
|
const ret = new Request(getStringFromWasm0(arg0, arg1), getObject(arg2));
|
||||||
|
return addHeapObject(ret);
|
||||||
|
}, arguments) };
|
||||||
imports.wbg.__wbg_new_2d0053ee81e4dd2a = function() { return handleError(function () {
|
imports.wbg.__wbg_new_2d0053ee81e4dd2a = function() { return handleError(function () {
|
||||||
const ret = new Headers();
|
const ret = new Headers();
|
||||||
return addHeapObject(ret);
|
return addHeapObject(ret);
|
||||||
|
|
@ -496,21 +511,6 @@ function getImports() {
|
||||||
const ret = getObject(arg0).text();
|
const ret = getObject(arg0).text();
|
||||||
return addHeapObject(ret);
|
return addHeapObject(ret);
|
||||||
}, arguments) };
|
}, arguments) };
|
||||||
imports.wbg.__wbg_signal_31753ac644b25fbb = function(arg0) {
|
|
||||||
const ret = getObject(arg0).signal;
|
|
||||||
return addHeapObject(ret);
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_new_6396e586b56e1dff = function() { return handleError(function () {
|
|
||||||
const ret = new AbortController();
|
|
||||||
return addHeapObject(ret);
|
|
||||||
}, arguments) };
|
|
||||||
imports.wbg.__wbg_abort_064ae59cda5cd244 = function(arg0) {
|
|
||||||
getObject(arg0).abort();
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_newwithstrandinit_05d7180788420c40 = function() { return handleError(function (arg0, arg1, arg2) {
|
|
||||||
const ret = new Request(getStringFromWasm0(arg0, arg1), getObject(arg2));
|
|
||||||
return addHeapObject(ret);
|
|
||||||
}, arguments) };
|
|
||||||
imports.wbg.__wbg_new_abda76e883ba8a5f = function() {
|
imports.wbg.__wbg_new_abda76e883ba8a5f = function() {
|
||||||
const ret = new Error();
|
const ret = new Error();
|
||||||
return addHeapObject(ret);
|
return addHeapObject(ret);
|
||||||
|
|
@ -675,8 +675,8 @@ function getImports() {
|
||||||
const ret = wasm.memory;
|
const ret = wasm.memory;
|
||||||
return addHeapObject(ret);
|
return addHeapObject(ret);
|
||||||
};
|
};
|
||||||
imports.wbg.__wbindgen_closure_wrapper2298 = function(arg0, arg1, arg2) {
|
imports.wbg.__wbindgen_closure_wrapper2245 = function(arg0, arg1, arg2) {
|
||||||
const ret = makeMutClosure(arg0, arg1, 260, __wbg_adapter_24);
|
const ret = makeMutClosure(arg0, arg1, 267, __wbg_adapter_24);
|
||||||
return addHeapObject(ret);
|
return addHeapObject(ret);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -12,8 +12,8 @@ export function gps_from_area(a: number, b: number, c: number, d: number): numbe
|
||||||
export function __wbindgen_malloc(a: number): number;
|
export function __wbindgen_malloc(a: number): number;
|
||||||
export function __wbindgen_realloc(a: number, b: number, c: number): number;
|
export function __wbindgen_realloc(a: number, b: number, c: number): number;
|
||||||
export const __wbindgen_export_2: WebAssembly.Table;
|
export const __wbindgen_export_2: WebAssembly.Table;
|
||||||
export function _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hab13c10d53cd1c5a(a: number, b: number, c: number): void;
|
export function _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__heb2f4d39a212d7d1(a: number, b: number, c: number): void;
|
||||||
export function __wbindgen_add_to_stack_pointer(a: number): number;
|
export function __wbindgen_add_to_stack_pointer(a: number): number;
|
||||||
export function __wbindgen_free(a: number, b: number): void;
|
export function __wbindgen_free(a: number, b: number): void;
|
||||||
export function __wbindgen_exn_store(a: number): void;
|
export function __wbindgen_exn_store(a: number): void;
|
||||||
export function wasm_bindgen__convert__closures__invoke2_mut__h26ce002f44a5439b(a: number, b: number, c: number, d: number): void;
|
export function wasm_bindgen__convert__closures__invoke2_mut__h362f82c7669db137(a: number, b: number, c: number, d: number): void;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue