#[derive(Serialize,Debug)]
struct SessionRenderContext {
clientid : u64,
+ player : u32, // xxx
defs : Vec<String>,
uses : Vec<String>,
}
pr.p.svg_select(&pri)));
defs.push(pr.p.svg_x_defs(&pri));
- uses.push(format!(r##"<use href="#{}" data-p="{}" x="{}" y="{}"/>"##,
+ uses.push(format!(
+ r##"<use href="#{}" data-p="{}" data-g="" x="{}" y="{}"/>"##,
pri.id_piece(),
pri.id,
pr.pos[0], pr.pos[1]));
SessionRenderContext {
clientid : clientid.as_ffi(),
+ player : 2, // xxx
defs,
uses,
}
var our_dnd_type = "text/puvnex-game-server-dummy";
api_queue = [];
api_posting = false;
+var us;
function xhr_post_then(url,data,good) {
var xhr = new XMLHttpRequest();
// dataset
// delt.p piece id (static)
-// delt.g grabbed user (+ve integer, null, or -1 meaning us)
+// delt.g grabbed user (>=0 integer, or "")
const DRAGGING = { // bitmask
NO : 0,
if (!e.target.dataset.p) { return; }
drag_cancel();
delt = e.target;
- if (delt.dataset.g > 0) { return; }
+ var g =delt.dataset.g;
+ if (g != "" && g != us) { return; }
dcx = e.clientX;
dcy = e.clientY;
dox = parseFloat(delt.getAttributeNS(null,"x"));
doy = parseFloat(delt.getAttributeNS(null,"y"));
console.log('mousedown ...', delt.dataset.g, !!delt.dataset.g);
- if (delt.dataset.g < 0) {
+ if (g == us) {
dragging = DRAGGING.MAYBE_UNGRAB;
} else {
dragging = DRAGGING.MAYBE_GRAB;
- delt.dataset.g = -1;
+ delt.dataset.g = us;
api('grab', {
t : token,
p : delt.dataset.p,
function drag_mouseup(e) {
console.log('mouseup', dragging);
drag_mousemove(e);
- console.log('mouseup ...', dragging);
+ //console.log('mouseup ...', dragging);
if (dragging == DRAGGING.MAYBE_UNGRAB ||
dragging == (DRAGGING.MAYBE_GRAB | DRAGGING.YES)) {
- delt.dataset.g = null;
+ delt.dataset.g = "";
api('ungrab', {
t : token,
p : delt.dataset.p,
}
function startup() {
- clientid = document.getElementById("main-body").dataset.clientid;
+ var body = document.getElementById("main-body");
+ clientid = body.dataset.clientid;
+ us = body.dataset.us;
status_node = document.getElementById('status');
status_node.innerHTML = 'js-done'
dragthresh = 5;