mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 22:36:57 +02:00
Separating the ui to get the url from the actual loading to maybe avoid playbackMaster.js crash?
This commit is contained in:
parent
921cd94c07
commit
ff3ae85245
2 changed files with 53 additions and 28 deletions
|
@ -141,7 +141,7 @@ function printDebug(message) {
|
||||||
} else {
|
} else {
|
||||||
// Master think the agent is hired but not the other way around, forget about it
|
// Master think the agent is hired but not the other way around, forget about it
|
||||||
printDebug("New agent still sending ready ? " + message.src + " " + agentIndex + " Forgeting about it");
|
printDebug("New agent still sending ready ? " + message.src + " " + agentIndex + " Forgeting about it");
|
||||||
this._removeAgent(agentIndex);
|
this._removeHiredAgent(agentIndex);
|
||||||
}
|
}
|
||||||
} else if (message.command == AGENT_ALIVE) {
|
} else if (message.command == AGENT_ALIVE) {
|
||||||
// check to see if we know about this agent
|
// check to see if we know about this agent
|
||||||
|
@ -199,7 +199,7 @@ function printDebug(message) {
|
||||||
var actor = this.hiredActors[i];
|
var actor = this.hiredActors[i];
|
||||||
var lastAlive = actor.incrementAliveCycle()
|
var lastAlive = actor.incrementAliveCycle()
|
||||||
if (lastAlive > NUM_CYCLES_BEFORE_RESET) {
|
if (lastAlive > NUM_CYCLES_BEFORE_RESET) {
|
||||||
printDebug("Agent Lost, firing Agent #" + i + JSON.stringify(actor));
|
printDebug("Agent Lost, firing Agent #" + i + " ID " + actor.agentID);
|
||||||
lostAgents.push(i);
|
lostAgents.push(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -228,25 +228,31 @@ function printDebug(message) {
|
||||||
|
|
||||||
MasterController.prototype.fireAgent = function(actor) {
|
MasterController.prototype.fireAgent = function(actor) {
|
||||||
// check to see if we know about this agent
|
// check to see if we know about this agent
|
||||||
printDebug("MasterController.prototype.fireAgent" + JSON.stringify(actor) + " " + JSON.stringify(this.knownAgents));
|
printDebug("MasterController.prototype.fireAgent" + actor.agentID);
|
||||||
|
|
||||||
|
// Try the waiting list first
|
||||||
var waitingIndex = this.hiringAgentsQueue.indexOf(actor);
|
var waitingIndex = this.hiringAgentsQueue.indexOf(actor);
|
||||||
if (waitingIndex >= 0) {
|
if (waitingIndex >= 0) {
|
||||||
printDebug("MasterController.prototype.fireAgent found actor on waiting queue #" + waitingIndex);
|
printDebug("fireAgent found actor on waiting queue #" + waitingIndex);
|
||||||
this.hiringAgentsQueue.splice(waitingIndex, 1);
|
var lostActor = this.hiringAgentsQueue.splice(waitingIndex, 1);
|
||||||
|
if (lostActor.length) {
|
||||||
|
lostActor[0].onFired(lostActor[0]);
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// then the hired agents
|
||||||
var actorIndex = this.knownAgents.indexOf(actor.agentID);
|
var actorIndex = this.knownAgents.indexOf(actor.agentID);
|
||||||
if (actorIndex >= 0) {
|
if (actorIndex >= 0) {
|
||||||
printDebug("fired actor found #" + actorIndex);
|
printDebug("fired actor found #" + actorIndex);
|
||||||
this._removeAgent(actorIndex);
|
this._removeHiredAgent(actorIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MasterController.prototype._removeAgent = function(actorIndex) {
|
MasterController.prototype._removeHiredAgent = function(actorIndex) {
|
||||||
// check to see if we know about this agent
|
// check to see if we know about this agent
|
||||||
if (actorIndex >= 0) {
|
if (actorIndex >= 0) {
|
||||||
printDebug("MasterController.prototype._removeAgent #" + actorIndex + " " + JSON.stringify(this))
|
printDebug("MasterController.prototype._removeHiredAgent #" + this.knownAgents[actorIndex])
|
||||||
this.knownAgents.splice(actorIndex, 1);
|
this.knownAgents.splice(actorIndex, 1);
|
||||||
|
|
||||||
var lostActor = this.hiredActors[actorIndex];
|
var lostActor = this.hiredActors[actorIndex];
|
||||||
|
|
|
@ -61,6 +61,8 @@ Actor.prototype.onMousePressEvent = function(clickedOverlay) {
|
||||||
masterController.sendCommand(this.agentID, PLAY_LOOP);
|
masterController.sendCommand(this.agentID, PLAY_LOOP);
|
||||||
} else if (this.stopIcon === this.toolbar.clicked(clickedOverlay, false)) {
|
} else if (this.stopIcon === this.toolbar.clicked(clickedOverlay, false)) {
|
||||||
masterController.sendCommand(this.agentID, STOP);
|
masterController.sendCommand(this.agentID, STOP);
|
||||||
|
} else if (this.nameOverlay === clickedOverlay) {
|
||||||
|
print("Actor: " + JSON.stringify(this));
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -136,6 +138,8 @@ Director = function() {
|
||||||
this.actors = new Array();
|
this.actors = new Array();
|
||||||
this.toolbar = null;
|
this.toolbar = null;
|
||||||
this._buildUI();
|
this._buildUI();
|
||||||
|
this.requestPerformanceLoad = false;
|
||||||
|
this.performanceURL = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
Director.prototype.destroy = function () {
|
Director.prototype.destroy = function () {
|
||||||
|
@ -234,27 +238,11 @@ Director.prototype.onMousePressEvent = function(clickedOverlay) {
|
||||||
input_text = Window.prompt("Insert the url of the clip: ","");
|
input_text = Window.prompt("Insert the url of the clip: ","");
|
||||||
if (!(input_text === "" || input_text === null)) {
|
if (!(input_text === "" || input_text === null)) {
|
||||||
print("Performance file ready to be loaded url = " + input_text);
|
print("Performance file ready to be loaded url = " + input_text);
|
||||||
var urlpartition = input_text.split(".");
|
this.requestPerformanceLoad = true;
|
||||||
print(urlpartition[0]);
|
this.performanceURL = input_text;
|
||||||
print(urlpartition[1]);
|
|
||||||
|
|
||||||
if ((urlpartition.length > 1) && (urlpartition[urlpartition.length - 1] === "hfr")) {
|
|
||||||
print("detected a unique clip url");
|
|
||||||
var oneClipPerformance = new Object();
|
|
||||||
oneClipPerformance.avatarClips = new Array();
|
|
||||||
oneClipPerformance.avatarClips[0] = input_text;
|
|
||||||
|
|
||||||
print(JSON.stringify(oneClipPerformance));
|
|
||||||
|
|
||||||
// we make a local simple performance file with a single clip and pipe in directly
|
|
||||||
this.onPerformanceLoaded(oneClipPerformance);
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
// FIXME: I cannot pass directly this.onPerformanceLoaded, is that exepected ?
|
|
||||||
var localThis = this;
|
|
||||||
Assets.downloadData(input_text, function(data) { localThis.onPerformanceLoaded(JSON.parse(data)); });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
} else if (this.nameOverlay === clickedOverlay) {
|
||||||
|
print("Director: " + JSON.stringify(this));
|
||||||
} else {
|
} else {
|
||||||
// Check individual controls
|
// Check individual controls
|
||||||
for (var i = 0; i < this.actors.length; i++) {
|
for (var i = 0; i < this.actors.length; i++) {
|
||||||
|
@ -285,6 +273,32 @@ Director.prototype.moveUI = function(pos) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Director.prototype.reloadPerformance = function() {
|
||||||
|
this.requestPerformanceLoad = false;
|
||||||
|
|
||||||
|
var urlpartition = this.performanceURL.split(".");
|
||||||
|
print(urlpartition[0]);
|
||||||
|
print(urlpartition[1]);
|
||||||
|
|
||||||
|
if ((urlpartition.length > 1) && (urlpartition[urlpartition.length - 1] === "hfr")) {
|
||||||
|
print("detected a unique clip url");
|
||||||
|
var oneClipPerformance = new Object();
|
||||||
|
oneClipPerformance.avatarClips = new Array();
|
||||||
|
oneClipPerformance.avatarClips[0] = input_text;
|
||||||
|
|
||||||
|
print(JSON.stringify(oneClipPerformance));
|
||||||
|
|
||||||
|
// we make a local simple performance file with a single clip and pipe in directly
|
||||||
|
this.onPerformanceLoaded(oneClipPerformance);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
// FIXME: I cannot pass directly this.onPerformanceLoaded, is that exepected ?
|
||||||
|
var localThis = this;
|
||||||
|
Assets.downloadData(input_text, function(data) { localThis.onPerformanceLoaded(JSON.parse(data)); });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Director.prototype.onPerformanceLoaded = function(performanceJSON) {
|
Director.prototype.onPerformanceLoaded = function(performanceJSON) {
|
||||||
// First fire all the current actors
|
// First fire all the current actors
|
||||||
this.clearActors();
|
this.clearActors();
|
||||||
|
@ -377,6 +391,11 @@ function update(deltaTime) {
|
||||||
moveUI();
|
moveUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (director.requestPerformanceLoad) {
|
||||||
|
print("reloadPerformance " + director.performanceURL);
|
||||||
|
director.reloadPerformance();
|
||||||
|
}
|
||||||
|
|
||||||
masterController.update(deltaTime);
|
masterController.update(deltaTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue