mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-19 02:38:32 +00:00
DIRECTOR: LINGO: Register only builtins per Director version
This commit is contained in:
parent
bd92f2d00a
commit
5574279ccd
@ -38,187 +38,188 @@ static struct BuiltinProto {
|
||||
int minArgs; // -1 -- arglist
|
||||
int maxArgs;
|
||||
bool parens;
|
||||
int version;
|
||||
int type;
|
||||
} builtins[] = {
|
||||
// Math
|
||||
{ "abs", Lingo::b_abs, 1, 1, true }, // D2 function
|
||||
{ "atan", Lingo::b_atan, 1, 1, true }, // D4 f
|
||||
{ "cos", Lingo::b_cos, 1, 1, true }, // D4 f
|
||||
{ "exp", Lingo::b_exp, 1, 1, true }, // D4 f
|
||||
{ "float", Lingo::b_float, 1, 1, true }, // D4 f
|
||||
{ "integer", Lingo::b_integer, 1, 1, true }, // D3 f
|
||||
{ "log", Lingo::b_log, 1, 1, true }, // D4 f
|
||||
{ "pi", Lingo::b_pi, 0, 0, true }, // D4 f
|
||||
{ "power", Lingo::b_power, 2, 2, true }, // D4 f
|
||||
{ "random", Lingo::b_random, 1, 1, true }, // D2 f
|
||||
{ "sin", Lingo::b_sin, 1, 1, true }, // D4 f
|
||||
{ "sqrt", Lingo::b_sqrt, 1, 1, true }, // D2 f
|
||||
{ "tan", Lingo::b_tan, 1, 1, true }, // D4 f
|
||||
{ "abs", Lingo::b_abs, 1, 1, true, 2, FBLTIN }, // D2 function
|
||||
{ "atan", Lingo::b_atan, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "cos", Lingo::b_cos, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "exp", Lingo::b_exp, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "float", Lingo::b_float, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "integer", Lingo::b_integer, 1, 1, true, 3, FBLTIN }, // D3 f
|
||||
{ "log", Lingo::b_log, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "pi", Lingo::b_pi, 0, 0, true, 4, FBLTIN }, // D4 f
|
||||
{ "power", Lingo::b_power, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "random", Lingo::b_random, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "sin", Lingo::b_sin, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "sqrt", Lingo::b_sqrt, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "tan", Lingo::b_tan, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
// String
|
||||
{ "chars", Lingo::b_chars, 3, 3, true }, // D2 f
|
||||
{ "charToNum", Lingo::b_charToNum, 1, 1, true }, // D2 f
|
||||
{ "delete", Lingo::b_delete, 1, 1, true }, // D3 c
|
||||
{ "hilite", Lingo::b_hilite, 1, 1, true }, // D3 c
|
||||
{ "length", Lingo::b_length, 1, 1, true }, // D2 f
|
||||
{ "numToChar", Lingo::b_numToChar, 1, 1, true }, // D2 f
|
||||
{ "offset", Lingo::b_offset, 2, 3, true }, // D2 f
|
||||
{ "string", Lingo::b_string, 1, 1, true }, // D2 f
|
||||
{ "value", Lingo::b_value, 1, 1, true }, // D2 f
|
||||
{ "chars", Lingo::b_chars, 3, 3, true, 2, FBLTIN }, // D2 f
|
||||
{ "charToNum", Lingo::b_charToNum, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "delete", Lingo::b_delete, 1, 1, true, 3, BLTIN }, // D3 c
|
||||
{ "hilite", Lingo::b_hilite, 1, 1, true, 3, BLTIN }, // D3 c
|
||||
{ "length", Lingo::b_length, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "numToChar", Lingo::b_numToChar, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "offset", Lingo::b_offset, 2, 3, true, 2, FBLTIN }, // D2 f
|
||||
{ "string", Lingo::b_string, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "value", Lingo::b_value, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
// Lists
|
||||
{ "add", Lingo::b_add, 2, 2, false }, // D4 command
|
||||
{ "addAt", Lingo::b_addAt, 3, 3, false }, // D4 c
|
||||
{ "addProp", Lingo::b_addProp, 3, 3, false }, // D4 c
|
||||
{ "append", Lingo::b_append, 2, 2, false }, // D4 c
|
||||
{ "count", Lingo::b_count, 1, 1, true }, // D4 f
|
||||
{ "deleteAt", Lingo::b_deleteAt, 2, 2, false }, // D4 c
|
||||
{ "deleteProp", Lingo::b_deleteProp, 2, 2, false }, // D4 c
|
||||
{ "findPos", Lingo::b_findPos, 2, 2, true }, // D4 f
|
||||
{ "findPosNear", Lingo::b_findPosNear, 2, 2, true }, // D4 f
|
||||
{ "getaProp", Lingo::b_getaProp, 2, 2, true }, // D4 f
|
||||
{ "getAt", Lingo::b_getAt, 2, 2, true }, // D4 f
|
||||
{ "getLast", Lingo::b_getLast, 1, 1, true }, // D4 f
|
||||
{ "getOne", Lingo::b_getOne, 2, 2, true }, // D4 f
|
||||
{ "getPos", Lingo::b_getPos, 2, 2, true }, // D4 f
|
||||
{ "getProp", Lingo::b_getProp, 2, 2, true }, // D4 f
|
||||
{ "getPropAt", Lingo::b_getPropAt, 2, 2, true }, // D4 f
|
||||
{ "list", Lingo::b_list, -1, 0, true }, // D4 f
|
||||
{ "listP", Lingo::b_listP, 1, 1, true }, // D4 f
|
||||
{ "max", Lingo::b_max, 1, 1, true }, // D4 f
|
||||
{ "min", Lingo::b_min, 1, 1, true }, // D4 f
|
||||
{ "setaProp", Lingo::b_setaProp, 3, 3, false }, // D4 c
|
||||
{ "setAt", Lingo::b_setAt, 3, 3, false }, // D4 c
|
||||
{ "setProp", Lingo::b_setProp, 3, 3, false }, // D4 c
|
||||
{ "sort", Lingo::b_sort, 1, 1, false }, // D4 c
|
||||
{ "add", Lingo::b_add, 2, 2, false, 4, BLTIN }, // D4 command
|
||||
{ "addAt", Lingo::b_addAt, 3, 3, false, 4, BLTIN }, // D4 c
|
||||
{ "addProp", Lingo::b_addProp, 3, 3, false, 4, BLTIN }, // D4 c
|
||||
{ "append", Lingo::b_append, 2, 2, false, 4, BLTIN }, // D4 c
|
||||
{ "count", Lingo::b_count, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "deleteAt", Lingo::b_deleteAt, 2, 2, false, 4, BLTIN }, // D4 c
|
||||
{ "deleteProp", Lingo::b_deleteProp, 2, 2, false, 4, BLTIN }, // D4 c
|
||||
{ "findPos", Lingo::b_findPos, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "findPosNear", Lingo::b_findPosNear, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "getaProp", Lingo::b_getaProp, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "getAt", Lingo::b_getAt, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "getLast", Lingo::b_getLast, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "getOne", Lingo::b_getOne, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "getPos", Lingo::b_getPos, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "getProp", Lingo::b_getProp, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "getPropAt", Lingo::b_getPropAt, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "list", Lingo::b_list, -1, 0, true, 4, FBLTIN }, // D4 f
|
||||
{ "listP", Lingo::b_listP, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "max", Lingo::b_max, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "min", Lingo::b_min, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "setaProp", Lingo::b_setaProp, 3, 3, false, 4, BLTIN }, // D4 c
|
||||
{ "setAt", Lingo::b_setAt, 3, 3, false, 4, BLTIN }, // D4 c
|
||||
{ "setProp", Lingo::b_setProp, 3, 3, false, 4, BLTIN }, // D4 c
|
||||
{ "sort", Lingo::b_sort, 1, 1, false, 4, BLTIN }, // D4 c
|
||||
// Files
|
||||
{ "closeDA", Lingo::b_closeDA, 0, 0, false }, // D2 c
|
||||
{ "closeResFile", Lingo::b_closeResFile, 0, 1, false }, // D2 c
|
||||
{ "closeXlib", Lingo::b_closeXlib, 0, 1, false }, // D2 c
|
||||
{ "getNthFileNameInFolder",Lingo::b_getNthFileNameInFolder,2,2,true },//D4 f
|
||||
// open // D2 c
|
||||
{ "openDA", Lingo::b_openDA, 1, 1, false }, // D2 c
|
||||
{ "openResFile", Lingo::b_openResFile, 1, 1, false }, // D2 c
|
||||
{ "openXlib", Lingo::b_openXlib, 1, 1, false }, // D2 c
|
||||
{ "saveMovie", Lingo::b_saveMovie, 1, 1, false }, // D4 c
|
||||
{ "setCallBack", Lingo::b_setCallBack, 2, 2, false }, // D3 c
|
||||
{ "showResFile", Lingo::b_showResFile, 0, 1, false }, // D2 c
|
||||
{ "showXlib", Lingo::b_showXlib, 0, 1, false }, // D2 c
|
||||
{ "xFactoryList", Lingo::b_xFactoryList, 1, 1, true }, // D3 f
|
||||
{ "closeDA", Lingo::b_closeDA, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
{ "closeResFile", Lingo::b_closeResFile, 0, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "closeXlib", Lingo::b_closeXlib, 0, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "getNthFileNameInFolder",Lingo::b_getNthFileNameInFolder,2,2,true,4,FBLTIN },// D4 f
|
||||
// open // D2 c
|
||||
{ "openDA", Lingo::b_openDA, 1, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "openResFile", Lingo::b_openResFile, 1, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "openXlib", Lingo::b_openXlib, 1, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "saveMovie", Lingo::b_saveMovie, 1, 1, false, 4, BLTIN }, // D4 c
|
||||
{ "setCallBack", Lingo::b_setCallBack, 2, 2, false, 3, BLTIN }, // D3 c
|
||||
{ "showResFile", Lingo::b_showResFile, 0, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "showXlib", Lingo::b_showXlib, 0, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "xFactoryList", Lingo::b_xFactoryList, 1, 1, true, 3, FBLTIN }, // D3 f
|
||||
// Control
|
||||
{ "abort", Lingo::b_abort, 0, 0, false }, // D4 c
|
||||
{ "continue", Lingo::b_continue, 0, 0, false }, // D2 c
|
||||
{ "dontPassEvent", Lingo::b_dontPassEvent, 0, 0, false }, // D2 c
|
||||
{ "delay", Lingo::b_delay, 1, 1, false }, // D2 c
|
||||
{ "do", Lingo::b_do, 1, 1, false }, // D2 c
|
||||
{ "go", Lingo::b_go, 1, 2, false },
|
||||
{ "halt", Lingo::b_halt, 0, 0, false }, // D4 c
|
||||
{ "nothing", Lingo::b_nothing, 0, 0, false }, // D2 c
|
||||
{ "pass", Lingo::b_pass, 0, 0, false }, // D4 c
|
||||
{ "pause", Lingo::b_pause, 0, 0, false }, // D2 c
|
||||
// play // D2 c
|
||||
{ "playAccel", Lingo::b_playAccel, -1,0, false }, // D2
|
||||
// play done // D2
|
||||
{ "preLoad", Lingo::b_preLoad, -1,0, false }, // D3 c
|
||||
{ "preLoadCast", Lingo::b_preLoadCast, -1,0, false }, // D3 c
|
||||
{ "quit", Lingo::b_quit, 0, 0, false }, // D2 c
|
||||
{ "restart", Lingo::b_restart, 0, 0, false }, // D2 c
|
||||
{ "return", Lingo::b_return, 1, 1, false }, // D2 function
|
||||
{ "shutDown", Lingo::b_shutDown, 0, 0, false }, // D2 c
|
||||
{ "startTimer", Lingo::b_startTimer, 0, 0, false }, // D2 c
|
||||
// when keyDown // D2
|
||||
// when mouseDown // D2
|
||||
// when mouseUp // D2
|
||||
// when timeOut // D2
|
||||
{ "abort", Lingo::b_abort, 0, 0, false, 4, BLTIN }, // D4 c
|
||||
{ "continue", Lingo::b_continue, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
{ "dontPassEvent", Lingo::b_dontPassEvent, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
{ "delay", Lingo::b_delay, 1, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "do", Lingo::b_do, 1, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "halt", Lingo::b_halt, 0, 0, false, 4, BLTIN }, // D4 c
|
||||
{ "nothing", Lingo::b_nothing, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
{ "pass", Lingo::b_pass, 0, 0, false, 4, BLTIN }, // D4 c
|
||||
{ "pause", Lingo::b_pause, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
// play // D2 c
|
||||
{ "playAccel", Lingo::b_playAccel, -1,0, false, 2, BLTIN }, // D2
|
||||
// play done // D2
|
||||
{ "preLoad", Lingo::b_preLoad, -1,0, false, 3, BLTIN }, // D3 c
|
||||
{ "preLoadCast", Lingo::b_preLoadCast, -1,0, false, 3, BLTIN }, // D3 c
|
||||
{ "quit", Lingo::b_quit, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
{ "restart", Lingo::b_restart, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
{ "return", Lingo::b_return, 1, 1, false, 2, BLTIN }, // D2 function
|
||||
{ "shutDown", Lingo::b_shutDown, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
{ "startTimer", Lingo::b_startTimer, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
// when keyDown // D2
|
||||
// when mouseDown // D2
|
||||
// when mouseUp // D2
|
||||
// when timeOut // D2
|
||||
// Types
|
||||
{ "floatP", Lingo::b_floatP, 1, 1, true }, // D3
|
||||
{ "ilk", Lingo::b_ilk, 1, 2, false }, // D4 f
|
||||
{ "integerp", Lingo::b_integerp, 1, 1, true }, // D2 f
|
||||
{ "objectp", Lingo::b_objectp, 1, 1, true }, // D2 f
|
||||
{ "pictureP", Lingo::b_pictureP, 1, 1, true }, // D4 f
|
||||
{ "stringp", Lingo::b_stringp, 1, 1, true }, // D2 f
|
||||
{ "symbolp", Lingo::b_symbolp, 1, 1, true }, // D2 f
|
||||
{ "voidP", Lingo::b_voidP, 1, 1, true }, // D4 f
|
||||
{ "floatP", Lingo::b_floatP, 1, 1, true, 3, FBLTIN }, // D3
|
||||
{ "ilk", Lingo::b_ilk, 1, 2, false, 4, FBLTIN }, // D4 f
|
||||
{ "integerp", Lingo::b_integerp, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "objectp", Lingo::b_objectp, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "pictureP", Lingo::b_pictureP, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "stringp", Lingo::b_stringp, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "symbolp", Lingo::b_symbolp, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "voidP", Lingo::b_voidP, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
// Misc
|
||||
{ "alert", Lingo::b_alert, 1, 1, false }, // D2 c
|
||||
{ "birth", Lingo::b_birth, -1,0, false }, // D4 f
|
||||
{ "clearGlobals", Lingo::b_clearGlobals, 0, 0, false }, // D4 c
|
||||
{ "cursor", Lingo::b_cursor, 1, 1, false }, // D2 c
|
||||
{ "framesToHMS", Lingo::b_framesToHMS, 4, 4, false }, // D3 f
|
||||
{ "HMStoFrames", Lingo::b_HMStoFrames, 4, 4, false }, // D3 f
|
||||
{ "param", Lingo::b_param, 1, 1, true }, // D4 f
|
||||
{ "printFrom", Lingo::b_printFrom, -1,0, false }, // D2 c
|
||||
// put // D2
|
||||
// set // D2
|
||||
{ "showGlobals", Lingo::b_showGlobals, 0, 0, false }, // D2 c
|
||||
{ "showLocals", Lingo::b_showLocals, 0, 0, false }, // D2 c
|
||||
{ "alert", Lingo::b_alert, 1, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "birth", Lingo::b_birth, -1,0, false, 4, FBLTIN }, // D4 f
|
||||
{ "clearGlobals", Lingo::b_clearGlobals, 0, 0, false, 4, BLTIN }, // D4 c
|
||||
{ "cursor", Lingo::b_cursor, 1, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "framesToHMS", Lingo::b_framesToHMS, 4, 4, false, 3, FBLTIN }, // D3 f
|
||||
{ "HMStoFrames", Lingo::b_HMStoFrames, 4, 4, false, 3, FBLTIN }, // D3 f
|
||||
{ "param", Lingo::b_param, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
{ "printFrom", Lingo::b_printFrom, -1,0, false, 2, BLTIN }, // D2 c
|
||||
// put // D2
|
||||
// set // D2
|
||||
{ "showGlobals", Lingo::b_showGlobals, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
{ "showLocals", Lingo::b_showLocals, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
// Score
|
||||
{ "constrainH", Lingo::b_constrainH, 2, 2, true }, // D2 f
|
||||
{ "constrainV", Lingo::b_constrainV, 2, 2, true }, // D2 f
|
||||
{ "copyToClipBoard",Lingo::b_copyToClipBoard,1,1, false }, // D4 c
|
||||
{ "duplicate", Lingo::b_duplicate, 1, 2, false }, // D4 c
|
||||
{ "editableText", Lingo::b_editableText, 0, 0, false }, // D2
|
||||
{ "erase", Lingo::b_erase, 1, 1, false }, // D4 c
|
||||
{ "findEmpty", Lingo::b_findEmpty, 1, 1, true }, // D4 f
|
||||
// go // D2
|
||||
{ "importFileInto", Lingo::b_importFileInto,2, 2, false }, // D4 c
|
||||
{ "installMenu", Lingo::b_installMenu, 1, 1, false }, // D2 c
|
||||
{ "label", Lingo::b_label, 1, 1, true }, // D2 f
|
||||
{ "marker", Lingo::b_marker, 1, 1, true }, // D2 f
|
||||
{ "move", Lingo::b_move, 1, 2, false }, // D4 c
|
||||
{ "moveableSprite", Lingo::b_moveableSprite,0, 0, false }, // D2
|
||||
{ "pasteClipBoardInto",Lingo::b_pasteClipBoardInto,1, 1, false }, // D4 c
|
||||
{ "puppetPalette", Lingo::b_puppetPalette, -1,0, false }, // D2 c
|
||||
{ "puppetSound", Lingo::b_puppetSound, -1,0, false }, // D2 c
|
||||
{ "puppetSprite", Lingo::b_puppetSprite, -1,0, false }, // D2 c
|
||||
{ "puppetTempo", Lingo::b_puppetTempo, 1, 1, false }, // D2 c
|
||||
{ "puppetTransition",Lingo::b_puppetTransition,-1,0, false },// D2 c
|
||||
{ "ramNeeded", Lingo::b_ramNeeded, 2, 2, true }, // D4 f
|
||||
{ "rollOver", Lingo::b_rollOver, 1, 1, true }, // D2 f
|
||||
{ "spriteBox", Lingo::b_spriteBox, -1,0, false }, // D2 c
|
||||
{ "unLoad", Lingo::b_unLoad, 0, 2, false }, // D4 c
|
||||
{ "unLoadCast", Lingo::b_unLoadCast, 0, 2, false }, // D4 c
|
||||
{ "updateStage", Lingo::b_updateStage, 0, 0, false }, // D2 c
|
||||
{ "zoomBox", Lingo::b_zoomBox, -1,0, false }, // D2 c
|
||||
{ "constrainH", Lingo::b_constrainH, 2, 2, true, 2, FBLTIN }, // D2 f
|
||||
{ "constrainV", Lingo::b_constrainV, 2, 2, true, 2, FBLTIN }, // D2 f
|
||||
{ "copyToClipBoard",Lingo::b_copyToClipBoard,1,1, false, 4, BLTIN }, // D4 c
|
||||
{ "duplicate", Lingo::b_duplicate, 1, 2, false, 4, BLTIN }, // D4 c
|
||||
{ "editableText", Lingo::b_editableText, 0, 0, false, 2, BLTIN }, // D2
|
||||
{ "erase", Lingo::b_erase, 1, 1, false, 4, BLTIN }, // D4 c
|
||||
{ "findEmpty", Lingo::b_findEmpty, 1, 1, true, 4, FBLTIN }, // D4 f
|
||||
// go // D2
|
||||
{ "importFileInto", Lingo::b_importFileInto,2, 2, false, 4, BLTIN }, // D4 c
|
||||
{ "installMenu", Lingo::b_installMenu, 1, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "label", Lingo::b_label, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "marker", Lingo::b_marker, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "move", Lingo::b_move, 1, 2, false, 4, BLTIN }, // D4 c
|
||||
{ "moveableSprite", Lingo::b_moveableSprite,0, 0, false, 2, BLTIN }, // D2
|
||||
{ "pasteClipBoardInto",Lingo::b_pasteClipBoardInto,1,1,false,4,BLTIN }, // D4 c
|
||||
{ "puppetPalette", Lingo::b_puppetPalette, -1,0, false, 2, BLTIN }, // D2 c
|
||||
{ "puppetSound", Lingo::b_puppetSound, -1,0, false, 2, BLTIN }, // D2 c
|
||||
{ "puppetSprite", Lingo::b_puppetSprite, -1,0, false, 2, BLTIN }, // D2 c
|
||||
{ "puppetTempo", Lingo::b_puppetTempo, 1, 1, false, 2, BLTIN }, // D2 c
|
||||
{ "puppetTransition",Lingo::b_puppetTransition,-1,0,false,2, BLTIN }, // D2 c
|
||||
{ "ramNeeded", Lingo::b_ramNeeded, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "rollOver", Lingo::b_rollOver, 1, 1, true, 2, FBLTIN }, // D2 f
|
||||
{ "spriteBox", Lingo::b_spriteBox, -1,0, false, 2, BLTIN }, // D2 c
|
||||
{ "unLoad", Lingo::b_unLoad, 0, 2, false, 4, BLTIN }, // D4 c
|
||||
{ "unLoadCast", Lingo::b_unLoadCast, 0, 2, false, 4, BLTIN }, // D4 c
|
||||
{ "updateStage", Lingo::b_updateStage, 0, 0, false, 2, BLTIN }, // D2 c
|
||||
{ "zoomBox", Lingo::b_zoomBox, -1,0, false, 2, BLTIN }, // D2 c
|
||||
// Point
|
||||
{ "point", Lingo::b_point, 2, 2, true }, // D4 f
|
||||
{ "inside", Lingo::b_inside, 2, 2, true }, // D4 f
|
||||
{ "intersect", Lingo::b_intersect, 2, 2, false }, // D4 f
|
||||
{ "map", Lingo::b_map, 3, 3, true }, // D4 f
|
||||
{ "rect", Lingo::b_rect, 4, 4, true }, // D4 f
|
||||
{ "union", Lingo::b_union, 2, 2, true }, // D4 f
|
||||
{ "point", Lingo::b_point, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "inside", Lingo::b_inside, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
{ "intersect", Lingo::b_intersect, 2, 2, false, 4, FBLTIN }, // D4 f
|
||||
{ "map", Lingo::b_map, 3, 3, true, 4, FBLTIN }, // D4 f
|
||||
{ "rect", Lingo::b_rect, 4, 4, true, 4, FBLTIN }, // D4 f
|
||||
{ "union", Lingo::b_union, 2, 2, true, 4, FBLTIN }, // D4 f
|
||||
// Sound
|
||||
{ "beep", Lingo::b_beep, 0, 1, false }, // D2
|
||||
{ "mci", Lingo::b_mci, 1, 1, false }, // D4 c
|
||||
{ "mciwait", Lingo::b_mciwait, 1, 1, false },
|
||||
{ "sound-close", Lingo::b_soundClose, 1, 1, false }, // D4 c
|
||||
{ "sound-fadeIn", Lingo::b_soundFadeIn, 1, 2, false }, // D3 c
|
||||
{ "sound-fadeOut", Lingo::b_soundFadeOut, 1, 2, false }, // D3 c
|
||||
{ "sound-playFile", Lingo::b_soundPlayFile, 2, 2, false }, // D3 c
|
||||
{ "sound-stop", Lingo::b_soundStop, 1, 1, false }, // D3 c
|
||||
{ "soundBusy", Lingo::b_soundBusy, 1, 1, true }, // D3 f
|
||||
{ "beep", Lingo::b_beep, 0, 1, false, 2, BLTIN }, // D2
|
||||
{ "mci", Lingo::b_mci, 1, 1, false, 4, BLTIN }, // D4 c
|
||||
{ "mciwait", Lingo::b_mciwait, 1, 1, false, 4, BLTIN }, // D4 c
|
||||
{ "sound-close", Lingo::b_soundClose, 1, 1, false, 4, BLTIN }, // D4 c
|
||||
{ "sound-fadeIn", Lingo::b_soundFadeIn, 1, 2, false, 3, BLTIN }, // D3 c
|
||||
{ "sound-fadeOut", Lingo::b_soundFadeOut, 1, 2, false, 3, BLTIN }, // D3 c
|
||||
{ "sound-playFile", Lingo::b_soundPlayFile, 2, 2, false, 3, BLTIN }, // D3 c
|
||||
{ "sound-stop", Lingo::b_soundStop, 1, 1, false, 3, BLTIN }, // D3 c
|
||||
{ "soundBusy", Lingo::b_soundBusy, 1, 1, true, 3, FBLTIN }, // D3 f
|
||||
// Window
|
||||
{ "close", Lingo::b_close, 1, 1, false }, // D4 c
|
||||
{ "forget", Lingo::b_forget, 1, 1, false }, // D4 c
|
||||
{ "inflate", Lingo::b_inflate, 3, 3, true }, // D4 f
|
||||
{ "moveToBack", Lingo::b_moveToBack, 1, 1, false }, // D4 c
|
||||
{ "moveToFront", Lingo::b_moveToFront, 1, 1, false }, // D4 c
|
||||
{ "close", Lingo::b_close, 1, 1, false, 4, BLTIN }, // D4 c
|
||||
{ "forget", Lingo::b_forget, 1, 1, false, 4, BLTIN }, // D4 c
|
||||
{ "inflate", Lingo::b_inflate, 3, 3, true, 4, FBLTIN }, // D4 f
|
||||
{ "moveToBack", Lingo::b_moveToBack, 1, 1, false, 4, BLTIN }, // D4 c
|
||||
{ "moveToFront", Lingo::b_moveToFront, 1, 1, false, 4, BLTIN }, // D4 c
|
||||
// Constants
|
||||
{ "ancestor", Lingo::b_ancestor, 0, 0, false }, // D4
|
||||
{ "backspace", Lingo::b_backspace, 0, 0, false }, // D2
|
||||
{ "empty", Lingo::b_empty, 0, 0, false }, // D2
|
||||
{ "enter", Lingo::b_enter, 0, 0, false }, // D2
|
||||
{ "false", Lingo::b_false, 0, 0, false }, // D2
|
||||
{ "quote", Lingo::b_quote, 0, 0, false }, // D2
|
||||
// { "return", Lingo::b_returnconst, 0, 0, false }, // D2 // FIXME
|
||||
{ "tab", Lingo::b_tab, 0, 0, false }, // D2
|
||||
{ "true", Lingo::b_true, 0, 0, false }, // D2
|
||||
{ "version", Lingo::b_version, 0, 0, false }, // D3
|
||||
{ "ancestor", Lingo::b_ancestor, 0, 0, false, 4, BLTIN }, // D4
|
||||
{ "backspace", Lingo::b_backspace, 0, 0, false, 2, FBLTIN }, // D2
|
||||
{ "empty", Lingo::b_empty, 0, 0, false, 2, FBLTIN }, // D2
|
||||
{ "enter", Lingo::b_enter, 0, 0, false, 2, FBLTIN }, // D2
|
||||
{ "false", Lingo::b_false, 0, 0, false, 2, FBLTIN }, // D2
|
||||
{ "quote", Lingo::b_quote, 0, 0, false, 2, FBLTIN }, // D2
|
||||
// { "return", Lingo::b_returnconst, 0, 0, false, 2, FBLTIN }, // D2 // FIXME
|
||||
{ "tab", Lingo::b_tab, 0, 0, false, 2, FBLTIN }, // D2
|
||||
{ "true", Lingo::b_true, 0, 0, false, 2, FBLTIN }, // D2
|
||||
{ "version", Lingo::b_version, 0, 0, false, 3, FBLTIN }, // D3
|
||||
// References
|
||||
{ "cast", Lingo::b_cast, 1, 1, false }, // D4 f
|
||||
{ "field", Lingo::b_field, 1, 1, false }, // D3 f
|
||||
{ "me", Lingo::b_me, -1,0, false }, // D3
|
||||
{ "script", Lingo::b_script, 1, 1, false }, // D4 f
|
||||
{ "window", Lingo::b_window, 1, 1, false }, // D4 f
|
||||
{ "cast", Lingo::b_cast, 1, 1, false, 4, RBLTIN }, // D4 f
|
||||
{ "field", Lingo::b_field, 1, 1, false, 3, RBLTIN }, // D3 f
|
||||
{ "me", Lingo::b_me, -1,0, false, 3, BLTIN }, // D3
|
||||
{ "script", Lingo::b_script, 1, 1, false, 4, RBLTIN }, // D4 f
|
||||
{ "window", Lingo::b_window, 1, 1, false, 4, RBLTIN }, // D4 f
|
||||
|
||||
{ 0, 0, 0, 0, false }
|
||||
{ 0, 0, 0, 0, false, 0, 0 }
|
||||
};
|
||||
|
||||
static const char *twoWordBuiltins[] = {
|
||||
@ -228,93 +229,6 @@ static const char *twoWordBuiltins[] = {
|
||||
0
|
||||
};
|
||||
|
||||
static const char *builtinFunctions[] = {
|
||||
"abs",
|
||||
"atan",
|
||||
"backspace",
|
||||
"birth",
|
||||
"cast",
|
||||
"chars",
|
||||
"charToNum",
|
||||
"constrainH",
|
||||
"constrainV",
|
||||
"cos",
|
||||
"count",
|
||||
"empty",
|
||||
"enter",
|
||||
"exp",
|
||||
"false",
|
||||
"field",
|
||||
"findEmpty",
|
||||
"findPos",
|
||||
"findPosNear",
|
||||
"float",
|
||||
"framesToHMS",
|
||||
"getaProp",
|
||||
"getAt",
|
||||
"getLast",
|
||||
"getNthFileNameInFolder",
|
||||
"getOne",
|
||||
"getPos",
|
||||
"getProp",
|
||||
"getPropAt",
|
||||
"HMStoFrames",
|
||||
"ilk",
|
||||
"inflate",
|
||||
"inside",
|
||||
"integer",
|
||||
"integerp",
|
||||
"intersect",
|
||||
"label",
|
||||
"length",
|
||||
"list",
|
||||
"listP",
|
||||
"log",
|
||||
"map",
|
||||
"marker",
|
||||
"max",
|
||||
"min",
|
||||
"numToChar",
|
||||
"objectp",
|
||||
"offset",
|
||||
"param",
|
||||
"pi",
|
||||
"pictureP",
|
||||
"point",
|
||||
"power",
|
||||
"ramNeeded",
|
||||
"random",
|
||||
"rect",
|
||||
"rollOver",
|
||||
"quote",
|
||||
"return",
|
||||
"script",
|
||||
"sin",
|
||||
"sqrt",
|
||||
"soundBusy",
|
||||
"string",
|
||||
"stringp",
|
||||
"symbolp",
|
||||
"tab",
|
||||
"tan",
|
||||
"true",
|
||||
"value",
|
||||
"version",
|
||||
"voidP",
|
||||
"window",
|
||||
"xFactoryList",
|
||||
0
|
||||
};
|
||||
|
||||
static const char *builtinReferences[] = {
|
||||
"cast",
|
||||
"field",
|
||||
"script",
|
||||
"window",
|
||||
0
|
||||
};
|
||||
|
||||
|
||||
static const char *predefinedMethods[] = {
|
||||
"mAtFrame", // D3
|
||||
"mDescribe", // D3
|
||||
@ -332,10 +246,13 @@ static const char *predefinedMethods[] = {
|
||||
|
||||
void Lingo::initBuiltIns() {
|
||||
for (BuiltinProto *blt = builtins; blt->name; blt++) {
|
||||
if (blt->version > _vm->getVersion())
|
||||
continue;
|
||||
|
||||
Symbol *sym = new Symbol;
|
||||
|
||||
sym->name = blt->name;
|
||||
sym->type = BLTIN;
|
||||
sym->type = blt->type;
|
||||
sym->nargs = blt->minArgs;
|
||||
sym->maxArgs = blt->maxArgs;
|
||||
sym->parens = blt->parens;
|
||||
@ -346,20 +263,6 @@ void Lingo::initBuiltIns() {
|
||||
_functions[(void *)sym->u.s] = new FuncDesc(blt->name, "");
|
||||
}
|
||||
|
||||
for (const char **b = builtinFunctions; *b; b++) {
|
||||
if (!_builtins.contains(*b))
|
||||
error("Incorrectly setup builtinFunctions[]: %s", *b);
|
||||
|
||||
_builtins[*b]->type = FBLTIN;
|
||||
}
|
||||
|
||||
for (const char **b = builtinReferences; *b; b++) {
|
||||
if (!_builtins.contains(*b))
|
||||
error("Incorrectly setup builtinReferences[]: %s", *b);
|
||||
|
||||
_builtins[*b]->type = RBLTIN;
|
||||
}
|
||||
|
||||
for (const char **b = twoWordBuiltins; *b; b++)
|
||||
_twoWordBuiltins[*b] = true;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user