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