custom.c

来自「ANFY特效」· C语言 代码 · 共 655 行 · 第 1/2 页

C
655
字号
    { "VarStart", "variationstart" },    { "VarMove", "variationmove" },    { "Precision", "precision" },    { "WRadiuos", "radius" },    { "Filter", "filter" },    { "Font", "font" },    { "BackType", "background" },    { "Mode", "mode" },    { "Flat", "flat" },    { "MouseSens", "mouseSens" },    { "YRotation", "YRotation" },    { "OffsetStep", "offsetStep" },    { "StatusbarY", "statusbar_y" },    { "TextureFile", "texture" },    { "ExtrudeDiff", "extrudediff" },    { "TextDiff", "textdiff" },    { "BackColor", "bgcolor" },    { "WheelColor", "wheelcolor" },    { "TextColor", "textcolor" },    { "SelColor", "selectcolor" },    { "MenuFx", "menu_fx" },    { "Align", "textalign" },    { "BackFx", "back_fx" },    { "MenuY", "menu_y" },    { "SeedCol", "mmgalaxy_scol" },    { "BackClr", "mmgalaxy_clr" },    { "BackClrChk", "mmgalaxy_bcol" },    { "SmoothFilter", "mmgalaxy_filter" },    { "FireR", "mmgalaxy_r" },    { "FireG", "mmgalaxy_g" },    { "FireB", "mmgalaxy_b" },    { "Shape", "mmgalaxy_fx" },    { "InGoing", "scrollSpeedInGoing" },    { "OutGoing", "scrollSpeedOutGoing" },    { "InBounc", "numberOfBouncesInGoing" },    { "OutBounc", "numberOfBouncesOutGoing" },    { "BGravity", "bounceGravity" },    { "BAplitude", "bounceAmplitude" },    { "SelBackColor", "backgroundColorSelection" },    { "ScrollColor", "systemColor" },    { "FilterColor", "filterColor" },    { "AutoHigh", "autoHighLight" },    { "ScrollBar", "scrollBarStyle" },    { "Border", "borderStyle" },    { "Icon_", "Icon" },  //  { INI_CONFIG_ "Config_", "" },    { "HalfReflect", "halfreflect" },    { "Interval", "interval" },    { "Fadespeed", "fadespeed" },    { "ProgrFade", "progressivefade" },    { "JPGQuality", "jpgquality" },    { "SaveButton", "savebutton" },    { "SendToMail", "sendtomail" },    { "PenColor", "pencolor" },    { "StartMessage", "startmsg" },    { "TextType", "texttype" },    { "WaveMode", "wavemode" },    { "WaveSpeed", "wavespeed" },    { "WaveType", "wavetype" },    { "ReverseFx", "reversefx" },    { "MirrorMode", "mirrormode" },    { "MirrorHeigth", "mirrorheight" },    { "FontIndex", "fontindex" },    { "F1NumFar", "flakes1" },    { "F2NumMidle", "flakes2" },    { "F3NumNear", "flakes3" },    { "F4NumForground", "flakes4" },    { "WindMaxSpeed", "windmax" },    { "WindVar", "windvariation" },    { "SnowSpeed", "speed" },    { "SnowOver", "overtext" },    { "AudioFile", "boomsound" },    { "FwMax", "maxfireworks" },    { "FwPower", "fireworkspower" },    { "FwDensity", "fireworksdensity" },    { "FwTimeDuration", "fireworksduration" },    { "Gravity", "gravity" },    { "ShowOverText", "overtext" },    { "FloatMode", "floatmode" },    { "FloatInFront", "floatinfront" },    { "FloatTitle", "floatitle" },    { "FloatX", "floatx" },    { "FloatY", "floaty" },    { "CharSet", "charset" },    { NULL, NULL }  };char* convert_old_var (char* old){  static char param[32];  char *ptr, tmp[8];  int i;   for (i = 0; conv_table[i][0] != NULL; i++)    if (strcmp (conv_table[i][0], old) == 0)      return conv_table[i][1];  ptr = &old[strlen(old)-1];  while (*ptr <= '9' && *ptr >= '0')    ptr--;  ptr++;  strcpy (tmp, ptr);  *ptr = 0;  printf ("%s - %s\n", old, tmp);  for (i = 0; conv_table[i][0] != NULL; i++)    if (strcmp (conv_table[i][0], old) == 0)    {      sprintf (param, "%s%s", conv_table[i][1], tmp);      return param;    }  return old;}char* strupr (char* str);char* convert_new_var (char* np){  static char param[32];  char *ptr, tmp[8], new[256], t2[64];  int i;   strcpy (new, np);  strupr (new);  for (i = 0; conv_table[i][1] != NULL; i++)  {    strcpy (t2, conv_table[i][1]);    strupr (t2);    if (strcmp (t2, new) == 0)      return conv_table[i][0];  }  ptr = &new[strlen(new)-1];  while (*ptr <= '9' && *ptr >= '0')    ptr--;  ptr++;  strcpy (tmp, ptr);  *ptr = 0;  //  printf ("%s - %s\n", old, tmp);  for (i = 0; conv_table[i][0] != NULL; i++)  {    strcpy (t2, conv_table[i][1]);    strupr (t2);    if (strcmp (t2, new) == 0)    {      sprintf (param, "%s%s", conv_table[i][0], tmp);      return param;    }  }  return np;}char* get_rc_path (){  char *filename, *home;  int l;  home = g_get_home_dir ();  l = strlen (home);  filename = g_malloc (l + 15);  strcpy (filename, home);  if (filename[l-1] != '/')    strcat (filename, "/");  strcat (filename, ".anfyrc");  return filename;}int init_rc (){  char* path;  FILE *f;  int l;  void* buf;  path = get_rc_path ();  f = fopen (path, "rt");  if (f == NULL)  {    f = fopen ("/usr/local/share/anfy/anfyrc", "rb");    if (f == NULL)    {      g_free (path);      return 0;    }    fseek (f, 0, SEEK_END);    l = ftell (f);    rewind (f);    buf = g_malloc (l);    fread (buf, 1, l, f);    fclose (f);    f = fopen (path, "wb");    fwrite (buf, 1, l, f);    fclose (f);    g_free (buf);  }  else    fclose (f);  g_free (path);  return 1;}int GetSavedVar (char* section, char* key, char* value){  char buf[256], *ptr;  FILE* rc;  ptr = get_rc_path ();  rc = fopen (ptr, "rt");  g_free (ptr);  strcpy (value, "");  while (fgets (buf, 256, rc) != 0)  {    if (buf[0] != '[')      continue;    ptr = strchr (buf, ']');    *ptr = '\0';    if (strcmp (&buf[1], section) == 0)    {      while (fgets (buf, 256, rc) != 0)      {	ptr = strchr (buf, '=');	if (ptr == NULL)	  break;	*ptr = '\0';	if (strcmp (buf, key) == 0)	{	  strcpy (value, ptr+2);	  ptr = strrchr (value, '\"');	  *ptr = '\0';	  break;	}      }      break;    }  }  fclose (rc);  return strlen (value);}void SaveVar (char* section, char* key, char* value){  char buf[256], *ptr, *tmp;  FILE *old_rc, *new_rc;  ptr = get_rc_path ();  tmp = g_strdup (ptr);  strcat (ptr, ".bak");  remove (ptr);  rename (tmp, ptr);  old_rc = fopen (ptr, "rt");  new_rc = fopen (tmp, "wt");  g_free (ptr);  g_free (tmp);  while (fgets (buf, 256, old_rc) != 0)  {    fputs (buf, new_rc);    if (buf[0] != '[')      continue;    ptr = strchr (buf, ']');    *ptr = '\0';    if (strcmp (&buf[1], section) != 0)      continue;    sprintf (buf, "%s=\"%s\"\n", key, value);    fputs (buf, new_rc);    while (fgets (buf, 256, old_rc) != 0)    {      ptr = strchr (buf, '=');      if (ptr != NULL)      {	*ptr = '\0';	if (strcmp (buf, key) == 0)	  break;	*ptr = '=';	fputs (buf, new_rc);      }      else	fputs (buf, new_rc);    }  }  while (fgets (buf, 256, old_rc) != 0)    fputs (buf, new_rc);  fclose (old_rc);  fclose (new_rc);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?