6#define FEATURE_VOLUME 1
10#define FEATURE_VOLUME 1
13#define FEATURE_MATERIAL 1
14#define FEATURE_FRAMEBUFFER 1
16#define FEATURE_WAVEFORM 1
18#define FEATURE_BOOLEANOPS 1
19#define FEATURE_OGL_SETUP 1
30#if (NEWSHADOW2_GLTF==1)||(GLTF_NEWSHADOW2==1)
33#if (SPHERE_BO==1)||(OR_ELEM_BO==1)||(INTERSECT_BO==1)||(CUBE_BO==1)||(FD_MIN==1)
34#define FEATURE_VOLUME 1
42 std::vector<GameApiItem*>
items;
53#define MACRO2(lab, funccall) \
54 void set_empty(GameApi::EveryApi&ev,lab &l);
57#if (FEATURE_VOLUME==1)
80MACRO2(
GameApi::FI,
ev.font_api.load_font(
"https://meshpage.org/assets/Chunkfive.otf",20,20))
81MACRO2(
GameApi::HML,
ev.mainloop_api.html_url(
"https://meshpage.org/assets/empty_hml.mp"))
84MACRO2(
GameApi::TF,
ev.mainloop_api.gltf_loadKK2(
"https://meshpage.org/assets/test.glb"))
97 template<> class TypeToString<GameApi::a> { public: static constexpr const char * str=#a; };
269template<
class T,
class RT,
class...
P>
271 RT (
T::*fptr)(
P...), std::vector<std::string> s,
GameApi::ExecuteEnv &
e,
const std::vector<std::string> ¶m_name,
const std::string &return_type);
276std::pair<std::string,std::string>
CodeGen_1(
GameApi::EveryApi &
ev, std::vector<std::string> params, std::vector<std::string> param_names, std::vector<std::string> param_type, std::vector<std::string> param_exprs, std::string return_type, std::string
api_name, std::string func_name,
int j);
288template<std::size_t ...>
289struct add_all : std::integral_constant< std::size_t,0 > { };
291template<std::size_t
X, std::size_t ... Xs>
292struct add_all<
X,Xs...> : std::integral_constant< std::size_t, X+add_all<Xs...>::value> { };
298 std::cout << msg << std::endl;
303template<
class T,
class RT,
class...
P>
309 std::vector<std::string> param_name,
310 std::vector<std::string> param_type,
311 std::vector<std::string> param_default,
312 std::string ret_type, std::string api_name, std::string func_name,
313 std::string symbols, std::string comment)
314 : api(api), fptr(fptr), name(name), param_name(param_name),
315 param_type(param_type), param_default(param_default),
316 return_type(ret_type), api_name(api_name), func_name(func_name), symbols(symbols), comment(comment) { }
318 std::string
Name(
int i)
const {
return name; }
320 assert(
print_if_false(
sizeof...(
P) == param_name.size(),
"ERROR: param_name array size problems: " + api_name +
"::" + name));
321 assert(
print_if_false(
sizeof...(
P) == param_type.size(),
"ERROR: param_type array size problems: " + api_name +
"::" + name));
322 assert(
print_if_false(
sizeof...(
P) == param_default.size(),
"ERROR: param_default array size problems: " + name));
323 return param_name.size(); }
324 std::string
ParamName(
int i,
int p)
const {
return param_name[p]; }
325 std::string
ParamType(
int i,
int p)
const {
return param_type[p]; }
330 std::string
ApiName(
int i)
const {
return api_name; }
331 std::string
FuncName(
int i)
const {
return func_name; }
332 std::string
Symbols()
const {
return symbols; }
333 std::string
Comment()
const {
return comment; }
338 T *ptr2 = &(
ev->*api);
339 RT val = (ptr2->*(ptr->fptr))(p...);
342 void RegisterToChai(GameApi::EveryApi *
ev, chaiscript::ChaiScript *chai)
344 std::function<RT (P... p)>
f = [
ev,
this](P...p) -> RT {
return chai_cb(
this,
ev, this->api, p...); };
351 int s = params.size();
352 for(
int i=0;i<s;i++)
if (params[i]==
"") params[i]=
"?";
355 if (params.size()!=param_name.size()) {
357 params.insert(params.begin(),
"ev");
359 std::cout <<
"Error: param vectors different size: " <<
ApiName(0) <<
"::" <<
FuncName(0) << std::endl;
362 int ret =
funccall(ss,ee,
ev, api, fptr, params,
e, param_name, return_type);
364 if (ret_count>1 && j!=-1)
375 std::pair<std::string,std::string>
CodeGen(
GameApi::EveryApi &
ev, std::vector<std::string> params, std::vector<std::string> param_names, std::vector<std::string> param_exprs,
int j)
377 std::pair<std::string,std::string> p =
CodeGen_1(
ev,params, param_names, param_type, param_exprs,return_type,api_name,func_name,j);
384 std::vector<std::string> param_name;
385 std::vector<std::string> param_type;
386 std::vector<std::string> param_default;
387 std::string return_type;
389 std::string func_name;
409 if (s.size()>0 && s[0]==
'-')
416 std::stringstream is(s);
435class FromStreamClass<lab> \
438 lab from_stream(std::stringstream &ss, GameApi::EveryApi &ev)\
445 std::cout << "Warning: Empty slot in left side of node detected! " << TypeToString<lab>::str << std::endl; \
565 if (s.size()>0 && s[0]==
'-')
591 if (s.size()>0 && s[0]==
'"' && s[s.size()-1]==
'"')
593 s=s.substr(1,s.size()-2);
619 if (s==
"false")
return false;
620 if (s==
"true")
return true;
621 if (s==
"1")
return true;
639 ss >> std::hex >> bm >> std::dec;
652 std::vector<std::string> vec;
655 std::cout <<
"from_stream length problem" << std::endl;
659 if (c!=
'[') { std::cout <<
"from_stream parse error on std::vector" << std::endl;
return vec; }
665 for(
int i=1;i<ss;i++)
667 if (s[i]==
',' || s[i]==
']')
669 std::string substr = s.substr(prev, i-prev);
670 std::stringstream sk1(substr);
676 if (s[i]==
']') {
break; }
692 if (s==
"@")
return std::vector<T>();
695 if (s.size()>0 && s[0]!=
'[')
699 std::stringstream ss(s);
702 int s = t->
vec.size();
713 std::cout <<
"from_stream length problem" << std::endl;
717 if (c!=
'[') { std::cout <<
"from_stream parse error on std::vector" << std::endl;
return vec; }
723 for(
int i=1;i<ss;i++)
725 if (s[i]==
',' || s[i]==
']')
727 std::string substr = s.substr(prev, i-prev);
728 std::stringstream sk1(substr);
734 if (s[i]==
']') {
break; }
757template<
class...T,std::size_t... Is>
758void read_tuple(std::istream &is, std::tuple<T...>&t, std::index_sequence<Is...>)
760 ( (is >> std::get<Is>(t)), ... );
763template<
class RT,
class...P>
764RT call_working(std::istream ¶ms, std::function<RT(
P...)> fptr ) {
765 std::tuple<
P...> args;
766 read_tuple(params, args, std::make_index_sequence<
sizeof...(
P)>{});
767 RT t = std::apply(fptr,args);
774template<
class T,
class RT,
class...
P>
776 RT (
T::*fptr)(
P...), std::vector<std::string> s,
GameApi::ExecuteEnv &
e,
const std::vector<std::string> ¶m_name,
const std::string &return_type)
798 for(
int i=s2-1;i>=0;i--)
804 for(
int i=0;i<s2;i++)
819 for(
int i=0;i<s2;i++)
828 RT val = std::apply([&](
auto&&... unpacked) {
829 return (ptr->*fptr)(unpacked...);
845template<
class T,
class RT,
class...
P>
848 std::vector<std::string> param_name,
849 std::vector<std::string> param_type,
850 std::vector<std::string> param_default,
851 std::string return_type, std::string
api_name, std::string func_name, std::string symbols=
"", std::string comment=
"")
853 GameApiItem *item =
new ApiItem<
T,RT,
P...>(api, fptr,
name, param_name, param_type, param_default, return_type,
api_name, func_name, symbols,comment);
863 virtual int Count()
const {
return 1; }
864 virtual std::string
Name(
int i)
const {
return "env_params_int"; }
885 return "std::string";
906 virtual std::string
ApiName(
int i)
const {
return "mainloop_api"; }
907 virtual std::string
FuncName(
int i)
const {
return "identity_int"; }
908 virtual std::string
Symbols()
const {
return ""; }
909 virtual std::string
Comment()
const {
return "env setup"; }
912 std::stringstream ss2(params[0]);
917 virtual std::pair<std::string,std::string>
CodeGen(
GameApi::EveryApi &
ev, std::vector<std::string> params, std::vector<std::string> param_names, std::vector<std::string> param_exprs,
int j)
919 std::pair<std::string,std::string> p =
CodeGen_1(
ev,params, param_names, {
"ml",
"&1",
"&2",
"&3",
"&4",
"&5" }, param_exprs,
"ML",
"mainloop_api",
"identity_int",j);
923 if (params[1].expr !=
"@")
925 e.names.push_back(
"&1");
926 e.values.push_back(params[1].expr);
928 if (params[2].expr !=
"@")
930 e.names.push_back(
"&2");
931 e.values.push_back(params[2].expr);
933 if (params[3].expr !=
"@")
935 e.names.push_back(
"&3");
936 e.values.push_back(params[3].expr);
939 if (params[4].expr !=
"@")
941 e.names.push_back(
"&4");
942 e.values.push_back(params[4].expr);
944 if (params[5].expr !=
"@")
946 e.names.push_back(
"&5");
947 e.values.push_back(params[5].expr);
952 int s =
e.names.size();
955 if ((
e.names[i]==
"&1" && env_params[1].expr!=
"@" )||
956 (
e.names[i]==
"&2" && env_params[2].expr!=
"@")||
957 (
e.names[i]==
"&3" && env_params[3].expr!=
"@")||
958 (
e.names[i]==
"&4" && env_params[4].expr!=
"@")||
959 (
e.names[i]==
"&5" && env_params[5].expr!=
"@"))
961 e.names.erase(
e.names.begin() + i);
962 e.values.erase(
e.values.begin() + i);
970 std::vector<GameApiParam> env_params;
977 virtual int Count()
const {
return 1; }
978 virtual std::string
Name(
int i)
const {
return "env_params_string"; }
999 return "std::string";
1020 virtual std::string
ApiName(
int i)
const {
return "mainloop_api"; }
1021 virtual std::string
FuncName(
int i)
const {
return "identity_string"; }
1022 virtual std::string
Symbols()
const {
return ""; }
1023 virtual std::string
Comment()
const {
return "env setup"; }
1026 std::stringstream ss2(params[0]);
1031 virtual std::pair<std::string,std::string>
CodeGen(
GameApi::EveryApi &
ev, std::vector<std::string> params, std::vector<std::string> param_names, std::vector<std::string> param_exprs,
int j)
1033 std::pair<std::string,std::string> p =
CodeGen_1(
ev,params, param_names, {
"ml",
"$1",
"$2",
"$3",
"$4",
"$5" }, param_exprs,
"ML",
"mainloop_api",
"identity_string",j);
1037 if (params[1].expr !=
"@")
1039 std::cout <<
"BeginEnv::Choose 1: " << params[1].expr << std::endl;
1040 e.names.push_back(
"$1");
1041 e.values.push_back(params[1].expr);
1043 if (params[2].expr !=
"@")
1045 std::cout <<
"BeginEnv::Choose 2: " << params[2].expr << std::endl;
1046 e.names.push_back(
"$2");
1047 e.values.push_back(params[2].expr);
1049 if (params[3].expr !=
"@")
1051 std::cout <<
"BeginEnv::Choose 3: " << params[3].expr << std::endl;
1052 e.names.push_back(
"$3");
1053 e.values.push_back(params[3].expr);
1056 if (params[4].expr !=
"@")
1058 std::cout <<
"BeginEnv::Choose 4: " << params[4].expr << std::endl;
1059 e.names.push_back(
"$4");
1060 e.values.push_back(params[4].expr);
1062 if (params[5].expr !=
"@")
1064 std::cout <<
"BeginEnv::Choose 5: " << params[5].expr << std::endl;
1065 e.names.push_back(
"$5");
1066 e.values.push_back(params[5].expr);
1068 env_params = params;
1071 int s =
e.names.size();
1072 for(
int i=0;i<s;i++)
1074 if ((
e.names[i]==
"$1" && env_params[1].expr!=
"@" )||
1075 (
e.names[i]==
"$2" && env_params[2].expr!=
"@")||
1076 (
e.names[i]==
"$3" && env_params[3].expr!=
"@")||
1077 (
e.names[i]==
"$4" && env_params[4].expr!=
"@")||
1078 (
e.names[i]==
"$5" && env_params[5].expr!=
"@"))
1080 e.names.erase(
e.names.begin() + i);
1081 e.values.erase(
e.values.begin() + i);
1089 std::vector<GameApiParam> env_params;
1097 virtual std::string
Name(
int i)
const {
return "env_params_float"; }
1101 case 0:
return "ml";
1102 case 1:
return "%1";
1103 case 2:
return "%2";
1104 case 3:
return "%3";
1105 case 4:
return "%4";
1106 case 5:
return "%5";
1112 case 0:
return "ML";
1118 return "std::string";
1139 virtual std::string
ApiName(
int i)
const {
return "mainloop_api"; }
1140 virtual std::string
FuncName(
int i)
const {
return "identity_float"; }
1141 virtual std::string
Symbols()
const {
return ""; }
1142 virtual std::string
Comment()
const {
return "env setup"; }
1145 std::stringstream ss2(params[0]);
1150 virtual std::pair<std::string,std::string>
CodeGen(
GameApi::EveryApi &
ev, std::vector<std::string> params, std::vector<std::string> param_names, std::vector<std::string> param_exprs,
int j)
1152 std::pair<std::string,std::string> p =
CodeGen_1(
ev,params, param_names, {
"ml",
"%1",
"%2",
"%3",
"%4",
"%5" }, param_exprs,
"ML",
"mainloop_api",
"identity_float",j);
1156 if (params[1].expr !=
"@")
1158 e.names.push_back(
"%1");
1159 e.values.push_back(params[1].expr);
1161 if (params[2].expr !=
"@")
1163 e.names.push_back(
"%2");
1164 e.values.push_back(params[2].expr);
1166 if (params[3].expr !=
"@")
1168 e.names.push_back(
"%3");
1169 e.values.push_back(params[3].expr);
1172 if (params[4].expr !=
"@")
1174 e.names.push_back(
"%4");
1175 e.values.push_back(params[4].expr);
1177 if (params[5].expr !=
"@")
1179 e.names.push_back(
"%5");
1180 e.values.push_back(params[5].expr);
1182 env_params = params;
1185 int s =
e.names.size();
1186 for(
int i=0;i<s;i++)
1188 if ((
e.names[i]==
"%1" && env_params[1].expr!=
"@" )||
1189 (
e.names[i]==
"%2" && env_params[2].expr!=
"@")||
1190 (
e.names[i]==
"%3" && env_params[3].expr!=
"@")||
1191 (
e.names[i]==
"%4" && env_params[4].expr!=
"@")||
1192 (
e.names[i]==
"%5" && env_params[5].expr!=
"@"))
1194 e.names.erase(
e.names.begin() + i);
1195 e.values.erase(
e.values.begin() + i);
1203 std::vector<GameApiParam> env_params;
1205std::vector<std::string>
parse_sep(std::string s,
char sep);
1207inline std::vector<std::string>
choose_param3(std::vector<std::string> vec,
int ii)
1209 std::vector<std::string> res;
1211 for(
int i=0;i<s;i++)
1213 std::string s2 = vec[i];
1214 std::vector<std::string> v =
parse_sep(s2,
'&');
1217 res.push_back(v[ii]);
1229 std::stringstream ss;
1231 for(
int i=0;i<s;i++) {
1233 if (i!=s-1) ss <<
"&";
1238std::string
replace_str(std::string
code, std::string repl, std::string subst);
1245 virtual std::string
Name(
int i)
const {
return "env_params_arr"; }
1249 case 0:
return "ml";
1250 case 1:
return "%1";
1251 case 2:
return "%2";
1252 case 3:
return "%3";
1253 case 4:
return "%4";
1254 case 5:
return "%5";
1266 case 0:
return "ML";
1272 return "std::string";
1305 virtual std::string
ApiName(
int i)
const {
return "mainloop_api"; }
1306 virtual std::string
FuncName(
int i)
const {
return "identity_arr"; }
1307 virtual std::string
Symbols()
const {
return ""; }
1308 virtual std::string
Comment()
const {
return "env setup arr"; }
1314 std::cout <<
"Warning: env_params_arr cannot be deployed, and you must move to script_ML_array before deploy." << std::endl;
1317 std::vector<std::string> arr1 =
parse_sep(params[1],
'&');
1318 std::vector<std::string> arr2 =
parse_sep(params[2],
'&');
1319 std::vector<std::string> arr3 =
parse_sep(params[3],
'&');
1320 std::vector<std::string> arr4 =
parse_sep(params[4],
'&');
1321 std::vector<std::string> arr5 =
parse_sep(params[5],
'&');
1332 int N = std::max(std::max(std::max(std::max(arr1.size(),arr2.size()),
1355 std::stringstream ss2(params[0]);
1361 std::string prev_line;
1362 std::string prev_line2;
1363 std::vector<std::string> vec;
1371 std::vector<GameApi::ML> res_vec;
1372 for(
int i=0;i<NN;i++)
1376 GameApi::RUN r =
ev.blocker_api.game_window2(
ev,ml,
false,
false,0.0,100000.0);
1377 GameApi::HML hml =
ev.mainloop_api.emscripten_frame2(
ev,r,
"https://meshpage.org/assets",
true);
1386 std::vector<GameApiParam> paramvec;
1387 std::stringstream ss2; ss2 << ml.
id;
1389 paramvec.push_back({
"ml", ss2.str(),
"ML",
false,0,0,
""});
1390 paramvec.push_back({
"%1", arr1[i],
"float",
false,0,0,
generate_seq(1,arr1.size()) });
1391 paramvec.push_back({
"%2", arr2[i],
"float",
false,0,0,
generate_seq(2,arr2.size()) });
1392 paramvec.push_back({
"%3", arr3[i],
"float",
false,0,0,
generate_seq(3,arr3.size()) });
1393 paramvec.push_back({
"%4", arr4[i],
"float",
false,0,0,
generate_seq(4,arr4.size()) });
1394 paramvec.push_back({
"%5", arr5[i],
"float",
false,0,0,
generate_seq(5,arr5.size()) });
1409 if (p.first==-1) {
continue; }
1410 assert(p.second==
"ML");
1414 res_vec.push_back(res_ml);
1417 std::vector<int> res_vec2;
1418 int s = res_vec.size();
1419 for(
int i=0;i<s;i++) res_vec2.push_back(res_vec[i].id);
1424 array->vec = res_vec2;
1428 virtual std::pair<std::string,std::string>
CodeGen(
GameApi::EveryApi &
ev, std::vector<std::string> params, std::vector<std::string> param_names, std::vector<std::string> param_exprs,
int j)
1430 if (!recursion_stopper) {
1431 recursion_stopper=
true;
1433 std::pair<std::string,std::string> p =
CodeGen_1(
ev,
choose_param3(params,m_ii), {
"ml",
"%1",
"%2",
"%3",
"%4",
"%5" }, {
"ml",
"%1",
"%2",
"%3",
"%4",
"%5" },
choose_param3(param_exprs,m_ii),
"ML",
"mainloop_api",
"identity_arr",j);
1435 recursion_stopper=
false;
1438 return std::make_pair(
"",
"");
1445 if (params[1].expr !=
"@")
1447 e.names.push_back(
"%1");
1448 e.values.push_back(params[1].expr);
1450 if (params[2].expr !=
"@")
1452 e.names.push_back(
"%2");
1453 e.values.push_back(params[2].expr);
1455 if (params[3].expr !=
"@")
1457 e.names.push_back(
"%3");
1458 e.values.push_back(params[3].expr);
1461 if (params[4].expr !=
"@")
1463 e.names.push_back(
"%4");
1464 e.values.push_back(params[4].expr);
1466 if (params[5].expr !=
"@")
1468 e.names.push_back(
"%5");
1469 e.values.push_back(params[5].expr);
1471 env_params = params;
1474 int s =
e.names.size();
1475 for(
int i=0;i<s;i++)
1477 if ((
e.names[i]==
"%1" && env_params[1].expr!=
"@" )||
1478 (
e.names[i]==
"%2" && env_params[2].expr!=
"@")||
1479 (
e.names[i]==
"%3" && env_params[3].expr!=
"@")||
1480 (
e.names[i]==
"%4" && env_params[4].expr!=
"@")||
1481 (
e.names[i]==
"%5" && env_params[5].expr!=
"@"))
1483 e.names.erase(
e.names.begin() + i);
1484 e.values.erase(
e.values.begin() + i);
1492 std::vector<GameApiParam> env_params;
1494 bool recursion_stopper=
false;
1502 virtual std::string
Name(
int i)
const {
return "env_params_arr_p"; }
1506 case 0:
return "ml";
1507 case 1:
return "%1";
1508 case 2:
return "%2";
1509 case 3:
return "%3";
1510 case 4:
return "%4";
1511 case 5:
return "%5";
1529 return "std::string";
1562 virtual std::string
ApiName(
int i)
const {
return "mainloop_api"; }
1563 virtual std::string
FuncName(
int i)
const {
return "identity_arr_p"; }
1564 virtual std::string
Symbols()
const {
return ""; }
1565 virtual std::string
Comment()
const {
return "env setup arr"; }
1571 std::cout <<
"Warning: env_params_arr_p cannot be deployed, and you must move to script_P_array before deploy." << std::endl;
1574 std::vector<std::string> arr1 =
parse_sep(params[1],
'&');
1575 std::vector<std::string> arr2 =
parse_sep(params[2],
'&');
1576 std::vector<std::string> arr3 =
parse_sep(params[3],
'&');
1577 std::vector<std::string> arr4 =
parse_sep(params[4],
'&');
1578 std::vector<std::string> arr5 =
parse_sep(params[5],
'&');
1589 int N = std::max(std::max(std::max(std::max(arr1.size(),arr2.size()),
1612 std::stringstream ss2(params[0]);
1618 std::string prev_line;
1619 std::string prev_line2;
1620 std::vector<std::string> vec;
1628 std::vector<GameApi::P> res_vec;
1629 for(
int i=0;i<NN;i++)
1634 GameApi::RUN r =
ev.blocker_api.game_window2(
ev,ml,
false,
false,0.0,100000.0);
1635 GameApi::HML hml =
ev.mainloop_api.emscripten_frame2(
ev,r,
"https://meshpage.org/assets",
true);
1644 std::vector<GameApiParam> paramvec;
1645 std::stringstream ss2; ss2 << ml.
id;
1647 paramvec.push_back({
"ml", ss2.str(),
"ML",
false,0,0,
""});
1648 paramvec.push_back({
"%1", arr1[i],
"float",
false,0,0,
generate_seq(1,arr1.size()) });
1649 paramvec.push_back({
"%2", arr2[i],
"float",
false,0,0,
generate_seq(2,arr2.size()) });
1650 paramvec.push_back({
"%3", arr3[i],
"float",
false,0,0,
generate_seq(3,arr3.size()) });
1651 paramvec.push_back({
"%4", arr4[i],
"float",
false,0,0,
generate_seq(4,arr4.size()) });
1652 paramvec.push_back({
"%5", arr5[i],
"float",
false,0,0,
generate_seq(5,arr5.size()) });
1667 if (p.first==-1) {
continue; }
1668 assert(p.second==
"P");
1672 res_vec.push_back(res_p);
1675 std::vector<int> res_vec2;
1676 int s = res_vec.size();
1677 for(
int i=0;i<s;i++) res_vec2.push_back(res_vec[i].id);
1682 array->vec = res_vec2;
1686 virtual std::pair<std::string,std::string>
CodeGen(
GameApi::EveryApi &
ev, std::vector<std::string> params, std::vector<std::string> param_names, std::vector<std::string> param_exprs,
int j)
1688 if (!recursion_stopper) {
1689 recursion_stopper=
true;
1691 std::pair<std::string,std::string> p =
CodeGen_1(
ev,
choose_param3(params,m_ii), {
"p",
"%1",
"%2",
"%3",
"%4",
"%5" }, {
"p",
"%1",
"%2",
"%3",
"%4",
"%5" },
choose_param3(param_exprs,m_ii),
"ML",
"mainloop_api",
"identity_arr_p",j);
1693 recursion_stopper=
false;
1695 }
else {
return std::make_pair(
"",
""); }
1701 if (params[1].expr !=
"@")
1703 e.names.push_back(
"%1");
1704 e.values.push_back(params[1].expr);
1706 if (params[2].expr !=
"@")
1708 e.names.push_back(
"%2");
1709 e.values.push_back(params[2].expr);
1711 if (params[3].expr !=
"@")
1713 e.names.push_back(
"%3");
1714 e.values.push_back(params[3].expr);
1717 if (params[4].expr !=
"@")
1719 e.names.push_back(
"%4");
1720 e.values.push_back(params[4].expr);
1722 if (params[5].expr !=
"@")
1724 e.names.push_back(
"%5");
1725 e.values.push_back(params[5].expr);
1727 env_params = params;
1730 int s =
e.names.size();
1731 for(
int i=0;i<s;i++)
1733 if ((
e.names[i]==
"%1" && env_params[1].expr!=
"@" )||
1734 (
e.names[i]==
"%2" && env_params[2].expr!=
"@")||
1735 (
e.names[i]==
"%3" && env_params[3].expr!=
"@")||
1736 (
e.names[i]==
"%4" && env_params[4].expr!=
"@")||
1737 (
e.names[i]==
"%5" && env_params[5].expr!=
"@"))
1739 e.names.erase(
e.names.begin() + i);
1740 e.values.erase(
e.values.begin() + i);
1748 std::vector<GameApiParam> env_params;
1750 bool recursion_stopper=
false;
Env e
Definition Common.cc:2
void cube(Matrix m, FaceStore &s)
Definition Functions.cc:10
std::string MB(long num)
Definition GameApi.cc:43586
MACRO2(GameApi::LI, ev.lines_api.from_polygon(ev.polygon_api.p_empty())) MACRO2(GameApi std::pair< std::string, std::string > CodeGen_1(GameApi::EveryApi &ev, std::vector< std::string > params, std::vector< std::string > param_names, std::vector< std::string > param_type, std::vector< std::string > param_exprs, std::string return_type, std::string api_name, std::string func_name, int j)
Definition GameApi_cmd.cc:45
#define MACRO2(lab, funccall)
Definition GameApi_cmd.cc:9
std::string empty_param(std::string s)
Definition GameApi_cmd.cc:112
ApiSplit split_api_default(std::string def)
Definition GameApi_cmd.cc:176
std::pair< std::string, std::string > CodeGen_1(GameApi::EveryApi &ev, std::vector< std::string > params, std::vector< std::string > param_names, std::vector< std::string > param_type, std::vector< std::string > param_exprs, std::string return_type, std::string api_name, std::string func_name, int j)
Definition GameApi_cmd.cc:45
void funccall_1(std::vector< std::string > &s, GameApi::ExecuteEnv &e, std::vector< std::string > param_name)
Definition GameApi_cmd.cc:87
int to_int(std::string s)
Definition GameApi_cmd.cc:152
bool print_if_false(const bool assertion, std::string msg)
Definition GameApi_cmd.hh:295
int ret_type_count(std::string s)
Definition GameApi_gui.cc:4116
#define MACRO(lab)
Definition GameApi_cmd.hh:433
T from_stream2(std::stringstream &is, GameApi::EveryApi &ev)
Definition GameApi_cmd.hh:746
MACRO2(GameApi::LI, ev.lines_api.from_polygon(ev.polygon_api.p_empty())) MACRO2(GameApi std::string unique_id_apiitem()
Definition accel.cc:42
std::string replace_str(std::string code, std::string repl, std::string subst)
Definition GameApi.cc:26724
DelApiItemF g_api_item_deleter
Definition GameApi_gui.cc:8618
std::vector< std::string > choose_param3(std::vector< std::string > vec, int ii)
Definition GameApi_cmd.hh:1207
std::string FloatExprEval(std::string s)
Definition GameApi_gui.cc:9148
std::string generate_seq(int n, int count)
Definition GameApi_cmd.hh:1227
#define MACRO2(lab, funccall)
Definition GameApi_cmd.hh:53
#define MAC(a)
Definition GameApi_cmd.hh:96
void set_empty(GameApi::EveryApi &ev, T &t)
Definition GameApi_cmd.hh:51
int find_float_ch(std::string s, char ch)
Definition GameApi_gui.cc:9102
int funccall(std::stringstream &ss, GameApi::Env &ee, GameApi::EveryApi &ev, T(GameApi::EveryApi::*api), RT(T::*fptr)(P...), std::vector< std::string > s, GameApi::ExecuteEnv &e, const std::vector< std::string > ¶m_name, const std::string &return_type)
Definition GameApi_cmd.hh:775
GameApiItem * ApiItemF(T(GameApi::EveryApi::*api), RT(T::*fptr)(P...), std::string name, std::vector< std::string > param_name, std::vector< std::string > param_type, std::vector< std::string > param_default, std::string return_type, std::string api_name, std::string func_name, std::string symbols="", std::string comment="")
Definition GameApi_cmd.hh:846
float to_float(std::string s)
Definition GameApi_cmd.cc:159
ApiSplit split_api_default(std::string def)
Definition GameApi_cmd.cc:176
std::vector< std::string > parse_sep(std::string s, char sep)
Definition GameApi.cc:29241
IMPORT Html * find_html(GameApi::Env &e, GameApi::HML u)
Definition GameApi_dep_add_find.cc:1723
GameApi::ARR add_array(GameApi::Env &e, ArrayType *type)
Definition GameApi_dep_add_find.cc:527
std::string api_name()
Definition accel.cc:318
AK empty(int sx, int sy, int sz, float start_x, float end_x, float start_y, float end_y, float start_z, float end_z)
Definition accel.cc:723
std::string FuncName(int i) const
Definition GameApi_cmd.hh:331
std::string DefaultAuthor(int i, int p) const
Definition GameApi_cmd.hh:327
int Count() const
Definition GameApi_cmd.hh:317
std::string ParamName(int i, int p) const
Definition GameApi_cmd.hh:324
std::string Name(int i) const
Definition GameApi_cmd.hh:318
std::string ApiName(int i) const
Definition GameApi_cmd.hh:330
ApiItem(T(GameApi::EveryApi::*api), RT(T::*fptr)(P...), std::string name, std::vector< std::string > param_name, std::vector< std::string > param_type, std::vector< std::string > param_default, std::string ret_type, std::string api_name, std::string func_name, std::string symbols, std::string comment)
Definition GameApi_cmd.hh:307
int Execute(std::stringstream &ss, GameApi::Env &ee, GameApi::EveryApi &ev, std::vector< std::string > params, GameApi::ExecuteEnv &e, int j)
Definition GameApi_cmd.hh:349
std::string Comment() const
Definition GameApi_cmd.hh:333
std::string ReturnType(int i) const
Definition GameApi_cmd.hh:329
std::pair< std::string, std::string > CodeGen(GameApi::EveryApi &ev, std::vector< std::string > params, std::vector< std::string > param_names, std::vector< std::string > param_exprs, int j)
Definition GameApi_cmd.hh:375
int ParamCount(int i) const
Definition GameApi_cmd.hh:319
std::string DefaultLicense(int i, int p) const
Definition GameApi_cmd.hh:328
std::string ParamType(int i, int p) const
Definition GameApi_cmd.hh:325
std::string ParamDefault(int i, int p) const
Definition GameApi_cmd.hh:326
std::string Symbols() const
Definition GameApi_cmd.hh:332
Definition Effect.hh:10323
virtual int Count() const
Definition GameApi_cmd.hh:1501
virtual std::string ParamName(int i, int p) const
Definition GameApi_cmd.hh:1504
virtual std::string Symbols() const
Definition GameApi_cmd.hh:1564
virtual std::string Comment() const
Definition GameApi_cmd.hh:1565
virtual void EndEnv(GameApi::ExecuteEnv &e)
Definition GameApi_cmd.hh:1698
virtual std::string FuncName(int i) const
Definition GameApi_cmd.hh:1563
virtual std::string ParamType(int i, int p) const
Definition GameApi_cmd.hh:1521
virtual std::string ApiName(int i) const
Definition GameApi_cmd.hh:1562
virtual std::string Name(int i) const
Definition GameApi_cmd.hh:1502
virtual std::string DefaultAuthor(int i, int p) const
Definition GameApi_cmd.hh:1559
EnvGameApiItem_arr_p()
Definition GameApi_cmd.hh:1499
virtual std::string ReturnType(int i) const
Definition GameApi_cmd.hh:1561
virtual int ParamCount(int i) const
Definition GameApi_cmd.hh:1503
virtual int Execute(std::stringstream &ss, GameApi::Env &ee, GameApi::EveryApi &ev, std::vector< std::string > params, GameApi::ExecuteEnv &e, int j)
Definition GameApi_cmd.hh:1566
virtual void BeginEnv(GameApi::ExecuteEnv &e, std::vector< GameApiParam > param)
Definition GameApi_cmd.hh:1697
virtual std::string DefaultLicense(int i, int p) const
Definition GameApi_cmd.hh:1560
virtual std::string ParamDefault(int i, int p) const
Definition GameApi_cmd.hh:1540
virtual void BeginEnv2(GameApi::ExecuteEnv &e, std::vector< GameApiParam > params)
Definition GameApi_cmd.hh:1700
virtual void EndEnv2(GameApi::ExecuteEnv &e)
Definition GameApi_cmd.hh:1729
virtual std::pair< std::string, std::string > CodeGen(GameApi::EveryApi &ev, std::vector< std::string > params, std::vector< std::string > param_names, std::vector< std::string > param_exprs, int j)
Definition GameApi_cmd.hh:1686
virtual std::string DefaultAuthor(int i, int p) const
Definition GameApi_cmd.hh:1302
virtual std::string ParamType(int i, int p) const
Definition GameApi_cmd.hh:1264
virtual std::string ParamName(int i, int p) const
Definition GameApi_cmd.hh:1247
EnvGameApiItem_arr()
Definition GameApi_cmd.hh:1242
virtual std::string DefaultLicense(int i, int p) const
Definition GameApi_cmd.hh:1303
virtual std::string ReturnType(int i) const
Definition GameApi_cmd.hh:1304
virtual std::string FuncName(int i) const
Definition GameApi_cmd.hh:1306
virtual void EndEnv2(GameApi::ExecuteEnv &e)
Definition GameApi_cmd.hh:1473
virtual int ParamCount(int i) const
Definition GameApi_cmd.hh:1246
virtual std::string ParamDefault(int i, int p) const
Definition GameApi_cmd.hh:1283
virtual std::string Comment() const
Definition GameApi_cmd.hh:1308
virtual std::string Symbols() const
Definition GameApi_cmd.hh:1307
virtual std::pair< std::string, std::string > CodeGen(GameApi::EveryApi &ev, std::vector< std::string > params, std::vector< std::string > param_names, std::vector< std::string > param_exprs, int j)
Definition GameApi_cmd.hh:1428
virtual std::string ApiName(int i) const
Definition GameApi_cmd.hh:1305
virtual void BeginEnv(GameApi::ExecuteEnv &e, std::vector< GameApiParam > param)
Definition GameApi_cmd.hh:1441
virtual std::string Name(int i) const
Definition GameApi_cmd.hh:1245
virtual void BeginEnv2(GameApi::ExecuteEnv &e, std::vector< GameApiParam > params)
Definition GameApi_cmd.hh:1444
virtual int Count() const
Definition GameApi_cmd.hh:1244
virtual void EndEnv(GameApi::ExecuteEnv &e)
Definition GameApi_cmd.hh:1442
virtual int Execute(std::stringstream &ss, GameApi::Env &ee, GameApi::EveryApi &ev, std::vector< std::string > params, GameApi::ExecuteEnv &e, int j)
Definition GameApi_cmd.hh:1309
virtual std::string Name(int i) const
Definition GameApi_cmd.hh:1097
virtual std::string FuncName(int i) const
Definition GameApi_cmd.hh:1140
virtual std::string ParamDefault(int i, int p) const
Definition GameApi_cmd.hh:1123
virtual std::string Symbols() const
Definition GameApi_cmd.hh:1141
virtual std::string ParamName(int i, int p) const
Definition GameApi_cmd.hh:1099
virtual std::string DefaultAuthor(int i, int p) const
Definition GameApi_cmd.hh:1136
virtual int Count() const
Definition GameApi_cmd.hh:1096
virtual void BeginEnv(GameApi::ExecuteEnv &e, std::vector< GameApiParam > params)
Definition GameApi_cmd.hh:1155
EnvGameApiItem_float()
Definition GameApi_cmd.hh:1095
virtual std::string ParamType(int i, int p) const
Definition GameApi_cmd.hh:1110
virtual int Execute(std::stringstream &ss, GameApi::Env &ee, GameApi::EveryApi &ev, std::vector< std::string > params, GameApi::ExecuteEnv &e, int j)
Definition GameApi_cmd.hh:1143
virtual void EndEnv(GameApi::ExecuteEnv &e)
Definition GameApi_cmd.hh:1184
virtual std::string ReturnType(int i) const
Definition GameApi_cmd.hh:1138
virtual std::string DefaultLicense(int i, int p) const
Definition GameApi_cmd.hh:1137
virtual std::string Comment() const
Definition GameApi_cmd.hh:1142
virtual std::pair< std::string, std::string > CodeGen(GameApi::EveryApi &ev, std::vector< std::string > params, std::vector< std::string > param_names, std::vector< std::string > param_exprs, int j)
Definition GameApi_cmd.hh:1150
virtual int ParamCount(int i) const
Definition GameApi_cmd.hh:1098
virtual std::string ApiName(int i) const
Definition GameApi_cmd.hh:1139
EnvGameApiItem_int()
Definition GameApi_cmd.hh:862
virtual int Count() const
Definition GameApi_cmd.hh:863
virtual std::string ParamDefault(int i, int p) const
Definition GameApi_cmd.hh:890
virtual std::string DefaultLicense(int i, int p) const
Definition GameApi_cmd.hh:904
virtual std::string Name(int i) const
Definition GameApi_cmd.hh:864
virtual void BeginEnv(GameApi::ExecuteEnv &e, std::vector< GameApiParam > params)
Definition GameApi_cmd.hh:922
virtual std::string ApiName(int i) const
Definition GameApi_cmd.hh:906
virtual int ParamCount(int i) const
Definition GameApi_cmd.hh:865
virtual std::string ParamName(int i, int p) const
Definition GameApi_cmd.hh:866
virtual std::string ReturnType(int i) const
Definition GameApi_cmd.hh:905
virtual std::string ParamType(int i, int p) const
Definition GameApi_cmd.hh:877
virtual void EndEnv(GameApi::ExecuteEnv &e)
Definition GameApi_cmd.hh:951
virtual std::string Symbols() const
Definition GameApi_cmd.hh:908
virtual std::string FuncName(int i) const
Definition GameApi_cmd.hh:907
virtual std::pair< std::string, std::string > CodeGen(GameApi::EveryApi &ev, std::vector< std::string > params, std::vector< std::string > param_names, std::vector< std::string > param_exprs, int j)
Definition GameApi_cmd.hh:917
virtual std::string Comment() const
Definition GameApi_cmd.hh:909
virtual int Execute(std::stringstream &ss, GameApi::Env &ee, GameApi::EveryApi &ev, std::vector< std::string > params, GameApi::ExecuteEnv &e, int j)
Definition GameApi_cmd.hh:910
virtual std::string DefaultAuthor(int i, int p) const
Definition GameApi_cmd.hh:903
virtual std::string ParamType(int i, int p) const
Definition GameApi_cmd.hh:991
virtual void EndEnv(GameApi::ExecuteEnv &e)
Definition GameApi_cmd.hh:1070
virtual std::string FuncName(int i) const
Definition GameApi_cmd.hh:1021
virtual std::string DefaultAuthor(int i, int p) const
Definition GameApi_cmd.hh:1017
virtual std::string Comment() const
Definition GameApi_cmd.hh:1023
virtual std::string ParamDefault(int i, int p) const
Definition GameApi_cmd.hh:1004
virtual int Count() const
Definition GameApi_cmd.hh:977
virtual std::string ReturnType(int i) const
Definition GameApi_cmd.hh:1019
virtual std::string Name(int i) const
Definition GameApi_cmd.hh:978
virtual std::string ApiName(int i) const
Definition GameApi_cmd.hh:1020
virtual std::string Symbols() const
Definition GameApi_cmd.hh:1022
virtual std::string ParamName(int i, int p) const
Definition GameApi_cmd.hh:980
virtual int Execute(std::stringstream &ss, GameApi::Env &ee, GameApi::EveryApi &ev, std::vector< std::string > params, GameApi::ExecuteEnv &e, int j)
Definition GameApi_cmd.hh:1024
virtual int ParamCount(int i) const
Definition GameApi_cmd.hh:979
virtual void BeginEnv(GameApi::ExecuteEnv &e, std::vector< GameApiParam > params)
Definition GameApi_cmd.hh:1036
virtual std::pair< std::string, std::string > CodeGen(GameApi::EveryApi &ev, std::vector< std::string > params, std::vector< std::string > param_names, std::vector< std::string > param_exprs, int j)
Definition GameApi_cmd.hh:1031
EnvGameApiItem_string()
Definition GameApi_cmd.hh:976
virtual std::string DefaultLicense(int i, int p) const
Definition GameApi_cmd.hh:1018
GameApi::EveryApi & from_stream(std::stringstream &ss, GameApi::EveryApi &ev)
Definition GameApi_cmd.hh:603
bool from_stream(std::stringstream &ss, GameApi::EveryApi &ev)
Definition GameApi_cmd.hh:615
float from_stream(std::stringstream &ss, GameApi::EveryApi &ev)
Definition GameApi_cmd.hh:558
std::string from_stream(std::stringstream &ss, GameApi::EveryApi &ev)
Definition GameApi_cmd.hh:587
std::vector< T > from_stream(std::stringstream &sk, GameApi::EveryApi &ev)
Definition GameApi_cmd.hh:687
std::vector< std::string > from_stream(std::stringstream &sk, GameApi::EveryApi &ev)
Definition GameApi_cmd.hh:648
unsigned int from_stream(std::stringstream &ss, GameApi::EveryApi &ev)
Definition GameApi_cmd.hh:632
Definition GameApi_cmd.hh:400
T from_stream(std::stringstream &ss, GameApi::EveryApi &ev)
Definition GameApi_cmd.hh:402
Definition GameApi.hh:362
Definition GraphI.hh:2956
virtual std::string script_file() const =0
Definition GameApi_cmd.hh:94
static constexpr const char * str
Definition GameApi_cmd.hh:94
Definition Equalizer.hh:1800
ChaiScript_Basic & add(const T &t_t, const std::string &t_name)
Adds a type, function or object to ChaiScript. Objects are added to the local thread state.
Definition chaiscript_engine.hpp:551
std::string code
Definition test.cpp:145
IMPORT ArrayType * find_array(GameApi::Env &e, GameApi::ARR arr)
Definition GameApi_dep_add_find.cc:1924
ret($return)
Definition mesh_login_result.php:5
iVBORw0KGgoAAAANSUhEUgAAANcAAAB5CAMAAACdtUQZAAAA51BMVEX</div ></div >< div style="padding: 0px 0px; width: 1324px;">< div style="height: 400px; width: 1324px;"></div >< div itemscope itemtype="https: </div><div itemscope itemtype="https:</div >< div itemscope itemtype="https: </div></div><p><div style="padding:0px 0px;width:1324px;"><div></div><div itemscope itemtype="https:< ul >< li >< b > Application name
8AkrcAgqgAs9wqQ0ey2tkAo8gAuuQfeI4hPUH09fXHy8z4+fng4uNKXF/Lz9BzfoAcgpkQMTUAKjAbOT4Qr9AXhJ8Rl7ktMCwTosA...
Definition meshpage.php:1610
Definition FreeType.hh:46
IMPORT std::pair< int, std::string > execute_codegen(Env &e2, EveryApi &ev, std::string text, ExecuteEnv &e)
Definition GameApi_gui.cc:8557
Proxy_Function fun(const T &t)
Creates a new Proxy_Function object from a free function, member function or data member.
Definition register_function.hpp:43
double f(const std::string &, double, bool) noexcept
Definition profile_cpp_calls_2.cpp:4
Definition GameApiTest5.cc:17
Definition GameApi_cmd.hh:279
std::string license
Definition GameApi_cmd.hh:282
std::string author
Definition GameApi_cmd.hh:281
std::string def
Definition GameApi_cmd.hh:280
std::vector< int > vec
Definition test.cpp:84
Definition GameApi_cmd.hh:41
std::vector< GameApiItem * > items
Definition GameApi_cmd.hh:42
~DelApiItemF()
Definition GameApi_cmd.hh:43
Definition GameApi.hh:112
int id
Definition GameApi.hh:112
Definition GameApi.hh:2767
Definition GameApi.hh:4664
Definition GameApi.hh:301
int id
Definition Common.hh:156
Definition GameApi.hh:2789
int id
Definition Common.hh:86
Definition GameApi.hh:288
Definition GameApi.hh:286
Definition GameApi.hh:287
Definition GameApi_pl.cc:16922
int id
Definition GameApi.h:42
Definition FloatVolumeObject.hh:5
Definition GameApi_cmd.hh:289
int funccall(RT(fptr)(P...), std::vector< std::string > s, std::vector< std::string > param_name)
Definition ui.cc:199