diff --git a/rcbasic_build/parser.h b/rcbasic_build/parser.h index 5b8b88e..43f420d 100644 --- a/rcbasic_build/parser.h +++ b/rcbasic_build/parser.h @@ -6045,98 +6045,158 @@ bool check_rule_embedded() return false; } - int fn_type = ID_TYPE_FN_NUM; - if(fn_name.substr(fn_name.length()-1,1).compare("$")==0) - fn_type = ID_TYPE_FN_STR; - - embed_function(fn_name, fn_type); - current_block_state = BLOCK_STATE_FUNCTION; - block_state.push(current_block_state); - - string fn_arg = ""; - int fn_arg_type = ID_TYPE_NUM; - bool fn_byref = false; - - int end_token = 0; - - for(int i = 3; i < token.size(); i++) - { - if(token[i].compare("")==0) - { - fn_byref = true; - } - else if(rc_substr(token[i], 0, 4).compare("")==0) - { - fn_arg += token[i]; - if(fn_arg.substr(fn_arg.length()-1,1).compare("$")==0) - fn_arg_type = ID_TYPE_STR; - else - fn_arg_type = ID_TYPE_NUM; - } - else if(token[i].compare("")==0) - { - fn_arg = rc_substr(fn_arg, 4, fn_arg.length()-1); - if(!isValidIDName(fn_arg)) - { - rc_setError("Function argument is not a valid identifier name"); - return false; - } - if(idExistsInScope(fn_arg)) - { - rc_setError("Function argument identifier already exists in current scope"); - return false; - } - - if(fn_byref) - { - if(fn_arg_type == ID_TYPE_NUM) - fn_arg_type = ID_TYPE_BYREF_NUM; - else - fn_arg_type = ID_TYPE_BYREF_STR; - } - - add_embedded_arg(fn_arg, fn_arg_type); - fn_arg = ""; - fn_byref = false; - } - else if(token[i].compare("")==0) - { - if(fn_arg.compare("")==0) - { - end_token = i+1; - break; - } - fn_arg = rc_substr(fn_arg, 4, fn_arg.length()-1); - if(!isValidIDName(fn_arg)) - { - rc_setError("Function argument is not a valid identifier name"); - return false; - } - if(idExistsInScope(fn_arg)) - { - rc_setError("Function argument identifier already exists in current scope: " + fn_arg + " -> " + current_scope + " ? "); - return false; - } - - if(fn_byref) - { - if(fn_arg_type == ID_TYPE_NUM) - fn_arg_type = ID_TYPE_BYREF_NUM; - else - fn_arg_type = ID_TYPE_BYREF_STR; - } - - add_embedded_arg(fn_arg, fn_arg_type); - fn_arg = ""; - fn_byref = false; - end_token = i+1; - break; - } - else - { - rc_setError("Argument to function must be a valid identifier: " + token[i]); - return false; - } + int fn_type = ID_TYPE_FN_NUM; + if(fn_name.substr(fn_name.length()-1,1).compare("$")==0) + fn_type = ID_TYPE_FN_STR; + + string fn_type_name = ""; + if(token.size()>2) + { + if(token[token.size()-2].compare("")==0) + { + fn_type = ID_TYPE_FN_USER; + if(token[token.size()-1].substr(0,4).compare("")==0) + fn_type_name = token[token.size()-1].substr(4); + else + { + rc_setError("Invalid return type in FUNCTION definition"); + return false; + } + token.pop_back(); + token.pop_back(); + } + } + + if(!create_function(fn_name, fn_type, fn_type_name)) + { + rc_setError("Could not create FUNCTION \"" + fn_name + "\" of type \"" + fn_type_name + "\""); + return false; + } + current_block_state = BLOCK_STATE_FUNCTION; + block_state.push(current_block_state); + + string fn_arg = ""; + int fn_arg_type = ID_TYPE_NUM; + string fn_arg_user_type = ""; + bool fn_byref = false; + + int end_token = 0; + + for(int i = 3; i < token.size(); i++) + { + if(token[i].compare("")==0) + { + fn_byref = true; + } + else if(rc_substr(token[i], 0, 4).compare("")==0) + { + fn_arg += token[i]; + if(fn_arg.substr(fn_arg.length()-1,1).compare("$")==0) + fn_arg_type = ID_TYPE_STR; + else + fn_arg_type = ID_TYPE_NUM; + } + else if(token[i].compare("")==0) + { + i++; + fn_arg_type = ID_TYPE_USER; + fn_arg_user_type = ""; + int arg_type_index = -1; + if(i < token.size()) + if(token[i].substr(0,4).compare("")==0) + fn_arg_user_type = token[i].substr(4); + + if(fn_arg_user_type.compare("")==0) + { + rc_setError("Invalid Type in FUNCTION Definition"); + return false; + } + + } + else if(token[i].compare("")==0) + { + //cout << "ADD ARG: " << fn_arg << endl; + fn_arg = rc_substr(fn_arg, 4, fn_arg.length()-1); + if(!isValidIDName(fn_arg)) + { + rc_setError("FUNCTION argument is not a valid identifier name"); + return false; + } + if(idExistsInScope(fn_arg)) + { + rc_setError("FUNCTION argument identifier already exists in current scope"); + return false; + } + + //cout << "CHECK 1" << endl; + + if(fn_byref) + { + if(fn_arg_type == ID_TYPE_NUM) + fn_arg_type = ID_TYPE_BYREF_NUM; + else if(fn_arg_type == ID_TYPE_STR) + fn_arg_type = ID_TYPE_BYREF_STR; + else + fn_arg_type = ID_TYPE_BYREF_USER; + } + + if(!add_function_arg(fn_arg, fn_arg_type, fn_arg_user_type)) + { + return false; + } + fn_arg = ""; + fn_byref = false; + + //cout << "DONE" << endl; + } + else if(token[i].compare("")==0) + { + if((i+1) < token.size()) + { + rc_setError("Expected End of FUNCTION Declaration"); + return false; + } + if(fn_arg.compare("")==0) + { + end_token = i+1; + break; + } + fn_arg = rc_substr(fn_arg, 4, fn_arg.length()-1); + if(!isValidIDName(fn_arg)) + { + rc_setError("FUNCTION argument is not a valid identifier name"); + return false; + } + if(idExistsInScope(fn_arg)) + { + rc_setError("FUNCTION argument identifier already exists in current scope"); + return false; + } + + if(fn_byref) + { + if(fn_arg_type == ID_TYPE_NUM) + fn_arg_type = ID_TYPE_BYREF_NUM; + else if(fn_arg_type == ID_TYPE_STR) + fn_arg_type = ID_TYPE_BYREF_STR; + else + fn_arg_type = ID_TYPE_BYREF_USER; + } + + if(!add_function_arg(fn_arg, fn_arg_type, fn_arg_user_type)) + { + return false; + } + + fn_arg = ""; + fn_byref = false; + end_token = i+1; + break; + } + else + { + rc_setError("Argument to FUNCTION must be a valid identifier: " + token[i]); + } } current_block_state = BLOCK_STATE_MAIN; @@ -6172,96 +6232,140 @@ bool check_rule_embedded() return false; } - int fn_type = ID_TYPE_SUB; - - embed_function(fn_name, fn_type); - current_block_state = BLOCK_STATE_SUB; - block_state.push(current_block_state); - - string fn_arg = ""; - int fn_arg_type = ID_TYPE_NUM; - bool fn_byref = false; - - int end_token = 0; - - for(int i = 3; i < token.size(); i++) - { - if(token[i].compare("")==0) - { - fn_byref = true; - } - else if(rc_substr(token[i], 0, 4).compare("")==0) - { - fn_arg += token[i]; - if(fn_arg.substr(fn_arg.length()-1,1).compare("$")==0) - fn_arg_type = ID_TYPE_STR; - else - fn_arg_type = ID_TYPE_NUM; - } - else if(token[i].compare("")==0) - { - fn_arg = rc_substr(fn_arg, 4, fn_arg.length()-1); - if(!isValidIDName(fn_arg)) - { - rc_setError("Function argument is not a valid identifier name"); - return false; - } - if(idExistsInScope(fn_arg)) - { - rc_setError("Function argument identifier already exists in current scope"); - return false; - } - - if(fn_byref) - { - if(fn_arg_type == ID_TYPE_NUM) - fn_arg_type = ID_TYPE_BYREF_NUM; - else - fn_arg_type = ID_TYPE_BYREF_STR; - } - - add_embedded_arg(fn_arg, fn_arg_type); - fn_arg = ""; - fn_byref = false; - } - else if(token[i].compare("")==0) - { - if(fn_arg.compare("")==0) - { - end_token = i+1; - break; - } - fn_arg = rc_substr(fn_arg, 4, fn_arg.length()-1); - if(!isValidIDName(fn_arg)) - { - rc_setError("Function argument is not a valid identifier name"); - return false; - } - if(idExistsInScope(fn_arg)) - { - rc_setError("Function argument identifier already exists in current scope"); - return false; - } - - if(fn_byref) - { - if(fn_arg_type == ID_TYPE_NUM) - fn_arg_type = ID_TYPE_BYREF_NUM; - else - fn_arg_type = ID_TYPE_BYREF_STR; - } - - add_embedded_arg(fn_arg, fn_arg_type); - fn_arg = ""; - fn_byref = false; - end_token = i+1; - break; - } - else - { - rc_setError("Argument to function must be a valid identifier: " + token[i]); - return false; - } + int fn_type = ID_TYPE_SUB; + + string fn_type_name = ""; + + if(!create_function(fn_name, fn_type, fn_type_name)) + { + rc_setError("Could not create SUB ROUTINE \"" + fn_name + "\""); + return false; + } + current_block_state = BLOCK_STATE_SUB; + block_state.push(current_block_state); + + string fn_arg = ""; + int fn_arg_type = ID_TYPE_NUM; + string fn_arg_user_type = ""; + bool fn_byref = false; + + int end_token = 0; + + for(int i = 3; i < token.size(); i++) + { + if(token[i].compare("")==0) + { + fn_byref = true; + } + else if(rc_substr(token[i], 0, 4).compare("")==0) + { + fn_arg += token[i]; + if(fn_arg.substr(fn_arg.length()-1,1).compare("$")==0) + fn_arg_type = ID_TYPE_STR; + else + fn_arg_type = ID_TYPE_NUM; + } + else if(token[i].compare("")==0) + { + i++; + fn_arg_type = ID_TYPE_USER; + fn_arg_user_type = ""; + int arg_type_index = -1; + if(i < token.size()) + if(token[i].substr(0,4).compare("")==0) + fn_arg_user_type = token[i].substr(4); + + if(fn_arg_user_type.compare("")==0) + { + rc_setError("Invalid Type in SUB ROUTINE Definition"); + return false; + } + + } + else if(token[i].compare("")==0) + { + //cout << "ADD ARG: " << fn_arg << endl; + fn_arg = rc_substr(fn_arg, 4, fn_arg.length()-1); + if(!isValidIDName(fn_arg)) + { + rc_setError("SUB ROUTINE argument is not a valid identifier name"); + return false; + } + if(idExistsInScope(fn_arg)) + { + rc_setError("SUB ROUTINE argument identifier already exists in current scope"); + return false; + } + + //cout << "CHECK 1" << endl; + + if(fn_byref) + { + if(fn_arg_type == ID_TYPE_NUM) + fn_arg_type = ID_TYPE_BYREF_NUM; + else if(fn_arg_type == ID_TYPE_STR) + fn_arg_type = ID_TYPE_BYREF_STR; + else + fn_arg_type = ID_TYPE_BYREF_USER; + } + + if(!add_function_arg(fn_arg, fn_arg_type, fn_arg_user_type)) + { + return false; + } + fn_arg = ""; + fn_byref = false; + + //cout << "DONE" << endl; + } + else if(token[i].compare("")==0) + { + if((i+1) < token.size()) + { + rc_setError("Expected End of SUB ROUTINE Declaration"); + return false; + } + if(fn_arg.compare("")==0) + { + end_token = i+1; + break; + } + fn_arg = rc_substr(fn_arg, 4, fn_arg.length()-1); + if(!isValidIDName(fn_arg)) + { + rc_setError("SUB ROUTINE argument is not a valid identifier name"); + return false; + } + if(idExistsInScope(fn_arg)) + { + rc_setError("SUB ROUTINE argument identifier already exists in current scope"); + return false; + } + + if(fn_byref) + { + if(fn_arg_type == ID_TYPE_NUM) + fn_arg_type = ID_TYPE_BYREF_NUM; + else if(fn_arg_type == ID_TYPE_STR) + fn_arg_type = ID_TYPE_BYREF_STR; + else + fn_arg_type = ID_TYPE_BYREF_USER; + } + + if(!add_function_arg(fn_arg, fn_arg_type, fn_arg_user_type)) + { + return false; + } + + fn_arg = ""; + fn_byref = false; + end_token = i+1; + break; + } + else + { + rc_setError("Argument to SUB ROUTINE must be a valid identifier: " + token[i]); + } } current_block_state = BLOCK_STATE_MAIN; @@ -6276,6 +6380,37 @@ bool check_rule_embedded() return false; } + } + else if(token[0].compare("")==0) + { + if(current_scope.compare("main")!=0) + { + rc_setError("TYPE cannot be defined in this scope"); + return false; + } + if(token.size() != 2) + { + rc_setError("Expected TYPE Identifier in TYPE statement"); + return false; + } + if(token[1].substr(0,4).compare("")!=0) + { + rc_setError("Expected TYPE Identifier in TYPE statement"); + return false; + } + int id_index = getIDInScope_ByIndex(token[1].substr(4)); + if(id_index >= 0) + { + rc_setError("TYPE Identifier exists in current scope"); + return false; + } + create_type(token[1].substr(4)); + current_block_state = BLOCK_STATE_TYPE; + block_state.push(current_block_state); + + string start_label = current_scope + ".#TYPE:" + token[1].substr(4); + + current_scope = start_label; } } return true; diff --git a/rcbasic_build/rc_builtin.h b/rcbasic_build/rc_builtin.h index f7dc2ef..097e985 100644 --- a/rcbasic_build/rc_builtin.h +++ b/rcbasic_build/rc_builtin.h @@ -4,1423 +4,1434 @@ void init_embedded() { -embed_function("FPrint", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("Input$", ID_TYPE_FN_STR); -add_embedded_arg("prompt$", ID_TYPE_STR); -embed_function("ArrayDim", ID_TYPE_FN_NUM); -add_embedded_arg("id", ID_TYPE_BYREF_NUM); -embed_function("StringArrayDim", ID_TYPE_FN_NUM); -add_embedded_arg("id$", ID_TYPE_BYREF_STR); -embed_function("NumberArrayDim", ID_TYPE_FN_NUM); -add_embedded_arg("id", ID_TYPE_BYREF_NUM); -embed_function("ArraySize", ID_TYPE_FN_NUM); -add_embedded_arg("id", ID_TYPE_BYREF_NUM); -add_embedded_arg("array_dim", ID_TYPE_NUM); -embed_function("StringArraySize", ID_TYPE_FN_NUM); -add_embedded_arg("id$", ID_TYPE_BYREF_STR); -add_embedded_arg("array_dim", ID_TYPE_NUM); -embed_function("NumberArraySize", ID_TYPE_FN_NUM); -add_embedded_arg("id", ID_TYPE_BYREF_NUM); -add_embedded_arg("array_dim", ID_TYPE_NUM); -embed_function("Abs", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("ACos", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("AndBit", ID_TYPE_FN_NUM); -add_embedded_arg("a", ID_TYPE_NUM); -add_embedded_arg("b", ID_TYPE_NUM); -embed_function("ASin", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("ATan", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Bin$", ID_TYPE_FN_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("CInt32", ID_TYPE_FN_NUM); -add_embedded_arg("i", ID_TYPE_NUM); -embed_function("CInt64", ID_TYPE_FN_NUM); -add_embedded_arg("i", ID_TYPE_NUM); -embed_function("Cos", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Degrees", ID_TYPE_FN_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -embed_function("Exp", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Frac", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Hex$", ID_TYPE_FN_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("HexVal", ID_TYPE_FN_NUM); -add_embedded_arg("n$", ID_TYPE_STR); -embed_function("Int", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Log", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Max", ID_TYPE_FN_NUM); -add_embedded_arg("a", ID_TYPE_NUM); -add_embedded_arg("b", ID_TYPE_NUM); -embed_function("Min", ID_TYPE_FN_NUM); -add_embedded_arg("a", ID_TYPE_NUM); -add_embedded_arg("b", ID_TYPE_NUM); -embed_function("OrBit", ID_TYPE_FN_NUM); -add_embedded_arg("a", ID_TYPE_NUM); -add_embedded_arg("b", ID_TYPE_NUM); -embed_function("Radians", ID_TYPE_FN_NUM); -add_embedded_arg("d", ID_TYPE_NUM); -embed_function("Randomize", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Rand", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Round", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Sign", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Sin", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Sqrt", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Tan", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("XOrBit", ID_TYPE_FN_NUM); -add_embedded_arg("a", ID_TYPE_NUM); -add_embedded_arg("b", ID_TYPE_NUM); -embed_function("Asc", ID_TYPE_FN_NUM); -add_embedded_arg("c$", ID_TYPE_STR); -embed_function("Chr$", ID_TYPE_FN_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Insert$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("tgt$", ID_TYPE_STR); -add_embedded_arg("pos", ID_TYPE_NUM); -embed_function("InStr", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("substr$", ID_TYPE_STR); -embed_function("LCase$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("Left$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Length", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("Len", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("LTrim$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("Mid$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("start", ID_TYPE_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("ReplaceSubstr$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("rpc$", ID_TYPE_STR); -add_embedded_arg("pos", ID_TYPE_NUM); -embed_function("Replace$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("tgt$", ID_TYPE_STR); -add_embedded_arg("rpc$", ID_TYPE_STR); -embed_function("Reverse$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("Right$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("RTrim$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("StringFill$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Str$", ID_TYPE_FN_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Str_F$", ID_TYPE_FN_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Str_S$", ID_TYPE_FN_STR); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Tally", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("substr$", ID_TYPE_STR); -embed_function("Trim$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("UCase$", ID_TYPE_FN_STR); -add_embedded_arg("src$", ID_TYPE_STR); -embed_function("Val", ID_TYPE_FN_NUM); -add_embedded_arg("n$", ID_TYPE_STR); -embed_function("Stack_N", ID_TYPE_SUB); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Stack_S", ID_TYPE_SUB); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Push_N", ID_TYPE_SUB); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("Pop_N", ID_TYPE_FN_NUM); -embed_function("Push_S", ID_TYPE_SUB); -add_embedded_arg("s$", ID_TYPE_STR); -embed_function("Pop_S$", ID_TYPE_FN_STR); -embed_function("Stack_Size_N", ID_TYPE_FN_NUM); -embed_function("Stack_Size_S", ID_TYPE_FN_NUM); -embed_function("FileOpen", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("fileName$", ID_TYPE_STR); -add_embedded_arg("mode", ID_TYPE_NUM); -embed_function("FileClose", ID_TYPE_SUB); -add_embedded_arg("stream", ID_TYPE_NUM); -embed_function("ReadByte", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -embed_function("WriteByte", ID_TYPE_SUB); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("byte", ID_TYPE_NUM); -embed_function("ReadLine$", ID_TYPE_FN_STR); -add_embedded_arg("stream", ID_TYPE_NUM); -embed_function("Write", ID_TYPE_SUB); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("WriteLine", ID_TYPE_SUB); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("CopyFile", ID_TYPE_SUB); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("dst$", ID_TYPE_STR); -embed_function("RemoveFile", ID_TYPE_FN_NUM); -add_embedded_arg("fileName$", ID_TYPE_STR); -embed_function("FileExists", ID_TYPE_FN_NUM); -add_embedded_arg("fileName$", ID_TYPE_STR); -embed_function("MoveFile", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("dst$", ID_TYPE_STR); -embed_function("RenameFile", ID_TYPE_FN_NUM); -add_embedded_arg("src$", ID_TYPE_STR); -add_embedded_arg("dst$", ID_TYPE_STR); -embed_function("FileLength", ID_TYPE_FN_NUM); -add_embedded_arg("fileName$", ID_TYPE_STR); -embed_function("Tell", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -embed_function("Seek", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("pos", ID_TYPE_NUM); -embed_function("EOF", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -embed_function("FreeFile", ID_TYPE_FN_NUM); -embed_function("ChangeDir", ID_TYPE_SUB); -add_embedded_arg("p$", ID_TYPE_STR); -embed_function("DirExists", ID_TYPE_FN_NUM); -add_embedded_arg("p$", ID_TYPE_STR); -embed_function("DirFirst$", ID_TYPE_FN_STR); -embed_function("Dir$", ID_TYPE_FN_STR); -embed_function("DirNext$", ID_TYPE_FN_STR); -embed_function("MakeDir", ID_TYPE_FN_NUM); -add_embedded_arg("p$", ID_TYPE_STR); -embed_function("RemoveDir", ID_TYPE_FN_NUM); -add_embedded_arg("p$", ID_TYPE_STR); -embed_function("Date$", ID_TYPE_FN_STR); -embed_function("Easter$", ID_TYPE_FN_STR); -add_embedded_arg("year", ID_TYPE_NUM); -embed_function("Ticks", ID_TYPE_FN_NUM); -embed_function("Time$", ID_TYPE_FN_STR); -embed_function("Timer", ID_TYPE_FN_NUM); -embed_function("Wait", ID_TYPE_SUB); -add_embedded_arg("m_sec", ID_TYPE_NUM); -embed_function("WindowOpen", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("title$", ID_TYPE_STR); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -add_embedded_arg("vsync", ID_TYPE_NUM); -embed_function("WindowClose", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("RaiseWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("Window", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("Update", ID_TYPE_SUB); -embed_function("Cls", ID_TYPE_SUB); -embed_function("SetClearColor", ID_TYPE_SUB); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("ShowWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("HideWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("SetWindowTitle", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("title$", ID_TYPE_STR); -embed_function("WindowTitle$", ID_TYPE_FN_STR); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("SetWindowPosition", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("GetWindowPosition", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -embed_function("SetWindowSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("GetWindowSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("SetWindowMinSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("GetWindowMinSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("SetWindowMaxSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("GetWindowMaxSize", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("WindowIsFullscreen", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowIsVisible", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowIsBordered", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowIsResizable", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowIsMinimized", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowIsMaximized", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowHasInputFocus", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowHasMouseFocus", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("SetWindowFullscreen", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("MaximizeWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("MinimizeWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("SetWindowBorder", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("WindowClip", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("WindowExists", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("NumWindows", ID_TYPE_FN_NUM); -embed_function("WindowEvent_Close", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowEvent_Maximize", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("WindowEvent_Minimize", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("ActiveWindow", ID_TYPE_FN_NUM); -embed_function("FPS", ID_TYPE_FN_NUM); -embed_function("SetWindowIcon", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("CanvasOpen", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("viewport_x", ID_TYPE_NUM); -add_embedded_arg("viewport_y", ID_TYPE_NUM); -add_embedded_arg("viewport_w", ID_TYPE_NUM); -add_embedded_arg("viewport_h", ID_TYPE_NUM); -add_embedded_arg("mode", ID_TYPE_NUM); -embed_function("CanvasClose", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("SetCanvasVisible", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("CanvasIsVisible", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("SetCanvasViewport", ID_TYPE_SUB); -add_embedded_arg("cnum", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("GetCanvasViewport", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("Canvas", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("SetCanvasOffset", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("GetCanvasOffset", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -embed_function("GetCanvasSize", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("ClearCanvas", ID_TYPE_SUB); -embed_function("SetCanvasAlpha", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("a", ID_TYPE_NUM); -embed_function("CanvasAlpha", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("SetCanvasBlendMode", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("blend_mode", ID_TYPE_NUM); -embed_function("CanvasBlendMode", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("SetCanvasColorMod", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("CanvasColorMod", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("CopyCanvas", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("dst", ID_TYPE_NUM); -add_embedded_arg("dx", ID_TYPE_NUM); -add_embedded_arg("dy", ID_TYPE_NUM); -embed_function("CloneCanvas", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_NUM); -add_embedded_arg("dst", ID_TYPE_NUM); -embed_function("SetCanvasZ", ID_TYPE_SUB); -add_embedded_arg("c_num", ID_TYPE_NUM); -add_embedded_arg("z", ID_TYPE_NUM); -embed_function("CanvasZ", ID_TYPE_FN_NUM); -add_embedded_arg("c_num", ID_TYPE_NUM); -embed_function("CanvasClip", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("ActiveCanvas", ID_TYPE_FN_NUM); -embed_function("Box", ID_TYPE_SUB); -add_embedded_arg("x1", ID_TYPE_NUM); -add_embedded_arg("y1", ID_TYPE_NUM); -add_embedded_arg("x2", ID_TYPE_NUM); -add_embedded_arg("y2", ID_TYPE_NUM); -embed_function("BoxFill", ID_TYPE_SUB); -add_embedded_arg("x1", ID_TYPE_NUM); -add_embedded_arg("y1", ID_TYPE_NUM); -add_embedded_arg("x2", ID_TYPE_NUM); -add_embedded_arg("y2", ID_TYPE_NUM); -embed_function("Circle", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("radius", ID_TYPE_NUM); -embed_function("CircleFill", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("radius", ID_TYPE_NUM); -embed_function("Ellipse", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("rx", ID_TYPE_NUM); -add_embedded_arg("ry", ID_TYPE_NUM); -embed_function("EllipseFill", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("rx", ID_TYPE_NUM); -add_embedded_arg("ry", ID_TYPE_NUM); -embed_function("FloodFill", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("GetPixel", ID_TYPE_FN_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("SetColor", ID_TYPE_SUB); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("Line", ID_TYPE_SUB); -add_embedded_arg("x1", ID_TYPE_NUM); -add_embedded_arg("y1", ID_TYPE_NUM); -add_embedded_arg("x2", ID_TYPE_NUM); -add_embedded_arg("y2", ID_TYPE_NUM); -embed_function("Poly", ID_TYPE_SUB); -add_embedded_arg("n", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -embed_function("PolyFill", ID_TYPE_SUB); -add_embedded_arg("n", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -embed_function("Rect", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("RectFill", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("RoundRect", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -embed_function("RoundRectFill", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -embed_function("RGB", ID_TYPE_FN_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("g", ID_TYPE_NUM); -add_embedded_arg("b", ID_TYPE_NUM); -embed_function("RGBA", ID_TYPE_FN_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("g", ID_TYPE_NUM); -add_embedded_arg("b", ID_TYPE_NUM); -add_embedded_arg("a", ID_TYPE_NUM); -embed_function("PSet", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("LoadImage", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("img$", ID_TYPE_STR); -embed_function("LoadImage_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("img$", ID_TYPE_STR); -add_embedded_arg("colkey", ID_TYPE_NUM); -embed_function("ImageFromBuffer", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -embed_function("ImageFromBuffer_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -add_embedded_arg("colkey", ID_TYPE_NUM); -embed_function("BufferFromImage", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -embed_function("ImageExists", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("ColorKey", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("CopyImage", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_NUM); -add_embedded_arg("dst", ID_TYPE_NUM); -embed_function("DeleteImage", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("SetImageAlpha", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("a", ID_TYPE_NUM); -embed_function("ImageAlpha", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("GetImageSize", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("SetImageBlendMode", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("blend_mode", ID_TYPE_NUM); -embed_function("ImageBlendMode", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("SetImageColorMod", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("ImageColorMod", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("DrawImage", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("DrawImage_Blit", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -embed_function("DrawImage_Blit_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -embed_function("DrawImage_Rotate", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -embed_function("DrawImage_Rotate_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -embed_function("DrawImage_Zoom", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("zx", ID_TYPE_NUM); -add_embedded_arg("zy", ID_TYPE_NUM); -embed_function("DrawImage_Zoom_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -add_embedded_arg("zx", ID_TYPE_NUM); -add_embedded_arg("zy", ID_TYPE_NUM); -embed_function("DrawImage_Rotozoom", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -add_embedded_arg("zx", ID_TYPE_NUM); -add_embedded_arg("zy", ID_TYPE_NUM); -embed_function("DrawImage_Rotozoom_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -add_embedded_arg("zx", ID_TYPE_NUM); -add_embedded_arg("zy", ID_TYPE_NUM); -embed_function("DrawImage_Flip", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("DrawImage_Flip_Ex", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("InKey", ID_TYPE_FN_NUM); -embed_function("Key", ID_TYPE_FN_NUM); -add_embedded_arg("key_code", ID_TYPE_NUM); -embed_function("WaitKey", ID_TYPE_FN_NUM); -embed_function("HideMouse", ID_TYPE_SUB); -embed_function("ShowMouse", ID_TYPE_SUB); -embed_function("MouseIsVisible", ID_TYPE_FN_NUM); -embed_function("GetMouse", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); -embed_function("MouseX", ID_TYPE_FN_NUM); -embed_function("MouseY", ID_TYPE_FN_NUM); -embed_function("MouseButton", ID_TYPE_FN_NUM); -add_embedded_arg("mb", ID_TYPE_NUM); -embed_function("GetMouseWheel", ID_TYPE_SUB); -add_embedded_arg("x_axis", ID_TYPE_BYREF_NUM); -add_embedded_arg("y_axis", ID_TYPE_BYREF_NUM); -embed_function("MouseWheelX", ID_TYPE_FN_NUM); -embed_function("MouseWheelY", ID_TYPE_FN_NUM); -embed_function("SoundFromBuffer", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -add_embedded_arg("buffer_size", ID_TYPE_NUM); -add_embedded_arg("vol", ID_TYPE_NUM); -embed_function("LoadSound", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("snd_file$", ID_TYPE_STR); -embed_function("LoadMusic", ID_TYPE_SUB); -add_embedded_arg("music_file$", ID_TYPE_STR); -embed_function("PlaySound", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("loops", ID_TYPE_NUM); -embed_function("PlaySoundTimed", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("loops", ID_TYPE_NUM); -add_embedded_arg("ms", ID_TYPE_NUM); -embed_function("PlayMusic", ID_TYPE_SUB); -add_embedded_arg("mLoops", ID_TYPE_NUM); -embed_function("PauseSound", ID_TYPE_SUB); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("ResumeSound", ID_TYPE_SUB); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("PauseMusic", ID_TYPE_SUB); -embed_function("ResumeMusic", ID_TYPE_SUB); -embed_function("DeleteSound", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("DeleteMusic", ID_TYPE_SUB); -embed_function("FadeMusicIn", ID_TYPE_SUB); -add_embedded_arg("fade_time", ID_TYPE_NUM); -add_embedded_arg("loops", ID_TYPE_NUM); -embed_function("FadeMusicOut", ID_TYPE_SUB); -add_embedded_arg("fade_time", ID_TYPE_NUM); -embed_function("MusicExists", ID_TYPE_FN_NUM); -embed_function("SetMusicVolume", ID_TYPE_SUB); -add_embedded_arg("vol", ID_TYPE_NUM); -embed_function("MusicVolume", ID_TYPE_FN_NUM); -embed_function("SetMusicPosition", ID_TYPE_SUB); -add_embedded_arg("pos", ID_TYPE_NUM); -embed_function("MusicPosition", ID_TYPE_FN_NUM); -embed_function("RewindMusic", ID_TYPE_SUB); -embed_function("SetSoundChannels", ID_TYPE_SUB); -add_embedded_arg("max_channels", ID_TYPE_NUM); -embed_function("NumSoundChannels", ID_TYPE_FN_NUM); -embed_function("SoundIsEnabled", ID_TYPE_FN_NUM); -embed_function("SoundExists", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("SetChannelVolume", ID_TYPE_SUB); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("vol", ID_TYPE_NUM); -embed_function("ChannelVolume", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("SetSoundVolume", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("vol", ID_TYPE_NUM); -embed_function("SoundVolume", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("StopMusic", ID_TYPE_SUB); -embed_function("StopSound", ID_TYPE_SUB); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("SetChannelPanning", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("left_value", ID_TYPE_NUM); -add_embedded_arg("right_value", ID_TYPE_NUM); -embed_function("SetChannelDistance", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("dist_value", ID_TYPE_NUM); -embed_function("ChannelIsPlaying", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("ChannelIsPaused", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -embed_function("NumJoysticks", ID_TYPE_FN_NUM); -embed_function("NumJoyAxes", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("NumJoyButtons", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("NumJoyHats", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("NumJoyTrackBalls", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("JoyAxis", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -add_embedded_arg("joy_axis", ID_TYPE_NUM); -embed_function("JoyButton", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -add_embedded_arg("joy_button", ID_TYPE_NUM); -embed_function("JoyHat", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -add_embedded_arg("joy_hat", ID_TYPE_NUM); -embed_function("GetJoyTrackBall", ID_TYPE_SUB); -add_embedded_arg("joy_num", ID_TYPE_NUM); -add_embedded_arg("ball", ID_TYPE_NUM); -add_embedded_arg("dx", ID_TYPE_BYREF_NUM); -add_embedded_arg("dy", ID_TYPE_BYREF_NUM); -embed_function("JoyName$", ID_TYPE_FN_STR); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("JoystickIsConnected", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("GetCursor", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -embed_function("PrintS", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("InputS$", ID_TYPE_FN_STR); -add_embedded_arg("prompt$", ID_TYPE_STR); -embed_function("ZoneInputS$", ID_TYPE_FN_STR); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("Locate", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("ReadInput_Start", ID_TYPE_SUB); -embed_function("ReadInput_Stop", ID_TYPE_SUB); -embed_function("ReadInput_Text$", ID_TYPE_FN_STR); -embed_function("ReadInput_SetText", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("ReadInput_ToggleBackspace", ID_TYPE_SUB); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("LoadFont", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("fnt_file$", ID_TYPE_STR); -add_embedded_arg("size", ID_TYPE_NUM); -embed_function("DeleteFont", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("FontIsLoaded", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("Font", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -embed_function("SetFontStyle", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("style", ID_TYPE_NUM); -embed_function("DrawText", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("DrawText_Shaded", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("fg_color", ID_TYPE_NUM); -add_embedded_arg("bg_color", ID_TYPE_NUM); -embed_function("DrawText_Blended", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("RenderText", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("GetTextSize", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("txt$", ID_TYPE_STR); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("TouchPressure", ID_TYPE_FN_NUM); -embed_function("GetTouch", ID_TYPE_SUB); -add_embedded_arg("status", ID_TYPE_BYREF_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("dx", ID_TYPE_BYREF_NUM); -add_embedded_arg("dy", ID_TYPE_BYREF_NUM); -embed_function("GetMultiTouch", ID_TYPE_SUB); -add_embedded_arg("status", ID_TYPE_BYREF_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("fingers", ID_TYPE_BYREF_NUM); -add_embedded_arg("dist", ID_TYPE_BYREF_NUM); -add_embedded_arg("theta", ID_TYPE_BYREF_NUM); -embed_function("GetTouchFinger", ID_TYPE_SUB); -add_embedded_arg("finger", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("pressure", ID_TYPE_BYREF_NUM); -embed_function("NumFingers", ID_TYPE_FN_NUM); -embed_function("CheckSockets", ID_TYPE_FN_NUM); -add_embedded_arg("timeout_ms", ID_TYPE_NUM); -embed_function("TCP_SocketReady", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("UDP_SocketReady", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("TCP_SocketOpen", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("host$", ID_TYPE_STR); -add_embedded_arg("port", ID_TYPE_NUM); -embed_function("TCP_SocketClose", ID_TYPE_SUB); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("TCP_RemoteHost", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("TCP_RemotePort", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("TCP_GetData", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("sData$", ID_TYPE_BYREF_STR); -add_embedded_arg("numBytes", ID_TYPE_NUM); -embed_function("TCP_SendData", ID_TYPE_SUB); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("sData$", ID_TYPE_STR); -embed_function("TCP_AcceptSocket", ID_TYPE_FN_NUM); -add_embedded_arg("server", ID_TYPE_NUM); -add_embedded_arg("client", ID_TYPE_NUM); -embed_function("UDP_SocketOpen", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("port", ID_TYPE_NUM); -embed_function("UDP_SocketClose", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("UDP_GetData", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("sData$", ID_TYPE_BYREF_STR); -add_embedded_arg("host$", ID_TYPE_BYREF_STR); -add_embedded_arg("port", ID_TYPE_BYREF_NUM); -embed_function("UDP_Length", ID_TYPE_FN_NUM); -embed_function("UDP_MaxLength", ID_TYPE_FN_NUM); -embed_function("UDP_RemoteHost$", ID_TYPE_FN_STR); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("UDP_RemotePort", ID_TYPE_FN_NUM); -add_embedded_arg("socket", ID_TYPE_NUM); -embed_function("UDP_SendData", ID_TYPE_SUB); -add_embedded_arg("socket", ID_TYPE_NUM); -add_embedded_arg("sData$", ID_TYPE_STR); -add_embedded_arg("host$", ID_TYPE_STR); -add_embedded_arg("port", ID_TYPE_NUM); -embed_function("LoadVideo", ID_TYPE_SUB); -add_embedded_arg("vid$", ID_TYPE_STR); -embed_function("PlayVideo", ID_TYPE_SUB); -add_embedded_arg("vLoops", ID_TYPE_NUM); -embed_function("PauseVideo", ID_TYPE_SUB); -embed_function("StopVideo", ID_TYPE_SUB); -embed_function("SetVideoPosition", ID_TYPE_SUB); -add_embedded_arg("pos", ID_TYPE_NUM); -embed_function("ResumeVideo", ID_TYPE_SUB); -embed_function("VideoPosition", ID_TYPE_FN_NUM); -embed_function("DeleteVideo", ID_TYPE_SUB); -embed_function("VideoIsPlaying", ID_TYPE_FN_NUM); -embed_function("VideoEnd", ID_TYPE_FN_NUM); -embed_function("GetVideoStats", ID_TYPE_SUB); -add_embedded_arg("vFile$", ID_TYPE_STR); -add_embedded_arg("vLen", ID_TYPE_BYREF_NUM); -add_embedded_arg("vfps", ID_TYPE_BYREF_NUM); -add_embedded_arg("frame_w", ID_TYPE_BYREF_NUM); -add_embedded_arg("frame_h", ID_TYPE_BYREF_NUM); -embed_function("SetVideoDrawRect", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("GetVideoDrawRect", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("GetVideoSize", ID_TYPE_SUB); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -embed_function("VideoExists", ID_TYPE_FN_NUM); -embed_function("SetVideoAlpha", ID_TYPE_SUB); -add_embedded_arg("a", ID_TYPE_NUM); -embed_function("System", ID_TYPE_FN_NUM); -add_embedded_arg("cmd$", ID_TYPE_STR); -embed_function("OS$", ID_TYPE_FN_STR); -embed_function("Command$", ID_TYPE_FN_STR); -add_embedded_arg("arg", ID_TYPE_NUM); -embed_function("NumCommands", ID_TYPE_FN_NUM); -embed_function("Env$", ID_TYPE_FN_STR); -add_embedded_arg("v$", ID_TYPE_STR); -embed_function("SetEnv", ID_TYPE_SUB); -add_embedded_arg("var$", ID_TYPE_STR); -add_embedded_arg("value$", ID_TYPE_STR); -add_embedded_arg("overwrite", ID_TYPE_NUM); -embed_function("PrefPath$", ID_TYPE_FN_STR); -add_embedded_arg("org_name$", ID_TYPE_STR); -add_embedded_arg("app_name$", ID_TYPE_STR); -embed_function("Android_GetExternalStoragePath$", ID_TYPE_FN_STR); -embed_function("Android_GetExternalStorageState", ID_TYPE_FN_NUM); -embed_function("Android_GetInternalStoragePath$", ID_TYPE_FN_STR); -embed_function("Android_JNI_Message$", ID_TYPE_FN_STR); -add_embedded_arg("arg$", ID_TYPE_STR); -embed_function("Runtime_Utility_Message$", ID_TYPE_FN_STR); -add_embedded_arg("arg$", ID_TYPE_STR); -embed_function("ClipboardText$", ID_TYPE_FN_STR); -embed_function("SetClipboardText", ID_TYPE_SUB); -add_embedded_arg("txt$", ID_TYPE_STR); -embed_function("HasClipboardText", ID_TYPE_FN_NUM); -embed_function("GetDesktopDisplayMode", ID_TYPE_SUB); -add_embedded_arg("index", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_BYREF_NUM); -add_embedded_arg("h", ID_TYPE_BYREF_NUM); -add_embedded_arg("freq", ID_TYPE_BYREF_NUM); -embed_function("DrawImage_Transform", ID_TYPE_SUB); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -add_embedded_arg("src_x", ID_TYPE_NUM); -add_embedded_arg("src_y", ID_TYPE_NUM); -add_embedded_arg("src_w", ID_TYPE_NUM); -add_embedded_arg("src_h", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -add_embedded_arg("center_x", ID_TYPE_NUM); -add_embedded_arg("center_y", ID_TYPE_NUM); -add_embedded_arg("flip_h", ID_TYPE_NUM); -add_embedded_arg("flip_v", ID_TYPE_NUM); -embed_function("GetPowerInfo", ID_TYPE_SUB); -add_embedded_arg("status", ID_TYPE_BYREF_NUM); -add_embedded_arg("secs", ID_TYPE_BYREF_NUM); -add_embedded_arg("pct", ID_TYPE_BYREF_NUM); -embed_function("SystemRam", ID_TYPE_FN_NUM); -embed_function("SetRenderScaleQuality", ID_TYPE_FN_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("EvalJS$", ID_TYPE_FN_STR); -add_embedded_arg("js_code$", ID_TYPE_STR); -embed_function("GetRenderScaleQuality", ID_TYPE_FN_NUM); -embed_function("GetGlobalMouse", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); -add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); -embed_function("GlobalMouseX", ID_TYPE_FN_NUM); -embed_function("GlobalMouseY", ID_TYPE_FN_NUM); -embed_function("GetAccel", ID_TYPE_SUB); -add_embedded_arg("accel_num", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("z", ID_TYPE_BYREF_NUM); -embed_function("AccelName$", ID_TYPE_FN_STR); -add_embedded_arg("accel_num", ID_TYPE_NUM); -embed_function("NumAccels", ID_TYPE_FN_NUM); -embed_function("GetGyro", ID_TYPE_SUB); -add_embedded_arg("gyro_num", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_BYREF_NUM); -add_embedded_arg("y", ID_TYPE_BYREF_NUM); -add_embedded_arg("z", ID_TYPE_BYREF_NUM); -embed_function("GyroName$", ID_TYPE_FN_STR); -add_embedded_arg("gyro_num", ID_TYPE_NUM); -embed_function("NumGyros", ID_TYPE_FN_NUM); -embed_function("JoyRumblePlay", ID_TYPE_SUB); -add_embedded_arg("joy_num", ID_TYPE_NUM); -add_embedded_arg("strength", ID_TYPE_NUM); -add_embedded_arg("duration", ID_TYPE_NUM); -embed_function("JoyRumbleStop", ID_TYPE_SUB); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("JoystickIsHaptic", ID_TYPE_FN_NUM); -add_embedded_arg("joy_num", ID_TYPE_NUM); -embed_function("WriteByteBuffer", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("buf", ID_TYPE_BYREF_NUM); -add_embedded_arg("buf_size", ID_TYPE_NUM); -embed_function("ReadByteBuffer", ID_TYPE_FN_NUM); -add_embedded_arg("stream", ID_TYPE_NUM); -add_embedded_arg("buf", ID_TYPE_BYREF_NUM); -add_embedded_arg("buf_size", ID_TYPE_NUM); -embed_function("WindowEvent_Resize", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("SetWindowAutoClose", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("exit_on_close", ID_TYPE_NUM); -embed_function("SetWindowResizable", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("SystemReturnStdOut$", ID_TYPE_FN_STR); -add_embedded_arg("cmd$", ID_TYPE_STR); -embed_function("WindowMode", ID_TYPE_FN_NUM); -add_embedded_arg("visible", ID_TYPE_NUM); -add_embedded_arg("fullscreen", ID_TYPE_NUM); -add_embedded_arg("resizable", ID_TYPE_NUM); -add_embedded_arg("borderless", ID_TYPE_NUM); -add_embedded_arg("highDPI", ID_TYPE_NUM); -embed_function("WindowFlags", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("RestoreWindow", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("UpdateAllWindows", ID_TYPE_SUB); -embed_function("QueryAudioSpec", ID_TYPE_FN_NUM); -add_embedded_arg("freq", ID_TYPE_BYREF_NUM); -add_embedded_arg("format", ID_TYPE_BYREF_NUM); -add_embedded_arg("channels", ID_TYPE_BYREF_NUM); -embed_function("MusicIsPlaying", ID_TYPE_FN_NUM); -embed_function("DrawGeometry", ID_TYPE_FN_NUM); -add_embedded_arg("slot", ID_TYPE_NUM); -add_embedded_arg("num_vertices", ID_TYPE_NUM); -add_embedded_arg("vertices", ID_TYPE_BYREF_NUM); -add_embedded_arg("num_indices", ID_TYPE_NUM); -add_embedded_arg("Indices", ID_TYPE_BYREF_NUM); -embed_function("Size", ID_TYPE_FN_NUM); -add_embedded_arg("s$", ID_TYPE_STR); -embed_function("BufferFromString", ID_TYPE_FN_NUM); -add_embedded_arg("s$", ID_TYPE_STR); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -embed_function("StringFromBuffer$", ID_TYPE_FN_STR); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -add_embedded_arg("buffer_size", ID_TYPE_NUM); -embed_function("GrabInput", ID_TYPE_SUB); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("GrabbedWindow", ID_TYPE_FN_NUM); -embed_function("WarpMouse", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("WarpMouseGlobal", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -embed_function("SetMouseZone", ID_TYPE_SUB); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("w", ID_TYPE_NUM); -add_embedded_arg("h", ID_TYPE_NUM); -embed_function("ClearMouseZone", ID_TYPE_SUB); -embed_function("SetWindowAlwaysOnTop", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("SetMouseRelative", ID_TYPE_SUB); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("SetWindowVSync", ID_TYPE_SUB); -add_embedded_arg("win", ID_TYPE_NUM); -add_embedded_arg("flag", ID_TYPE_NUM); -embed_function("OpenURL", ID_TYPE_FN_NUM); -add_embedded_arg("url$", ID_TYPE_STR); -embed_function("APIVersion$", ID_TYPE_FN_STR); -embed_function("FlashWindow", ID_TYPE_FN_NUM); -add_embedded_arg("win", ID_TYPE_NUM); -embed_function("MessageBox", ID_TYPE_FN_NUM); -add_embedded_arg("title$", ID_TYPE_STR); -add_embedded_arg("msg$", ID_TYPE_STR); -embed_function("NumberArrayCopy", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_BYREF_NUM); -add_embedded_arg("dst", ID_TYPE_BYREF_NUM); -embed_function("StringArrayCopy", ID_TYPE_SUB); -add_embedded_arg("src$", ID_TYPE_BYREF_STR); -add_embedded_arg("dst$", ID_TYPE_BYREF_STR); -embed_function("ArrayCopy", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_BYREF_NUM); -add_embedded_arg("dst", ID_TYPE_BYREF_NUM); -embed_function("NumberArrayFill", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_BYREF_NUM); -add_embedded_arg("fdata", ID_TYPE_NUM); -embed_function("StringArrayFill", ID_TYPE_SUB); -add_embedded_arg("src$", ID_TYPE_BYREF_STR); -add_embedded_arg("fdata$", ID_TYPE_STR); -embed_function("ArrayFill", ID_TYPE_SUB); -add_embedded_arg("src", ID_TYPE_BYREF_NUM); -add_embedded_arg("fdata", ID_TYPE_NUM); -embed_function("Runtime$", ID_TYPE_FN_STR); -embed_function("DimMatrix", ID_TYPE_SUB); -add_embedded_arg("m", ID_TYPE_NUM); -add_embedded_arg("m_rows", ID_TYPE_NUM); -add_embedded_arg("m_cols", ID_TYPE_NUM); -add_embedded_arg("preserve_flag", ID_TYPE_NUM); -embed_function("AddMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("AugmentMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("CopyMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("InsertMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -embed_function("InsertMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -embed_function("MultiplyMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("CubeMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("DeleteMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -embed_function("DeleteMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -embed_function("ClearMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -embed_function("ClearMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -embed_function("ClearMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -embed_function("FillMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("FillMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("FillMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("CopyMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -embed_function("CopyMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -embed_function("IdentityMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("n", ID_TYPE_NUM); -embed_function("SolveMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("IsEqualMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("tolerance", ID_TYPE_NUM); -embed_function("Determinant", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -embed_function("AdjointMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("InvertMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("MatrixFromBuffer", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -embed_function("GetMatrix", ID_TYPE_SUB); -add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -embed_function("RandomizeMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("vmin", ID_TYPE_NUM); -add_embedded_arg("vmax", ID_TYPE_NUM); -embed_function("MatrixValue", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("SetMatrixValue", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("v", ID_TYPE_NUM); -embed_function("ScalarMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("s_value", ID_TYPE_NUM); -embed_function("ScalarMatrixColumns", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -add_embedded_arg("s_value", ID_TYPE_NUM); -embed_function("ScalarMatrixRows", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -add_embedded_arg("s_value", ID_TYPE_NUM); -embed_function("SquareMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("SubMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -embed_function("SubtractMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("SwapMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("SwapMatrixColumn", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("C1", ID_TYPE_NUM); -add_embedded_arg("C2", ID_TYPE_NUM); -embed_function("SwapMatrixRow", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("R1", ID_TYPE_NUM); -add_embedded_arg("R2", ID_TYPE_NUM); -embed_function("TransposeMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -embed_function("UnAugmentMatrix", ID_TYPE_FN_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("ZeroMatrix", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -embed_function("GetMatrixSize", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_BYREF_NUM); -add_embedded_arg("c", ID_TYPE_BYREF_NUM); -embed_function("SetMatrixProcess", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessOpen", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("SetProcessErrorMode", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -add_embedded_arg("error_mode", ID_TYPE_NUM); -embed_function("ProcessError", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessWait", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessWaitAll", ID_TYPE_SUB); -embed_function("ProcessContinue", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessStop", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessClear", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessClose", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessErrorMode", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessSleep", ID_TYPE_SUB); -add_embedded_arg("p_num", ID_TYPE_NUM); -add_embedded_arg("msec", ID_TYPE_NUM); -embed_function("ProcessExists", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("ProcessStopAll", ID_TYPE_SUB); -embed_function("ProcessContinueAll", ID_TYPE_SUB); -embed_function("ProcessQueueSize", ID_TYPE_FN_NUM); -add_embedded_arg("p_num", ID_TYPE_NUM); -embed_function("NumCPUs", ID_TYPE_FN_NUM); -embed_function("GetProjectionGeometry", ID_TYPE_SUB); -add_embedded_arg("cam_dist", ID_TYPE_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("f_vertex_count", ID_TYPE_NUM); -add_embedded_arg("columns", ID_TYPE_BYREF_NUM); -add_embedded_arg("uv", ID_TYPE_BYREF_NUM); -add_embedded_arg("graph_offset_x", ID_TYPE_NUM); -add_embedded_arg("graph_offset_y", ID_TYPE_NUM); -add_embedded_arg("v_color", ID_TYPE_NUM); -add_embedded_arg("vertex_count", ID_TYPE_BYREF_NUM); -add_embedded_arg("vertex2D", ID_TYPE_BYREF_NUM); -add_embedded_arg("index_count", ID_TYPE_BYREF_NUM); -add_embedded_arg("index", ID_TYPE_BYREF_NUM); -add_embedded_arg("clip_dist", ID_TYPE_BYREF_NUM); -add_embedded_arg("min_x", ID_TYPE_BYREF_NUM); -add_embedded_arg("min_y", ID_TYPE_BYREF_NUM); -add_embedded_arg("max_x", ID_TYPE_BYREF_NUM); -add_embedded_arg("max_y", ID_TYPE_BYREF_NUM); -embed_function("CalculateFaceZ", ID_TYPE_FN_NUM); -add_embedded_arg("cam_dist", ID_TYPE_NUM); -add_embedded_arg("graph_offset_x", ID_TYPE_NUM); -add_embedded_arg("graph_offset_y", ID_TYPE_NUM); -add_embedded_arg("view_w", ID_TYPE_NUM); -add_embedded_arg("view_h", ID_TYPE_NUM); -add_embedded_arg("view_depth", ID_TYPE_NUM); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("f_vertex_count", ID_TYPE_NUM); -add_embedded_arg("columns", ID_TYPE_BYREF_NUM); -add_embedded_arg("face_min_z", ID_TYPE_BYREF_NUM); -add_embedded_arg("face_max_z", ID_TYPE_BYREF_NUM); -add_embedded_arg("z_avg", ID_TYPE_BYREF_NUM); -embed_function("SetChannelSpacePosition", ID_TYPE_FN_NUM); -add_embedded_arg("channel", ID_TYPE_NUM); -add_embedded_arg("angle", ID_TYPE_NUM); -add_embedded_arg("distance", ID_TYPE_NUM); -embed_function("SaveBMP", ID_TYPE_FN_NUM); -add_embedded_arg("img", ID_TYPE_NUM); -add_embedded_arg("file$", ID_TYPE_STR); -embed_function("SavePNG", ID_TYPE_FN_NUM); -add_embedded_arg("img", ID_TYPE_NUM); -add_embedded_arg("file$", ID_TYPE_STR); -embed_function("SaveJPG", ID_TYPE_FN_NUM); -add_embedded_arg("img", ID_TYPE_NUM); -add_embedded_arg("file$", ID_TYPE_STR); -embed_function("GetLineIntersection", ID_TYPE_FN_NUM); -add_embedded_arg("p0_x", ID_TYPE_NUM); -add_embedded_arg("p0_y", ID_TYPE_NUM); -add_embedded_arg("p1_x", ID_TYPE_NUM); -add_embedded_arg("p1_y", ID_TYPE_NUM); -add_embedded_arg("p2_x", ID_TYPE_NUM); -add_embedded_arg("p2_y", ID_TYPE_NUM); -add_embedded_arg("p3_x", ID_TYPE_NUM); -add_embedded_arg("p3_y", ID_TYPE_NUM); -add_embedded_arg("i_x", ID_TYPE_BYREF_NUM); -add_embedded_arg("i_y", ID_TYPE_BYREF_NUM); -embed_function("Interpolate", ID_TYPE_FN_NUM); -add_embedded_arg("min_a", ID_TYPE_NUM); -add_embedded_arg("max_a", ID_TYPE_NUM); -add_embedded_arg("mid_a", ID_TYPE_NUM); -add_embedded_arg("min_b", ID_TYPE_NUM); -add_embedded_arg("max_b", ID_TYPE_NUM); -embed_function("ATan2", ID_TYPE_FN_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -embed_function("PointInQuad", ID_TYPE_FN_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("x1", ID_TYPE_NUM); -add_embedded_arg("y1", ID_TYPE_NUM); -add_embedded_arg("x2", ID_TYPE_NUM); -add_embedded_arg("y2", ID_TYPE_NUM); -add_embedded_arg("x3", ID_TYPE_NUM); -add_embedded_arg("y3", ID_TYPE_NUM); -add_embedded_arg("x4", ID_TYPE_NUM); -add_embedded_arg("y4", ID_TYPE_NUM); -embed_function("PointInTri", ID_TYPE_FN_NUM); -add_embedded_arg("x", ID_TYPE_NUM); -add_embedded_arg("y", ID_TYPE_NUM); -add_embedded_arg("x1", ID_TYPE_NUM); -add_embedded_arg("y1", ID_TYPE_NUM); -add_embedded_arg("x2", ID_TYPE_NUM); -add_embedded_arg("y2", ID_TYPE_NUM); -add_embedded_arg("x3", ID_TYPE_NUM); -add_embedded_arg("y3", ID_TYPE_NUM); -embed_function("Distance2D", ID_TYPE_FN_NUM); -add_embedded_arg("x1", ID_TYPE_NUM); -add_embedded_arg("y1", ID_TYPE_NUM); -add_embedded_arg("x2", ID_TYPE_NUM); -add_embedded_arg("y2", ID_TYPE_NUM); -embed_function("Distance3D", ID_TYPE_FN_NUM); -add_embedded_arg("x1", ID_TYPE_NUM); -add_embedded_arg("y1", ID_TYPE_NUM); -add_embedded_arg("z1", ID_TYPE_NUM); -add_embedded_arg("x2", ID_TYPE_NUM); -add_embedded_arg("y2", ID_TYPE_NUM); -add_embedded_arg("z2", ID_TYPE_NUM); -embed_function("GetCircleLineIntersection", ID_TYPE_FN_NUM); -add_embedded_arg("circle_x", ID_TYPE_NUM); -add_embedded_arg("circle_y", ID_TYPE_NUM); -add_embedded_arg("radius", ID_TYPE_NUM); -add_embedded_arg("x1", ID_TYPE_NUM); -add_embedded_arg("y1", ID_TYPE_NUM); -add_embedded_arg("x2", ID_TYPE_NUM); -add_embedded_arg("y2", ID_TYPE_NUM); -add_embedded_arg("ix1", ID_TYPE_BYREF_NUM); -add_embedded_arg("iy1", ID_TYPE_BYREF_NUM); -add_embedded_arg("ix2", ID_TYPE_BYREF_NUM); -add_embedded_arg("iy2", ID_TYPE_BYREF_NUM); -embed_function("GetLinePlaneIntersection", ID_TYPE_FN_NUM); -add_embedded_arg("line_point", ID_TYPE_BYREF_NUM); -add_embedded_arg("line_direction", ID_TYPE_BYREF_NUM); -add_embedded_arg("plane_point_1", ID_TYPE_BYREF_NUM); -add_embedded_arg("plane_point_2", ID_TYPE_BYREF_NUM); -add_embedded_arg("plane_point_3", ID_TYPE_BYREF_NUM); -add_embedded_arg("intersection", ID_TYPE_BYREF_NUM); -embed_function("IncrementMatrixRows", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("r", ID_TYPE_NUM); -add_embedded_arg("num_rows", ID_TYPE_NUM); -add_embedded_arg("value", ID_TYPE_NUM); -embed_function("IncrementMatrixColumns", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("c", ID_TYPE_NUM); -add_embedded_arg("num_cols", ID_TYPE_NUM); -add_embedded_arg("value", ID_TYPE_NUM); -embed_function("JoinMatrixRows", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); -embed_function("JoinMatrixColumns", ID_TYPE_SUB); -add_embedded_arg("mA", ID_TYPE_NUM); -add_embedded_arg("mB", ID_TYPE_NUM); -add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("FPrint", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("Input$", ID_TYPE_FN_STR); + add_embedded_arg("prompt$", ID_TYPE_STR); + embed_function("ArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + embed_function("StringArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id$", ID_TYPE_BYREF_STR); + embed_function("NumberArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + embed_function("ArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("StringArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id$", ID_TYPE_BYREF_STR); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("NumberArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("Abs", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("ACos", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("AndBit", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("ASin", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("ATan", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Bin$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("CInt32", ID_TYPE_FN_NUM); + add_embedded_arg("i", ID_TYPE_NUM); + embed_function("CInt64", ID_TYPE_FN_NUM); + add_embedded_arg("i", ID_TYPE_NUM); + embed_function("Cos", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Degrees", ID_TYPE_FN_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + embed_function("Exp", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Frac", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Hex$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("HexVal", ID_TYPE_FN_NUM); + add_embedded_arg("n$", ID_TYPE_STR); + embed_function("Int", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Log", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Max", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("Min", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("OrBit", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("Radians", ID_TYPE_FN_NUM); + add_embedded_arg("d", ID_TYPE_NUM); + embed_function("Randomize", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Rand", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Round", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Sign", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Sin", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Sqrt", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Tan", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("XOrBit", ID_TYPE_FN_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("Asc", ID_TYPE_FN_NUM); + add_embedded_arg("c$", ID_TYPE_STR); + embed_function("Chr$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Insert$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("tgt$", ID_TYPE_STR); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("InStr", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("substr$", ID_TYPE_STR); + embed_function("LCase$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Left$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Length", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Len", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("LTrim$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Mid$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("start", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("ReplaceSubstr$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("rpc$", ID_TYPE_STR); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("Replace$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("tgt$", ID_TYPE_STR); + add_embedded_arg("rpc$", ID_TYPE_STR); + embed_function("Reverse$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Right$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("RTrim$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("StringFill$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Str$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Str_F$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Str_S$", ID_TYPE_FN_STR); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Tally", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("substr$", ID_TYPE_STR); + embed_function("Trim$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("UCase$", ID_TYPE_FN_STR); + add_embedded_arg("src$", ID_TYPE_STR); + embed_function("Val", ID_TYPE_FN_NUM); + add_embedded_arg("n$", ID_TYPE_STR); + embed_function("Stack_N", ID_TYPE_SUB); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Stack_S", ID_TYPE_SUB); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Push_N", ID_TYPE_SUB); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("Pop_N", ID_TYPE_FN_NUM); + embed_function("Push_S", ID_TYPE_SUB); + add_embedded_arg("s$", ID_TYPE_STR); + embed_function("Pop_S$", ID_TYPE_FN_STR); + embed_function("Stack_Size_N", ID_TYPE_FN_NUM); + embed_function("Stack_Size_S", ID_TYPE_FN_NUM); + embed_function("FileOpen", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + add_embedded_arg("mode", ID_TYPE_NUM); + embed_function("FileClose", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("ReadByte", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("WriteByte", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("byte", ID_TYPE_NUM); + embed_function("ReadLine$", ID_TYPE_FN_STR); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("Write", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("WriteLine", ID_TYPE_SUB); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("CopyFile", ID_TYPE_SUB); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("dst$", ID_TYPE_STR); + embed_function("RemoveFile", ID_TYPE_FN_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + embed_function("FileExists", ID_TYPE_FN_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + embed_function("MoveFile", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("dst$", ID_TYPE_STR); + embed_function("RenameFile", ID_TYPE_FN_NUM); + add_embedded_arg("src$", ID_TYPE_STR); + add_embedded_arg("dst$", ID_TYPE_STR); + embed_function("FileLength", ID_TYPE_FN_NUM); + add_embedded_arg("fileName$", ID_TYPE_STR); + embed_function("Tell", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("Seek", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("EOF", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + embed_function("FreeFile", ID_TYPE_FN_NUM); + embed_function("ChangeDir", ID_TYPE_SUB); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("DirExists", ID_TYPE_FN_NUM); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("DirFirst$", ID_TYPE_FN_STR); + embed_function("Dir$", ID_TYPE_FN_STR); + embed_function("DirNext$", ID_TYPE_FN_STR); + embed_function("MakeDir", ID_TYPE_FN_NUM); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("RemoveDir", ID_TYPE_FN_NUM); + add_embedded_arg("p$", ID_TYPE_STR); + embed_function("Date$", ID_TYPE_FN_STR); + embed_function("Easter$", ID_TYPE_FN_STR); + add_embedded_arg("year", ID_TYPE_NUM); + embed_function("Ticks", ID_TYPE_FN_NUM); + embed_function("Time$", ID_TYPE_FN_STR); + embed_function("Timer", ID_TYPE_FN_NUM); + embed_function("Wait", ID_TYPE_SUB); + add_embedded_arg("m_sec", ID_TYPE_NUM); + embed_function("WindowOpen", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("title$", ID_TYPE_STR); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + add_embedded_arg("vsync", ID_TYPE_NUM); + embed_function("WindowClose", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("RaiseWindow", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("Window", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("Update", ID_TYPE_SUB); + embed_function("Cls", ID_TYPE_SUB); + embed_function("SetClearColor", ID_TYPE_SUB); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("ShowWindow", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("HideWindow", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("SetWindowTitle", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("title$", ID_TYPE_STR); + embed_function("WindowTitle$", ID_TYPE_FN_STR); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("SetWindowPosition", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("GetWindowPosition", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + embed_function("SetWindowSize", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetWindowSize", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("SetWindowMinSize", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetWindowMinSize", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("SetWindowMaxSize", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetWindowMaxSize", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("WindowIsFullscreen", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("WindowIsVisible", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("WindowIsBordered", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("WindowIsResizable", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("WindowIsMinimized", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("WindowIsMaximized", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("WindowHasInputFocus", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("WindowHasMouseFocus", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("SetWindowFullscreen", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("MaximizeWindow", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("MinimizeWindow", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("SetWindowBorder", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("WindowClip", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("WindowExists", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("NumWindows", ID_TYPE_FN_NUM); + embed_function("WindowEvent_Close", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("WindowEvent_Maximize", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("WindowEvent_Minimize", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("ActiveWindow", ID_TYPE_FN_NUM); + embed_function("FPS", ID_TYPE_FN_NUM); + embed_function("SetWindowIcon", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("CanvasOpen", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("viewport_x", ID_TYPE_NUM); + add_embedded_arg("viewport_y", ID_TYPE_NUM); + add_embedded_arg("viewport_w", ID_TYPE_NUM); + add_embedded_arg("viewport_h", ID_TYPE_NUM); + add_embedded_arg("mode", ID_TYPE_NUM); + embed_function("CanvasClose", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvasVisible", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("CanvasIsVisible", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvasViewport", ID_TYPE_SUB); + add_embedded_arg("cnum", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetCanvasViewport", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("Canvas", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvasOffset", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("GetCanvasOffset", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + embed_function("GetCanvasSize", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("ClearCanvas", ID_TYPE_SUB); + embed_function("SetCanvasAlpha", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + embed_function("CanvasAlpha", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvasBlendMode", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("blend_mode", ID_TYPE_NUM); + embed_function("CanvasBlendMode", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("SetCanvasColorMod", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("CanvasColorMod", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("CopyCanvas", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("dst", ID_TYPE_NUM); + add_embedded_arg("dx", ID_TYPE_NUM); + add_embedded_arg("dy", ID_TYPE_NUM); + embed_function("CloneCanvas", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_NUM); + add_embedded_arg("dst", ID_TYPE_NUM); + embed_function("SetCanvasZ", ID_TYPE_SUB); + add_embedded_arg("c_num", ID_TYPE_NUM); + add_embedded_arg("z", ID_TYPE_NUM); + embed_function("CanvasZ", ID_TYPE_FN_NUM); + add_embedded_arg("c_num", ID_TYPE_NUM); + embed_function("CanvasClip", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("ActiveCanvas", ID_TYPE_FN_NUM); + embed_function("Box", ID_TYPE_SUB); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + embed_function("BoxFill", ID_TYPE_SUB); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + embed_function("Circle", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("CircleFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + embed_function("Ellipse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("rx", ID_TYPE_NUM); + add_embedded_arg("ry", ID_TYPE_NUM); + embed_function("EllipseFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("rx", ID_TYPE_NUM); + add_embedded_arg("ry", ID_TYPE_NUM); + embed_function("FloodFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("GetPixel", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("SetColor", ID_TYPE_SUB); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("Line", ID_TYPE_SUB); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + embed_function("Poly", ID_TYPE_SUB); + add_embedded_arg("n", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + embed_function("PolyFill", ID_TYPE_SUB); + add_embedded_arg("n", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + embed_function("Rect", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("RectFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("RoundRect", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + embed_function("RoundRectFill", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + embed_function("RGB", ID_TYPE_FN_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("g", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + embed_function("RGBA", ID_TYPE_FN_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("g", ID_TYPE_NUM); + add_embedded_arg("b", ID_TYPE_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + embed_function("PSet", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("LoadImage", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("img$", ID_TYPE_STR); + embed_function("LoadImage_Ex", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("img$", ID_TYPE_STR); + add_embedded_arg("colkey", ID_TYPE_NUM); + embed_function("ImageFromBuffer", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("ImageFromBuffer_Ex", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("colkey", ID_TYPE_NUM); + embed_function("BufferFromImage", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("ImageExists", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("ColorKey", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("CopyImage", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_NUM); + add_embedded_arg("dst", ID_TYPE_NUM); + embed_function("DeleteImage", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("SetImageAlpha", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("a", ID_TYPE_NUM); + embed_function("ImageAlpha", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("GetImageSize", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("SetImageBlendMode", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("blend_mode", ID_TYPE_NUM); + embed_function("ImageBlendMode", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("SetImageColorMod", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("ImageColorMod", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("DrawImage", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("DrawImage_Blit", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + embed_function("DrawImage_Blit_Ex", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + embed_function("DrawImage_Rotate", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + embed_function("DrawImage_Rotate_Ex", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + embed_function("DrawImage_Zoom", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_Zoom_Ex", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_Rotozoom", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_Rotozoom_Ex", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("zx", ID_TYPE_NUM); + add_embedded_arg("zy", ID_TYPE_NUM); + embed_function("DrawImage_Flip", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("DrawImage_Flip_Ex", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("InKey", ID_TYPE_FN_NUM); + embed_function("Key", ID_TYPE_FN_NUM); + add_embedded_arg("key_code", ID_TYPE_NUM); + embed_function("WaitKey", ID_TYPE_FN_NUM); + embed_function("HideMouse", ID_TYPE_SUB); + embed_function("ShowMouse", ID_TYPE_SUB); + embed_function("MouseIsVisible", ID_TYPE_FN_NUM); + embed_function("GetMouse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); + embed_function("MouseX", ID_TYPE_FN_NUM); + embed_function("MouseY", ID_TYPE_FN_NUM); + embed_function("MouseButton", ID_TYPE_FN_NUM); + add_embedded_arg("mb", ID_TYPE_NUM); + embed_function("GetMouseWheel", ID_TYPE_SUB); + add_embedded_arg("x_axis", ID_TYPE_BYREF_NUM); + add_embedded_arg("y_axis", ID_TYPE_BYREF_NUM); + embed_function("MouseWheelX", ID_TYPE_FN_NUM); + embed_function("MouseWheelY", ID_TYPE_FN_NUM); + embed_function("SoundFromBuffer", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("buffer_size", ID_TYPE_NUM); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("LoadSound", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("snd_file$", ID_TYPE_STR); + embed_function("LoadMusic", ID_TYPE_SUB); + add_embedded_arg("music_file$", ID_TYPE_STR); + embed_function("PlaySound", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("loops", ID_TYPE_NUM); + embed_function("PlaySoundTimed", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("loops", ID_TYPE_NUM); + add_embedded_arg("ms", ID_TYPE_NUM); + embed_function("PlayMusic", ID_TYPE_SUB); + add_embedded_arg("mLoops", ID_TYPE_NUM); + embed_function("PauseSound", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("ResumeSound", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("PauseMusic", ID_TYPE_SUB); + embed_function("ResumeMusic", ID_TYPE_SUB); + embed_function("DeleteSound", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("DeleteMusic", ID_TYPE_SUB); + embed_function("FadeMusicIn", ID_TYPE_SUB); + add_embedded_arg("fade_time", ID_TYPE_NUM); + add_embedded_arg("loops", ID_TYPE_NUM); + embed_function("FadeMusicOut", ID_TYPE_SUB); + add_embedded_arg("fade_time", ID_TYPE_NUM); + embed_function("MusicExists", ID_TYPE_FN_NUM); + embed_function("SetMusicVolume", ID_TYPE_SUB); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("MusicVolume", ID_TYPE_FN_NUM); + embed_function("SetMusicPosition", ID_TYPE_SUB); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("MusicPosition", ID_TYPE_FN_NUM); + embed_function("RewindMusic", ID_TYPE_SUB); + embed_function("SetSoundChannels", ID_TYPE_SUB); + add_embedded_arg("max_channels", ID_TYPE_NUM); + embed_function("NumSoundChannels", ID_TYPE_FN_NUM); + embed_function("SoundIsEnabled", ID_TYPE_FN_NUM); + embed_function("SoundExists", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("SetChannelVolume", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("ChannelVolume", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("SetSoundVolume", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("vol", ID_TYPE_NUM); + embed_function("SoundVolume", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("StopMusic", ID_TYPE_SUB); + embed_function("StopSound", ID_TYPE_SUB); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("SetChannelPanning", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("left_value", ID_TYPE_NUM); + add_embedded_arg("right_value", ID_TYPE_NUM); + embed_function("SetChannelDistance", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("dist_value", ID_TYPE_NUM); + embed_function("ChannelIsPlaying", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("ChannelIsPaused", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + embed_function("NumJoysticks", ID_TYPE_FN_NUM); + embed_function("NumJoyAxes", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("NumJoyButtons", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("NumJoyHats", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("NumJoyTrackBalls", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("JoyAxis", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("joy_axis", ID_TYPE_NUM); + embed_function("JoyButton", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("joy_button", ID_TYPE_NUM); + embed_function("JoyHat", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("joy_hat", ID_TYPE_NUM); + embed_function("GetJoyTrackBall", ID_TYPE_SUB); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("ball", ID_TYPE_NUM); + add_embedded_arg("dx", ID_TYPE_BYREF_NUM); + add_embedded_arg("dy", ID_TYPE_BYREF_NUM); + embed_function("JoyName$", ID_TYPE_FN_STR); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("JoystickIsConnected", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("GetCursor", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + embed_function("PrintS", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("InputS$", ID_TYPE_FN_STR); + add_embedded_arg("prompt$", ID_TYPE_STR); + embed_function("ZoneInputS$", ID_TYPE_FN_STR); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("Locate", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("ReadInput_Start", ID_TYPE_SUB); + embed_function("ReadInput_Stop", ID_TYPE_SUB); + embed_function("ReadInput_Text$", ID_TYPE_FN_STR); + embed_function("ReadInput_SetText", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("ReadInput_ToggleBackspace", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("LoadFont", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("fnt_file$", ID_TYPE_STR); + add_embedded_arg("size", ID_TYPE_NUM); + embed_function("DeleteFont", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("FontIsLoaded", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("Font", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + embed_function("SetFontStyle", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("style", ID_TYPE_NUM); + embed_function("DrawText", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("DrawText_Shaded", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("fg_color", ID_TYPE_NUM); + add_embedded_arg("bg_color", ID_TYPE_NUM); + embed_function("DrawText_Blended", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("RenderText", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("GetTextSize", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("txt$", ID_TYPE_STR); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("TouchPressure", ID_TYPE_FN_NUM); + embed_function("GetTouch", ID_TYPE_SUB); + add_embedded_arg("status", ID_TYPE_BYREF_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("dx", ID_TYPE_BYREF_NUM); + add_embedded_arg("dy", ID_TYPE_BYREF_NUM); + embed_function("GetMultiTouch", ID_TYPE_SUB); + add_embedded_arg("status", ID_TYPE_BYREF_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("fingers", ID_TYPE_BYREF_NUM); + add_embedded_arg("dist", ID_TYPE_BYREF_NUM); + add_embedded_arg("theta", ID_TYPE_BYREF_NUM); + embed_function("GetTouchFinger", ID_TYPE_SUB); + add_embedded_arg("finger", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("pressure", ID_TYPE_BYREF_NUM); + embed_function("NumFingers", ID_TYPE_FN_NUM); + embed_function("CheckSockets", ID_TYPE_FN_NUM); + add_embedded_arg("timeout_ms", ID_TYPE_NUM); + embed_function("TCP_SocketReady", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_SocketReady", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_SocketOpen", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("host$", ID_TYPE_STR); + add_embedded_arg("port", ID_TYPE_NUM); + embed_function("TCP_SocketClose", ID_TYPE_SUB); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_RemoteHost", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_RemotePort", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("TCP_GetData", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("sData$", ID_TYPE_BYREF_STR); + add_embedded_arg("numBytes", ID_TYPE_NUM); + embed_function("TCP_SendData", ID_TYPE_SUB); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("sData$", ID_TYPE_STR); + embed_function("TCP_AcceptSocket", ID_TYPE_FN_NUM); + add_embedded_arg("server", ID_TYPE_NUM); + add_embedded_arg("client", ID_TYPE_NUM); + embed_function("UDP_SocketOpen", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("port", ID_TYPE_NUM); + embed_function("UDP_SocketClose", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_GetData", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("sData$", ID_TYPE_BYREF_STR); + add_embedded_arg("host$", ID_TYPE_BYREF_STR); + add_embedded_arg("port", ID_TYPE_BYREF_NUM); + embed_function("UDP_Length", ID_TYPE_FN_NUM); + embed_function("UDP_MaxLength", ID_TYPE_FN_NUM); + embed_function("UDP_RemoteHost$", ID_TYPE_FN_STR); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_RemotePort", ID_TYPE_FN_NUM); + add_embedded_arg("socket", ID_TYPE_NUM); + embed_function("UDP_SendData", ID_TYPE_SUB); + add_embedded_arg("socket", ID_TYPE_NUM); + add_embedded_arg("sData$", ID_TYPE_STR); + add_embedded_arg("host$", ID_TYPE_STR); + add_embedded_arg("port", ID_TYPE_NUM); + embed_function("LoadVideo", ID_TYPE_SUB); + add_embedded_arg("vid$", ID_TYPE_STR); + embed_function("PlayVideo", ID_TYPE_SUB); + add_embedded_arg("vLoops", ID_TYPE_NUM); + embed_function("PauseVideo", ID_TYPE_SUB); + embed_function("StopVideo", ID_TYPE_SUB); + embed_function("SetVideoPosition", ID_TYPE_SUB); + add_embedded_arg("pos", ID_TYPE_NUM); + embed_function("ResumeVideo", ID_TYPE_SUB); + embed_function("VideoPosition", ID_TYPE_FN_NUM); + embed_function("DeleteVideo", ID_TYPE_SUB); + embed_function("VideoIsPlaying", ID_TYPE_FN_NUM); + embed_function("VideoEnd", ID_TYPE_FN_NUM); + embed_function("GetVideoStats", ID_TYPE_SUB); + add_embedded_arg("vFile$", ID_TYPE_STR); + add_embedded_arg("vLen", ID_TYPE_BYREF_NUM); + add_embedded_arg("vfps", ID_TYPE_BYREF_NUM); + add_embedded_arg("frame_w", ID_TYPE_BYREF_NUM); + add_embedded_arg("frame_h", ID_TYPE_BYREF_NUM); + embed_function("SetVideoDrawRect", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("GetVideoDrawRect", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("GetVideoSize", ID_TYPE_SUB); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + embed_function("VideoExists", ID_TYPE_FN_NUM); + embed_function("SetVideoAlpha", ID_TYPE_SUB); + add_embedded_arg("a", ID_TYPE_NUM); + embed_function("System", ID_TYPE_FN_NUM); + add_embedded_arg("cmd$", ID_TYPE_STR); + embed_function("OS$", ID_TYPE_FN_STR); + embed_function("Command$", ID_TYPE_FN_STR); + add_embedded_arg("arg", ID_TYPE_NUM); + embed_function("NumCommands", ID_TYPE_FN_NUM); + embed_function("Env$", ID_TYPE_FN_STR); + add_embedded_arg("v$", ID_TYPE_STR); + embed_function("SetEnv", ID_TYPE_SUB); + add_embedded_arg("var$", ID_TYPE_STR); + add_embedded_arg("value$", ID_TYPE_STR); + add_embedded_arg("overwrite", ID_TYPE_NUM); + embed_function("PrefPath$", ID_TYPE_FN_STR); + add_embedded_arg("org_name$", ID_TYPE_STR); + add_embedded_arg("app_name$", ID_TYPE_STR); + embed_function("Android_GetExternalStoragePath$", ID_TYPE_FN_STR); + embed_function("Android_GetExternalStorageState", ID_TYPE_FN_NUM); + embed_function("Android_GetInternalStoragePath$", ID_TYPE_FN_STR); + embed_function("Android_JNI_Message$", ID_TYPE_FN_STR); + add_embedded_arg("arg$", ID_TYPE_STR); + embed_function("Runtime_Utility_Message$", ID_TYPE_FN_STR); + add_embedded_arg("arg$", ID_TYPE_STR); + embed_function("ClipboardText$", ID_TYPE_FN_STR); + embed_function("SetClipboardText", ID_TYPE_SUB); + add_embedded_arg("txt$", ID_TYPE_STR); + embed_function("HasClipboardText", ID_TYPE_FN_NUM); + embed_function("GetDesktopDisplayMode", ID_TYPE_SUB); + add_embedded_arg("index", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_BYREF_NUM); + add_embedded_arg("h", ID_TYPE_BYREF_NUM); + add_embedded_arg("freq", ID_TYPE_BYREF_NUM); + embed_function("DrawImage_Transform", ID_TYPE_SUB); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + add_embedded_arg("src_x", ID_TYPE_NUM); + add_embedded_arg("src_y", ID_TYPE_NUM); + add_embedded_arg("src_w", ID_TYPE_NUM); + add_embedded_arg("src_h", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("center_x", ID_TYPE_NUM); + add_embedded_arg("center_y", ID_TYPE_NUM); + add_embedded_arg("flip_h", ID_TYPE_NUM); + add_embedded_arg("flip_v", ID_TYPE_NUM); + embed_function("GetPowerInfo", ID_TYPE_SUB); + add_embedded_arg("status", ID_TYPE_BYREF_NUM); + add_embedded_arg("secs", ID_TYPE_BYREF_NUM); + add_embedded_arg("pct", ID_TYPE_BYREF_NUM); + embed_function("SystemRam", ID_TYPE_FN_NUM); + embed_function("SetRenderScaleQuality", ID_TYPE_FN_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("EvalJS$", ID_TYPE_FN_STR); + add_embedded_arg("js_code$", ID_TYPE_STR); + embed_function("GetRenderScaleQuality", ID_TYPE_FN_NUM); + embed_function("GetGlobalMouse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb1", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb2", ID_TYPE_BYREF_NUM); + add_embedded_arg("mb3", ID_TYPE_BYREF_NUM); + embed_function("GlobalMouseX", ID_TYPE_FN_NUM); + embed_function("GlobalMouseY", ID_TYPE_FN_NUM); + embed_function("GetAccel", ID_TYPE_SUB); + add_embedded_arg("accel_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("AccelName$", ID_TYPE_FN_STR); + add_embedded_arg("accel_num", ID_TYPE_NUM); + embed_function("NumAccels", ID_TYPE_FN_NUM); + embed_function("GetGyro", ID_TYPE_SUB); + add_embedded_arg("gyro_num", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_BYREF_NUM); + add_embedded_arg("y", ID_TYPE_BYREF_NUM); + add_embedded_arg("z", ID_TYPE_BYREF_NUM); + embed_function("GyroName$", ID_TYPE_FN_STR); + add_embedded_arg("gyro_num", ID_TYPE_NUM); + embed_function("NumGyros", ID_TYPE_FN_NUM); + embed_function("JoyRumblePlay", ID_TYPE_SUB); + add_embedded_arg("joy_num", ID_TYPE_NUM); + add_embedded_arg("strength", ID_TYPE_NUM); + add_embedded_arg("duration", ID_TYPE_NUM); + embed_function("JoyRumbleStop", ID_TYPE_SUB); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("JoystickIsHaptic", ID_TYPE_FN_NUM); + add_embedded_arg("joy_num", ID_TYPE_NUM); + embed_function("WriteByteBuffer", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("buf", ID_TYPE_BYREF_NUM); + add_embedded_arg("buf_size", ID_TYPE_NUM); + embed_function("ReadByteBuffer", ID_TYPE_FN_NUM); + add_embedded_arg("stream", ID_TYPE_NUM); + add_embedded_arg("buf", ID_TYPE_BYREF_NUM); + add_embedded_arg("buf_size", ID_TYPE_NUM); + embed_function("WindowEvent_Resize", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("SetWindowAutoClose", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("exit_on_close", ID_TYPE_NUM); + embed_function("SetWindowResizable", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SystemReturnStdOut$", ID_TYPE_FN_STR); + add_embedded_arg("cmd$", ID_TYPE_STR); + embed_function("WindowMode", ID_TYPE_FN_NUM); + add_embedded_arg("visible", ID_TYPE_NUM); + add_embedded_arg("fullscreen", ID_TYPE_NUM); + add_embedded_arg("resizable", ID_TYPE_NUM); + add_embedded_arg("borderless", ID_TYPE_NUM); + add_embedded_arg("highDPI", ID_TYPE_NUM); + embed_function("WindowFlags", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("RestoreWindow", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("UpdateAllWindows", ID_TYPE_SUB); + embed_function("QueryAudioSpec", ID_TYPE_FN_NUM); + add_embedded_arg("freq", ID_TYPE_BYREF_NUM); + add_embedded_arg("format", ID_TYPE_BYREF_NUM); + add_embedded_arg("channels", ID_TYPE_BYREF_NUM); + embed_function("MusicIsPlaying", ID_TYPE_FN_NUM); + embed_function("DrawGeometry", ID_TYPE_FN_NUM); + add_embedded_arg("slot", ID_TYPE_NUM); + add_embedded_arg("num_vertices", ID_TYPE_NUM); + add_embedded_arg("vertices", ID_TYPE_BYREF_NUM); + add_embedded_arg("num_indices", ID_TYPE_NUM); + add_embedded_arg("Indices", ID_TYPE_BYREF_NUM); + embed_function("Size", ID_TYPE_FN_NUM); + add_embedded_arg("s$", ID_TYPE_STR); + embed_function("BufferFromString", ID_TYPE_FN_NUM); + add_embedded_arg("s$", ID_TYPE_STR); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("StringFromBuffer$", ID_TYPE_FN_STR); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("buffer_size", ID_TYPE_NUM); + embed_function("GrabInput", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("GrabbedWindow", ID_TYPE_FN_NUM); + embed_function("WarpMouse", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("WarpMouseGlobal", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + embed_function("SetMouseZone", ID_TYPE_SUB); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("w", ID_TYPE_NUM); + add_embedded_arg("h", ID_TYPE_NUM); + embed_function("ClearMouseZone", ID_TYPE_SUB); + embed_function("SetWindowAlwaysOnTop", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetMouseRelative", ID_TYPE_SUB); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("SetWindowVSync", ID_TYPE_SUB); + add_embedded_arg("win", ID_TYPE_NUM); + add_embedded_arg("flag", ID_TYPE_NUM); + embed_function("OpenURL", ID_TYPE_FN_NUM); + add_embedded_arg("url$", ID_TYPE_STR); + embed_function("APIVersion$", ID_TYPE_FN_STR); + embed_function("FlashWindow", ID_TYPE_FN_NUM); + add_embedded_arg("win", ID_TYPE_NUM); + embed_function("MessageBox", ID_TYPE_FN_NUM); + add_embedded_arg("title$", ID_TYPE_STR); + add_embedded_arg("msg$", ID_TYPE_STR); + embed_function("NumberArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("dst", ID_TYPE_BYREF_NUM); + embed_function("StringArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src$", ID_TYPE_BYREF_STR); + add_embedded_arg("dst$", ID_TYPE_BYREF_STR); + embed_function("ArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("dst", ID_TYPE_BYREF_NUM); + embed_function("NumberArrayFill", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("fdata", ID_TYPE_NUM); + embed_function("StringArrayFill", ID_TYPE_SUB); + add_embedded_arg("src$", ID_TYPE_BYREF_STR); + add_embedded_arg("fdata$", ID_TYPE_STR); + embed_function("ArrayFill", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("fdata", ID_TYPE_NUM); + embed_function("Runtime$", ID_TYPE_FN_STR); + embed_function("DimMatrix", ID_TYPE_SUB); + add_embedded_arg("m", ID_TYPE_NUM); + add_embedded_arg("m_rows", ID_TYPE_NUM); + add_embedded_arg("m_cols", ID_TYPE_NUM); + add_embedded_arg("preserve_flag", ID_TYPE_NUM); + embed_function("AddMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("AugmentMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("CopyMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("InsertMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("InsertMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("MultiplyMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("CubeMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("DeleteMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("DeleteMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("ClearMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("ClearMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("ClearMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("FillMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("FillMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("FillMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("CopyMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + embed_function("CopyMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + embed_function("IdentityMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("n", ID_TYPE_NUM); + embed_function("SolveMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("IsEqualMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("tolerance", ID_TYPE_NUM); + embed_function("Determinant", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("AdjointMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("InvertMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("MatrixFromBuffer", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + embed_function("GetMatrix", ID_TYPE_SUB); + add_embedded_arg("buffer", ID_TYPE_BYREF_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("RandomizeMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("vmin", ID_TYPE_NUM); + add_embedded_arg("vmax", ID_TYPE_NUM); + embed_function("MatrixValue", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("SetMatrixValue", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("v", ID_TYPE_NUM); + embed_function("ScalarMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("s_value", ID_TYPE_NUM); + embed_function("ScalarMatrixColumns", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + add_embedded_arg("s_value", ID_TYPE_NUM); + embed_function("ScalarMatrixRows", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + add_embedded_arg("s_value", ID_TYPE_NUM); + embed_function("SquareMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("SubMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + embed_function("SubtractMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("SwapMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("SwapMatrixColumn", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("C1", ID_TYPE_NUM); + add_embedded_arg("C2", ID_TYPE_NUM); + embed_function("SwapMatrixRow", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("R1", ID_TYPE_NUM); + add_embedded_arg("R2", ID_TYPE_NUM); + embed_function("TransposeMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + embed_function("UnAugmentMatrix", ID_TYPE_FN_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("ZeroMatrix", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + embed_function("GetMatrixSize", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_BYREF_NUM); + add_embedded_arg("c", ID_TYPE_BYREF_NUM); + embed_function("SetMatrixProcess", ID_TYPE_FN_NUM); + add_embedded_arg("p_num", ID_TYPE_NUM); + embed_function("ProcessOpen", ID_TYPE_FN_NUM); + add_embedded_arg("p_num", ID_TYPE_NUM); + embed_function("SetProcessErrorMode", ID_TYPE_SUB); + add_embedded_arg("p_num", ID_TYPE_NUM); + add_embedded_arg("error_mode", ID_TYPE_NUM); + embed_function("ProcessError", ID_TYPE_FN_NUM); + add_embedded_arg("p_num", ID_TYPE_NUM); + embed_function("ProcessWait", ID_TYPE_SUB); + add_embedded_arg("p_num", ID_TYPE_NUM); + embed_function("ProcessWaitAll", ID_TYPE_SUB); + embed_function("ProcessContinue", ID_TYPE_SUB); + add_embedded_arg("p_num", ID_TYPE_NUM); + embed_function("ProcessStop", ID_TYPE_SUB); + add_embedded_arg("p_num", ID_TYPE_NUM); + embed_function("ProcessClear", ID_TYPE_SUB); + add_embedded_arg("p_num", ID_TYPE_NUM); + embed_function("ProcessClose", ID_TYPE_FN_NUM); + add_embedded_arg("p_num", ID_TYPE_NUM); + embed_function("ProcessErrorMode", ID_TYPE_FN_NUM); + add_embedded_arg("p_num", ID_TYPE_NUM); + embed_function("ProcessSleep", ID_TYPE_SUB); + add_embedded_arg("p_num", ID_TYPE_NUM); + add_embedded_arg("msec", ID_TYPE_NUM); + embed_function("ProcessExists", ID_TYPE_FN_NUM); + add_embedded_arg("p_num", ID_TYPE_NUM); + embed_function("ProcessStopAll", ID_TYPE_SUB); + embed_function("ProcessContinueAll", ID_TYPE_SUB); + embed_function("ProcessQueueSize", ID_TYPE_FN_NUM); + add_embedded_arg("p_num", ID_TYPE_NUM); + embed_function("NumCPUs", ID_TYPE_FN_NUM); + embed_function("GetProjectionGeometry", ID_TYPE_SUB); + add_embedded_arg("cam_dist", ID_TYPE_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("f_vertex_count", ID_TYPE_NUM); + add_embedded_arg("columns", ID_TYPE_BYREF_NUM); + add_embedded_arg("uv", ID_TYPE_BYREF_NUM); + add_embedded_arg("graph_offset_x", ID_TYPE_NUM); + add_embedded_arg("graph_offset_y", ID_TYPE_NUM); + add_embedded_arg("v_color", ID_TYPE_NUM); + add_embedded_arg("vertex_count", ID_TYPE_BYREF_NUM); + add_embedded_arg("vertex2D", ID_TYPE_BYREF_NUM); + add_embedded_arg("index_count", ID_TYPE_BYREF_NUM); + add_embedded_arg("index", ID_TYPE_BYREF_NUM); + add_embedded_arg("clip_dist", ID_TYPE_BYREF_NUM); + add_embedded_arg("min_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("min_y", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("max_y", ID_TYPE_BYREF_NUM); + embed_function("CalculateFaceZ", ID_TYPE_FN_NUM); + add_embedded_arg("cam_dist", ID_TYPE_NUM); + add_embedded_arg("graph_offset_x", ID_TYPE_NUM); + add_embedded_arg("graph_offset_y", ID_TYPE_NUM); + add_embedded_arg("view_w", ID_TYPE_NUM); + add_embedded_arg("view_h", ID_TYPE_NUM); + add_embedded_arg("view_depth", ID_TYPE_NUM); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("f_vertex_count", ID_TYPE_NUM); + add_embedded_arg("columns", ID_TYPE_BYREF_NUM); + add_embedded_arg("face_min_z", ID_TYPE_BYREF_NUM); + add_embedded_arg("face_max_z", ID_TYPE_BYREF_NUM); + add_embedded_arg("z_avg", ID_TYPE_BYREF_NUM); + embed_function("SetChannelSpacePosition", ID_TYPE_FN_NUM); + add_embedded_arg("channel", ID_TYPE_NUM); + add_embedded_arg("angle", ID_TYPE_NUM); + add_embedded_arg("distance", ID_TYPE_NUM); + embed_function("SaveBMP", ID_TYPE_FN_NUM); + add_embedded_arg("img", ID_TYPE_NUM); + add_embedded_arg("file$", ID_TYPE_STR); + embed_function("SavePNG", ID_TYPE_FN_NUM); + add_embedded_arg("img", ID_TYPE_NUM); + add_embedded_arg("file$", ID_TYPE_STR); + embed_function("SaveJPG", ID_TYPE_FN_NUM); + add_embedded_arg("img", ID_TYPE_NUM); + add_embedded_arg("file$", ID_TYPE_STR); + embed_function("GetLineIntersection", ID_TYPE_FN_NUM); + add_embedded_arg("p0_x", ID_TYPE_NUM); + add_embedded_arg("p0_y", ID_TYPE_NUM); + add_embedded_arg("p1_x", ID_TYPE_NUM); + add_embedded_arg("p1_y", ID_TYPE_NUM); + add_embedded_arg("p2_x", ID_TYPE_NUM); + add_embedded_arg("p2_y", ID_TYPE_NUM); + add_embedded_arg("p3_x", ID_TYPE_NUM); + add_embedded_arg("p3_y", ID_TYPE_NUM); + add_embedded_arg("i_x", ID_TYPE_BYREF_NUM); + add_embedded_arg("i_y", ID_TYPE_BYREF_NUM); + embed_function("Interpolate", ID_TYPE_FN_NUM); + add_embedded_arg("min_a", ID_TYPE_NUM); + add_embedded_arg("max_a", ID_TYPE_NUM); + add_embedded_arg("mid_a", ID_TYPE_NUM); + add_embedded_arg("min_b", ID_TYPE_NUM); + add_embedded_arg("max_b", ID_TYPE_NUM); + embed_function("ATan2", ID_TYPE_FN_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + embed_function("PointInQuad", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("x3", ID_TYPE_NUM); + add_embedded_arg("y3", ID_TYPE_NUM); + add_embedded_arg("x4", ID_TYPE_NUM); + add_embedded_arg("y4", ID_TYPE_NUM); + embed_function("PointInTri", ID_TYPE_FN_NUM); + add_embedded_arg("x", ID_TYPE_NUM); + add_embedded_arg("y", ID_TYPE_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("x3", ID_TYPE_NUM); + add_embedded_arg("y3", ID_TYPE_NUM); + embed_function("Distance2D", ID_TYPE_FN_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + embed_function("Distance3D", ID_TYPE_FN_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("z1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("z2", ID_TYPE_NUM); + embed_function("GetCircleLineIntersection", ID_TYPE_FN_NUM); + add_embedded_arg("circle_x", ID_TYPE_NUM); + add_embedded_arg("circle_y", ID_TYPE_NUM); + add_embedded_arg("radius", ID_TYPE_NUM); + add_embedded_arg("x1", ID_TYPE_NUM); + add_embedded_arg("y1", ID_TYPE_NUM); + add_embedded_arg("x2", ID_TYPE_NUM); + add_embedded_arg("y2", ID_TYPE_NUM); + add_embedded_arg("ix1", ID_TYPE_BYREF_NUM); + add_embedded_arg("iy1", ID_TYPE_BYREF_NUM); + add_embedded_arg("ix2", ID_TYPE_BYREF_NUM); + add_embedded_arg("iy2", ID_TYPE_BYREF_NUM); + embed_function("GetLinePlaneIntersection", ID_TYPE_FN_NUM); + add_embedded_arg("line_point", ID_TYPE_BYREF_NUM); + add_embedded_arg("line_direction", ID_TYPE_BYREF_NUM); + add_embedded_arg("plane_point_1", ID_TYPE_BYREF_NUM); + add_embedded_arg("plane_point_2", ID_TYPE_BYREF_NUM); + add_embedded_arg("plane_point_3", ID_TYPE_BYREF_NUM); + add_embedded_arg("intersection", ID_TYPE_BYREF_NUM); + embed_function("IncrementMatrixRows", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("r", ID_TYPE_NUM); + add_embedded_arg("num_rows", ID_TYPE_NUM); + add_embedded_arg("value", ID_TYPE_NUM); + embed_function("IncrementMatrixColumns", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("c", ID_TYPE_NUM); + add_embedded_arg("num_cols", ID_TYPE_NUM); + add_embedded_arg("value", ID_TYPE_NUM); + embed_function("JoinMatrixRows", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("JoinMatrixColumns", ID_TYPE_SUB); + add_embedded_arg("mA", ID_TYPE_NUM); + add_embedded_arg("mB", ID_TYPE_NUM); + add_embedded_arg("mC", ID_TYPE_NUM); + embed_function("TypeArrayDim", ID_TYPE_FN_NUM); + add_embedded_arg("id$", ID_TYPE_BYREF_STR); + embed_function("TypeArraySize", ID_TYPE_FN_NUM); + add_embedded_arg("id", ID_TYPE_BYREF_NUM); + add_embedded_arg("array_dim", ID_TYPE_NUM); + embed_function("TypeArrayCopy", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("dst", ID_TYPE_BYREF_NUM); + embed_function("TypeArrayFill", ID_TYPE_SUB); + add_embedded_arg("src", ID_TYPE_BYREF_NUM); + add_embedded_arg("fdata", ID_TYPE_NUM); }