Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/util/executor/executor_lua.cc @ 8423

Last change on this file since 8423 was 8408, checked in by bensch, 18 years ago

trunk: merged the script_engine branche back here
merged with command
svn merge https://svn.orxonox.net/orxonox/branches/script_engine . -r8284:HEAD
no conflicts

File size: 2.1 KB
Line 
1/*
2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2004 orx
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   ### File Specific:
12   main-programmer: ...
13   co-programmer: ...
14*/
15
16//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_
17
18#include "executor_lua.h"
19
20#include "lunar.h"
21
22std::string temp[5];
23
24template<typename type> type* fromLua(lua_State* state, int index) { type *obj = Lunar<type>::check(state, 1); lua_remove(state, 1); return obj;};
25template<> bool fromLua<bool>(lua_State* state, int index) { return lua_toboolean(state, index); };
26template<> int fromLua<int>(lua_State* state, int index) { return (int)lua_tonumber(state, index); };
27template<> unsigned int fromLua<unsigned int>(lua_State* state, int index) { return (unsigned int)lua_tonumber(state, index); };
28template<> float fromLua<float>(lua_State* state, int index) { return (float)lua_tonumber(state, index); };
29template<> char fromLua<char>(lua_State* state, int index) { return (char)lua_tonumber(state, index); };
30template<> const std::string& fromLua<const std::string&>(lua_State* state, int index) { temp[index] = lua_tostring(state, index); return temp[index]; };
31
32
33template<typename type> void toLua(lua_State* state, type value) { Lunar<type>::push(state, value, false); };
34template<> void toLua<bool>(lua_State* state, bool value) { lua_pushboolean(state, (int) value); };
35template<> void toLua<int>(lua_State* state, int value)  { lua_pushnumber(state, (lua_Number) value); };
36template<> void toLua<unsigned int>(lua_State* state, unsigned int value){ lua_pushnumber(state, (lua_Number) value); };
37template<> void toLua<float>(lua_State* state, float value) { lua_pushnumber(state, (lua_Number) value); };
38template<> void toLua<char>(lua_State* state, char value) { lua_pushnumber(state, (lua_Number) value); };
39template<> void toLua<const std::string&>(lua_State* state, const std::string& value) {lua_pushstring (state, value.c_str()); }
Note: See TracBrowser for help on using the repository browser.