diff --git a/xtrn/maze/service.js b/xtrn/maze/service.js index 9ab279fcc972c86b7033d8e22055b572b4df84bb..2ed94efcc1ef1b43df1075dd489c5b0eed5725bb 100644 --- a/xtrn/maze/service.js +++ b/xtrn/maze/service.js @@ -1,6 +1,7 @@ var root = argv[0]; js.branch_limit = 0; +load("backgroundlog.js"); load("json-client.js"); load("event-timer.js"); load("funclib.js"); @@ -100,7 +101,7 @@ function handleDisco(update) { /* delete a game */ function deleteGame(gameNumber) { - log(LOG_WARNING,"removing empty game #" + gameNumber); + log(LOG_DEBUG,"removing empty game #" + gameNumber); client.remove(game_id,"games." + gameNumber,2); if(data.timers[gameNumber]) data.timers[gameNumber].abort = true; @@ -109,7 +110,7 @@ function deleteGame(gameNumber) { /* delete a player */ function deletePlayer(gameNumber,playerName) { - log(LOG_WARNING,"removing player from game " + gameNumber); + log(LOG_DEBUG,"removing player from game " + gameNumber); client.remove(game_id,"games." + gameNumber + ".players." + playerName,2) delete data.games[gameNumber].players[playerName]; } @@ -170,7 +171,7 @@ function getReady(game) { function startGame(game) { /* verify that the game is still ready */ if(game.status == status.STARTING) { - log("starting race: " + game.gameNumber); + log(LOG_DEBUG,"starting race: " + game.gameNumber); client.lock("mazerace","games." + game.gameNumber + ".status",2); game.status = status.RACING; createMaze(game); @@ -229,7 +230,7 @@ function init() { /* main loop */ function main() { - while(client.socket.is_connected && !js.terminated && !parent_queue.poll()) { + while(!js.terminated && !parent_queue.poll()) { if(client.socket.poll(.1)) client.cycle(); timer.cycle(); @@ -248,4 +249,4 @@ function Race(gameNumber,players,damage,fog,maze,start,finish) { } init(); -main(); +main(); \ No newline at end of file diff --git a/xtrn/synchronetris/service.js b/xtrn/synchronetris/service.js index a11d0340d596846ba30892cf9ea7f9356b87a8ec..7e5ee45caa9a9bc3e2266ffbf0abf1ddda52d2fc 100644 --- a/xtrn/synchronetris/service.js +++ b/xtrn/synchronetris/service.js @@ -1,5 +1,15 @@ var root = argv[0]; +if(!file_exists(root + "server.ini")) { + throw("server initialization file missing"); +} +/* load server connection information from server.ini */ +var server_file = new File(root + "server.ini"); +server_file.open('r',true); +var serverAddr=server_file.iniGetValue(null,"host"); +var serverPort=server_file.iniGetValue(null,"port"); +server_file.close(); +load("backgroundlog.js"); load("json-client.js"); load("event-timer.js"); load("funclib.js"); @@ -7,12 +17,12 @@ load("sbbsdefs.js"); var game_id = "synchronetris"; var timer = new Timer(); -var client = new JSONClient("localhost",10088); +var client = new JSONClient(serverAddr,serverPort); var settings = loadSettings(); var data = { - games:client.read(game_id,"games",1), - players:client.read(game_id,"players",1), + players:{}, + games:{}, timers:{} }; @@ -88,7 +98,7 @@ function handleDisco(subscription) { /* delete a game */ function deleteGame(gameNumber) { - log(LOG_WARNING,"removing empty game #" + gameNumber); + log(LOG_DEBUG,"removing empty game #" + gameNumber); client.remove(game_id,"games." + gameNumber,2); if(data.timers[gameNumber]) data.timers[gameNumber].abort = true; @@ -97,7 +107,7 @@ function deleteGame(gameNumber) { /* delete a player */ function deletePlayer(gameNumber,playerName) { - log(LOG_WARNING,"removing player from game " + gameNumber); + log(LOG_DEBUG,"removing player from game " + gameNumber); client.remove(game_id,"games." + gameNumber + ".players." + playerName,2) delete data.games[gameNumber].players[playerName]; } @@ -218,14 +228,15 @@ function init() { client.subscribe(game_id,"games"); client.subscribe(game_id,"players"); client.write(game_id,"settings",settings,2); + client.write(game_id,"games",{},2); client.callback = processUpdate; - if(!data.games) - data.games = {}; + data.players=client.read(game_id,"players",1); if(!data.players) data.players = {}; log(LOG_INFO,"Synchronetris background service initialized"); } +/* load game settings */ function loadSettings() { var file=new File(root + "synchronetris.ini"); file.open('r',true); @@ -236,7 +247,7 @@ function loadSettings() { /* main loop */ function main() { - while(client.socket_is_connected && !js.terminated && !parent_queue.poll()) { + while(!js.terminated && !parent_queue.poll()) { if(client.socket.poll(.1)) client.cycle(); timer.cycle(); @@ -244,4 +255,4 @@ function main() { } init(); -main(); +main(); \ No newline at end of file