Subversion Repositories pspware

Rev

Rev 345 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 345 Rev 350
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" {
-
 
15
        lua_State * getLuaState()
-
 
16
        {
-
 
17
                return L;
-
 
18
        }
-
 
19
}
-
 
20
14
21
const char * runScript(const char* script, bool isStringBuffer )
15
const char * runScript(const char* script, bool isStringBuffer )
22
{
16
{
23
        L = lua_open();
17
        L = lua_open();
24
       
18
       
25
        // Standard libraries
19
        // Standard libraries
26
        luaopen_io(L);
20
        luaopen_io(L);
27
        luaopen_base(L);
21
        luaopen_base(L);
28
        luaopen_table(L);
22
        luaopen_table(L);
29
        luaopen_string(L);
23
        luaopen_string(L);
30
        luaopen_math(L);
24
        luaopen_math(L);
-
 
25
-
 
26
        // luasystem.cpp defines our loadlib.
31
        luaopen_loadlib(L);
27
        // luaopen_loadlib(L);
32
       
28
       
33
        // Modules
29
        // Modules
34
        luaSound_init(L);
30
        luaSound_init(L);
35
        luaControls_init(L);
31
        luaControls_init(L);
36
        luaGraphics_init(L);
32
        luaGraphics_init(L);
37
        lua3D_init(L);
33
        lua3D_init(L);
38
        luaTimer_init(L);
34
        luaTimer_init(L);
39
        luaSystem_init(L);
35
        luaSystem_init(L);
40
        luaWlan_init(L);
36
        luaWlan_init(L);
41
       
37
       
42
        int s = 0;
38
        int s = 0;
43
        const char * errMsg = NULL;
39
        const char * errMsg = NULL;
44
40
45
        if(!isStringBuffer)
41
        if(!isStringBuffer)
46
                s = luaL_loadfile(L, script);
42
                s = luaL_loadfile(L, script);
47
        else
43
        else
48
                s = luaL_loadbuffer(L, script, strlen(script), NULL);
44
                s = luaL_loadbuffer(L, script, strlen(script), NULL);
49
               
45
               
50
        if (s == 0) {
46
        if (s == 0) {
51
                s = lua_pcall(L, 0, LUA_MULTRET, 0);
47
                s = lua_pcall(L, 0, LUA_MULTRET, 0);
52
        }
48
        }
53
        if (s) {
49
        if (s) {
54
                errMsg = lua_tostring(L, -1);
50
                errMsg = lua_tostring(L, -1);
55
                printf("error: %s\n", lua_tostring(L, -1));
51
                printf("error: %s\n", lua_tostring(L, -1));
56
                lua_pop(L, 1); // remove error message
52
                lua_pop(L, 1); // remove error message
57
        }
53
        }
58
        lua_close(L);
54
        lua_close(L);
59
       
55
       
60
        return errMsg;
56
        return errMsg;
61
}
57
}
62
 
58