diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2015-09-30 16:21:41 +0200 | 
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2015-09-30 16:22:00 +0200 | 
| commit | ac4dc94acc5d1e1d8fd4867730b835e2aa1fcc89 (patch) | |
| tree | 8ca3dc84958e572e3f890ac3f56dfda670c63f60 /clientfiles/very-important-source-code/important-stuff/game_data.c | |
| parent | 03a164ed74d616e8d5203142ec7e9738c8aae547 (diff) | |
| parent | eb7703b4ecea5540a4c4a65faa1ff4c53fe97631 (diff) | |
Merge branch 'unstable' into trackhat-ui
Sponsored-by: TrackHat
* unstable: (112 commits)
  Revert "accela: try more complex deadzone algorithm"
  pt: add wiki link for calibration instructions
  qfc: more gray colors when graph is disabled
  qfc, mapping: disallow editing and change color when checkbox disabled
  qfc: don't allow editing when disabled
  plugin-support: workaround multiple copies of modules
  accela: change translation gain
  accela: change rotation gain
  pt: change extraction code
  freepie-udp: add license
  freepie-udp: update
  accela: try more complex deadzone algorithm
  accela: add helpful comment
  accela: revert to more quadratic spline at start
  also save if save pending when start tracking
  ui: force saving if saving timer is pending
  accela: slightly more linear function
  pose-widget: simplify
  freepie-udp: nix harmless warning
  pose-widget: add comment
  simple-mat: add __restrict for GNU
  ui: save settings on a timer
  ui: show a warning if configuration directory can't be used
  aruco: tune min/max marker size
  win32-joystick: fix duplicate device name selection logic
  ui: no need to reset settings on tracking start
  ui: save profile when combobox text changes, not merely index
  ui: save current tracker/filter/proto, not last
  win32-joystick: fix COM failure path
  win32-joystick: nix unused variable
  win32-joystick: allow for unique selection of joysticks
  qfc: also draw line from function start while moving
  no need to save on tracking start anymore
  save axis opts, not just spline control points
  tracker: change centering order again
  fix typo
  cmake: don't say "opentrack" twice for osx build
  ui: really don't switch profiles while refreshing combobox
  pt: fix type mismatch
  ui: save prior to switching configs
  tracker_rs: adjusted tracker's name
  ui: don't reload settings if config wasn't changed
  ui: save everything before switching profiles
  options: return .ini basename easier
  tracker_rs: more readable icon
  tracker_rs: prevent potential thread starvation
  ui: switch to newly-created config
  ui: decruft
  ui: also bail on new config if its name is ".ini"
  ui: auto-refresh config list
  ui: display up to 20 profiles w/o scrolling
  ui: create an empty config properly in another code branch
  udp-tracker: silence harmless warning
  plugin-support: fix typo
  plugin-support: set more sane RTLD flags
  plugin-support: free modules from address space when needed
  ui: rename symbol to reflect current usage
  ui: move some slots to private
  ui, shortcuts: these are slots, actually
  ui: no need to write anything to new empty config
  ui: avoid potential memory leak
  ft: new game support
  game-data: chomp newlines in extractor
  ui: append extension in the right place
  simple-mat: fix arglist SFINAE
  simple-mat: can use static_cast here
  nix default empty config. it gets created on its own.
  ui: these aren't qt slots
  ui: nix wrong headers
  ui: remove GNU GPL
  ui: simplify condition
  props changed only
  main, ui: store config files in a predefined directory
  pt: show extracted points' areas and success count
  close dialogs on switch to new module
  ...
Diffstat (limited to 'clientfiles/very-important-source-code/important-stuff/game_data.c')
| -rw-r--r-- | clientfiles/very-important-source-code/important-stuff/game_data.c | 34 | 
1 files changed, 25 insertions, 9 deletions
| diff --git a/clientfiles/very-important-source-code/important-stuff/game_data.c b/clientfiles/very-important-source-code/important-stuff/game_data.c index f80a7d44..48774187 100644 --- a/clientfiles/very-important-source-code/important-stuff/game_data.c +++ b/clientfiles/very-important-source-code/important-stuff/game_data.c @@ -114,6 +114,20 @@ static void game_data_close()  #define ltr_int_log_message(...) fprintf(stderr, __VA_ARGS__) +static void remove_newlines(const char* str, char* out, int out_len) +{ +    int i, j; +    int len = strlen(str); +    for (i = 0, j = 0; str[i] && j + 1 < out_len; i++) +    { +        if (str[i] == '\r' || str[i] == '\n') +            continue; +        out[j++] = str[i]; +    } +    if (j < out_len) +        out[j] = '\0'; +} +  bool get_game_data(const char *input_fname, const char *output_fname, bool from_update)  {    FILE *outfile = NULL; @@ -129,19 +143,21 @@ bool get_game_data(const char *input_fname, const char *output_fname, bool from_    mxml_node_t *game;    const char *name;    const char *id; -  for(game = mxmlFindElement(tree, tree, "Game", NULL, NULL, MXML_DESCEND);  +  for(game = mxmlFindElement(tree, tree, "Game", NULL, NULL, MXML_DESCEND);        game != NULL; -      game =  mxmlFindElement(game, tree, "Game", NULL, NULL, MXML_DESCEND)){ +      game =  mxmlFindElement(game, tree, "Game", NULL, NULL, MXML_DESCEND)) +  {      name = mxmlElementGetAttr(game, "Name");      id = mxmlElementGetAttr(game, "Id"); -       +      mxml_node_t *appid = mxmlFindElement(game, game, "ApplicationID", NULL, NULL, MXML_DESCEND); -    if(appid == NULL){ -      fprintf(outfile, "%s \"%s\"\n", id, name); -    }else{ -      fprintf(outfile, "%s \"%s\" (%s)\n", id, name, appid->child->value.text.string); -    } -  }   +    char name_[256]; +    remove_newlines(name, name_, sizeof(name_)); +    if(appid == NULL) +      fprintf(outfile, "%s \"%s\"\n", id, name_); +    else +      fprintf(outfile, "%s \"%s\" (%s)\n", id, name_, appid->child->value.text.string); +  }    fclose(outfile);    game_data_close();    return true; | 
