Advertisement
TheRouletteBoi

ScaleForm Calling

Jun 20th, 2016
563
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.27 KB | None | 0 0
  1. ScriptHook DotNet
  2.  
  3.     int SFHandle = 0;
  4.     int Scaleform(char *scaleformID)
  5.     {
  6.         SFHandle = REQUEST_SCALEFORM_MOVIE(scaleformID);
  7.     }
  8.     void SFDispose()
  9.     {
  10.         if (HAS_SCALEFORM_MOVIE_LOADED(SFHandle))
  11.         {
  12.             SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(&SFHandle);
  13.         }
  14.     }
  15.     template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8> //class T, /class T1,
  16.     void SFCallFunction(char *function, T P0, T1 P1, T2 P2, T3 P3, T4 P4, T5 P5, T6 P6, T7 p7, T8 P8)
  17.     {
  18.         _PUSH_SCALEFORM_MOVIE_FUNCTION(Handle, function);
  19.         for (int i = 0; i < 9; i++)
  20.         {
  21.             switch (i)
  22.             {
  23.             case 0:
  24.                 if (typeid(T) == typeid(int))
  25.                 {
  26.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT((int)P0);
  27.                 }
  28.                 else if (typeid(T) == typeid(char))
  29.                 {
  30.                 }
  31.                 else if (typeid(T) == typeid(char*))
  32.                 {
  33.                     _BEGIN_TEXT_COMPONENT("STRING");
  34.                     ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME((char *)P0);
  35.                     _END_TEXT_COMPONENT();
  36.                 }
  37.                 else if (typeid(T) == typeid(float))
  38.                 {
  39.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)P0);
  40.                 }
  41.                 else if (typeid(T) == typeid(double))
  42.                 {
  43.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)(double)P0);
  44.                 }
  45.                 else if (typeid(T) == typeid(bool))
  46.                 {
  47.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL((bool)P0);
  48.                 }
  49.                 break;
  50.             case 1:
  51.                 if (typeid(T1) == typeid(int))
  52.                 {
  53.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT((int)P1);
  54.                 }
  55.                 else if (typeid(T1) == typeid(char))
  56.                 {
  57.                 }
  58.                 else if (typeid(T1) == typeid(char*))
  59.                 {
  60.                     _BEGIN_TEXT_COMPONENT("STRING");
  61.                     ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME((char *)P1);
  62.                     _END_TEXT_COMPONENT();
  63.                 }
  64.                 else if (typeid(T1) == typeid(float))
  65.                 {
  66.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)P1);
  67.                 }
  68.                 else if (typeid(T1) == typeid(double))
  69.                 {
  70.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)(double)P1);
  71.                 }
  72.                 else if (typeid(T1) == typeid(bool))
  73.                 {
  74.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL((bool)P1);
  75.                 }
  76.                 break;
  77.             case 2:
  78.                 if (typeid(T2) == typeid(int))
  79.                 {
  80.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT((int)P2);
  81.                 }
  82.                 else if (typeid(T2) == typeid(char))
  83.                 {
  84.                 }
  85.                 else if (typeid(T2) == typeid(char*))
  86.                 {
  87.                     _BEGIN_TEXT_COMPONENT("STRING");
  88.                     ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME((char *)P2);
  89.                     _END_TEXT_COMPONENT();
  90.                 }
  91.                 else if (typeid(T2) == typeid(float))
  92.                 {
  93.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)P2);
  94.                 }
  95.                 else if (typeid(T2) == typeid(double))
  96.                 {
  97.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)(double)P2);
  98.                 }
  99.                 else if (typeid(T2) == typeid(bool))
  100.                 {
  101.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL((bool)P2);
  102.                 }
  103.                 break;
  104.             case 3:
  105.                 if (typeid(T3) == typeid(int))
  106.                 {
  107.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT((int)P3);
  108.                 }
  109.                 else if (typeid(T3) == typeid(char))
  110.                 {
  111.                 }
  112.                 else if (typeid(T3) == typeid(char*))
  113.                 {
  114.                     _BEGIN_TEXT_COMPONENT("STRING");
  115.                     ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME((char *)P3);
  116.                     _END_TEXT_COMPONENT();
  117.                 }
  118.                 else if (typeid(T3) == typeid(float))
  119.                 {
  120.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)P3);
  121.                 }
  122.                 else if (typeid(T3) == typeid(double))
  123.                 {
  124.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)(double)P3);
  125.                 }
  126.                 else if (typeid(T3) == typeid(bool))
  127.                 {
  128.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL((bool)P3);
  129.                 }
  130.                 break;
  131.             case 4:
  132.                 if (typeid(T4) == typeid(int))
  133.                 {
  134.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT((int)P4);
  135.                 }
  136.                 else if (typeid(T4) == typeid(char))
  137.                 {
  138.                 }
  139.                 else if (typeid(T4) == typeid(char*))
  140.                 {
  141.                     _BEGIN_TEXT_COMPONENT("STRING");
  142.                     ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME((char *)P4);
  143.                     _END_TEXT_COMPONENT();
  144.                 }
  145.                 else if (typeid(T4) == typeid(float))
  146.                 {
  147.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)P4);
  148.                 }
  149.                 else if (typeid(T4) == typeid(double))
  150.                 {
  151.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)(double)P4);
  152.                 }
  153.                 else if (typeid(T4) == typeid(bool))
  154.                 {
  155.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL((bool)P4);
  156.                 }
  157.                 break;
  158.             case 5:
  159.                 if (typeid(T5) == typeid(int))
  160.                 {
  161.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT((int)P5);
  162.                 }
  163.                 else if (typeid(T5) == typeid(char))
  164.                 {
  165.                 }
  166.                 else if (typeid(T5) == typeid(char*))
  167.                 {
  168.                     _BEGIN_TEXT_COMPONENT("STRING");
  169.                     ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME((char *)P5);
  170.                     _END_TEXT_COMPONENT();
  171.                 }
  172.                 else if (typeid(T5) == typeid(float))
  173.                 {
  174.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)P5);
  175.                 }
  176.                 else if (typeid(T5) == typeid(double))
  177.                 {
  178.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)(double)P5);
  179.                 }
  180.                 else if (typeid(T5) == typeid(bool))
  181.                 {
  182.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL((bool)P5);
  183.                 }
  184.                 break;
  185.             case 6:
  186.                 if (typeid(T6) == typeid(int))
  187.                 {
  188.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT((int)P6);
  189.                 }
  190.                 else if (typeid(T6) == typeid(char))
  191.                 {
  192.                 }
  193.                 else if (typeid(T6) == typeid(char*))
  194.                 {
  195.                     _BEGIN_TEXT_COMPONENT("STRING");
  196.                     ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME((char *)P6);
  197.                     _END_TEXT_COMPONENT();
  198.                 }
  199.                 else if (typeid(T6) == typeid(float))
  200.                 {
  201.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)P6);
  202.                 }
  203.                 else if (typeid(T6) == typeid(double))
  204.                 {
  205.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)(double)P6);
  206.                 }
  207.                 else if (typeid(T6) == typeid(bool))
  208.                 {
  209.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL((bool)P6);
  210.                 }
  211.                 break;
  212.             case 7:
  213.                 if (typeid(T7) == typeid(int))
  214.                 {
  215.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT((int)P7);
  216.                 }
  217.                 else if (typeid(T7) == typeid(char))
  218.                 {
  219.                 }
  220.                 else if (typeid(T7) == typeid(char*))
  221.                 {
  222.                     _BEGIN_TEXT_COMPONENT("STRING");
  223.                     ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME((char *)P7);
  224.                     _END_TEXT_COMPONENT();
  225.                 }
  226.                 else if (typeid(T7) == typeid(float))
  227.                 {
  228.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)P7);
  229.                 }
  230.                 else if (typeid(T7) == typeid(double))
  231.                 {
  232.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)(double)P7);
  233.                 }
  234.                 else if (typeid(T7) == typeid(bool))
  235.                 {
  236.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL((bool)P7);
  237.                 }
  238.                 break;
  239.             case 8:
  240.                 if (typeid(T8) == typeid(int))
  241.                 {
  242.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT((int)P8);
  243.                 }
  244.                 else if (typeid(T8) == typeid(char))
  245.                 {
  246.                 }
  247.                 else if (typeid(T8) == typeid(char*))
  248.                 {
  249.                     _BEGIN_TEXT_COMPONENT("STRING");
  250.                     ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME((char *)P8);
  251.                     _END_TEXT_COMPONENT();
  252.                 }
  253.                 else if (typeid(T8) == typeid(float))
  254.                 {
  255.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)P8);
  256.                 }
  257.                 else if (typeid(T8) == typeid(double))
  258.                 {
  259.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT((float)(double)P8);
  260.                 }
  261.                 else if (typeid(T8) == typeid(bool))
  262.                 {
  263.                     _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL((bool)P8);
  264.                 }
  265.                 break;
  266.             default:
  267.                 printf("invalid...\n");
  268.                 break;
  269.             }
  270.  
  271.         }
  272.         return 0;
  273.         _POP_SCALEFORM_MOVIE_FUNCTION_VOID();
  274.     }
  275.  
  276.     void SFRender2D()
  277.     {
  278.         DRAW_SCALEFORM_MOVIE_FULLSCREEN(SFHandle, 255, 255, 255, 255);
  279.     }
  280.     void SFRender2DScreenSpace(PointF location, PointF size)
  281.     {
  282.         static const int _WIDTH = 1280;
  283.         static const int _HEIGHT = 720;
  284.         float X = location.x / _WIDTH;
  285.         float Y = location.y / _HEIGHT;
  286.         float width = size.x / _WIDTH;
  287.         float height = size.y / _HEIGHT;
  288.  
  289.         DRAW_SCALEFORM_MOVIE(SFHandle, X + (width / 2.0f), Y + (height / 2.0f), width, height, 255, 255, 255, 255);
  290.     }
  291.     void SFRender3D(Vector3 position, Vector3 rotation, Vector3 scale)
  292.     {
  293.         _DRAW_SCALEFORM_MOVIE_3D_NON_ADDITIVE(SFHandle, position.x, position.y, position.z, rotation.x, rotation.y, rotation.z, 2.0f, 2.0f, 1.0f, scale.x, scale.y, scale.z, 2);
  294.     }
  295.     void SFRender3DAdditive(Vector3 position, Vector3 rotation, Vector3 scale)
  296.     {
  297.         DRAW_SCALEFORM_MOVIE_3D(SFHandle, position.x, position.y, position.z, rotation.x, rotation.y, rotation.z, 2.0f, 2.0f, 1.0f, scale.x, scale.y, scale.z, 2);
  298.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement