aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'LuaSL/src/LuaSL_main.c')
-rw-r--r--LuaSL/src/LuaSL_main.c31
1 files changed, 27 insertions, 4 deletions
diff --git a/LuaSL/src/LuaSL_main.c b/LuaSL/src/LuaSL_main.c
index 04145b5..fcbfa03 100644
--- a/LuaSL/src/LuaSL_main.c
+++ b/LuaSL/src/LuaSL_main.c
@@ -8,19 +8,42 @@ static Eina_Strbuf *clientStream;
8 8
9static Eina_Bool _sleep_timer_cb(void *data) 9static Eina_Bool _sleep_timer_cb(void *data)
10{ 10{
11 char *SID = data; 11 script *script = data;
12 gameGlobals *game = script->game;
12 13
13printf("Waking up %s\n", SID); 14 PD("Waking up %s", script->SID);
14 sendToChannel(SID, "0.0", NULL, NULL); 15 sendToChannel(script->SID, "0.0", NULL, NULL);
15 return ECORE_CALLBACK_CANCEL; 16 return ECORE_CALLBACK_CANCEL;
16} 17}
17 18
19static Eina_Bool _timer_timer_cb(void *data)
20{
21 script *script = data;
22 gameGlobals *game = script->game;
23
24 PD("Timer for %s", script->SID);
25 sendToChannel(script->SID, "events.timer()", NULL, NULL);
26 return ECORE_CALLBACK_RENEW;
27}
28
18static void _sendBack(void * data) 29static void _sendBack(void * data)
19{ 30{
20 scriptMessage *message = data; 31 scriptMessage *message = data;
21 32
22 if (0 == strncmp(message->message, "llSleep(", 8)) 33 if (0 == strncmp(message->message, "llSleep(", 8))
23 ecore_timer_add(atof(&(message->message)[8]), _sleep_timer_cb, message->script->SID); 34 ecore_timer_add(atof(&(message->message)[8]), _sleep_timer_cb, message->script);
35 else if (0 == strncmp(message->message, "llSetTimerEvent(", 16))
36 {
37 message->script->timerTime = atof(&(message->message)[16]);
38 if (0.0 == message->script->timerTime)
39 {
40 if (message->script->timer)
41 ecore_timer_del(message->script->timer);
42 message->script->timer = NULL;
43 }
44 else
45 message->script->timer = ecore_timer_add(message->script->timerTime, _timer_timer_cb, message->script);
46 }
24 else 47 else
25 sendBack(message->script->game, message->script->client, message->script->SID, message->message); 48 sendBack(message->script->game, message->script->client, message->script->SID, message->message);
26 free(message); 49 free(message);