Advertisement
kaZax

[INC] Load Dynamic Object From File

May 6th, 2014
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 1.80 KB | None | 0 0
  1. stock LoadDynamicObjectsFrom(filename[])
  2. {
  3.     new count = GetTickCount();
  4.     new string[512],objectid,Float:pos[6],index,var_from_line[64],loaded;
  5.     new File:example = fopen(filename, io_read);
  6.     if(!example)return printf("Error opening: %s",filename);
  7.     while(fread(example, string) > 0)
  8.     {
  9.         if(IsObjectCode(string))
  10.         {
  11.             if(ClearLine(string))
  12.             {
  13.                 index = 0;
  14.                 index = token_by_delim(string,var_from_line,',',index); objectid = strval(var_from_line);
  15.                 index = token_by_delim(string,var_from_line,',',index+1); pos[0] = floatstr(var_from_line);
  16.                 index = token_by_delim(string,var_from_line,',',index+1); pos[1] = floatstr(var_from_line);
  17.                 index = token_by_delim(string,var_from_line,',',index+1); pos[2] = floatstr(var_from_line);
  18.                 index = token_by_delim(string,var_from_line,',',index+1); pos[3] = floatstr(var_from_line);
  19.                 index = token_by_delim(string,var_from_line,',',index+1); pos[4] = floatstr(var_from_line);
  20.                 index = token_by_delim(string,var_from_line,',',index+1); pos[5] = floatstr(var_from_line);
  21.                 CreateDynamicObject(objectid,pos[0],pos[1],pos[2],pos[3],pos[4],pos[5]);
  22.                 loaded++;
  23.             }
  24.         }
  25.     }
  26.     fclose(example);
  27.     return printf("Loaded %d objects. In %d mc.",loaded,(GetTickCount()-count));
  28. }
  29. stock ClearLine(line[])
  30. {
  31.     strdel(line, 0, 20);
  32.     return 1;
  33. }
  34. forward bool:IsObjectCode(line[]);
  35. stock bool:IsObjectCode(line[])
  36. {
  37.     if(strfind(line, "CreateDynamicObject", false) != -1)return true;
  38.     return false;
  39. }
  40. stock token_by_delim(const string[], return_str[], delim, start_index)
  41. {
  42.     new x=0;
  43.     while(string[start_index] != EOS && string[start_index] != delim) {
  44.         return_str[x] = string[start_index];
  45.         x++;
  46.         start_index++;
  47.     }
  48.     return_str[x] = EOS;
  49.     if(string[start_index] == EOS) start_index = (-1);
  50.     return start_index;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement