1 // BlinkenSisters - Hunt for the Lost Pixels
2 // Bringing back the fun of the 80s
3 //
4 // (C) 2005-07 Rene Schickbauer, Wolfgang Dautermann
5 //
6 // See License.txt for licensing information
7 //
8
9 #include "bl_lua_obj_engine.h"
10
11 #define NEED_REGISTER_FUNCTION
12 #include "bl_lua.h"
13 #undef NEED_REGISTER_FUNCTION
14
15 // Kills the engine
luaObjDie(lua_State * L)16 int luaObjDie(lua_State *L) {
17 if(!lua_isstring(L, 1)) {
18 LUADIE(L, ERROR_LUAL2BTYPE, "");
19 } else {
20 LUADIE(L, ERROR_LUAL2BDIE, (char *)lua_tostring(L, 1));
21 }
22 return 0;
23 }
24
25 // Loads an additional file
luaObjInclude(lua_State * L)26 int luaObjInclude(lua_State *L) {
27 Uint32 n = lua_gettop(L);
28 if(n != 1) {
29 LUADIE(L, ERROR_LUAARGCOUNT, "luaObjInclude");
30 }
31
32 if(!lua_isstring(L, 1)) {
33 LUADIE(L, ERROR_LUAL2BTYPE, "");
34 } else {
35 char fullfname[MAX_FNAME_LENGTH];
36 sprintf(fullfname, "%s", configGetPath(lua_tostring(L, 1)));
37 if(luaL_loadfile(L, fullfname)) {
38 LUADIE(L, ERROR_LUALOAD, (char *)lua_tostring(L, -1));
39 }
40 if(lua_pcall(L,0,0,0)) {
41 LUADIE(L, ERROR_LUAPARSE, (char *)lua_tostring(L, -1));
42 }
43 }
44 return 0;
45 }
46
47 // Plays a video
luaObjPlayVideo(lua_State * L)48 int luaObjPlayVideo(lua_State *L) {
49 char name[1000];
50 bool trackergui = false;
51 bool userCanCancel = false;
52 Uint32 n = lua_gettop(L);
53 if(n != 3) {
54 LUADIE(L, ERROR_LUAARGCOUNT, "luaObjPlayVideo");
55 }
56 if(!lua_isstring(L, 1)) {
57 LUADIE(L, ERROR_LUAL2BTYPE, "luaObjPlayVideo (arg1)");
58 } else {
59 sprintf(name, "%s", lua_tostring(L, 1));
60 }
61 if(!lua_isnumber(L, 2)) {
62 LUADIE(L, ERROR_LUAL2BTYPE, "luaObjPlayVideo (arg2)");
63 } else {
64 if(lua_tonumber(L, 2) == 0) {
65 trackergui = false;
66 } else if(lua_tonumber(L, 2) == 1){
67 trackergui = true;
68 } else {
69 LUADIE(L, ERROR_LUAL2BRANGE, "luaObjPlayVideo (arg2)");
70 }
71 }
72 if(!lua_isnumber(L, 3)) {
73 LUADIE(L, ERROR_LUAL2BTYPE, "luaObjPlayVideo (arg3)");
74 } else {
75 if(lua_tonumber(L, 3) == 0) {
76 userCanCancel = false;
77 } else if(lua_tonumber(L, 3) == 1){
78 userCanCancel = true;
79 } else {
80 LUADIE(L, ERROR_LUAL2BRANGE, "luaObjPlayVideo (arg3)");
81 }
82 }
83
84 showVideo(name, trackergui, userCanCancel);
85 gLastTick = BS_GetTicks();
86
87 return 0;
88 }
89
90