diff options
Diffstat (limited to 'linden/indra/lscript')
4 files changed, 52 insertions, 8 deletions
diff --git a/linden/indra/lscript/lscript_compile/indra.l b/linden/indra/lscript/lscript_compile/indra.l index ac52432..584087e 100644 --- a/linden/indra/lscript/lscript_compile/indra.l +++ b/linden/indra/lscript/lscript_compile/indra.l | |||
@@ -150,6 +150,7 @@ extern "C" { int yyerror(const char *fmt, ...); } | |||
150 | "AGENT_CROUCHING" { count(); yylval.ival = AGENT_CROUCHING; return(INTEGER_CONSTANT); } | 150 | "AGENT_CROUCHING" { count(); yylval.ival = AGENT_CROUCHING; return(INTEGER_CONSTANT); } |
151 | "AGENT_BUSY" { count(); yylval.ival = AGENT_BUSY; return(INTEGER_CONSTANT); } | 151 | "AGENT_BUSY" { count(); yylval.ival = AGENT_BUSY; return(INTEGER_CONSTANT); } |
152 | "AGENT_ALWAYS_RUN" { count(); yylval.ival = AGENT_ALWAYS_RUN; return(INTEGER_CONSTANT); } | 152 | "AGENT_ALWAYS_RUN" { count(); yylval.ival = AGENT_ALWAYS_RUN; return(INTEGER_CONSTANT); } |
153 | "AGENT_AUTOPILOT" { count(); yylval.ival = AGENT_AUTOPILOT; return(INTEGER_CONSTANT); } | ||
153 | 154 | ||
154 | "CAMERA_PITCH" { count(); yylval.ival = FOLLOWCAM_PITCH; return(INTEGER_CONSTANT); } | 155 | "CAMERA_PITCH" { count(); yylval.ival = FOLLOWCAM_PITCH; return(INTEGER_CONSTANT); } |
155 | "CAMERA_FOCUS_OFFSET" { count(); yylval.ival = FOLLOWCAM_FOCUS_OFFSET; return (INTEGER_CONSTANT); } | 156 | "CAMERA_FOCUS_OFFSET" { count(); yylval.ival = FOLLOWCAM_FOCUS_OFFSET; return (INTEGER_CONSTANT); } |
@@ -232,7 +233,8 @@ extern "C" { int yyerror(const char *fmt, ...); } | |||
232 | "CHANGED_OWNER" { count(); yylval.ival = CHANGED_OWNER; return(INTEGER_CONSTANT); } | 233 | "CHANGED_OWNER" { count(); yylval.ival = CHANGED_OWNER; return(INTEGER_CONSTANT); } |
233 | "CHANGED_REGION" { count(); yylval.ival = CHANGED_REGION; return(INTEGER_CONSTANT); } | 234 | "CHANGED_REGION" { count(); yylval.ival = CHANGED_REGION; return(INTEGER_CONSTANT); } |
234 | "CHANGED_TELEPORT" { count(); yylval.ival = CHANGED_TELEPORT; return(INTEGER_CONSTANT); } | 235 | "CHANGED_TELEPORT" { count(); yylval.ival = CHANGED_TELEPORT; return(INTEGER_CONSTANT); } |
235 | "CHANGED_REGION_START" { count(); yylval.ival = CHANGED_REGION_START; return(INTEGER_CONSTANT); } | 236 | "CHANGED_REGION_START" { count(); yylval.ival = CHANGED_REGION_START; return(INTEGER_CONSTANT); } |
237 | "CHANGED_MEDIA" { count(); yylval.ival = CHANGED_MEDIA; return(INTEGER_CONSTANT); } | ||
236 | 238 | ||
237 | "OBJECT_UNKNOWN_DETAIL" { count(); yylval.ival = OBJECT_UNKNOWN_DETAIL; return(INTEGER_CONSTANT); } | 239 | "OBJECT_UNKNOWN_DETAIL" { count(); yylval.ival = OBJECT_UNKNOWN_DETAIL; return(INTEGER_CONSTANT); } |
238 | "OBJECT_NAME" { count(); yylval.ival = OBJECT_NAME; return(INTEGER_CONSTANT); } | 240 | "OBJECT_NAME" { count(); yylval.ival = OBJECT_NAME; return(INTEGER_CONSTANT); } |
@@ -452,6 +454,9 @@ extern "C" { int yyerror(const char *fmt, ...); } | |||
452 | "PRIM_FULLBRIGHT" { count(); yylval.ival = LSL_PRIM_FULLBRIGHT; return(INTEGER_CONSTANT); } | 454 | "PRIM_FULLBRIGHT" { count(); yylval.ival = LSL_PRIM_FULLBRIGHT; return(INTEGER_CONSTANT); } |
453 | "PRIM_TEXGEN" { count(); yylval.ival = LSL_PRIM_TEXGEN; return(INTEGER_CONSTANT); } | 455 | "PRIM_TEXGEN" { count(); yylval.ival = LSL_PRIM_TEXGEN; return(INTEGER_CONSTANT); } |
454 | "PRIM_GLOW" { count(); yylval.ival = LSL_PRIM_GLOW; return(INTEGER_CONSTANT); } | 456 | "PRIM_GLOW" { count(); yylval.ival = LSL_PRIM_GLOW; return(INTEGER_CONSTANT); } |
457 | "PRIM_TEXT" { count(); yylval.ival = LSL_PRIM_TEXT; return(INTEGER_CONSTANT); } | ||
458 | "PRIM_NAME" { count(); yylval.ival = LSL_PRIM_NAME; return(INTEGER_CONSTANT); } | ||
459 | "PRIM_DESC" { count(); yylval.ival = LSL_PRIM_DESC; return(INTEGER_CONSTANT); } | ||
455 | 460 | ||
456 | "PRIM_TYPE_BOX" { count(); yylval.ival = LSL_PRIM_TYPE_BOX; return(INTEGER_CONSTANT); } | 461 | "PRIM_TYPE_BOX" { count(); yylval.ival = LSL_PRIM_TYPE_BOX; return(INTEGER_CONSTANT); } |
457 | "PRIM_TYPE_CYLINDER" { count(); yylval.ival = LSL_PRIM_TYPE_CYLINDER; return(INTEGER_CONSTANT); } | 462 | "PRIM_TYPE_CYLINDER" { count(); yylval.ival = LSL_PRIM_TYPE_CYLINDER; return(INTEGER_CONSTANT); } |
@@ -610,6 +615,7 @@ extern "C" { int yyerror(const char *fmt, ...); } | |||
610 | "CLICK_ACTION_OPEN" { count(); yylval.ival = CLICK_ACTION_OPEN; return(INTEGER_CONSTANT); } | 615 | "CLICK_ACTION_OPEN" { count(); yylval.ival = CLICK_ACTION_OPEN; return(INTEGER_CONSTANT); } |
611 | "CLICK_ACTION_PLAY" { count(); yylval.ival = CLICK_ACTION_PLAY; return(INTEGER_CONSTANT); } | 616 | "CLICK_ACTION_PLAY" { count(); yylval.ival = CLICK_ACTION_PLAY; return(INTEGER_CONSTANT); } |
612 | "CLICK_ACTION_OPEN_MEDIA" { count(); yylval.ival = CLICK_ACTION_OPEN_MEDIA; return(INTEGER_CONSTANT); } | 617 | "CLICK_ACTION_OPEN_MEDIA" { count(); yylval.ival = CLICK_ACTION_OPEN_MEDIA; return(INTEGER_CONSTANT); } |
618 | "CLICK_ACTION_ZOOM" { count(); yylval.ival = CLICK_ACTION_ZOOM; return(INTEGER_CONSTANT); } | ||
613 | 619 | ||
614 | "TEXTURE_BLANK" { yylval.sval = new char[UUID_STR_LENGTH]; strcpy(yylval.sval, "5748decc-f629-461c-9a36-a35a221fe21f"); return(STRING_CONSTANT); } | 620 | "TEXTURE_BLANK" { yylval.sval = new char[UUID_STR_LENGTH]; strcpy(yylval.sval, "5748decc-f629-461c-9a36-a35a221fe21f"); return(STRING_CONSTANT); } |
615 | "TEXTURE_DEFAULT" { yylval.sval = new char[UUID_STR_LENGTH]; strcpy(yylval.sval, "89556747-24cb-43ed-920b-47caed15465f"); return(STRING_CONSTANT); } | 621 | "TEXTURE_DEFAULT" { yylval.sval = new char[UUID_STR_LENGTH]; strcpy(yylval.sval, "89556747-24cb-43ed-920b-47caed15465f"); return(STRING_CONSTANT); } |
@@ -621,6 +627,45 @@ extern "C" { int yyerror(const char *fmt, ...); } | |||
621 | "TOUCH_INVALID_VECTOR" { count(); return(TOUCH_INVALID_VECTOR); } | 627 | "TOUCH_INVALID_VECTOR" { count(); return(TOUCH_INVALID_VECTOR); } |
622 | "TOUCH_INVALID_TEXCOORD" { count(); return(TOUCH_INVALID_TEXCOORD); } | 628 | "TOUCH_INVALID_TEXCOORD" { count(); return(TOUCH_INVALID_TEXCOORD); } |
623 | 629 | ||
630 | "PRIM_MEDIA_ALT_IMAGE_ENABLE" { count(); yylval.ival = 0; return(INTEGER_CONSTANT); } | ||
631 | "PRIM_MEDIA_CONTROLS" { count(); yylval.ival = 1; return(INTEGER_CONSTANT); } | ||
632 | "PRIM_MEDIA_CURRENT_URL" { count(); yylval.ival = 2; return(INTEGER_CONSTANT); } | ||
633 | "PRIM_MEDIA_HOME_URL" { count(); yylval.ival = 3; return(INTEGER_CONSTANT); } | ||
634 | "PRIM_MEDIA_AUTO_LOOP" { count(); yylval.ival = 4; return(INTEGER_CONSTANT); } | ||
635 | "PRIM_MEDIA_AUTO_PLAY" { count(); yylval.ival = 5; return(INTEGER_CONSTANT); } | ||
636 | "PRIM_MEDIA_AUTO_SCALE" { count(); yylval.ival = 6; return(INTEGER_CONSTANT); } | ||
637 | "PRIM_MEDIA_AUTO_ZOOM" { count(); yylval.ival = 7; return(INTEGER_CONSTANT); } | ||
638 | "PRIM_MEDIA_FIRST_CLICK_INTERACT" { count(); yylval.ival = 8; return(INTEGER_CONSTANT); } | ||
639 | "PRIM_MEDIA_WIDTH_PIXELS" { count(); yylval.ival = 9; return(INTEGER_CONSTANT); } | ||
640 | "PRIM_MEDIA_HEIGHT_PIXELS" { count(); yylval.ival = 10; return(INTEGER_CONSTANT); } | ||
641 | "PRIM_MEDIA_WHITELIST_ENABLE" { count(); yylval.ival = 11; return(INTEGER_CONSTANT); } | ||
642 | "PRIM_MEDIA_WHITELIST" { count(); yylval.ival = 12; return(INTEGER_CONSTANT); } | ||
643 | "PRIM_MEDIA_PERMS_INTERACT" { count(); yylval.ival = 13; return(INTEGER_CONSTANT); } | ||
644 | "PRIM_MEDIA_PERMS_CONTROL" { count(); yylval.ival = 14; return(INTEGER_CONSTANT); } | ||
645 | "PRIM_MEDIA_PARAM_MAX" { count(); yylval.ival = 14; return(INTEGER_CONSTANT); } | ||
646 | |||
647 | "PRIM_MEDIA_CONTROLS_STANDARD" { count(); yylval.ival = 0; return(INTEGER_CONSTANT); } | ||
648 | "PRIM_MEDIA_CONTROLS_MINI" { count(); yylval.ival = 1; return(INTEGER_CONSTANT); } | ||
649 | |||
650 | "PRIM_MEDIA_PERM_NONE" { count(); yylval.ival = 0x0; return(INTEGER_CONSTANT); } | ||
651 | "PRIM_MEDIA_PERM_OWNER" { count(); yylval.ival = 0x1; return(INTEGER_CONSTANT); } | ||
652 | "PRIM_MEDIA_PERM_GROUP" { count(); yylval.ival = 0x3; return(INTEGER_CONSTANT); } | ||
653 | "PRIM_MEDIA_PERM_ANYONE" { count(); yylval.ival = 0x4; return(INTEGER_CONSTANT); } | ||
654 | |||
655 | "PRIM_MEDIA_MAX_URL_LENGTH" { count(); yylval.ival = 1024; return(INTEGER_CONSTANT); } | ||
656 | "PRIM_MEDIA_MAX_WHITELIST_SIZE" { count(); yylval.ival = 1024; return(INTEGER_CONSTANT); } | ||
657 | "PRIM_MEDIA_MAX_WHITELIST_COUNT" { count(); yylval.ival = 64; return(INTEGER_CONSTANT); } | ||
658 | "PRIM_MEDIA_MAX_WIDTH_PIXELS" { count(); yylval.ival = 2048; return(INTEGER_CONSTANT); } | ||
659 | "PRIM_MEDIA_MAX_HEIGHT_PIXELS" { count(); yylval.ival = 2048; return(INTEGER_CONSTANT); } | ||
660 | |||
661 | "STATUS_OK" { count(); yylval.ival = LSL_STATUS_OK; return(INTEGER_CONSTANT); } | ||
662 | "STATUS_MALFORMED_PARAMS" { count(); yylval.ival = LSL_STATUS_MALFORMED_PARAMS; return(INTEGER_CONSTANT); } | ||
663 | "STATUS_TYPE_MISMATCH" { count(); yylval.ival = LSL_STATUS_TYPE_MISMATCH; return(INTEGER_CONSTANT); } | ||
664 | "STATUS_BOUNDS_ERROR" { count(); yylval.ival = LSL_STATUS_BOUNDS_ERROR; return(INTEGER_CONSTANT); } | ||
665 | "STATUS_NOT_FOUND" { count(); yylval.ival = LSL_STATUS_NOT_FOUND; return(INTEGER_CONSTANT); } | ||
666 | "STATUS_NOT_SUPPORTED" { count(); yylval.ival = LSL_STATUS_NOT_SUPPORTED; return(INTEGER_CONSTANT); } | ||
667 | "STATUS_INTERNAL_ERROR" { count(); yylval.ival = LSL_STATUS_INTERNAL_ERROR; return(INTEGER_CONSTANT); } | ||
668 | "STATUS_WHITELIST_FAILED" { count(); yylval.ival = LSL_STATUS_WHITELIST_FAILED; return(INTEGER_CONSTANT); } | ||
624 | 669 | ||
625 | {L}({L}|{N})* { count(); yylval.sval = new char[strlen(yytext) + 1]; strcpy(yylval.sval, yytext); return(IDENTIFIER); } | 670 | {L}({L}|{N})* { count(); yylval.sval = new char[strlen(yytext) + 1]; strcpy(yylval.sval, yytext); return(IDENTIFIER); } |
626 | 671 | ||
diff --git a/linden/indra/lscript/lscript_compile/lscript_bytecode.cpp b/linden/indra/lscript/lscript_compile/lscript_bytecode.cpp index 9cd7d48..0e46064 100644 --- a/linden/indra/lscript/lscript_compile/lscript_bytecode.cpp +++ b/linden/indra/lscript/lscript_compile/lscript_bytecode.cpp | |||
@@ -312,7 +312,7 @@ void LLScriptScriptCodeChunk::build(LLFILE *efp, LLFILE *bcfp) | |||
312 | set_register(mCompleteCode, LREG_TM, mTotalSize); | 312 | set_register(mCompleteCode, LREG_TM, mTotalSize); |
313 | 313 | ||
314 | 314 | ||
315 | if (fwrite(mCompleteCode, 1, mTotalSize, bcfp) != mTotalSize) | 315 | if (fwrite(mCompleteCode, 1, mTotalSize, bcfp) != (size_t)mTotalSize) |
316 | { | 316 | { |
317 | llwarns << "Short write" << llendl; | 317 | llwarns << "Short write" << llendl; |
318 | } | 318 | } |
diff --git a/linden/indra/lscript/lscript_compile/lscript_tree.cpp b/linden/indra/lscript/lscript_compile/lscript_tree.cpp index e291d4c..984e7b0 100644 --- a/linden/indra/lscript/lscript_compile/lscript_tree.cpp +++ b/linden/indra/lscript/lscript_compile/lscript_tree.cpp | |||
@@ -631,9 +631,7 @@ static void print_cil_cast(LLFILE* fp, LSCRIPTType srcType, LSCRIPTType targetTy | |||
631 | switch(targetType) | 631 | switch(targetType) |
632 | { | 632 | { |
633 | case LST_INTEGER: | 633 | case LST_INTEGER: |
634 | //fprintf(fp, "call int32 [LslLibrary]LindenLab.SecondLife.LslRunTime::ToInteger(float32)\n"); | 634 | fprintf(fp, "call int32 [LslLibrary]LindenLab.SecondLife.LslRunTime::ToInteger(float32)\n"); |
635 | fprintf(fp, "conv.i4\n"); // TODO replace this line with the above | ||
636 | // we the entire grid is > 1.25.1 | ||
637 | break; | 635 | break; |
638 | case LST_STRING: | 636 | case LST_STRING: |
639 | fprintf(fp, "call string [LslLibrary]LindenLab.SecondLife.LslRunTime::ToString(float32)\n"); | 637 | fprintf(fp, "call string [LslLibrary]LindenLab.SecondLife.LslRunTime::ToString(float32)\n"); |
diff --git a/linden/indra/lscript/lscript_library/lscript_library.cpp b/linden/indra/lscript/lscript_library/lscript_library.cpp index 40675af..68daa50 100644 --- a/linden/indra/lscript/lscript_library/lscript_library.cpp +++ b/linden/indra/lscript/lscript_library/lscript_library.cpp | |||
@@ -459,13 +459,14 @@ void LLScriptLibrary::init() | |||
459 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetHTTPHeader", "s", "ks", "string llGetHTTPHeader(key id, string header)\nGet the value for header for request id.")); | 459 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetHTTPHeader", "s", "ks", "string llGetHTTPHeader(key id, string header)\nGet the value for header for request id.")); |
460 | 460 | ||
461 | // Prim media functions and those added in SL server 1.38 -- MC | 461 | // Prim media functions and those added in SL server 1.38 -- MC |
462 | addFunction(new LLScriptLibraryFunction(10.f, 1.0f, dummy_func, "llSetPrimMediaParams", "i", "il", "llSetPrimMediaParams(integer face, list params)\nSets the media params for a particular face on an object. If media is not already on this object, add it.\nList is a set of name/value pairs in no particular order. Params not specified are unchanged, or if new media is added then set to the default specified.\nThe possible names are below, along with the types of values and what they mean.")); | 462 | addFunction(new LLScriptLibraryFunction(10.f, 1.0f, dummy_func, "llSetPrimMediaParams", "i", "il", "llSetPrimMediaParams(integer face, list params)\nSets the media params for a particular face on an object. If media is not already on this object, add it.\nList is a set of name/value pairs in no particular order. Params not specified are unchanged, or if new media is added then set to the default specified.")); |
463 | addFunction(new LLScriptLibraryFunction(10.f, 1.0f, dummy_func, "llGetPrimMediaParams", "l", "il", "list llGetPrimMediaParams(integer face, list params)\nReturns the media params for a particular face on an object, given the desired list of names, in the order requested.\n(Returns an empty list if no media exists on the face.)")); | 463 | addFunction(new LLScriptLibraryFunction(10.f, 1.0f, dummy_func, "llGetPrimMediaParams", "l", "il", "list llGetPrimMediaParams(integer face, list params)\nReturns the media params for a particular face on an object, given the desired list of names, in the order requested.\nReturns an empty list if no media exists on the face.")); |
464 | addFunction(new LLScriptLibraryFunction(10.f, 1.0f, dummy_func, "llClearPrimMedia", "i", "i", "llClearPrimMedia(integer face)\nClears (deletes) the media and all params from the given face.")); | 464 | addFunction(new LLScriptLibraryFunction(10.f, 1.0f, dummy_func, "llClearPrimMedia", "i", "i", "llClearPrimMedia(integer face)\nClears (deletes) the media and all params from the given face.")); |
465 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llSetLinkPrimitiveParamsFast", NULL, "il", "llSetLinkPrimitiveParamsFast(integer linknumber, list rules);\nIdentical to llSetLinkPrimitiveParams except with no script delay.")); | 465 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llSetLinkPrimitiveParamsFast", NULL, "il", "llSetLinkPrimitiveParamsFast(integer linknumber, list rules);\nIdentical to llSetLinkPrimitiveParams except with no script delay.")); |
466 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetLinkPrimitiveParams", NULL, "il", "list llGetLinkPrimitiveParams(integer link, list params)\nSimilar to llGetPrimitiveParams except works for any prim in the link set and with no script delay.")); | 466 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetLinkPrimitiveParams", NULL, "il", "list llGetLinkPrimitiveParams(integer link, list params)\nSimilar to llGetPrimitiveParams except works for any prim in the link set and with no script delay.")); |
467 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llLinkParticleSystem", NULL, "il", "llLinkParticleSystem(integer link, list params)\nSimilar to llParticleSystem except works for any prim in the link set.")); | 467 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llLinkParticleSystem", NULL, "il", "llLinkParticleSystem(integer link, list params)\nSimilar to llParticleSystem except works for any prim in the link set.")); |
468 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llSetLinkTextureAnim", NULL, "iiiiifff", "llSetLinkTextureAnim(integer link, integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate);\nSimilar to llSetTextureAnim except works for any prim in the link set")); | 468 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llSetLinkTextureAnim", NULL, "iiiiifff", "llSetLinkTextureAnim(integer link, integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate);\nSimilar to llSetTextureAnim() but applies to any prim in the link set.")); |
469 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetLinkNumberOfSides", "i", "i", "integer llGetLinkNumberOfSides(integer link)\nSimilar to llGetNumberOfSides() but applies to any prim in the link set.")); | ||
469 | 470 | ||
470 | // energy, sleep, dummy_func, name, return type, parameters, help text, gods-only | 471 | // energy, sleep, dummy_func, name, return type, parameters, help text, gods-only |
471 | 472 | ||