summaryrefslogtreecommitdiff
path: root/game/04_init.rpy
diff options
context:
space:
mode:
Diffstat (limited to 'game/04_init.rpy')
-rw-r--r--game/04_init.rpy75
1 files changed, 75 insertions, 0 deletions
diff --git a/game/04_init.rpy b/game/04_init.rpy
new file mode 100644
index 0000000..7cbf54a
--- /dev/null
+++ b/game/04_init.rpy
@@ -0,0 +1,75 @@
+########################################################################################
+# This file is part of Spheres.
+# Copyright (C) 2019 Jesusalva
+
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+########################################################################################
+# Definitions
+
+init python:
+ # FIXME: Drop dead if session_id mismatches (new "token")
+ # Same as ondata?
+ def onmsg(self, message):
+ global tr_load, tr_val, tr_busy
+ stdout("Server : " + message)
+
+ # Inform whatever is waiting for us that a reply was obtained
+ tr_load=True
+ tr_val=str(received)
+ # We do not clean tr_busy here
+ return
+
+ def ondata(self, msg, dtype, cont):
+ #print("data received")
+ """
+ on_data: callback object which is called when a message received.
+ This is called before on_message or on_cont_message,
+ and then on_message or on_cont_message is called.
+ on_data has 4 argument.
+ The 1st argument is this class object.
+ The 2nd argument is utf-8 string which we get from the server.
+ The 3rd argument is data type. ABNF.OPCODE_TEXT or ABNF.OPCODE_BINARY will be came.
+ The 4th argument is continue flag. if 0, the data continue
+ """
+ #renpy.notify(msg)
+ return
+
+ def onopen(self):
+ global tr_busy, tr_load, tr_val, HOST
+ print("Opening connection to %s" % HOST)
+ tr_load=True
+ tr_val=""
+ tr_busy=False
+ self.send("PING")
+
+ def onerror(self, err):
+ stdout("ERROR RECEIVED")
+ stdout("More details: %s" % repr(err))
+ stdout("An error happened: %s" % str(err))
+ # FIXME: If such error happen, the game never dies
+ # This is a huge problem o.o
+ while True:
+ renpy.call_screen("msgbox",
+ "An unrecoverable error happened.\nPress OK to return to main menu screen.")
+ #raise KeyboardException(str(err))
+ #raise err
+ # FIXME: Not working, and the loop also does not work
+ # Maybe because it causes an Exception?
+ # I wonder if I can/should run this in a non-daemon thread?
+ # But I sense the problem is not here but a level above
+ #renpy.quit(relaunch=True, status=1)
+ sdelay(1.0)
+ return 1
+