Subversion Repositories pspware

Rev

Rev 343 | Rev 350 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 343 Rev 345
Line 1... Line 1...
1
#include <stdlib.h>
1
#include <stdlib.h>
2
#include <unistd.h>
2
#include <unistd.h>
3
#include <string.h>
3
#include <string.h>
4
4
5
#include <pspkernel.h>
5
#include <pspkernel.h>
6
#include <pspdebug.h>
6
#include <pspdebug.h>
7
#include <pspdisplay.h>
7
#include <pspdisplay.h>
8
8
9
#include "luaplayer.h"
9
#include "luaplayer.h"
10
10
11
11
12
static lua_State *L;
12
static lua_State *L;
13
13
14
extern "C" {
14
extern "C" {
15
        lua_State * getLuaState()
15
        lua_State * getLuaState()
16
        {
16
        {
17
                return L;
17
                return L;
18
        }
18
        }
19
}
19
}
20
20
21
int runScript(const char* script, bool isStringBuffer )
21
const char * runScript(const char* script, bool isStringBuffer )
22
{
22
{
23
        L = lua_open();
23
        L = lua_open();
24
       
24
       
25
        // Standard libraries
25
        // Standard libraries
26
        luaopen_io(L);
26
        luaopen_io(L);
27
        luaopen_base(L);
27
        luaopen_base(L);
28
        luaopen_table(L);
28
        luaopen_table(L);
29
        luaopen_string(L);
29
        luaopen_string(L);
30
        luaopen_math(L);
30
        luaopen_math(L);
31
        luaopen_loadlib(L);
31
        luaopen_loadlib(L);
32
       
32
       
33
        // Modules
33
        // Modules
34
        luaSound_init(L);
34
        luaSound_init(L);
35
        luaControls_init(L);
35
        luaControls_init(L);
36
        luaGraphics_init(L);
36
        luaGraphics_init(L);
37
        lua3D_init(L);
37
        lua3D_init(L);
38
        luaTimer_init(L);
38
        luaTimer_init(L);
39
        luaSystem_init(L);
39
        luaSystem_init(L);
40
        luaWlan_init(L);
40
        luaWlan_init(L);
41
       
41
       
42
        int s = 0;
42
        int s = 0;
-
 
43
        const char * errMsg = NULL;
-
 
44
43
        if(!isStringBuffer)
45
        if(!isStringBuffer)
44
                s = luaL_loadfile(L, script);
46
                s = luaL_loadfile(L, script);
45
        else
47
        else
46
                s = luaL_loadbuffer(L, script, strlen(script), NULL);
48
                s = luaL_loadbuffer(L, script, strlen(script), NULL);
47
               
49
               
48
        if (s == 0) {
50
        if (s == 0) {
49
                s = lua_pcall(L, 0, LUA_MULTRET, 0);
51
                s = lua_pcall(L, 0, LUA_MULTRET, 0);
50
        }
52
        }
51
        if (s) {
53
        if (s) {
-
 
54
                errMsg = lua_tostring(L, -1);
52
                printf("error: %s\n", lua_tostring(L, -1));
55
                printf("error: %s\n", lua_tostring(L, -1));
53
                lua_pop(L, 1); // remove error message
56
                lua_pop(L, 1); // remove error message
54
        }
57
        }
55
        lua_close(L);
58
        lua_close(L);
56
       
59
       
57
        return s;
60
        return errMsg;
58
}
61
}