_FIXES_ConstMod issue
zsoolt997 opened this issue · 1 comments
zsoolt997 commented
Problem
Using either TextDrawSetString
or PlayerTextDrawSetString
adds a random character to end of the string which was passed through the function. Or just creating a textdraw.
MCVE
With TextDrawCreate
:
#include <a_samp>
#include <fixes>
static Text:gs_TestTexdtraw;
main() {
new textdrawText[] = "Some text";
printf("%s", textdrawText);
gs_TestTexdtraw = TextDrawCreate(582.588073, 426.999969, textdrawText);
TextDrawLetterSize(gs_TestTexdtraw, 0.449999, 1.600000);
TextDrawAlignment(gs_TestTexdtraw, 1);
TextDrawColor(gs_TestTexdtraw, -5963521);
TextDrawSetShadow(gs_TestTexdtraw, 0);
TextDrawSetOutline(gs_TestTexdtraw, 1);
TextDrawBackgroundColor(gs_TestTexdtraw, 51);
TextDrawFont(gs_TestTexdtraw, 1);
TextDrawSetProportional(gs_TestTexdtraw, 1);
printf("%s", textdrawText);
}
Prints out this:
Some text
Some text0@►
With TextDrawSetString
:
#include <a_samp>
#include <fixes>
static Text:gs_TestTexdtraw;
main() {
gs_TestTexdtraw = TextDrawCreate(582.588073, 426.999969, "Test text");
TextDrawLetterSize(gs_TestTexdtraw, 0.449999, 1.600000);
TextDrawAlignment(gs_TestTexdtraw, 1);
TextDrawColor(gs_TestTexdtraw, -5963521);
TextDrawSetShadow(gs_TestTexdtraw, 0);
TextDrawSetOutline(gs_TestTexdtraw, 1);
TextDrawBackgroundColor(gs_TestTexdtraw, 51);
TextDrawFont(gs_TestTexdtraw, 1);
TextDrawSetProportional(gs_TestTexdtraw, 1);
new replaceText[] = "Some new text";
printf("%s", replaceText);
TextDrawSetString(gs_TestTexdtraw, replaceText);
printf("%s", replaceText);
}
Prints out this:
Some new text
Some new texthx►
If you disable these fixes with
#define FIX_CreatePlayerTextDraw (0)
#define FIX_CreatePlayerTextDraw_2 (0)
#define FIX_PlayerTextDrawSetString (0)
#define FIX_PlayerTextDrawSetString_2 (0)
#define FIX_TextDrawCreate (0)
#define FIX_TextDrawCreate_2 (0)
#define FIX_TextDrawSetString (0)
#define FIX_TextDrawSetString_2 (0)
works fine.
More information
Using this commit (450b41e), works fine. This helped me to find where is the problem, but took me a good 2-3 hours to figure it out.
Y-Less commented
Fixed.