Loading

Paste #ph2aipmxi

  1. Index: src/script/api/script_text.cpp
  2. ===================================================================
  3. --- src/script/api/script_text.cpp      (revision 26763)
  4. +++ src/script/api/script_text.cpp      (working copy)
  5. @@ -12,8 +12,10 @@
  6.  #include "../../stdafx.h"
  7.  #include "../../string_func.h"
  8.  #include "../../strings_func.h"
  9. +#include "script_log.hpp"
  10.  #include "script_text.hpp"
  11.  #include "../../table/control_codes.h"
  12. +#include "../../game/game_text.hpp"
  13.  
  14.  #include "table/strings.h"
  15.  
  16. @@ -184,7 +186,21 @@
  17.         static char buf[1024];
  18.         int param_count = 0;
  19.         this->_GetEncodedText(buf, lastof(buf), param_count);
  20. -       return (param_count > SCRIPT_TEXT_MAX_PARAMETERS) ? NULL : buf;
  21. +
  22. +       if (param_count > SCRIPT_TEXT_MAX_PARAMETERS) {
  23. +               const char *string_name = "unknown";
  24. +
  25. +               extern GameStrings *_current_data;
  26. +               if (_current_data != NULL && this->string < _current_data->string_names.Length()) {
  27. +                       string_name = _current_data->string_names[this->string];
  28. +               }
  29. +
  30. +               char log_message[1024];
  31. +               seprintf(log_message, lastof(log_message), "String '%s' uses too many (%u) parameters", string_name, param_count);
  32. +               ScriptLog::Error(log_message);
  33. +               return NULL;
  34. +       }
  35. +       return buf;
  36.  }
  37.  
  38.  char *ScriptText::_GetEncodedText(char *p, char *lastofp, int &param_count)
  39. @@ -199,6 +215,7 @@
  40.                 }
  41.                 if (this->paramt[i] != NULL) {
  42.                         p += seprintf(p, lastofp, ":");
  43. +                       param_count++;
  44.                         p = this->paramt[i]->_GetEncodedText(p, lastofp, param_count);
  45.                         continue;
  46.                 }

Comments