View difference between Paste ID: DTtYaSmR and ACK6RJEe
SHOW: | | - or go back to the newest paste.
1
2
#include <a_samp>
3
#include <sscanf2>
4
#include <YSF>
5
6
7
/*
8
9
	___ __  __
10
	 | |  \|_  _|.|_ _  _
11
	 | |__/|__(_|||_(_)|
12
13
	Version 1.13
14
	TDEditor Credits:
15
	
16
	    - adri1                                                                                         USER PROFILE: http://forum.sa-mp.com/member.php?u=106967
17
	    - iPLEOMAX   																					USER PROFILE: http://forum.sa-mp.com/member.php?u=122705
18
	    - Sasino97 (IsKeyDown plugin)                                                                   USER PROFILE: http://forum.sa-mp.com/member.php?u=111937
19
	    - kurta999 (YSF plugin)                                                                         USER PROFILE: http://forum.sa-mp.com/member.php?u=50263
20
		- Y_Less   (sscanf2 plugin & YSF plugin)                                                        USER PROFILE: http://forum.sa-mp.com/member.php?u=29176
21
		
22
		
23
		
24
	IsKeyDown plugin was modified by adri1, adding the following functions:
25
26
		native PressKeyEnter(key);
27
		native PressAnyKey(key);
28
		native GetKeyState(key);
29
		native GetDoubleClickTime();
30
		native ActivateAnyKey();
31
		native ActivateAnyKeyVariable(valor);
32
		forward OnAnyKeyDown(key);
33
*/
34
35
36
#define VK_KEY_A	0x41
37
#define VK_KEY_B	0x42
38
#define VK_KEY_C	0x43
39
#define VK_KEY_D	0x44
40
#define VK_KEY_E	0x45
41
#define VK_KEY_F	0x46
42
#define VK_KEY_G	0x47
43
#define VK_KEY_H	0x48
44
#define VK_KEY_I	0x49
45
#define VK_KEY_J	0x4A
46
#define VK_KEY_K	0x4B
47
#define VK_KEY_L	0x4C
48
#define VK_KEY_M	0x4D
49
#define VK_KEY_N	0x4E
50
#define VK_KEY_O	0x4F
51
#define VK_KEY_P	0x50
52
#define VK_KEY_Q	0x51
53
#define VK_KEY_R	0x52
54
#define VK_KEY_S	0x53
55
#define VK_KEY_T	0x54
56
#define VK_KEY_U	0x55
57
#define VK_KEY_V	0x56
58
#define VK_KEY_W	0x57
59
#define VK_KEY_X	0x58
60
#define VK_KEY_Y	0x59
61
#define VK_KEY_Z	0x5A
62
#define VK_LBUTTON	0x01
63
#define VK_MBUTTON	0x04
64
#define VK_RBUTTON	0x02
65
#define VK_UP		0x26
66
#define VK_DOWN		0x28
67
#define VK_LEFT		0x25
68
#define VK_RIGHT	0x27
69
#define VK_LSHIFT	0xA0
70
#define VK_RSHIFT	0xA1
71
#define VK_SPACE    0x20
72
#define VK_CANCEL 0x03
73
#define VK_BACKSPACE 0x08
74
#define VK_TAB 0x09
75
#define VK_CLEAR 0x0C
76
#define VK_ENTER 0x0D
77
#define VK_SHIFT 0x10 
78
#define VK_LSHIFT 0xA0
79
#define VK_RSHIFT 0xA1
80
#define VK_CTRL 0x11 
81
#define VK_LCTRL 0xA2
82
#define VK_RCTRL 0xA3 
83
#define VK_ALT 0x12
84
#define VK_CAPSLOCK 0x14
85
#define VK_ESCAPE 0x1B
86
#define VK_SELECT 0x29
87
#define VK_INSERT 0x2D
88
#define VK_DELETE 0x2E
89
#define VK_HELP 0x2F
90
#define VK_KEYB0 0x30
91
#define VK_KEYB1 0x31
92
#define VK_KEYB2 0x32
93
#define VK_KEYB3 0x33
94
#define VK_KEYB4 0x34
95
#define VK_KEYB5 0x35
96
#define VK_KEYB6 0x36
97
#define VK_KEYB7 0x37
98
#define VK_KEYB8 0x38
99
#define VK_KEYB9 0x39
100
#define VK_NUMLOCK 0x90
101
#define VK_NUMPAD0 0x60
102
#define VK_NUMPAD1 0x61
103
#define VK_NUMPAD2 0x62
104
#define VK_NUMPAD3 0x63
105
#define VK_NUMPAD4 0x64
106
#define VK_NUMPAD5 0x65
107
#define VK_NUMPAD6 0x66
108
#define VK_NUMPAD7 0x67
109
#define VK_NUMPAD8 0x68
110
#define VK_NUMPAD9 0x69
111
#define VK_MULTIPLY 0x6A
112
#define VK_ADD 0x6B
113
#define VK_SEPARATOR 0x6C
114
#define VK_SUBTRACT 0x6D
115
#define VK_DECIMAL 0x6E
116
#define VK_DIVIDE 0x6F
117
#define VK_OEM_PLUS 0xBB
118
#define VK_OEM_COMMA 0xBC
119
#define VK_OEM_MINUS 0xBD
120
#define VK_OEM_PERIOD 0xBE
121
#define VK_OEM_2 0xBF
122
#define VK_OEM_4 0xDB
123
#define VK_OEM_5 0xDC
124
#define VK_OEM_6 0xDD
125
#define VK_XBUTTON1 0x05
126
#define VK_XBUTTON2 0x06
127
#define VK_OEM_102 0xE2
128
#define VK_F6 0x75
129
#define VK_END 0x23
130
#define VK_HOME 0x24
131
132
#define EmptyString(%0)         %0[0] = '\0'
133
#define INVALID_INDEX_ID        (-1)
134
#define TDE_CALLBACK:%0(%1) forward %0(%1); public %0(%1)
135
#define Loop(%0,%1)       for (new c = %0; c < %1; c++)
136
#define MAX_PROJECT_TEXTDRAWS   (500)
137
138
native GetVirtualKeyState(key);
139
native GetScreenSize(&Width, &Height);
140
native GetMousePos(&X, &Y);
141
native PressKeyEnter(key);
142
native PressAnyKey(key);
143
native GetKeyState(key);
144
native GetDoubleClickTime();
145
native ActivateAnyKey();
146
native ActivateAnyKeyVariable(valor);
147
forward OnAnyKeyDown(key);
148
149
150
enum
151
{
152
    DIALOG_PROJECT = 6666,
153
    DIALOG_PROJECT_LIST,
154
    DIALOG_NEWPROJECT,
155
	DIALOG_LOADPROJECT,
156
	DIALOG_CLOSEPROJECT,
157
	DIALOG_DELETETD,
158
	DIALOG_TDLIST,
159
	DIALOG_EDITTEXT,
160
	DIALOG_EDITOUTLINE,
161
	DIALOG_EDITSHADOW,
162
	DIALOG_LETTERX,
163
	DIALOG_LETTERY,
164
	DIALOG_POSX,
165
	DIALOG_POSY,
166
	DIALOG_CONFIRMEDELETE,
167
	DIALOG_EDITCOLOR,
168
	DIALOG_SIZEX,
169
	DIALOG_SIZEY,
170
	DIALOG_NEW,
171
	DIALOG_MODELID,
172
	DIALOG_MODELS,
173
	DIALOG_MODELS_MLD,
174
	DIALOG_MODELS_RX,
175
	DIALOG_MODELS_RY,
176
	DIALOG_MODELS_RZ,
177
	DIALOG_MODELS_ZO,
178
	DIALOG_MODELS_C1,
179
	DIALOG_MODELS_C2,
180
	DIALOG_MANAGE = 7777
181
};
182
183
enum E_KEY_STRUCT
184
{
185
	bool:KEY_PRESSED,
186
	KEY_CODE,
187
};
188
189
enum E_TD_STRUCT
190
{
191
	ItsFromTDE,
192
	Text:ETextDrawID,
193
	ETextDrawText[800],
194
	Float:ETextDrawPosX,
195
	Float:ETextDrawPosY,
196
	Float:ETextDrawLetterX,
197
	Float:ETextDrawLetterY,
198
	Float:ETextDrawTextX,
199
	Float:ETextDrawTextY,
200
	ETextDrawOutline,
201
	ETextDrawShadow,
202
	ETextDrawModelid,
203
	Float:ETextDrawRotX,
204
	Float:ETextDrawRotY,
205
	Float:ETextDrawRotZ,
206
	Float:ETextDrawZoom,
207
	ETextDrawType, //Global/Player
208
	ETextDrawSelectable,
209
	ETextDrawColor,
210
	ETextDrawBGColor,
211
	ETextDrawBoxColor,
212
	ETextDrawVehCol1,
213
	ETextDrawVehCol2
214
};
215
216
enum
217
{
218
	EDITMODE_NONE,
219
	EDITMODE_TEXT,
220
	EDITMODE_POSITION,
221
	EDITMODE_OUTLINE,
222
	EDITMODE_SHADOW,
223
	EDITMODE_LETTERSIZE,
224
	EDITMODE_SIZE,
225
	EDITMODE_COLOR,
226
	EDITMODE_BGCOLOR,
227
	EDITMODE_BOXCOLOR,
228
 	EDITMODE_MODELS,
229
	EDITMODE_ADJUST
230
};
231
232
enum
233
{
234
	COLORMODE_NONE,
235
	COLORMODE_RED,
236
	COLORMODE_GREEN,
237
	COLORMODE_BLUE,
238
	COLORMODE_ALPHA
239
};
240
241
new PremadeColors[][] =
242
{
243
	{ 0xFF0000FF , "Red" },
244
	{ 0xFFFFFFFF , "White" },
245
	{ 0x00FFFFFF , "Cyan" },
246
	{ 0xC0C0C0FF , "Silver" },
247
	{ 0x0000FFFF , "Blue" },
248
	{ 0x808080FF , "Grey" },
249
	{ 0x0000A0FF , "DarkBlue" },
250
	{ 0x000000FF , "Black" },
251
	{ 0xADD8E6FF , "LightBlue" },
252
	{ 0xFFA500FF , "Orange" },
253
	{ 0x800080FF , "Purple" },
254
	{ 0xA52A2AFF , "Brown" },
255
	{ 0xFFFF00FF , "Yellow" },
256
	{ 0x800000FF , "Maroon" },
257
	{ 0x00FF00FF , "Lime" },
258
	{ 0x008000FF , "Green" },
259
	{ 0xFF00FFFF , "Fuchsia" },
260
	{ 0x808000FF , "Olive" }
261
};
262
263
new
264
	ProjectEditor = -1,
265
    bool:EditorEnabled,
266
	bool:IsPSel,
267
	CursorOX, CursorOY,
268
	CursorX, CursorY,
269
	ScreenWidth, ScreenHeight,
270
	VirtualKeys[95][E_KEY_STRUCT],
271
	ProjectTD[MAX_PROJECT_TEXTDRAWS][E_TD_STRUCT],
272
	Text:TDE_Menu[36] = {Text:INVALID_TEXT_DRAW, ...},
273
	Text:TD_Status,
274
	Text:TDELOGO,
275
	Float:OffsetZ = 415.0,
276
	EditIndex = INVALID_INDEX_ID,
277
	EditMode,
278
	Float:EditMoveSpeed = 0.1,
279
	Float:EditLetterSizeSpeed = 0.01,
280
	Float:EditSizeSpeed = 0.01,
281
	DeleteTimer, SpeedTimer, /*DoubleClickCount,*/ MoveTDTimer = -1,
282
	Text:TDEditor_Helper[2], TDEHTimer = -1, OutlineTimer, ShadowTimer,
283
	LetterSizeTimer = -1, LetterTimer, EditSizeTDTimer = -1, EditSizeSpeedT,
284
	ColorMode, Colors[4], BackManageDialog[15], PageStart, Float:Zoom = 1.0,
285
	ProjectFile[64], Pro_Str[5000], File:Handler, str_list[3000], EditorUpdateTimer,
286
    line[800], bool:MouseCursor
287
;
288
289
public OnFilterScriptInit()
290
{
291
    print(" ");
292
    print(" ");
293
    print(" ");
294
	print(" ");
295
	print("___ __  __");
296
	print(" | |  \\|_  _|.|_ _  _		");
297
	print(" | |__/|__(_|||_(_)|			");
298
    print(" ");
299
    print("TDEditor V1.13 by adri1");
300
    print("TDEditor loaded");
301
    print(" ");
302
303
	Loop(0, MAX_PROJECT_TEXTDRAWS) ProjectTD[c][ItsFromTDE] = -1;
304
	VirtualKeys[0][KEY_CODE] = VK_KEY_A;
305
    VirtualKeys[1][KEY_CODE] = VK_KEY_B;
306
    VirtualKeys[2][KEY_CODE] = VK_KEY_C;
307
    VirtualKeys[3][KEY_CODE] = VK_KEY_D;
308
    VirtualKeys[4][KEY_CODE] = VK_KEY_E;
309
    VirtualKeys[5][KEY_CODE] = VK_KEY_F;
310
    VirtualKeys[6][KEY_CODE] = VK_KEY_G;
311
    VirtualKeys[7][KEY_CODE] = VK_KEY_H;
312
    VirtualKeys[8][KEY_CODE] = VK_KEY_I;
313
    VirtualKeys[9][KEY_CODE] = VK_KEY_J;
314
    VirtualKeys[10][KEY_CODE] = VK_KEY_K;
315
    VirtualKeys[11][KEY_CODE] = VK_KEY_L;
316
    VirtualKeys[12][KEY_CODE] = VK_KEY_M;
317
    VirtualKeys[13][KEY_CODE] = VK_KEY_N;
318
    VirtualKeys[14][KEY_CODE] = VK_KEY_O;
319
    VirtualKeys[15][KEY_CODE] = VK_KEY_P;
320
    VirtualKeys[16][KEY_CODE] = VK_KEY_Q;
321
    VirtualKeys[17][KEY_CODE] = VK_KEY_R;
322
    VirtualKeys[18][KEY_CODE] = VK_KEY_S;
323
    VirtualKeys[19][KEY_CODE] = VK_KEY_T;
324
    VirtualKeys[20][KEY_CODE] = VK_KEY_U;
325
    VirtualKeys[21][KEY_CODE] = VK_KEY_V;
326
    VirtualKeys[22][KEY_CODE] = VK_KEY_W;
327
    VirtualKeys[23][KEY_CODE] = VK_KEY_X;
328
    VirtualKeys[24][KEY_CODE] = VK_KEY_Y;
329
    VirtualKeys[25][KEY_CODE] = VK_KEY_Z;
330
    VirtualKeys[26][KEY_CODE] = VK_LBUTTON;
331
    VirtualKeys[27][KEY_CODE] = VK_MBUTTON;
332
    VirtualKeys[28][KEY_CODE] = VK_RBUTTON;
333
    VirtualKeys[29][KEY_CODE] = VK_LEFT;
334
    VirtualKeys[30][KEY_CODE] = VK_RIGHT;
335
	VirtualKeys[31][KEY_CODE] = VK_UP;
336
    VirtualKeys[32][KEY_CODE] = VK_DOWN;
337
    VirtualKeys[33][KEY_CODE] = VK_LSHIFT;
338
    VirtualKeys[34][KEY_CODE] = VK_RSHIFT;
339
    VirtualKeys[35][KEY_CODE] = VK_SPACE;
340
    VirtualKeys[36][KEY_CODE] = VK_CANCEL; //03
341
	VirtualKeys[37][KEY_CODE] = VK_BACKSPACE; //08
342
	VirtualKeys[38][KEY_CODE] = VK_TAB; //09
343
	VirtualKeys[39][KEY_CODE] = VK_CLEAR; //0C
344
	VirtualKeys[40][KEY_CODE] = VK_ENTER; //0D
345
	VirtualKeys[41][KEY_CODE] = VK_SHIFT; //10
346
	VirtualKeys[42][KEY_CODE] = VK_LSHIFT; //A0
347
	VirtualKeys[43][KEY_CODE] = VK_RSHIFT; //A1
348
	VirtualKeys[44][KEY_CODE] = VK_CTRL; //11
349
	VirtualKeys[45][KEY_CODE] = VK_LCTRL; //A2
350
	VirtualKeys[46][KEY_CODE] = VK_RCTRL; //A3
351
	VirtualKeys[47][KEY_CODE] = VK_ALT; //12
352
	VirtualKeys[48][KEY_CODE] = VK_CAPSLOCK; //14
353
	VirtualKeys[49][KEY_CODE] = VK_ESCAPE; //1B
354
	VirtualKeys[50][KEY_CODE] = VK_SELECT; //29
355
	VirtualKeys[51][KEY_CODE] = VK_INSERT; //2D
356
	VirtualKeys[52][KEY_CODE] = VK_DELETE; //2E
357
	VirtualKeys[53][KEY_CODE] = VK_HELP; //2F
358
	VirtualKeys[54][KEY_CODE] = VK_KEYB0; //30
359
	VirtualKeys[55][KEY_CODE] = VK_KEYB1; //31
360
	VirtualKeys[56][KEY_CODE] = VK_KEYB2; //32
361
	VirtualKeys[57][KEY_CODE] = VK_KEYB3; //33
362
	VirtualKeys[58][KEY_CODE] = VK_KEYB4; //34
363
	VirtualKeys[59][KEY_CODE] = VK_KEYB5; //35
364
	VirtualKeys[60][KEY_CODE] = VK_KEYB6; //36
365
	VirtualKeys[61][KEY_CODE] = VK_KEYB7; //37
366
	VirtualKeys[62][KEY_CODE] = VK_KEYB8; //38
367
	VirtualKeys[63][KEY_CODE] = VK_KEYB9; //39
368
	VirtualKeys[64][KEY_CODE] = VK_NUMLOCK; //90
369
	VirtualKeys[65][KEY_CODE] = VK_NUMPAD0; //60
370
	VirtualKeys[66][KEY_CODE] = VK_NUMPAD1; //61
371
	VirtualKeys[67][KEY_CODE] = VK_NUMPAD2; //62
372
	VirtualKeys[68][KEY_CODE] = VK_NUMPAD3; //63
373
	VirtualKeys[69][KEY_CODE] = VK_NUMPAD4; //64
374
	VirtualKeys[70][KEY_CODE] = VK_NUMPAD5; //65
375
	VirtualKeys[71][KEY_CODE] = VK_NUMPAD6; //66
376
	VirtualKeys[72][KEY_CODE] = VK_NUMPAD7; //67
377
	VirtualKeys[73][KEY_CODE] = VK_NUMPAD8; //68
378
	VirtualKeys[74][KEY_CODE] = VK_NUMPAD9; //69
379
	VirtualKeys[75][KEY_CODE] = VK_MULTIPLY; //6A
380
	VirtualKeys[76][KEY_CODE] = VK_ADD; //6B
381
	VirtualKeys[77][KEY_CODE] = VK_SEPARATOR; //6C
382
	VirtualKeys[78][KEY_CODE] = VK_SUBTRACT; //6D
383
	VirtualKeys[79][KEY_CODE] = VK_DECIMAL; //6E
384
	VirtualKeys[80][KEY_CODE] = VK_DIVIDE; //6F
385
	VirtualKeys[81][KEY_CODE] = VK_OEM_PLUS;
386
	VirtualKeys[82][KEY_CODE] = VK_OEM_COMMA;
387
	VirtualKeys[83][KEY_CODE] = VK_OEM_MINUS;
388
	VirtualKeys[84][KEY_CODE] = VK_OEM_PERIOD;
389
	VirtualKeys[85][KEY_CODE] = VK_OEM_2;
390
	VirtualKeys[86][KEY_CODE] = VK_OEM_4;
391
	VirtualKeys[87][KEY_CODE] = VK_OEM_5;
392
	VirtualKeys[88][KEY_CODE] = VK_OEM_6;
393
	VirtualKeys[89][KEY_CODE] = VK_XBUTTON1;
394
	VirtualKeys[90][KEY_CODE] = VK_XBUTTON2;
395
	VirtualKeys[91][KEY_CODE] = VK_OEM_102;
396
	VirtualKeys[92][KEY_CODE] = VK_F6;
397
	VirtualKeys[93][KEY_CODE] = VK_END;
398
    VirtualKeys[94][KEY_CODE] = VK_HOME;
399
400
401
    for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++) ProjectTD[i][ETextDrawID] = Text:INVALID_TEXT_DRAW;
402
	return true;
403
}
404
405
public OnFilterScriptExit()
406
{
407
    print(" ");
408
    print(" ");
409
    print(" ");
410
	print(" ");
411
	print("___ __  __");
412
	print(" | |  \\|_  _|.|_ _  _		");
413
	print(" | |__/|__(_|||_(_)|			");
414
    print(" ");
415
    print("TDEditor V1.13 by adri1");
416
    print("TDEditor unloaded");
417
    print(" ");
418
419
    KillTimer(EditorUpdateTimer);
420
    KillTimer(DeleteTimer);
421
    KillTimer(SpeedTimer);
422
    KillTimer(MoveTDTimer); MoveTDTimer = -1;
423
    KillTimer(TDEHTimer); TDEHTimer = -1;
424
    KillTimer(OutlineTimer);
425
    KillTimer(ShadowTimer);
426
    KillTimer(LetterSizeTimer); LetterSizeTimer = -1;
427
	KillTimer(LetterTimer);
428
	KillTimer(EditSizeTDTimer); EditSizeTDTimer = -1;
429
	KillTimer(EditSizeSpeedT);
430
	KillTimer(ShadowTimer);
431
	if(ProjectEditor != -1)
432
	{
433
	    TogglePlayerControllable(ProjectEditor, true);
434
	    ShowPlayerDialog(ProjectEditor, -1, 0, "","", "", "" );
435
	    CancelSelectTextDraw(ProjectEditor);
436
		if(strlen(ProjectFile))
437
		{
438
		    SaveProject();
439
		    for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++) RemoveTextDrawTDEOnly(i);
440
		}
441
	}
442
	DestroyMenuTextDraws();
443
    EditMode = EDITMODE_NONE;
444
	ColorMode = COLORMODE_NONE;
445
	ProjectEditor = -1;
446
	EditorEnabled = false;
447
	IsPSel = true;
448
	CursorOX = 0;
449
	CursorOY = 0;
450
	CursorX = 0;
451
	CursorY = 0;
452
	ScreenWidth = 0;
453
	ScreenHeight = 0;
454
	OffsetZ = 415.0;
455
	EditIndex = INVALID_INDEX_ID;
456
	EditMoveSpeed = 0.1;
457
	EditLetterSizeSpeed = 0.01;
458
	EditSizeSpeed = 0.01;
459
	PageStart = 0;
460
	Zoom = 1.0;
461
	MouseCursor = false;
462
	EmptyString(ProjectFile);
463
	EmptyString(Pro_Str);
464
	EmptyString(str_list);
465
	EmptyString(line);
466
	return true;
467
}
468
469
public OnPlayerConnect(playerid)
470
{
471
	return true;
472
}
473
474
public OnPlayerDisconnect(playerid, reason)
475
{
476
    if(ProjectEditor == playerid)
477
	{
478
		KillTimer(EditorUpdateTimer);
479
	    KillTimer(DeleteTimer);
480
	    KillTimer(SpeedTimer);
481
	    KillTimer(MoveTDTimer); MoveTDTimer = -1;
482
	    KillTimer(TDEHTimer); TDEHTimer = -1;
483
	    KillTimer(OutlineTimer);
484
	    KillTimer(ShadowTimer);
485
	    KillTimer(LetterSizeTimer); LetterSizeTimer = -1;
486
		KillTimer(LetterTimer);
487
		KillTimer(EditSizeTDTimer); EditSizeTDTimer = -1;
488
		KillTimer(EditSizeSpeedT);
489
		KillTimer(ShadowTimer);
490
	
491
		if(strlen(ProjectFile))
492
		{
493
		    SaveProject();
494
		    for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++) RemoveTextDrawTDEOnly(i);
495
        }
496
        
497
		DestroyMenuTextDraws();
498
	    EditMode = EDITMODE_NONE;
499
		ColorMode = COLORMODE_NONE;
500
		ProjectEditor = -1;
501
		EditorEnabled = false;
502
		IsPSel = true;
503
		CursorOX = 0;
504
		CursorOY = 0;
505
		CursorX = 0;
506
		CursorY = 0;
507
		ScreenWidth = 0;
508
		ScreenHeight = 0;
509
		OffsetZ = 415.0;
510
		EditIndex = INVALID_INDEX_ID;
511
		MouseCursor = false;
512
		EditMoveSpeed = 0.1;
513
		EditLetterSizeSpeed = 0.01;
514
		EditSizeSpeed = 0.01;
515
		PageStart = 0;
516
		Zoom = 1.0;
517
		EmptyString(ProjectFile);
518
		EmptyString(Pro_Str);
519
		EmptyString(str_list);
520
		EmptyString(line);
521
	}
522
	return true;
523
}
524
525
public OnPlayerCommandText(playerid, cmdtext[])
526
{
527
	if(!strcmp(cmdtext, "/tde", true, 4))
528
	{
529
	    if(ProjectEditor == playerid)
530
	    {
531
	        if(strlen(cmdtext) >= 6)
532
			{
533
			    if( (!strcmp(cmdtext[5], "ayuda", true)) || (!strcmp(cmdtext[5], "help", true))  )
534
				{
535
				    SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}/tde box - /tde exit - /tde cursor.");
536
				    return 1;
537
				}
538
				if( (!strcmp(cmdtext[5], "cursor", true)) )
539
				{
540
    				if(MouseCursor)
541
					{
542
						MouseCursor = false;
543
						CancelSelectTextDraw(ProjectEditor);
544
					}
545
			        else
546
					{
547
						MouseCursor = true;
548
						SelectTextDraw(ProjectEditor, -1);
549
					}
550
				    return 1;
551
				}
552
			    if( (!strcmp(cmdtext[5], "salir", true)) || (!strcmp(cmdtext[5], "exit", true))  )
553
				{
554
  					KillTimer(EditorUpdateTimer);
555
				    KillTimer(DeleteTimer);
556
				    KillTimer(SpeedTimer);
557
				    KillTimer(MoveTDTimer); MoveTDTimer = -1;
558
				    KillTimer(TDEHTimer); TDEHTimer = -1;
559
				    KillTimer(OutlineTimer);
560
				    KillTimer(ShadowTimer);
561
				    KillTimer(LetterSizeTimer); LetterSizeTimer = -1;
562
					KillTimer(LetterTimer);
563
					KillTimer(EditSizeTDTimer); EditSizeTDTimer = -1;
564
					KillTimer(EditSizeSpeedT);
565
					KillTimer(ShadowTimer);
566
567
					if(strlen(ProjectFile))
568
					{
569
					    SaveProject();
570
					    for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++) RemoveTextDrawTDEOnly(i);
571
			        }
572
573
					DestroyMenuTextDraws();
574
				    EditMode = EDITMODE_NONE;
575
					ColorMode = COLORMODE_NONE;
576
					ProjectEditor = -1;
577
					EditorEnabled = false;
578
					IsPSel = true;
579
					CursorOX = 0;
580
					CursorOY = 0;
581
					CursorX = 0;
582
					CursorY = 0;
583
					ScreenWidth = 0;
584
					ScreenHeight = 0;
585
					OffsetZ = 415.0;
586
					EditIndex = INVALID_INDEX_ID;
587
					EditMoveSpeed = 0.1;
588
					EditLetterSizeSpeed = 0.01;
589
					EditSizeSpeed = 0.01;
590
					PageStart = 0;
591
					MouseCursor = false;
592
					Zoom = 1.0;
593
					EmptyString(ProjectFile);
594
					EmptyString(Pro_Str);
595
					EmptyString(str_list);
596
					EmptyString(line);
597
					
598
					TogglePlayerControllable(playerid, true);
599
				    ShowPlayerDialog(playerid, -1, 0, "","", "", "" );
600
				    CancelSelectTextDraw(playerid);
601
				    return 1;
602
				}
603
				if( (!strcmp(cmdtext[5], "box", true)) || (!strcmp(cmdtext[5], "icons", true)) || (!strcmp(cmdtext[5], "adjust", true)) )
604
				{
605
				    if(EditMode == EDITMODE_ADJUST)
606
				    {
607
				        if(!VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
608
						{
609
					        new Float:pos[2];
610
				        	for(new i = 1; i < sizeof(TDE_Menu); i++)
611
				        	{
612
				        	    TextDrawGetPos(TDE_Menu[i], pos[0], pos[1]);
613
				        	    TextDrawSetPos(TDE_Menu[i], pos[0], OffsetZ);
614
				        	    TextDrawShowForPlayer(playerid, TDE_Menu[i]);
615
				        	}
616
617
				 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
618
				 		    EditMode = EDITMODE_NONE;
619
				 		    IsPSel = true;
620
					        return 1;
621
						}
622
						return 1;
623
				    }
624
				    IsPSel = false;
625
					TextDrawSetString(TD_Status, "EditMode: EDITMODE_ADJUST");
626
    				EditMode = EDITMODE_ADJUST;
627
    				SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}Press 'ESC' to finish this mode.");
628
					return 1;
629
				}
630
				return SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}/tde {e2b960}(box/help)");
631
			}
632
			TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
633
   			EditMode = EDITMODE_NONE;
634
			CancelSelectTextDraw(playerid);
635
			IsPSel = false;
636
			ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "TDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
637
	    }
638
	    if(ProjectEditor == -1)
639
	    {
640
	        new ip[16];
641
	        GetPlayerIp(playerid, ip, 16);
642
	        if(strcmp(ip, "127.0.0.1", false)) return SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}TDEditor only can be used from localhost (127.0.0.1)");
643
	        IsPSel = true;
644
	        MouseCursor = true;
645
	        TogglePlayerControllable(playerid, false);
646
	        DestroyMenuTextDraws();
647
  			CreateMenuTextDraws();
648
	        SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}Click on the image to start...");
649
	        TextDrawShowForPlayer(playerid, TDELOGO);
650
	        SelectTextDraw(playerid, -1);
651
            EmptyString(ProjectFile);
652
	    }
653
	    return true;
654
	}
655
	return false;
656
}
657
658
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
659
{
660
	if(dialogid == DIALOG_PROJECT)
661
	{
662
		if(response)
663
		{
664
		    switch(listitem)
665
		    {
666
		        case 0:
667
				{
668
				    if(strlen(ProjectFile))
669
					{
670
						SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}Closes the current project first.");
671
						ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "TDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
672
						return 1;
673
					}
674
					ShowPlayerDialog(playerid, DIALOG_NEWPROJECT, DIALOG_STYLE_INPUT, "TDEditor - New project", "Project Name (if exists will load):", ">>", "<<");
675
				}
676
		        case 1:
677
		        {
678
		            if(strlen(ProjectFile))
679
					{
680
						SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}Closes the current project first.");
681
						ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "TDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
682
						return 1;
683
					}
684
          			new Found;
685
				    Handler = fopen("tdelist.txt", io_read);
686
				    if(Handler)
687
				    {
688
					    while(fread(Handler, Pro_Str))
689
					    {
690
							if(strlen(Pro_Str))
691
							{
692
							    if(!Found)
693
								{
694
									EmptyString(str_list);
695
									Found = true;
696
								}
697
								strcat(str_list, Pro_Str);
698
							}
699
						}
700
					    fclose(Handler);
701
				    }
702
				    else
703
				    {
704
				        SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}There isn't list.");
705
						ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "TDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
706
				        return 1;
707
				    }
708
				    if(!Found)
709
				    {
710
				        SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}There isn't list.");
711
						ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "TDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
712
				        return 1;
713
				    }
714
				    ShowPlayerDialog(playerid, DIALOG_PROJECT_LIST, DIALOG_STYLE_LIST, "TDEditor - Projects list", str_list, ">>", "<<");
715
		        }
716
		        case 2: 
717
		        {
718
		            if(!strlen(ProjectFile))
719
					{
720
						SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}You haven't created/loaded any project.");
721
						ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "TDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
722
						return 1;
723
					}
724
		            CloseProject();
725
		            SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}Project closed.");
726
		            ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "TDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
727
		        }
728
		    }
729
		}
730
		else
731
		{
732
		    if(ProjectEditor == -1)
733
		    {
734
		        
735
			    SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}TDEditor finished.");
736
			    TextDrawHideForPlayer(playerid, TDELOGO);
737
			    TogglePlayerControllable(playerid, true);
738
		        DestroyMenuTextDraws();
739
		        IsPSel = true;
740
		        return 1;
741
			}
742
			SelectTextDraw(playerid, -1);
743
			IsPSel = true;
744
			SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}If you want exit use /tde exit.");
745
		}
746
	    return 1;
747
	}
748
	else if(dialogid == DIALOG_NEWPROJECT)
749
	{
750
	    if(response)
751
	    {
752
	        if(!(1 <= strlen(inputtext) <= 32)) return ShowPlayerDialog(playerid, DIALOG_NEWPROJECT, DIALOG_STYLE_INPUT, "TDEditor - New project", "Project Name (if exists will load):", ">>", "<<");
753
			if(!IsValidProjectName(inputtext)) return ShowPlayerDialog(playerid, DIALOG_NEWPROJECT, DIALOG_STYLE_INPUT, "TDEditor - New project", "Project Name (if exists will load):", ">>", "<<");
754
			if(strlen(ProjectFile)) CloseProject();
755
			
756
			format(ProjectFile, sizeof ProjectFile, "%s.tde", inputtext);
757
			if(!CheckProject(inputtext)) AddProject(ProjectFile);
758
			
759
			ProjectEditor = playerid;
760
	        EditorEnabled = true;
761
	        IsPSel = true;
762
	        ShowEditor();
763
	        
764
	        PageStart = 0;
765
			if(fexist(ProjectFile))
766
			{
767
				LoadProject();
768
				SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}Project loaded.");
769
			} 
770
			else
771
			{
772
			    Handler = fopen(ProjectFile, io_write);
773
			    fclose(Handler);
774
			    SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}Project created.");
775
			}
776
			
777
			if(EditIndex != INVALID_INDEX_ID)
778
 	    	{
779
     	    	Loop(1, sizeof(TDE_Menu))
780
			    {
781
					TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
782
					TextDrawSetSelectable(TDE_Menu[c], true);
783
			        TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
784
			    }
785
			    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
786
			    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
787
			    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
788
			    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
789
			    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
790
			    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
791
			    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
792
			    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
793
			    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
794
			    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
795
			    UpdateIcons(EditIndex);
796
			}
797
			
798
			EditorUpdateTimer = SetTimerEx("OnEditorUpdate", 25, true, "i", ProjectEditor);
799
	    }
800
	    else ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "TDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
801
	    return 1;
802
	}
803
	else if(dialogid == DIALOG_PROJECT_LIST)
804
	{
805
	    if(response)
806
        {
807
            Handler = fopen("tdelist.txt", io_read);
808
         	if(!Handler) return 1;
809
810
         	new Index = -1;
811
         	while(fread(Handler, Pro_Str))
812
         	{
813
         	    if(!strlen(Pro_Str)) continue;
814
         	    Index++;
815
816
         	    if(Index == listitem)
817
         	    {
818
         	    	StripNewLine(Pro_Str);
819
820
         	    	if(strlen(ProjectFile))
821
         	    	{
822
             	    	SaveProject();
823
             	    	CloseProject();
824
         	    	}
825
         	    	ProjectEditor = playerid;
826
			        EditorEnabled = true;
827
			        IsPSel = true;
828
			        ShowEditor();
829
			        
830
         	    	format(ProjectFile, sizeof(ProjectFile), "%s", Pro_Str);
831
         	    	if(!LoadProject())
832
					{
833
					    SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}Couldn't load this project, check .tde file.");
834
                        ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "TDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
835
                        return 1;
836
					}
837
         	    	if(EditIndex >= INVALID_INDEX_ID)
838
         	    	{
839
	         	    	Loop(1, sizeof(TDE_Menu))
840
					    {
841
							TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
842
							TextDrawSetSelectable(TDE_Menu[c], true);
843
					        TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
844
					    }
845
					    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
846
					    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
847
					    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
848
					    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
849
					    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
850
					    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
851
					    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
852
					    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
853
					    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
854
					    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
855
					    UpdateIcons(EditIndex);
856
					}
857
         	    	
858
					EditorUpdateTimer = SetTimerEx("OnEditorUpdate", 25, true, "i", ProjectEditor);
859
         	    }
860
         	}
861
        }
862
        else ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "TDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
863
        return 1;
864
	}
865
    if(!EditorEnabled || ProjectEditor != playerid) return false;
866
    if(EditMode == EDITMODE_ADJUST) return false;
867
	switch(dialogid)
868
	{
869
	    case DIALOG_NEW:
870
	    {
871
	        if(response)
872
	        {
873
	            switch(listitem)
874
	            {
875
	                case 0: //Normal
876
	                {
877
	                    new Index = GetAvailableIndex();
878
						if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}You can't create more TextDraws.");
879
				      	EditIndex = Index;
880
881
				      	if(EditIndex == 0)
882
				      	{
883
				       		Loop(1, sizeof(TDE_Menu))
884
						    {
885
								TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
886
								TextDrawSetSelectable(TDE_Menu[c], true);
887
						        TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
888
						    }
889
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
890
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
891
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
892
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
893
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
894
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
895
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
896
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
897
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
898
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
899
				      	}
900
901
						ProjectTD[Index][ETextDrawID] = TextDrawCreate(290.0, 190.0, "TDEditor");
902
						TextDrawLetterSize(ProjectTD[Index][ETextDrawID], 0.4, 1.6);
903
						TextDrawAlignment(ProjectTD[Index][ETextDrawID], 1);
904
						TextDrawColor(ProjectTD[Index][ETextDrawID], -1);
905
						TextDrawUseBox(ProjectTD[Index][ETextDrawID], 0);
906
						TextDrawSetShadow(ProjectTD[Index][ETextDrawID], 0);
907
						TextDrawSetOutline(ProjectTD[Index][ETextDrawID], 0);
908
						TextDrawBackgroundColor(ProjectTD[Index][ETextDrawID], 255);
909
						TextDrawFont(ProjectTD[Index][ETextDrawID], 1);
910
						TextDrawSetProportional(ProjectTD[Index][ETextDrawID], 1);
911
						TextDrawShowForPlayer(ProjectEditor, ProjectTD[Index][ETextDrawID]);
912
913
914
					    ProjectTD[EditIndex][ItsFromTDE] = 1;
915
					    format(ProjectTD[EditIndex][ETextDrawText], 800, "TDEditor");
916
						ProjectTD[EditIndex][ETextDrawPosX] = 290.0;
917
						ProjectTD[EditIndex][ETextDrawPosY] = 190.0;
918
						ProjectTD[EditIndex][ETextDrawLetterX] = 0.4;
919
						ProjectTD[EditIndex][ETextDrawLetterY] = 1.6;
920
						ProjectTD[EditIndex][ETextDrawColor] = 0xFFFFFFFF;
921
						ProjectTD[EditIndex][ETextDrawBGColor] = 0x000000FF;
922
						ProjectTD[EditIndex][ETextDrawBoxColor] = 0x000000FF;
923
924
						new string[128];
925
				        format(string, sizeof(string), "{e2b960}TDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}created.", EditIndex);
926
				        SendClientMessage(ProjectEditor, -1, string);
927
				        SelectTextDraw(playerid, -1);
928
				        IsPSel = true;
929
				        UpdateIcons(EditIndex);
930
				        
931
				        if(EditMode == EDITMODE_MODELS)
932
				        {
933
				            TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
934
					    	EditMode = EDITMODE_NONE;
935
				        }
936
	                }
937
	                case 1: //TXD
938
	                {
939
						new Index = GetAvailableIndex();
940
						if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}You can't create more TextDraws.");
941
				      	EditIndex = Index;
942
943
				      	if(EditIndex == 0)
944
				      	{
945
				       		Loop(1, sizeof(TDE_Menu))
946
						    {
947
								TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
948
								TextDrawSetSelectable(TDE_Menu[c], true);
949
						        TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
950
						    }
951
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
952
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
953
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
954
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
955
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
956
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
957
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
958
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
959
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
960
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
961
				      	}
962
				      	
963
				      	ProjectTD[Index][ETextDrawID] = TextDrawCreate(265.0, 155.0, "LD_SPAC:white");
964
						TextDrawLetterSize(ProjectTD[Index][ETextDrawID], 0.0, 0.0);
965
						TextDrawTextSize(ProjectTD[Index][ETextDrawID], 90.0, 90.0);
966
						TextDrawAlignment(ProjectTD[Index][ETextDrawID], 1);
967
						TextDrawColor(ProjectTD[Index][ETextDrawID], -1);
968
						TextDrawUseBox(ProjectTD[Index][ETextDrawID], 0);
969
						TextDrawSetShadow(ProjectTD[Index][ETextDrawID], 0);
970
						TextDrawSetOutline(ProjectTD[Index][ETextDrawID], 0);
971
						TextDrawFont(ProjectTD[Index][ETextDrawID], 4);
972
						TextDrawShowForPlayer(ProjectEditor, ProjectTD[Index][ETextDrawID]);
973
974
975
					    ProjectTD[EditIndex][ItsFromTDE] = 1;
976
					    format(ProjectTD[EditIndex][ETextDrawText], 800, "LD_SPAC:white");
977
						ProjectTD[EditIndex][ETextDrawPosX] = 265.0;
978
						ProjectTD[EditIndex][ETextDrawPosY] = 155.0;
979
						ProjectTD[EditIndex][ETextDrawTextX] = 90.0;
980
						ProjectTD[EditIndex][ETextDrawTextY] = 90.0;
981
						ProjectTD[EditIndex][ETextDrawLetterX] = 0.0;
982
						ProjectTD[EditIndex][ETextDrawLetterY] = 0.0;
983
						ProjectTD[EditIndex][ETextDrawColor] = 0xFFFFFFFF;
984
						ProjectTD[EditIndex][ETextDrawBGColor] = 0x000000FF;
985
						ProjectTD[EditIndex][ETextDrawBoxColor] = 0x000000FF;
986
987
						new string[128];
988
				        format(string, sizeof(string), "{e2b960}TDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}created.", EditIndex);
989
				        SendClientMessage(ProjectEditor, -1, string);
990
				        SelectTextDraw(playerid, -1);
991
				        IsPSel = true;
992
				        UpdateIcons(EditIndex);
993
				        
994
				        if(EditMode == EDITMODE_MODELS)
995
				        {
996
				            TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
997
					    	EditMode = EDITMODE_NONE;
998
				        }
999
	                }
1000
	                case 2: //Previews
1001
	                {
1002
	                    new Index = GetAvailableIndex();
1003
						if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}You can't create more TextDraws.");
1004
				      	EditIndex = Index;
1005
1006
				      	if(EditIndex == 0)
1007
				      	{
1008
				       		Loop(1, sizeof(TDE_Menu))
1009
						    {
1010
								TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
1011
								TextDrawSetSelectable(TDE_Menu[c], true);
1012
						        TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
1013
						    }
1014
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
1015
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
1016
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
1017
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
1018
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
1019
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
1020
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
1021
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
1022
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
1023
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
1024
				      	}
1025
1026
				      	ProjectTD[Index][ETextDrawID] = TextDrawCreate(265.0, 155.0, "");
1027
						TextDrawLetterSize(ProjectTD[Index][ETextDrawID], 0.0, 0.0);
1028
						TextDrawTextSize(ProjectTD[Index][ETextDrawID], 90.0, 90.0);
1029
						TextDrawAlignment(ProjectTD[Index][ETextDrawID], 1);
1030
						TextDrawColor(ProjectTD[Index][ETextDrawID], -1);
1031
						TextDrawUseBox(ProjectTD[Index][ETextDrawID], 0);
1032
						TextDrawSetShadow(ProjectTD[Index][ETextDrawID], 0);
1033
						TextDrawSetOutline(ProjectTD[Index][ETextDrawID], 0);
1034
						TextDrawFont(ProjectTD[Index][ETextDrawID], 5);
1035
						TextDrawSetPreviewModel(ProjectTD[Index][ETextDrawID], 0);
1036
						TextDrawSetPreviewRot(ProjectTD[Index][ETextDrawID], 0.0, 0.0, 0.0, 1.0);
1037
						TextDrawBackgroundColor(ProjectTD[Index][ETextDrawID], 0x000000FF);
1038
						TextDrawShowForPlayer(ProjectEditor, ProjectTD[Index][ETextDrawID]);
1039
1040
1041
					    ProjectTD[EditIndex][ItsFromTDE] = 1;
1042
					    format(ProjectTD[EditIndex][ETextDrawText], 800, "");
1043
						ProjectTD[EditIndex][ETextDrawPosX] = 265.0;
1044
						ProjectTD[EditIndex][ETextDrawPosY] = 155.0;
1045
						ProjectTD[EditIndex][ETextDrawTextX] = 90.0;
1046
						ProjectTD[EditIndex][ETextDrawTextY] = 90.0;
1047
						ProjectTD[EditIndex][ETextDrawLetterX] = 0.0;
1048
						ProjectTD[EditIndex][ETextDrawLetterY] = 0.0;
1049
						ProjectTD[EditIndex][ETextDrawColor] = 0xFFFFFFFF;
1050
						ProjectTD[EditIndex][ETextDrawBGColor] = 0x000000FF;
1051
						ProjectTD[EditIndex][ETextDrawBoxColor] = 0x000000FF;
1052
						ProjectTD[EditIndex][ETextDrawModelid] = 0;
1053
						ProjectTD[EditIndex][ETextDrawRotX] = 0.0;
1054
						ProjectTD[EditIndex][ETextDrawRotY] = 0.0;
1055
						ProjectTD[EditIndex][ETextDrawRotZ] = 0.0;
1056
						ProjectTD[EditIndex][ETextDrawZoom] = 1.0;
1057
						ProjectTD[EditIndex][ETextDrawVehCol1] = 1;
1058
	                    ProjectTD[EditIndex][ETextDrawVehCol2] = 1;
1059
						new string[128];
1060
				        format(string, sizeof(string), "{e2b960}TDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}created.", EditIndex);
1061
				        SendClientMessage(ProjectEditor, -1, string);
1062
				        SelectTextDraw(playerid, -1);
1063
				        IsPSel = true;
1064
				        UpdateIcons(EditIndex);
1065
	                }
1066
	                case 3:
1067
	                {
1068
	                    new Index = GetAvailableIndex();
1069
						if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}You can't create more TextDraws.");
1070
				      	EditIndex = Index;
1071
1072
				      	if(EditIndex == 0)
1073
				      	{
1074
				       		Loop(1, sizeof(TDE_Menu))
1075
						    {
1076
								TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
1077
								TextDrawSetSelectable(TDE_Menu[c], true);
1078
						        TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
1079
						    }
1080
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
1081
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
1082
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
1083
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
1084
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
1085
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
1086
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
1087
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
1088
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
1089
						    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
1090
				      	}
1091
1092
						ProjectTD[Index][ETextDrawID] = TextDrawCreate(290.0, 190.0, "box");
1093
						TextDrawLetterSize(ProjectTD[Index][ETextDrawID], 0.0, 10.0);
1094
						TextDrawAlignment(ProjectTD[Index][ETextDrawID], 1);
1095
						TextDrawColor(ProjectTD[Index][ETextDrawID], -1);
1096
						TextDrawUseBox(ProjectTD[Index][ETextDrawID], 1);
1097
						TextDrawTextSize(ProjectTD[Index][ETextDrawID], 350.0, 0.0);
1098
						TextDrawSetShadow(ProjectTD[Index][ETextDrawID], 0);
1099
						TextDrawSetOutline(ProjectTD[Index][ETextDrawID], 0);
1100
						TextDrawBackgroundColor(ProjectTD[Index][ETextDrawID], 255);
1101
						TextDrawBoxColor(ProjectTD[Index][ETextDrawID], 255);
1102
						TextDrawFont(ProjectTD[Index][ETextDrawID], 1);
1103
						TextDrawSetProportional(ProjectTD[Index][ETextDrawID], 1);
1104
						TextDrawShowForPlayer(ProjectEditor, ProjectTD[Index][ETextDrawID]);
1105
1106
1107
					    ProjectTD[EditIndex][ItsFromTDE] = 1;
1108
					    format(ProjectTD[EditIndex][ETextDrawText], 800, "box");
1109
						ProjectTD[EditIndex][ETextDrawPosX] = 290.0;
1110
						ProjectTD[EditIndex][ETextDrawPosY] = 190.0;
1111
						ProjectTD[EditIndex][ETextDrawLetterX] = 0.0;
1112
						ProjectTD[EditIndex][ETextDrawLetterY] = 10.0;
1113
						ProjectTD[EditIndex][ETextDrawTextX] = 350.0;
1114
						ProjectTD[EditIndex][ETextDrawTextY] = 0.0;
1115
						ProjectTD[EditIndex][ETextDrawColor] = 0xFFFFFFFF;
1116
						ProjectTD[EditIndex][ETextDrawBGColor] = 0x000000FF;
1117
						ProjectTD[EditIndex][ETextDrawBoxColor] = 0x000000FF;
1118
1119
						new string[128];
1120
				        format(string, sizeof(string), "{e2b960}TDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}created.", EditIndex);
1121
				        SendClientMessage(ProjectEditor, -1, string);
1122
				        SelectTextDraw(playerid, -1);
1123
				        IsPSel = true;
1124
				        UpdateIcons(EditIndex);
1125
1126
				        if(EditMode == EDITMODE_MODELS)
1127
				        {
1128
				            TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
1129
					    	EditMode = EDITMODE_NONE;
1130
				        }
1131
	                }
1132
	            }
1133
	        }
1134
	        else
1135
	        {
1136
	            SelectTextDraw(ProjectEditor, -1);
1137
				IsPSel = true;
1138
	        }
1139
	    }
1140
	    case DIALOG_MANAGE:
1141
	    {
1142
	        if(response)
1143
	        {
1144
	            if(BackManageDialog[listitem] == 1)
1145
				{
1146
                    PageStart -= 10;
1147
                    ShowManage(ProjectEditor);
1148
				    return 1;
1149
				}
1150
				
1151
	            if(listitem == 10)
1152
				{
1153
					PageStart += 10;
1154
                    ShowManage(ProjectEditor);
1155
                    return 1;
1156
				}
1157
				
1158
				new id = 0;
1159
                for(new i = PageStart; i < MAX_PROJECT_TEXTDRAWS; i ++)
1160
                {
1161
                    if(ProjectTD[i][ItsFromTDE] == 1)
1162
                    {
1163
						if(id == listitem)
1164
						{
1165
						    EditIndex = i;
1166
							break;
1167
						}
1168
						id ++;
1169
					}
1170
                }
1171
                UpdateIcons(EditIndex);
1172
                new string[128];
1173
                format(string, sizeof(string), "{e2b960}TDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}selected.", EditIndex);
1174
                SendClientMessage(ProjectEditor, -1, string);
1175
                SelectTextDraw(ProjectEditor, -1);
1176
                IsPSel = true;
1177
	        }
1178
	        else
1179
			{
1180
				SelectTextDraw(ProjectEditor, -1);
1181
				IsPSel = true;
1182
			}
1183
	    }
1184
	    case DIALOG_EDITTEXT:
1185
	    {
1186
	        if(response)
1187
	        {
1188
	            if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITTEXT, DIALOG_STYLE_INPUT, "TDEditor - Text", "Insert the TextDraw text:", ">>", "X");
1189
	            format(ProjectTD[EditIndex][ETextDrawText], 800, "%s", inputtext);
1190
	            TextDrawSetString(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawText]);
1191
	            SelectTextDraw(ProjectEditor, -1);
1192
	            IsPSel = true;
1193
	        }
1194
	        else
1195
			{
1196
				SelectTextDraw(ProjectEditor, -1);
1197
				IsPSel = true;
1198
			}
1199
	    }
1200
	    case DIALOG_MODELID:
1201
	    {
1202
	        if(response)
1203
	        {
1204
	            if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELID, DIALOG_STYLE_INPUT, "TDEditor - ModelID", "Insert the ModelID:", ">>", "X");
1205
	            if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELID, DIALOG_STYLE_INPUT, "TDEditor - ModelID", "Insert the ModelID:", ">>", "X");
1206
	            if(inputtext[0] < 0) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELID, DIALOG_STYLE_INPUT, "TDEditor - ModelID", "Insert the ModelID:", ">>", "X");
1207
				ProjectTD[EditIndex][ETextDrawModelid] = inputtext[0];
1208
				TextDrawSetPreviewModel(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawModelid]);
1209
				if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) TextDrawSetPreviewVehCol(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawVehCol1], ProjectTD[EditIndex][ETextDrawVehCol2]);
1210
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1211
				SelectTextDraw(ProjectEditor, -1);
1212
	            IsPSel = true;
1213
	        }
1214
	        else
1215
	        {
1216
	            SelectTextDraw(ProjectEditor, -1);
1217
				IsPSel = true;
1218
	        }
1219
	    }
1220
	    case DIALOG_CONFIRMEDELETE:
1221
	    {
1222
	        if(response)
1223
	        {
1224
	            if(EditIndex == INVALID_INDEX_ID) return false;
1225
             	new string[128];
1226
                format(string, sizeof(string), "{e2b960}TDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}removed.", EditIndex);
1227
                SendClientMessage(ProjectEditor, -1, string);
1228
1229
	            RemoveTextDrawTDE(EditIndex);
1230
	            SelectTextDraw(ProjectEditor, -1);
1231
	            IsPSel = true;
1232
	        }
1233
	        else
1234
			{
1235
				SelectTextDraw(ProjectEditor, -1);
1236
				IsPSel = true;
1237
			}
1238
	    }
1239
	    case DIALOG_SIZEX:
1240
		{
1241
            if(response)
1242
			{
1243
			    new Float:SizeX;
1244
			    if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_SIZEX, DIALOG_STYLE_INPUT, "TDEditor - TextSizeX", "Enter the value of TextSizeX:\nNote: to put a decimal value use '.' instead of ',' for example: '18 .8 '", ">>", "X");
1245
	            if(sscanf(inputtext, "f", SizeX)) return ShowPlayerDialog(ProjectEditor, DIALOG_SIZEX, DIALOG_STYLE_INPUT, "TDEditor - TextSizeX", "Enter the value of TextSizeX:\nNote: to put a decimal value use '.' instead of ',' for example: '18 .8 '", ">>", "X");
1246
				ProjectTD[EditIndex][ETextDrawTextX] = SizeX;
1247
	            TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
1248
	            TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1249
	            ShowPlayerDialog(ProjectEditor, DIALOG_SIZEY, DIALOG_STYLE_INPUT, "TDEditor - TextSizeY", "Enter the value of TextSizeY:\nNote: to put a decimal value use '.' instead of ',' for example: '10 .2 '", ">>", "<<");
1250
			}
1251
			else
1252
			{
1253
				SelectTextDraw(ProjectEditor, -1);
1254
				IsPSel = true;
1255
			}
1256
 		    return 1;
1257
	    }
1258
	    case DIALOG_SIZEY:
1259
	    {
1260
	        if(response)
1261
	        {
1262
	            new Float:SizeY;
1263
			    if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_SIZEY, DIALOG_STYLE_INPUT, "TDEditor - TextSizeY", "Enter the value of TextSizeY:\nNote: to put a decimal value use '.' instead of ',' for example: '10 .2 '", ">>", "<<");
1264
	            if(sscanf(inputtext, "f", SizeY)) return ShowPlayerDialog(ProjectEditor, DIALOG_SIZEY, DIALOG_STYLE_INPUT, "TDEditor - TextSizeY", "Enter the value of TextSizeY:\nNote: to put a decimal value use '.' instead of ',' for example: '10 .2 '", ">>", "<<");
1265
				ProjectTD[EditIndex][ETextDrawTextY] = SizeY;
1266
	            TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
1267
	            TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1268
	            SelectTextDraw(ProjectEditor, -1);
1269
	            IsPSel = true;
1270
	        }
1271
	        else ShowPlayerDialog(ProjectEditor, DIALOG_SIZEX, DIALOG_STYLE_INPUT, "TDEditor - TextSizeX", "Enter the value of TextSizeX:\nNote: to put a decimal value use '.' instead of ',' for example: '18 .8 '", ">>", "X");
1272
	    }
1273
	    case DIALOG_EDITOUTLINE:
1274
	    {
1275
	        if(response)
1276
	        {
1277
	            if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITOUTLINE, DIALOG_STYLE_INPUT, "TDEditor - Outline", "Insert an integer value for the outline.\n\n0 to remove the outline.", ">>", "X");
1278
	            if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITOUTLINE, DIALOG_STYLE_INPUT, "TDEditor - Outline", "Insert an integer value for the outline.\n\n0 to remove the outline.", ">>", "X");
1279
				//if(inputtext[0] < 0) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITOUTLINE, DIALOG_STYLE_INPUT, "TDEditor - Outline", "Insert an integer value for the outline.\n\n0 to remove the outline.", ">>", "X");
1280
                ProjectTD[EditIndex][ETextDrawOutline] = inputtext[0];
1281
				TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], inputtext[0]);
1282
	            TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1283
	            SelectTextDraw(ProjectEditor, -1);
1284
	            IsPSel = true;
1285
	        }
1286
	        else
1287
			{
1288
				SelectTextDraw(ProjectEditor, -1);
1289
				IsPSel = true;
1290
			}
1291
	    }
1292
	    case DIALOG_MODELS:
1293
	    {
1294
	        if(response)
1295
	        {
1296
	            switch(listitem)
1297
	            {
1298
	                case 0: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_MLD, DIALOG_STYLE_INPUT, "TDEditor - ModelID", "Insert the ModelID:", ">>", "<<");
1299
	                case 1: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RX, DIALOG_STYLE_INPUT, "TDEditor - RotX", "RotationX, to use a decimal use ',' \nFor example '.': '83 .4 ':", ">>", "<<");
1300
	                case 2: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RY, DIALOG_STYLE_INPUT, "TDEditor - RotY", "RotationY, to use a decimal use ',' \nFor example '.': '83 .4 ':", ">>", "<<");
1301
	                case 3: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RZ, DIALOG_STYLE_INPUT, "TDEditor - RotZ", "RotationZ, to use a decimal use ',' \nFor example '.': '83 .4 ':", ">>", "<<");
1302
	                case 4: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_ZO, DIALOG_STYLE_INPUT, "TDEditor - Zoom", "Zoom, to use a decimal use ',' \nFor example '.': '1 .4 ':", ">>", "<<");
1303
	                case 5: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C1, DIALOG_STYLE_INPUT, "TDEditor - Vehicle Color 1", "Insert vehicle color 1:", ">>", "<<");
1304
	                case 6: ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C2, DIALOG_STYLE_INPUT, "TDEditor - Vehicle Color 2", "Insert vehicle color 2:", ">>", "<<");
1305
	            }
1306
	        }
1307
	        else
1308
	        {
1309
	            SelectTextDraw(ProjectEditor, -1);
1310
				IsPSel = true;
1311
	        }
1312
	    }
1313
	    case DIALOG_MODELS_MLD:
1314
	    {
1315
	        if(response)
1316
	        {
1317
	            if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_MLD, DIALOG_STYLE_INPUT, "TDEditor - ModelID", "Insert the ModelID:", ">>", "<<");
1318
	            if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_MLD, DIALOG_STYLE_INPUT, "TDEditor - ModelID", "Insert the ModelID:", ">>", "<<");
1319
	            if(inputtext[0] < 0) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_MLD, DIALOG_STYLE_INPUT, "TDEditor - ModelID", "Insert the ModelID:", ">>", "<<");
1320
				ProjectTD[EditIndex][ETextDrawModelid] = inputtext[0];
1321
				TextDrawSetPreviewModel(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawModelid]);
1322
				if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) TextDrawSetPreviewVehCol(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawVehCol1], ProjectTD[EditIndex][ETextDrawVehCol2]);
1323
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1324
				SelectTextDraw(ProjectEditor, -1);
1325
	            IsPSel = true;
1326
	        }
1327
	        else
1328
			{
1329
			    if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
1330
				else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
1331
			}
1332
		}
1333
	    case DIALOG_MODELS_RX:
1334
	    {
1335
	        if(response)
1336
	        {
1337
	            new Float:coord;
1338
	            if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RX, DIALOG_STYLE_INPUT, "TDEditor - RotX", "RotationX, to use a decimal use ',' \nFor example '.': '83 .4 ':", ">>", "<<");
1339
	            if(sscanf(inputtext, "f", coord)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RX, DIALOG_STYLE_INPUT, "TDEditor - RotX", "RotationX, to use a decimal use ',' \nFor example '.': '83 .4 ':", ">>", "<<");
1340
				ProjectTD[EditIndex][ETextDrawRotX] = coord;
1341
				TextDrawSetPreviewRot(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawRotX], ProjectTD[EditIndex][ETextDrawRotY], ProjectTD[EditIndex][ETextDrawRotZ], ProjectTD[EditIndex][ETextDrawZoom]);
1342
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1343
				SelectTextDraw(ProjectEditor, -1);
1344
	            IsPSel = true;
1345
	        }
1346
	        else
1347
			{
1348
			    if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
1349
				else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
1350
			}
1351
		}
1352
	    case DIALOG_MODELS_RY:
1353
	    {
1354
	        if(response)
1355
	        {
1356
	            new Float:coord;
1357
	            if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RY, DIALOG_STYLE_INPUT, "TDEditor - RotY", "RotationY, to use a decimal use ',' \nFor example '.': '83 .4 ':", ">>", "<<");
1358
	            if(sscanf(inputtext, "f", coord)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RY, DIALOG_STYLE_INPUT, "TDEditor - RotY", "RotationY, to use a decimal use ',' \nFor example '.': '83 .4 ':", ">>", "<<");
1359
				ProjectTD[EditIndex][ETextDrawRotY] = coord;
1360
				TextDrawSetPreviewRot(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawRotX], ProjectTD[EditIndex][ETextDrawRotY], ProjectTD[EditIndex][ETextDrawRotZ], ProjectTD[EditIndex][ETextDrawZoom]);
1361
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1362
				SelectTextDraw(ProjectEditor, -1);
1363
	            IsPSel = true;
1364
	        }
1365
	        else
1366
			{
1367
			    if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
1368
				else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
1369
			}
1370
		}
1371
	    case DIALOG_MODELS_RZ:
1372
	    {
1373
	        if(response)
1374
	        {
1375
	            new Float:coord;
1376
	            if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RZ, DIALOG_STYLE_INPUT, "TDEditor - RotZ", "RotationZ, to use a decimal use ',' \nFor example '.': '83 .4 ':", ">>", "<<");
1377
	            if(sscanf(inputtext, "f", coord)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_RZ, DIALOG_STYLE_INPUT, "TDEditor - RotZ", "RotationZ, to use a decimal use ',' \nFor example '.': '83 .4 ':", ">>", "<<");
1378
				ProjectTD[EditIndex][ETextDrawRotZ] = coord;
1379
				TextDrawSetPreviewRot(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawRotX], ProjectTD[EditIndex][ETextDrawRotY], ProjectTD[EditIndex][ETextDrawRotZ], ProjectTD[EditIndex][ETextDrawZoom]);
1380
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1381
				SelectTextDraw(ProjectEditor, -1);
1382
	            IsPSel = true;
1383
	        }
1384
	        else
1385
			{
1386
			    if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
1387
				else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
1388
			}
1389
		}
1390
	    case DIALOG_MODELS_ZO:
1391
	    {
1392
	        if(response)
1393
	        {
1394
	            new Float:coord;
1395
	            if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_ZO, DIALOG_STYLE_INPUT, "TDEditor - Zoom", "Zoom, to use a decimal use ',' \nFor example '.': '1 .4 ':", ">>", "<<");
1396
	            if(sscanf(inputtext, "f", coord)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_ZO, DIALOG_STYLE_INPUT, "TDEditor - Zoom", "Zoom, to use a decimal use ',' \nFor example '.': '1 .4 ':", ">>", "<<");
1397
				ProjectTD[EditIndex][ETextDrawZoom] = coord;
1398
				TextDrawSetPreviewRot(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawRotX], ProjectTD[EditIndex][ETextDrawRotY], ProjectTD[EditIndex][ETextDrawRotZ], ProjectTD[EditIndex][ETextDrawZoom]);
1399
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1400
				SelectTextDraw(ProjectEditor, -1);
1401
	            IsPSel = true;
1402
	        }
1403
	        else
1404
			{
1405
			    if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
1406
				else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
1407
			}
1408
		}
1409
		case DIALOG_MODELS_C1:
1410
	    {
1411
	        if(response)
1412
	        {
1413
	            if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C1, DIALOG_STYLE_INPUT, "TDEditor - Vehicle Color 1", "Insert vehicle color 1:", ">>", "<<");
1414
	            if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C1, DIALOG_STYLE_INPUT, "TDEditor - Vehicle Color 1", "Insert vehicle color 1:", ">>", "<<");
1415
				ProjectTD[EditIndex][ETextDrawVehCol1] = inputtext[0];
1416
				TextDrawSetPreviewVehCol(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawVehCol1], ProjectTD[EditIndex][ETextDrawVehCol2]);
1417
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1418
				SelectTextDraw(ProjectEditor, -1);
1419
	            IsPSel = true;
1420
	        }
1421
	        else
1422
			{
1423
			    if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
1424
				else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
1425
			}
1426
		}
1427
		case DIALOG_MODELS_C2:
1428
	    {
1429
	        if(response)
1430
	        {
1431
	            if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C2, DIALOG_STYLE_INPUT, "TDEditor - Vehicle Color 2", "Insert vehicle color 2:", ">>", "<<");
1432
	            if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_MODELS_C2, DIALOG_STYLE_INPUT, "TDEditor - Vehicle Color 2", "Insert vehicle color 2:", ">>", "<<");
1433
				ProjectTD[EditIndex][ETextDrawVehCol2] = inputtext[0];
1434
				TextDrawSetPreviewVehCol(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawVehCol1], ProjectTD[EditIndex][ETextDrawVehCol2]);
1435
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1436
				SelectTextDraw(ProjectEditor, -1);
1437
	            IsPSel = true;
1438
	        }
1439
	        else
1440
			{
1441
			    if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
1442
				else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
1443
			}
1444
		}
1445
	    case DIALOG_EDITSHADOW:
1446
	    {
1447
	        if(response)
1448
	        {
1449
	            if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITSHADOW, DIALOG_STYLE_INPUT, "TDEditor - Shadow", "Insert an integer value for the shadow.\n\n0 to remove the shadow.", ">>", "X");
1450
	            if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITSHADOW, DIALOG_STYLE_INPUT, "TDEditor - Shadow", "Insert an integer value for the shadow.\n\n0 to remove the shadow.", ">>", "X");
1451
				//if(inputtext[0] < 0) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITOUTLINE, DIALOG_STYLE_INPUT, "TDEditor - Outline", "Insert an integer value for the outline.\n\n0 to remove the outline.", ">>", "X");
1452
                ProjectTD[EditIndex][ETextDrawShadow] = inputtext[0];
1453
				TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], inputtext[0]);
1454
	            TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1455
	            SelectTextDraw(ProjectEditor, -1);
1456
	            IsPSel = true;
1457
	        }
1458
	        else
1459
			{
1460
				SelectTextDraw(ProjectEditor, -1);
1461
				IsPSel = true;
1462
			}
1463
	    }
1464
	    case DIALOG_LETTERX:
1465
	    {
1466
			if(response)
1467
			{
1468
			    new Float:LetterSizeX;
1469
			    if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_LETTERX, DIALOG_STYLE_INPUT, "TDEditor - LetterSizeX", "Insert the value of LetteSizeX:\nNote: to insert a decimal value use '.' instead of ',' for example '0.4'", ">>", "X");
1470
	            if(sscanf(inputtext, "f", LetterSizeX)) return ShowPlayerDialog(ProjectEditor, DIALOG_LETTERX, DIALOG_STYLE_INPUT, "TDEditor - LetterSizeX", "Insert the value of LetteSizeX:\nNote: to insert a decimal value use '.' instead of ',' for example '0.4'", ">>", "X");
1471
				ProjectTD[EditIndex][ETextDrawLetterX] = LetterSizeX;
1472
	            TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
1473
	            TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1474
	            ShowPlayerDialog(ProjectEditor, DIALOG_LETTERY, DIALOG_STYLE_INPUT, "TDEditor - LetterSizeY", "Insert the value of LetteSizeY:\nNote: to insert a decimal value use '.' instead of ',' for example '0.4'", ">>", "<<");
1475
			}
1476
			else
1477
			{
1478
				SelectTextDraw(ProjectEditor, -1);
1479
				IsPSel = true;
1480
			}
1481
	    }
1482
	    case DIALOG_LETTERY:
1483
	    {
1484
			if(response)
1485
			{
1486
			    new Float:LetterSizeY;
1487
			    if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_LETTERY, DIALOG_STYLE_INPUT, "TDEditor - LetterSizeY", "Insert the value of LetteSizeY:\nNote: to insert a decimal value use '.' instead of ',' for example '0.4'", ">>", "X");
1488
	            if(sscanf(inputtext, "f", LetterSizeY)) return ShowPlayerDialog(ProjectEditor, DIALOG_LETTERY, DIALOG_STYLE_INPUT, "TDEditor - LetterSizeY", "Insert the value of LetteSizeY:\nNote: to insert a decimal value use '.' instead of ',' for example '0.4'", ">>", "X");
1489
				ProjectTD[EditIndex][ETextDrawLetterY] = LetterSizeY;
1490
	            TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
1491
	            TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1492
	            SelectTextDraw(ProjectEditor, -1);
1493
	            IsPSel = true;
1494
			}
1495
			else ShowPlayerDialog(ProjectEditor, DIALOG_LETTERX, DIALOG_STYLE_INPUT, "TDEditor - LetterSizeX", "Insert the value of LetteSizeX:\nNote: to insert a decimal value use '.' instead of ',' for example '0.4'", ">>", "X");
1496
	    }
1497
	    case DIALOG_POSX:
1498
	    {
1499
			if(response)
1500
			{
1501
			    new Float:LetterSizeX;
1502
			    if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_POSX, DIALOG_STYLE_INPUT, "TDEditor - PositionX", "Insert the value of PositionX:\nNote: to insert a decimal value use '.' instead of ',' for example '298.73'", ">>", "X");
1503
	            if(sscanf(inputtext, "f", LetterSizeX)) return ShowPlayerDialog(ProjectEditor, DIALOG_POSX, DIALOG_STYLE_INPUT, "TDEditor - PositionX", "Insert the value of PositionX:\nNote: to insert a decimal value use '.' instead of ',' for example '298.73'", ">>", "X");
1504
				ProjectTD[EditIndex][ETextDrawPosX] = LetterSizeX;
1505
	            TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
1506
	            TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1507
	            ShowPlayerDialog(ProjectEditor, DIALOG_POSY, DIALOG_STYLE_INPUT, "TDEditor - PositionY", "Insert the value of PositionY:\nNote: to insert a decimal value use '.' instead of ',' for example '32.3'", ">>", "X");
1508
			}
1509
			else
1510
			{
1511
				SelectTextDraw(ProjectEditor, -1);
1512
				IsPSel = true;
1513
			}
1514
	    }
1515
	    case DIALOG_POSY:
1516
	    {
1517
			if(response)
1518
			{
1519
			    new Float:LetterSizeY;
1520
			    if(!strlen(inputtext)) return ShowPlayerDialog(ProjectEditor, DIALOG_POSY, DIALOG_STYLE_INPUT, "TDEditor - PositionY", "Insert the value of PositionY:\nNote: to insert a decimal value use '.' instead of ',' for example '32.3'", ">>", "X");
1521
	            if(sscanf(inputtext, "f", LetterSizeY)) return ShowPlayerDialog(ProjectEditor, DIALOG_POSY, DIALOG_STYLE_INPUT, "TDEditor - PositionY", "Insert the value of PositionY:\nNote: to insert a decimal value use '.' instead of ',' for example '32.3'", ">>", "X");
1522
				ProjectTD[EditIndex][ETextDrawPosY] = LetterSizeY;
1523
	            TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
1524
	            TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1525
	            SelectTextDraw(ProjectEditor, -1);
1526
	            IsPSel = true;
1527
			}
1528
			else ShowPlayerDialog(ProjectEditor, DIALOG_POSX, DIALOG_STYLE_INPUT, "TDEditor - PositionX", "Insert the value of PositionX:\nNote: to insert a decimal value use '.' instead of ',' for example '298.73'", ">>", "X");
1529
	    }
1530
	    case DIALOG_EDITCOLOR:
1531
		{
1532
		    if(response)
1533
		    {
1534
		        switch(listitem)
1535
		        {
1536
		            case 0:
1537
		            {
1538
                        new str[1024];
1539
						Loop(0, sizeof(PremadeColors))
1540
						{
1541
						    format(str, sizeof(str), "%s{%06x}%s\n", str, PremadeColors[c][0] >>> 8, PremadeColors[c][1]);
1542
						}
1543
						ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+100, DIALOG_STYLE_LIST, "TDEditor - BG/Box/Color", str, ">>", "<<");
1544
		            }
1545
		            case 1: ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+101, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "Insert the color in HEX RRGGBBAA formar, for example: FF0000FF", ">>", "<<");
1546
		            case 2: ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+102, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Red", ">>", "<<");
1547
		        }
1548
		    }
1549
		    else
1550
			{
1551
				EditMode = EDITMODE_NONE;
1552
				SelectTextDraw(ProjectEditor, -1);
1553
				IsPSel = true;
1554
			}
1555
		}
1556
		case DIALOG_EDITCOLOR+100:
1557
		{
1558
		    if(response)
1559
		    {
1560
		        switch(EditMode)
1561
		        {
1562
		        	case EDITMODE_COLOR:
1563
					{
1564
						ProjectTD[EditIndex][ETextDrawColor] = PremadeColors[listitem][0];
1565
		        		TextDrawColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawColor]);
1566
					}
1567
					case EDITMODE_BGCOLOR:
1568
					{
1569
						ProjectTD[EditIndex][ETextDrawBGColor] = PremadeColors[listitem][0];
1570
		        		TextDrawBackgroundColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBGColor]);
1571
					}
1572
					case EDITMODE_BOXCOLOR:
1573
					{
1574
						ProjectTD[EditIndex][ETextDrawBoxColor] = PremadeColors[listitem][0];
1575
		        		TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBoxColor]);
1576
					}
1577
				}
1578
				EditMode = EDITMODE_NONE;
1579
		        TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1580
		        SelectTextDraw(ProjectEditor, -1);
1581
		        IsPSel = true;
1582
		    }
1583
		    else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "TDEditor - BG/Box/Color", "Main colors\nWrite the exact value (HEX)\nColor combinator (RGBA)", ">>", "X");
1584
		}
1585
		case DIALOG_EDITCOLOR+101:
1586
		{
1587
		    if(response)
1588
		    {
1589
		        if(strlen(inputtext) < 8) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+101, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "Insert the color in HEX RRGGBBAA formar, for example: FF0000FF", ">>", "<<");
1590
		        
1591
				if(inputtext[0] == '0' && inputtext[1] == 'x') Colors[0] = HexToInt(inputtext[2]); 
1592
				if(inputtext[0] == '#') Colors[0] = HexToInt(inputtext[1]);
1593
		        else Colors[0] = HexToInt(inputtext);
1594
		        switch(EditMode)
1595
		        {
1596
			        case EDITMODE_COLOR:
1597
					{
1598
						ProjectTD[EditIndex][ETextDrawColor] = Colors[0];
1599
		        		TextDrawColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawColor]);
1600
					}
1601
					case EDITMODE_BGCOLOR:
1602
					{
1603
						ProjectTD[EditIndex][ETextDrawBGColor] = Colors[0];
1604
		        		TextDrawBackgroundColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBGColor]);
1605
					}
1606
					case EDITMODE_BOXCOLOR:
1607
					{
1608
						ProjectTD[EditIndex][ETextDrawBoxColor] = Colors[0];
1609
		        		TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBoxColor]);
1610
					}
1611
				}
1612
				EditMode = EDITMODE_NONE;
1613
		        TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1614
		        SelectTextDraw(ProjectEditor, -1);
1615
		        IsPSel = true;
1616
		    }
1617
		    else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "TDEditor - BG/Box/Color", "Main colors\nWrite the exact value (HEX)\nColor combinator (RGBA)", ">>", "X");
1618
		}
1619
		case DIALOG_EDITCOLOR+102:
1620
		{
1621
			if(response)
1622
			{
1623
			    if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+102, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Red", ">>", "<<");
1624
			    if(inputtext[0] < 0 || inputtext[0] > 255) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+102, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Red", ">>", "<<");
1625
			    Colors[0] = inputtext[0];
1626
			    ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+103, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Green", ">>", "<<");
1627
			}
1628
			else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "TDEditor - BG/Box/Color", "Main colors\nWrite the exact value (HEX)\nColor combinator (RGBA)", ">>", "X");
1629
		}
1630
		case DIALOG_EDITCOLOR+103:
1631
		{
1632
			if(response)
1633
			{
1634
			    if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+103, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Green", ">>", "X");
1635
			    if(inputtext[0] < 0 || inputtext[0] > 255) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+103, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Green", ">>", "X");
1636
			    Colors[1] = inputtext[0];
1637
			    ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+104, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Blue", ">>", "<<");
1638
			}
1639
			else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+102, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Red", ">>", "<<");
1640
		}
1641
		case DIALOG_EDITCOLOR+104:
1642
		{
1643
			if(response)
1644
			{
1645
			    if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+104, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Blue", ">>", "X");
1646
			    if(inputtext[0] < 0 || inputtext[0] > 255) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+104, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Blue", ">>", "X");
1647
			    Colors[2] = inputtext[0];
1648
			    ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+105, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Alpha", ">>", "<<");
1649
			}
1650
			else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+103, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Green", ">>", "<<");
1651
		}
1652
		case DIALOG_EDITCOLOR+105:
1653
		{
1654
			if(response)
1655
			{
1656
			    if(sscanf(inputtext, "d", inputtext[0])) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+105, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Alpha", ">>", "<<");
1657
			    if(inputtext[0] < 0 || inputtext[0] > 255) return ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+105, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Alpha", ">>", "<<");
1658
			    Colors[3] = inputtext[0];
1659
			    new color = RGB(Colors[0], Colors[1], Colors[2], Colors[3]);
1660
			    switch(EditMode)
1661
		        {
1662
			        case EDITMODE_COLOR:
1663
					{
1664
						ProjectTD[EditIndex][ETextDrawColor] = color;
1665
		        		TextDrawColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawColor]);
1666
					}
1667
					case EDITMODE_BGCOLOR:
1668
					{
1669
						ProjectTD[EditIndex][ETextDrawBGColor] = color;
1670
		        		TextDrawBackgroundColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBGColor]);
1671
					}
1672
					case EDITMODE_BOXCOLOR:
1673
					{
1674
						ProjectTD[EditIndex][ETextDrawBoxColor] = color;
1675
		        		TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBoxColor]);
1676
					}
1677
				}
1678
				EditMode = EDITMODE_NONE;
1679
		        TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
1680
		        SelectTextDraw(ProjectEditor, -1);
1681
		        IsPSel = true;
1682
			}
1683
			else ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR+104, DIALOG_STYLE_INPUT, "TDEditor - BG/Box/Color", "0 to 255, enter the amount of Blue", ">>", "<<");
1684
		}
1685
	}
1686
	return false;
1687
}
1688
1689
public OnPlayerClickTextDraw(playerid, Text:clickedid)
1690
{
1691
	if(clickedid == Text:INVALID_TEXT_DRAW)
1692
	{
1693
	    if(!EditorEnabled && ProjectEditor == -1)
1694
	    {
1695
	        if(!IsPSel) return false;
1696
	    	TogglePlayerControllable(playerid, true);
1697
	    	TextDrawHideForPlayer(playerid, TDELOGO);
1698
	        DestroyMenuTextDraws();
1699
	        MouseCursor = false;
1700
	        SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}TDEditor closed.");
1701
	        return 1;
1702
	    }
1703
	}
1704
	if(clickedid == TDELOGO)
1705
	{
1706
	    if(!IsPSel) return false;
1707
	    IsPSel = false;
1708
	    TextDrawHideForPlayer(playerid, TDELOGO);
1709
	    CancelSelectTextDraw(playerid);
1710
	    ShowPlayerDialog(playerid, DIALOG_PROJECT, DIALOG_STYLE_LIST, "TDEditor", "Create a new project\nLoad a project\nClose project", ">>", "X");
1711
        SendClientMessage(playerid, -1, "{e2b960}TDEditor: {FFFFFF}TDEditor started, if you need help you can use /tde help...");
1712
		return 1;
1713
	}
1714
	
1715
	if(!EditorEnabled || ProjectEditor != playerid) return false;
1716
	if(EditMode == EDITMODE_ADJUST) return false;
1717
	if(clickedid == Text:INVALID_TEXT_DRAW)
1718
	{
1719
	    if(!IsPSel) return false;
1720
		if(MouseCursor) SelectTextDraw(playerid, -1);
1721
	    return 1;
1722
	}
1723
	if(clickedid == TDE_Menu[1])
1724
	{
1725
	    if(EditIndex == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "Error");
1726
	    if(EditMode == EDITMODE_COLOR || EditMode == EDITMODE_BGCOLOR || EditMode == EDITMODE_BOXCOLOR || EditMode == EDITMODE_MODELS)
1727
	    {
1728
	        if(!CursorX && (0 < CursorY < (ScreenHeight - 1)) ) return 1;
1729
	        if(CursorX == (ScreenWidth - 1) && (0 < CursorY < (ScreenHeight - 1)) ) return 1;
1730
	        if(CursorY == (ScreenHeight - 1) && (0 < CursorX < (ScreenWidth - 1)) ) return 1;
1731
	    }
1732
	    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
1733
	    EditMode = EDITMODE_NONE;
1734
	    IsPSel = false;
1735
	    CancelSelectTextDraw(ProjectEditor);
1736
	    //CheckManageDialog();
1737
     	new d, c, e = -1, dialog[310], str[31];
1738
	    for (d = PageStart; d < MAX_PROJECT_TEXTDRAWS; d++)
1739
		{
1740
		    if(ProjectTD[d][ItsFromTDE] == 1)
1741
		    {
1742
			    e = 1;
1743
				BackManageDialog[c] = 0;
1744
				c ++;
1745
				if(c == 11)
1746
				{
1747
					if(PageStart >= 10)
1748
				    {
1749
						format(str, 30, ">>\n");
1750
						strcat(dialog, str);
1751
					}
1752
					else
1753
					{
1754
					    format(str, 30, ">>");
1755
					    strcat(dialog, str);
1756
					}
1757
					break;
1758
				}
1759
				if(TextDrawGetFont(ProjectTD[d][ETextDrawID]) == 5) format(str, 31, "%s(%i)ModelPreview: %d\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawModelid]);
1760
				else format(str, 31, "%s(%i)%s\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawText]);
1761
				if(strlen(str) >= 30)
1762
				{
1763
					strdel(str, 28, 30);
1764
					strcat(str, "\n");
1765
				}
1766
				strcat(dialog, str);
1767
			}
1768
		}
1769
		if(PageStart >= 10)
1770
		{
1771
		    BackManageDialog[c] = 1;
1772
			format(str, 30, "<<");
1773
			strcat(dialog, str);
1774
		}
1775
		if(e == -1)
1776
		{
1777
		    
1778
		    new d1, c1, e1 = -1, dialog1[310], str1[31], DC = PageStart - 10;
1779
		    for (d1 = DC; d1 < DC+11; d1++)
1780
			{
1781
			    if(ProjectTD[d1][ItsFromTDE] == 1)
1782
			    {
1783
				    e1 = 1;
1784
					
1785
					BackManageDialog[c] = 0;
1786
					c1 ++;
1787
					if(c1 == 11)
1788
					{
1789
					    if(DC >= 10)
1790
					    {
1791
							format(str1, 30, ">>\n");
1792
							strcat(dialog1, str1);
1793
						}
1794
						else
1795
						{
1796
						    format(str1, 30, ">>");
1797
						    strcat(dialog1, str1);
1798
						}
1799
						break;
1800
					}
1801
					if(TextDrawGetFont(ProjectTD[d][ETextDrawID]) == 5) format(str1, 31, "%s(%i)ModelPreview: %d\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawModelid]);
1802
					else format(str1, 31, "%s(%i)%s\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawText]);
1803
					
1804
					if(strlen(str1) >= 30)
1805
					{
1806
						strdel(str1, 28, 30);
1807
						strcat(str1, "\n");
1808
					}
1809
					strcat(dialog1, str1);
1810
				}
1811
			}
1812
			if(DC >= 10)
1813
			{
1814
			    BackManageDialog[c1] = 1;
1815
			    format(str1, 30, "<<");
1816
				strcat(dialog1, str1);
1817
			}
1818
			if(e1 == -1) return SelectTextDraw(ProjectEditor, -1), IsPSel = true, SendClientMessage(ProjectEditor, -1, "Error");
1819
			PageStart -= 10;
1820
		    ShowPlayerDialog(ProjectEditor, DIALOG_MANAGE, DIALOG_STYLE_LIST, "TDEditor - Manage", dialog1, ">>", "X");
1821
		    IsPSel = false;
1822
		    return 1;
1823
		}
1824
		ShowPlayerDialog(ProjectEditor, DIALOG_MANAGE, DIALOG_STYLE_LIST, "TDEditor - Manage", dialog, ">>", "X");
1825
		IsPSel = false;
1826
	}
1827
	if(clickedid == TDE_Menu[2])
1828
	{
1829
        new Index = GetAvailableIndex();
1830
		if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}You can't create more TextDraws.");
1831
      	EditIndex = Index;
1832
1833
      	if(EditIndex == 0)
1834
      	{
1835
       		Loop(1, sizeof(TDE_Menu))
1836
		    {
1837
				TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
1838
				TextDrawSetSelectable(TDE_Menu[c], true);
1839
		        TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
1840
		    }
1841
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
1842
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
1843
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
1844
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
1845
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
1846
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
1847
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
1848
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
1849
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
1850
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
1851
      	}
1852
1853
		ProjectTD[Index][ETextDrawID] = TextDrawCreate(290.0, 190.0, "TDEditor");
1854
		TextDrawLetterSize(ProjectTD[Index][ETextDrawID], 0.4, 1.6);
1855
		TextDrawAlignment(ProjectTD[Index][ETextDrawID], 1);
1856
		TextDrawColor(ProjectTD[Index][ETextDrawID], -1);
1857
		TextDrawUseBox(ProjectTD[Index][ETextDrawID], 0);
1858
		TextDrawSetShadow(ProjectTD[Index][ETextDrawID], 0);
1859
		TextDrawSetOutline(ProjectTD[Index][ETextDrawID], 0);
1860
		TextDrawBackgroundColor(ProjectTD[Index][ETextDrawID], 255);
1861
		TextDrawFont(ProjectTD[Index][ETextDrawID], 1);
1862
		TextDrawSetProportional(ProjectTD[Index][ETextDrawID], 1);
1863
		TextDrawShowForPlayer(ProjectEditor, ProjectTD[Index][ETextDrawID]);
1864
		
1865
1866
	    ProjectTD[EditIndex][ItsFromTDE] = 1;
1867
	    format(ProjectTD[EditIndex][ETextDrawText], 800, "TDEditor");
1868
		ProjectTD[EditIndex][ETextDrawPosX] = 290.0;
1869
		ProjectTD[EditIndex][ETextDrawPosY] = 190.0;
1870
		ProjectTD[EditIndex][ETextDrawLetterX] = 0.4;
1871
		ProjectTD[EditIndex][ETextDrawLetterY] = 1.6;
1872
		ProjectTD[EditIndex][ETextDrawColor] = 0xFFFFFFFF;
1873
		ProjectTD[EditIndex][ETextDrawBGColor] = 0x000000FF;
1874
		ProjectTD[EditIndex][ETextDrawBoxColor] = 0x000000FF;
1875
		
1876
		new string[128];
1877
        format(string, sizeof(string), "{e2b960}TDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}created.", EditIndex);
1878
        SendClientMessage(ProjectEditor, -1, string);
1879
        UpdateIcons(EditIndex);
1880
        
1881
        if(EditMode == EDITMODE_MODELS)
1882
        {
1883
            TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
1884
	    	EditMode = EDITMODE_NONE;
1885
        }
1886
	    return 1;
1887
	}
1888
	if(EditIndex == INVALID_INDEX_ID) return false;
1889
	if(clickedid == TDE_Menu[3])
1890
	{
1891
	    IsPSel = false;
1892
		CancelSelectTextDraw(ProjectEditor);
1893
		TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
1894
		EditMode = EDITMODE_NONE;
1895
	    ShowPlayerDialog(ProjectEditor, DIALOG_CONFIRMEDELETE, DIALOG_STYLE_MSGBOX, "TDEditor - Remove TextDraw", "Are you sure you want to delete this TextDraw?", "Remove", "X");
1896
	    IsPSel = false;
1897
	    return 1;
1898
	}
1899
	if(clickedid == TDE_Menu[4])
1900
	{
1901
	    ExportProject();
1902
	    return 1;
1903
	}
1904
	if(clickedid == TDE_Menu[8])
1905
	{
1906
        new Index = GetAvailableIndex();
1907
		if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}You can't create more TextDraws.");
1908
		DuplicateTextDraw(EditIndex, Index);
1909
		
1910
		new string[128];
1911
        format(string, sizeof(string), "{e2b960}TDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}was duplicated on TextDraw{e2b960} #%d.", EditIndex, Index);
1912
        SendClientMessage(ProjectEditor, -1, string);
1913
      	EditIndex = Index;
1914
	    return 1;
1915
	}
1916
	if(clickedid == TDE_Menu[9])
1917
	{
1918
		if(EditMode != EDITMODE_POSITION)
1919
		{
1920
			TextDrawSetString(TD_Status, "EditMode: EDITMODE_POSITION");
1921
			EditMode = EDITMODE_POSITION;
1922
		}
1923
		else TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE"), EditMode = EDITMODE_NONE;
1924
		return 1;
1925
	}
1926
	if(clickedid == TDE_Menu[10])
1927
	{
1928
	    if(EditMode != EDITMODE_SIZE)
1929
		{
1930
			TextDrawSetString(TD_Status, "EditMode: EDITMODE_SIZE");
1931
			EditMode = EDITMODE_SIZE;
1932
		}
1933
		else TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE"), EditMode = EDITMODE_NONE;
1934
		return 1;
1935
	}
1936
	if(clickedid == TDE_Menu[11] || clickedid == TDE_Menu[35])
1937
	{
1938
 		/*if((GetTickCount() - DoubleClickCount) <= 180)
1939
 		{
1940
 		    ShowPlayerDialog(ProjectEditor, DIALOG_EDITTEXT, DIALOG_STYLE_INPUT, "TDEditor - Español", "Introduzca el texto aquí:", ">>", "X");
1941
 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
1942
 		    EditMode = EDITMODE_NONE;
1943
 		    IsPSel = false;
1944
 		    CancelSelectTextDraw(ProjectEditor);
1945
 		    return 1;
1946
 		}
1947
	    DoubleClickCount = GetTickCount();
1948
	    */
1949
	    if(TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5)
1950
	    {
1951
	        IsPSel = false;
1952
			CancelSelectTextDraw(ProjectEditor);
1953
			TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
1954
			EditMode = EDITMODE_NONE;
1955
		    ShowPlayerDialog(ProjectEditor, DIALOG_MODELID, DIALOG_STYLE_INPUT, "TDEditor - ModelID", "Insert the ModelID:", ">>", "X");
1956
	        return 1;
1957
	    }
1958
		if(EditMode != EDITMODE_TEXT)
1959
		{
1960
			TextDrawSetString(TD_Status, "EditMode: EDITMODE_TEXT");
1961
			EditMode = EDITMODE_TEXT;
1962
	    }
1963
		else TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE"), EditMode = EDITMODE_NONE;
1964
		return 1;
1965
	}
1966
	if(clickedid == TDE_Menu[14])
1967
	{
1968
	    if(EditMode != EDITMODE_COLOR)
1969
		{
1970
	    	TextDrawSetString(TD_Status, "EditMode: EDITMODE_COLOR");
1971
	    	EditMode = EDITMODE_COLOR;
1972
		}
1973
		else
1974
		{
1975
		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
1976
	    	EditMode = EDITMODE_NONE;
1977
		}
1978
	    return 1;
1979
	}
1980
	if(clickedid == TDE_Menu[15])
1981
	{
1982
	    if(EditMode != EDITMODE_BGCOLOR)
1983
		{
1984
	    	TextDrawSetString(TD_Status, "EditMode: EDITMODE_BGCOLOR");
1985
	    	EditMode = EDITMODE_BGCOLOR;
1986
		}
1987
		else
1988
		{
1989
		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
1990
	    	EditMode = EDITMODE_NONE;
1991
		}
1992
	    return 1;
1993
	}
1994
	if(clickedid == TDE_Menu[32])
1995
	{
1996
	    if(EditMode != EDITMODE_BOXCOLOR)
1997
		{
1998
	    	TextDrawSetString(TD_Status, "EditMode: EDITMODE_BOXCOLOR");
1999
	    	EditMode = EDITMODE_BOXCOLOR;
2000
		}
2001
		else
2002
		{
2003
		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2004
	    	EditMode = EDITMODE_NONE;
2005
		}
2006
	    return 1;
2007
	}
2008
	if(clickedid == TDE_Menu[16])
2009
	{
2010
	    if(EditMode != EDITMODE_LETTERSIZE)
2011
		{
2012
	    	TextDrawSetString(TD_Status, "EditMode: EDITMODE_LETTERSIZE");
2013
	    	EditMode = EDITMODE_LETTERSIZE;
2014
		}
2015
		else
2016
		{
2017
		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2018
	    	EditMode = EDITMODE_NONE;
2019
		}
2020
	    return 1;
2021
	}
2022
	if(clickedid == TDE_Menu[17])
2023
	{
2024
	    if(EditMode != EDITMODE_OUTLINE)
2025
		{
2026
	    	TextDrawSetString(TD_Status, "EditMode: EDITMODE_OUTLINE");
2027
	    	EditMode = EDITMODE_OUTLINE;
2028
		}
2029
		else
2030
		{
2031
		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2032
	    	EditMode = EDITMODE_NONE;
2033
		}
2034
	    return 1;
2035
	}
2036
	if(clickedid == TDE_Menu[18])
2037
	{
2038
	    if(EditMode != EDITMODE_SHADOW)
2039
		{
2040
	    	TextDrawSetString(TD_Status, "EditMode: EDITMODE_SHADOW");
2041
	    	EditMode = EDITMODE_SHADOW;
2042
		}
2043
		else
2044
		{
2045
		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2046
	    	EditMode = EDITMODE_NONE;
2047
		}
2048
	    return 1;
2049
	}
2050
	if(clickedid == TDE_Menu[12] || clickedid == TDE_Menu[13] || clickedid == TDE_Menu[24] || clickedid == TDE_Menu[25] || clickedid == TDE_Menu[26] || clickedid == TDE_Menu[27])
2051
	{
2052
	    if(TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5)
2053
	    {
2054
	        if(EditMode != EDITMODE_MODELS)
2055
			{
2056
		 		Colors[0] = floatround(ProjectTD[EditIndex][ETextDrawRotX]);
2057
	            Colors[1] = floatround(ProjectTD[EditIndex][ETextDrawRotY]);
2058
	            Colors[2] = floatround(ProjectTD[EditIndex][ETextDrawRotZ]);
2059
	            Zoom = ProjectTD[EditIndex][ETextDrawZoom];
2060
	            
2061
		    	TextDrawSetString(TD_Status, "EditMode: EDITMODE_MODELS");
2062
		    	EditMode = EDITMODE_MODELS;
2063
			}
2064
			else
2065
			{
2066
			    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2067
		    	EditMode = EDITMODE_NONE;
2068
			}
2069
	        return 1;
2070
	    }
2071
	    new font = TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]);
2072
	    switch(font)
2073
	    {
2074
	        case 0:
2075
	        {
2076
	            TextDrawFont(ProjectTD[EditIndex][ETextDrawID], 1);
2077
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2078
				TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
2079
				TextDrawShowForPlayer(ProjectEditor, TDE_Menu[25]);
2080
	        }
2081
	        case 1:
2082
	        {
2083
	            TextDrawFont(ProjectTD[EditIndex][ETextDrawID], 2);
2084
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2085
				TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
2086
				TextDrawShowForPlayer(ProjectEditor, TDE_Menu[26]);
2087
	        }
2088
	        case 2:
2089
	        {
2090
	            TextDrawFont(ProjectTD[EditIndex][ETextDrawID], 3);
2091
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2092
				TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
2093
				TextDrawShowForPlayer(ProjectEditor, TDE_Menu[27]);
2094
	        }
2095
	        case 3:
2096
	        {
2097
	            TextDrawFont(ProjectTD[EditIndex][ETextDrawID], 0);
2098
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2099
				TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
2100
				TextDrawShowForPlayer(ProjectEditor, TDE_Menu[24]);
2101
	        }
2102
	    }
2103
	    return 1;
2104
	}
2105
    if(clickedid == TDE_Menu[19] || clickedid == TDE_Menu[20] || clickedid == TDE_Menu[34])
2106
	{
2107
		if(TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]))
2108
		{
2109
			TextDrawUseBox(ProjectTD[EditIndex][ETextDrawID], 0);
2110
			TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], 0);
2111
			TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2112
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
2113
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
2114
		}
2115
		else
2116
		{
2117
		    TextDrawUseBox(ProjectTD[EditIndex][ETextDrawID], 1);
2118
		    new alignment = TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
2119
		    if(ProjectTD[EditIndex][ETextDrawTextX] == 0.0)
2120
			{
2121
			    switch(alignment)
2122
			    {
2123
			    	case 1: ProjectTD[EditIndex][ETextDrawTextX] = floatadd(ProjectTD[EditIndex][ETextDrawPosX], 5.0);
2124
			    	case 2: ProjectTD[EditIndex][ETextDrawTextX] = 10.0;
2125
			    	case 3: ProjectTD[EditIndex][ETextDrawTextX] = floatadd(ProjectTD[EditIndex][ETextDrawPosX], 5.0); //SA-MP BUG?
2126
				}
2127
			}
2128
		    if(alignment == 2) TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
2129
		    else TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
2130
		    TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], 255);
2131
			TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2132
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[19]);
2133
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
2134
		}
2135
		return 1;
2136
	}
2137
    if(clickedid == TDE_Menu[21] || clickedid == TDE_Menu[22] || clickedid == TDE_Menu[23])
2138
	{
2139
	    new alignment = TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
2140
	    switch(alignment)
2141
	    {
2142
	        case 1:
2143
	        {
2144
	            TextDrawAlignment(ProjectTD[EditIndex][ETextDrawID], 2);
2145
	            if(TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID])) TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
2146
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2147
				TextDrawHideForPlayer(ProjectEditor, TDE_Menu[21]);
2148
				TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
2149
	        }
2150
	        case 2:
2151
	        {
2152
	            TextDrawAlignment(ProjectTD[EditIndex][ETextDrawID], 3);
2153
	            if(TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID])) TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
2154
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2155
				TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
2156
				TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
2157
	        }
2158
	        case 3:
2159
	        {
2160
	            TextDrawAlignment(ProjectTD[EditIndex][ETextDrawID], 1);
2161
	            if(TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID])) TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
2162
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2163
				TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
2164
				TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
2165
	        }
2166
	    }
2167
	    return 1;
2168
	}
2169
    if(clickedid == TDE_Menu[28] || clickedid == TDE_Menu[29])
2170
	{
2171
	    if(ProjectTD[EditIndex][ETextDrawSelectable] == 0)
2172
	    {
2173
	        TextDrawHideForPlayer(ProjectEditor, TDE_Menu[28]);
2174
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[29]);
2175
			ProjectTD[EditIndex][ETextDrawSelectable] = 1;
2176
	    }
2177
	    else
2178
	    {
2179
	        TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
2180
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[28]);
2181
			ProjectTD[EditIndex][ETextDrawSelectable] = 0;
2182
	    }
2183
	    return 1;
2184
	}
2185
	if(clickedid == TDE_Menu[5] || clickedid == TDE_Menu[33])
2186
	{
2187
	    if(ProjectTD[EditIndex][ETextDrawType] == 0)
2188
	    {
2189
	        TextDrawHideForPlayer(ProjectEditor, TDE_Menu[5]);
2190
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[33]);
2191
			ProjectTD[EditIndex][ETextDrawType] = 1;
2192
	    }
2193
	    else
2194
	    {
2195
	        TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
2196
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[5]);
2197
			ProjectTD[EditIndex][ETextDrawType] = 0;
2198
	    }
2199
	    return 1;
2200
	}
2201
	if(clickedid == TDE_Menu[30] || clickedid == TDE_Menu[31])
2202
	{
2203
	    if(EditMode == EDITMODE_COLOR || EditMode == EDITMODE_BGCOLOR || EditMode == EDITMODE_BOXCOLOR || EditMode == EDITMODE_MODELS)
2204
	    {
2205
	        if(!CursorX && (0 < CursorY < (ScreenHeight - 1)) ) return 1;
2206
	        if(CursorX == (ScreenWidth - 1) && (0 < CursorY < (ScreenHeight - 1)) ) return 1;
2207
	        if(CursorY == (ScreenHeight - 1) && (0 < CursorX < (ScreenWidth - 1)) ) return 1;
2208
	    }
2209
	    new proportional = TextDrawIsProportional(ProjectTD[EditIndex][ETextDrawID]);
2210
		if(proportional == 0)
2211
		{
2212
			TextDrawSetProportional(ProjectTD[EditIndex][ETextDrawID], 1);
2213
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[30]);
2214
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
2215
		}
2216
		else
2217
		{
2218
			TextDrawSetProportional(ProjectTD[EditIndex][ETextDrawID], 0);
2219
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[31]);
2220
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
2221
		}
2222
		TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2223
		return 1;
2224
	}
2225
	return false;
2226
}
2227
2228
stock ActivateCallback_OnAnyKeyDown()
2229
{
2230
    ActivateAnyKeyVariable(1);
2231
    ActivateAnyKey();
2232
    return 1;
2233
}
2234
2235
public OnAnyKeyDown(key)
2236
{
2237
 	printf("%d %c", key, key);
2238
	return 1;
2239
}
2240
2241
TDE_CALLBACK:OnEditorUpdate(playerid)
2242
{
2243
    if(IsPlayerPaused(playerid)) return 0;
2244
    for(new c = 0; c < sizeof(VirtualKeys); c++)
2245
	{
2246
		if(GetVirtualKeyState(VirtualKeys[c][KEY_CODE]) & 0x8000)
2247
		{
2248
		    if(!VirtualKeys[c][KEY_PRESSED])
2249
		    {
2250
		        CallLocalFunction("OnVirtualKeyDown", "id", playerid, VirtualKeys[c][KEY_CODE]);
2251
		        VirtualKeys[c][KEY_PRESSED] = true;
2252
		    }
2253
		}
2254
		else if(VirtualKeys[c][KEY_PRESSED])
2255
		{
2256
		    CallLocalFunction("OnVirtualKeyRelease", "id", playerid, VirtualKeys[c][KEY_CODE]);
2257
		    VirtualKeys[c][KEY_PRESSED] = false;
2258
		}
2259
	}
2260
2261
	GetScreenSize(ScreenWidth, ScreenHeight);
2262
	GetMousePos(CursorX, CursorY);
2263
2264
	if(CursorOX != CursorX || CursorOY != CursorY)
2265
	{
2266
	    CallLocalFunction("OnCursorPositionChange", "idd", playerid, CursorX, CursorY);
2267
	    CursorOX = CursorX;
2268
	    CursorOY = CursorY;
2269
	}
2270
	return 1;
2271
}
2272
2273
TDE_CALLBACK:OnCursorPositionChange(playerid, NewX, NewY)
2274
{
2275
    if(!EditorEnabled || ProjectEditor != playerid) return false;
2276
    if(TDEHTimer == 1)
2277
	{
2278
	 	TextDrawSetPos(TDEditor_Helper[0], ((floatdiv(float(NewX), ScreenWidth) * 640.0)+0.15), -6.000000);
2279
		TextDrawLetterSize(TDEditor_Helper[0], 0.000000, (((floatdiv(float(NewY), ScreenHeight) * 448.0)/9.0)+0.4));
2280
		TextDrawSetPos(TDEditor_Helper[1], ((floatdiv(float(NewX), ScreenWidth) * 640.0)+1.0), (floatdiv(float(NewY), ScreenHeight) * 448.0));
2281
2282
	    TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[0]);
2283
	    TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[1]);
2284
    }
2285
    if(EditMode == EDITMODE_ADJUST)
2286
    {
2287
        if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
2288
		{
2289
        	OffsetZ -= floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0;
2290
    	    TextDrawSetPos(TDE_Menu[0], 0.0, OffsetZ - 2.0);
2291
    	    TextDrawShowForPlayer(playerid, TDE_Menu[0]);
2292
        	if(OffsetZ < 10.0) TextDrawSetPos(TD_Status, 2.0, OffsetZ+35.14);
2293
        	else TextDrawSetPos(TD_Status, 2.0, OffsetZ-10.14);
2294
    	    TextDrawShowForPlayer(playerid, TD_Status);
2295
            return 1;
2296
		}
2297
		return 1;
2298
    }
2299
    
2300
	if(EditIndex == INVALID_INDEX_ID) return false;
2301
    switch(EditMode)
2302
    {
2303
        case EDITMODE_POSITION:
2304
        {
2305
            if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
2306
			{
2307
	            ProjectTD[EditIndex][ETextDrawPosX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0;
2308
	   			ProjectTD[EditIndex][ETextDrawPosY] -= floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0;
2309
	   			TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
2310
	   			
2311
	   			if(TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]))
2312
	   			{
2313
				    if(TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]) != 2)
2314
					{
2315
						ProjectTD[EditIndex][ETextDrawTextX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0;
2316
				    	TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
2317
					}
2318
				}
2319
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2320
			}
2321
		}
2322
		case EDITMODE_SIZE:
2323
        {
2324
            if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
2325
			{
2326
			    ProjectTD[EditIndex][ETextDrawTextX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0;
2327
				if(TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4 || TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5) ProjectTD[EditIndex][ETextDrawTextY] -= floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0;
2328
				if(TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0)
2329
				{
2330
                    ProjectTD[EditIndex][ETextDrawLetterY] -= (floatdiv(floatsub(CursorOY, NewY), ScreenWidth) * 640.0)/10.0;
2331
                    TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
2332
				}
2333
				new alignment = TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
2334
			    switch(alignment)
2335
			    {
2336
			    	case 1, 3: TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
2337
			    	case 2: TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
2338
				}
2339
		    	TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2340
			}
2341
		}
2342
		case EDITMODE_MODELS:
2343
		{
2344
		    if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
2345
			{
2346
			    switch(ColorMode)
2347
	            {
2348
	                case COLORMODE_RED: Colors[0] = floatround(  floatdiv((NewY - 1), (ScreenHeight - 2)) * 360.0  );
2349
	                case COLORMODE_GREEN: Colors[1] = floatround(  floatdiv((NewX - 1), (ScreenWidth - 2)) * 360.0  );
2350
	                case COLORMODE_BLUE: Colors[2] = floatround(  floatdiv((NewY - 1), (ScreenHeight - 2)) * 360.0 );
2351
	                case COLORMODE_ALPHA: Zoom = floatdiv((NewX - 1), (ScreenWidth - 2)) * 10.0;
2352
				}
2353
				new str[64];
2354
				format(str, sizeof str, "~n~RX%i~n~RY%i~n~RZ%i~n~Z%.2f", Colors[0], Colors[1], Colors[2], Zoom);
2355
				GameTextForPlayer(ProjectEditor, str, 1000, 5);
2356
	            ProjectTD[EditIndex][ETextDrawRotX] = float(Colors[0]);
2357
	            ProjectTD[EditIndex][ETextDrawRotY] = float(Colors[1]);
2358
	            ProjectTD[EditIndex][ETextDrawRotZ] = float(Colors[2]);
2359
	            ProjectTD[EditIndex][ETextDrawZoom] = Zoom;
2360
	            TextDrawSetPreviewRot(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawRotX], ProjectTD[EditIndex][ETextDrawRotY], ProjectTD[EditIndex][ETextDrawRotZ], ProjectTD[EditIndex][ETextDrawZoom]);
2361
				TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2362
			}
2363
		}
2364
		case EDITMODE_COLOR, EDITMODE_BGCOLOR, EDITMODE_BOXCOLOR:
2365
		{
2366
		    if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
2367
			{
2368
			    
2369
			    if(EditMode == EDITMODE_COLOR) HexToRGBA(ProjectTD[EditIndex][ETextDrawColor], Colors[0], Colors[1], Colors[2], Colors[3]);
2370
			    else if(EditMode == EDITMODE_BGCOLOR) HexToRGBA(ProjectTD[EditIndex][ETextDrawBGColor], Colors[0], Colors[1], Colors[2], Colors[3]);
2371
			    else if(EditMode == EDITMODE_BOXCOLOR) HexToRGBA(ProjectTD[EditIndex][ETextDrawBoxColor], Colors[0], Colors[1], Colors[2], Colors[3]);
2372
	            switch(ColorMode)
2373
	            {
2374
	                case COLORMODE_RED: Colors[0] = floatround(  floatdiv((NewY - 1), (ScreenHeight - 2)) * 255.0  );
2375
	                case COLORMODE_GREEN: Colors[1] = floatround(  floatdiv((NewX - 1), (ScreenWidth - 2)) * 255.0  );
2376
                    case COLORMODE_BLUE: Colors[2] = floatround(  floatdiv((NewY - 1), (ScreenHeight - 2)) * 255.0 );
2377
                    case COLORMODE_ALPHA: Colors[3] = floatround(  floatdiv((NewX - 1), (ScreenWidth - 2)) * 255.0  );
2378
				}
2379
				new str[64];
2380
				format(str, sizeof(str), "~n~~r~R%i~n~~g~G%i~n~~b~B%i~n~~w~A%i", Colors[0], Colors[1], Colors[2], Colors[3]);
2381
				GameTextForPlayer(ProjectEditor, str, 1000, 5);
2382
				switch(EditMode)
2383
				{
2384
				    case EDITMODE_COLOR:
2385
				    {
2386
						ProjectTD[EditIndex][ETextDrawColor] = RGBAToHex(Colors[0], Colors[1], Colors[2], Colors[3]);
2387
			            TextDrawColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawColor]);
2388
					}
2389
					case EDITMODE_BGCOLOR:
2390
				    {
2391
						ProjectTD[EditIndex][ETextDrawBGColor] = RGBAToHex(Colors[0], Colors[1], Colors[2], Colors[3]);
2392
			            TextDrawBackgroundColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBGColor]);
2393
					}
2394
					case EDITMODE_BOXCOLOR:
2395
				    {
2396
						ProjectTD[EditIndex][ETextDrawBoxColor] = RGBAToHex(Colors[0], Colors[1], Colors[2], Colors[3]);
2397
			            TextDrawBoxColor(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawBoxColor]);
2398
					}
2399
				}
2400
	            TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2401
			}
2402
		}
2403
		case EDITMODE_OUTLINE:
2404
		{
2405
		    if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
2406
			{
2407
	            ProjectTD[EditIndex][ETextDrawOutline] -= floatround(floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0);
2408
			    ProjectTD[EditIndex][ETextDrawOutline] -= floatround(floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0);
2409
			    TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawOutline]);
2410
		    	TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2411
			}
2412
		}
2413
		case EDITMODE_SHADOW:
2414
		{
2415
		    if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
2416
			{
2417
	            ProjectTD[EditIndex][ETextDrawShadow] -= floatround(floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0);
2418
			    ProjectTD[EditIndex][ETextDrawShadow] -= floatround(floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0);
2419
			    TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawShadow]);
2420
		    	TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2421
			}
2422
		}
2423
		case EDITMODE_LETTERSIZE:
2424
		{
2425
		    if(VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
2426
			{
2427
	            ProjectTD[EditIndex][ETextDrawLetterX] -= floatdiv(floatsub(CursorOX, NewX), ScreenWidth) * 640.0 * 0.001;
2428
			    ProjectTD[EditIndex][ETextDrawLetterY] -= floatdiv(floatsub(CursorOY, NewY), ScreenHeight) * 448.0 * 0.01;
2429
			    TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
2430
		    	TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2431
			}
2432
		}
2433
	}
2434
	return true;
2435
}
2436
2437
TDE_CALLBACK:OnVirtualKeyRelease(playerid, key)
2438
{
2439
  	if(!EditorEnabled || ProjectEditor != playerid) return false;
2440
  	if(key == VK_ESCAPE)
2441
  	{
2442
  	    if(EditMode == EDITMODE_ADJUST)
2443
	    {
2444
	        SelectTextDraw(playerid, -1);
2445
	        if(!VirtualKeys[26][KEY_PRESSED]) //Left Mouse Button
2446
			{
2447
	          	new Float:pos[2];
2448
	        	for(new i = 1; i < sizeof(TDE_Menu); i++)
2449
	        	{
2450
	        	    TextDrawGetPos(TDE_Menu[i], pos[0], pos[1]);
2451
	        	    TextDrawSetPos(TDE_Menu[i], pos[0], OffsetZ);
2452
	        	    TextDrawShowForPlayer(playerid, TDE_Menu[i]);
2453
	        	}
2454
2455
	 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2456
	 		    EditMode = EDITMODE_NONE;
2457
	 		    IsPSel = true;
2458
				return 1;
2459
			}
2460
	    }
2461
  	}
2462
  	if(key == VK_LBUTTON)
2463
	{
2464
        if(ColorMode) ColorMode = 0;
2465
        if(IsPSel) SaveProject();
2466
	}
2467
  	if(EditMode == EDITMODE_ADJUST) return false;
2468
	if(key == VK_RBUTTON)
2469
	{
2470
	    if(!IsPSel) return false;
2471
		new Float:ConvertedX, Float:ConvertedY;
2472
		ConvertedX = ((floatdiv(float(CursorX), ScreenWidth) * 640.0));
2473
		ConvertedY = (((floatdiv(float(CursorY), ScreenHeight) * 448.0)));
2474
		if( (ConvertedX > 64.01 && ConvertedX < 32.0+64.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //New
2475
	    {
2476
	        ShowPlayerDialog(ProjectEditor, DIALOG_NEW, DIALOG_STYLE_LIST, "TDEditor - New TextDraw", "Normal TextDraw\nSprite TextDraw (TXD)\nPreview Models (objects, vehicles, skins)\nBox TextDraw", ">>", "X");
2477
	        IsPSel = false;
2478
 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2479
 		    EditMode = EDITMODE_NONE;
2480
 		    CancelSelectTextDraw(ProjectEditor);
2481
 		    return 1;
2482
	    }
2483
		if(EditIndex == INVALID_INDEX_ID) return false;
2484
		if( (ConvertedX > 192.01 && ConvertedX < 32.0+192.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Position
2485
	    {
2486
            ShowPlayerDialog(ProjectEditor, DIALOG_POSX, DIALOG_STYLE_INPUT, "TDEditor - PositionX", "Insert the value of PositionX:\nNote: to insert a decimal value use '.' instead of ',' for example '298.73'", ">>", "X");
2487
            IsPSel = false;
2488
 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2489
 		    EditMode = EDITMODE_NONE;
2490
 		    CancelSelectTextDraw(ProjectEditor);
2491
 		    return 1;
2492
	    }
2493
	    if( (ConvertedX > 160.01 && ConvertedX < 32.0+160.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Models/Font
2494
	    {
2495
	        if(TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5)
2496
	        {
2497
			    if(IsVehicle(ProjectTD[EditIndex][ETextDrawModelid])) ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom\nVehicle color 1\nVehicle color 2", ">>", "X");
2498
				else ShowPlayerDialog(ProjectEditor, DIALOG_MODELS, DIALOG_STYLE_LIST, "TDEditor - Preview Models", "Change ModelID\nRotationX\nRotationY\nRotationZ\nZoom", ">>", "X");
2499
	            IsPSel = false;
2500
	 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2501
	 		    EditMode = EDITMODE_NONE;
2502
	 		    CancelSelectTextDraw(ProjectEditor);
2503
	 		    return 1;
2504
			}
2505
			return 1;
2506
	    }
2507
	    if( (ConvertedX > 224.01 && ConvertedX < 32.0+224.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //TextSize
2508
	    {
2509
            ShowPlayerDialog(ProjectEditor, DIALOG_SIZEX, DIALOG_STYLE_INPUT, "TDEditor - TextSizeX", "Enter the value of TextSizeX:\nNote: to put a decimal value use '.' instead of ',' for example: '18 .8 '", ">>", "X");
2510
            IsPSel = false;
2511
 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2512
 		    EditMode = EDITMODE_NONE;
2513
 		    CancelSelectTextDraw(ProjectEditor);
2514
 		    return 1;
2515
	    }
2516
	    if( (ConvertedX > 256.01 && ConvertedX < 32.0+256.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Text
2517
	    {
2518
	        if(TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5) return false;
2519
            ShowPlayerDialog(ProjectEditor, DIALOG_EDITTEXT, DIALOG_STYLE_INPUT, "TDEditor - Text", "Insert the TextDraw text:", ">>", "X");
2520
            IsPSel = false;
2521
 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2522
 		    EditMode = EDITMODE_NONE;
2523
 		    CancelSelectTextDraw(ProjectEditor);
2524
 		    return 1;
2525
	    }
2526
	    if( (ConvertedX > 384.01 && ConvertedX < 32.0+384.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //LetterSize
2527
	    {
2528
	        if(TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4 || TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5) return false;
2529
            ShowPlayerDialog(ProjectEditor, DIALOG_LETTERX, DIALOG_STYLE_INPUT, "TDEditor - LetterSizeX", "Insert the value of LetteSizeX:\nNote: to insert a decimal value use '.' instead of ',' for example '0.4'", ">>", "X");
2530
            IsPSel = false;
2531
 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2532
 		    EditMode = EDITMODE_NONE;
2533
 		    CancelSelectTextDraw(ProjectEditor);
2534
 		    return 1;
2535
	    }
2536
	    if( (ConvertedX > 416.01 && ConvertedX < 32.0+416.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Outline
2537
	    {
2538
	        if(TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4 || TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5) return false;
2539
            ShowPlayerDialog(ProjectEditor, DIALOG_EDITOUTLINE, DIALOG_STYLE_INPUT, "TDEditor - Outline", "Insert an integer value for the outline.\n\n0 to remove the outline.", ">>", "X");
2540
            IsPSel = false;
2541
 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2542
 		    EditMode = EDITMODE_NONE;
2543
 		    CancelSelectTextDraw(ProjectEditor);
2544
 		    return 1;
2545
	    }
2546
	    if( (ConvertedX > 448.01 && ConvertedX < 32.0+448.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Shadow
2547
	    {
2548
	        if(TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4 || TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5) return false;
2549
            ShowPlayerDialog(ProjectEditor, DIALOG_EDITSHADOW, DIALOG_STYLE_INPUT, "TDEditor - Shadow", "Insert an integer value for the shadow.\n\n0 to remove the shadow.", ">>", "X");
2550
            IsPSel = false;
2551
 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2552
 		    EditMode = EDITMODE_NONE;
2553
 		    CancelSelectTextDraw(ProjectEditor);
2554
 		    return 1;
2555
	    }
2556
	    if( (ConvertedX > 288.01 && ConvertedX < 32.0+288.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //Colors
2557
	    {
2558
            ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "TDEditor - Color", "Main colors\nWrite the exact value (HEX)\nColor combinator (RGBA)", ">>", "X");
2559
            IsPSel = false;
2560
 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2561
 		    EditMode = EDITMODE_COLOR;
2562
 		    CancelSelectTextDraw(ProjectEditor);
2563
 		    return 1;
2564
	    }
2565
	    if( (ConvertedX > 320.01 && ConvertedX < 32.0+320.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //BGColors
2566
	    {
2567
	        if(TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4) return false;
2568
            ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "TDEditor - BGColor", "Main colors\nWrite the exact value (HEX)\nColor combinator (RGBA)", ">>", "X");
2569
            IsPSel = false;
2570
 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2571
 		    EditMode = EDITMODE_BGCOLOR;
2572
 		    CancelSelectTextDraw(ProjectEditor);
2573
 		    return 1;
2574
	    }
2575
	    if( (ConvertedX > 352.01 && ConvertedX < 32.0+352.01) && (ConvertedY > OffsetZ && ConvertedY < 32.0+OffsetZ) ) //BoxColors
2576
	    {
2577
	        if(TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 4 || TextDrawGetFont(ProjectTD[EditIndex][ETextDrawID]) == 5) return false;
2578
            ShowPlayerDialog(ProjectEditor, DIALOG_EDITCOLOR, DIALOG_STYLE_LIST, "TDEditor - BoxColor", "Main colors\nWrite the exact value (HEX)\nColor combinator (RGBA)", ">>", "X");
2579
            IsPSel = false;
2580
 		    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
2581
 		    EditMode = EDITMODE_BOXCOLOR;
2582
 		    CancelSelectTextDraw(ProjectEditor);
2583
 		    return 1;
2584
	    }
2585
	}
2586
    switch(EditMode)
2587
    {
2588
	    case EDITMODE_TEXT:
2589
	    {
2590
	        if(key == VK_DELETE || key == VK_BACKSPACE) KillTimer(DeleteTimer);
2591
		}
2592
		case EDITMODE_POSITION:
2593
		{
2594
			if(key == VK_OEM_PLUS || key == VK_ADD || key == VK_OEM_MINUS || key == VK_SUBTRACT) KillTimer(SpeedTimer);
2595
		}
2596
		case EDITMODE_SIZE:
2597
		{
2598
			if(key == VK_OEM_PLUS || key == VK_ADD || key == VK_OEM_MINUS || key == VK_SUBTRACT) KillTimer(EditSizeSpeedT);
2599
		}
2600
		case EDITMODE_OUTLINE:
2601
		{
2602
			if(key == VK_OEM_PLUS || key == VK_ADD || key == VK_UP || key == VK_RIGHT || key == VK_OEM_MINUS || key == VK_SUBTRACT || key == VK_DOWN || key == VK_LEFT) KillTimer(OutlineTimer);
2603
		}
2604
		case EDITMODE_SHADOW:
2605
		{
2606
			if(key == VK_OEM_PLUS || key == VK_ADD || key == VK_UP || key == VK_RIGHT || key == VK_OEM_MINUS || key == VK_SUBTRACT || key == VK_DOWN || key == VK_LEFT) KillTimer(ShadowTimer);
2607
		}
2608
		case EDITMODE_LETTERSIZE:
2609
		{
2610
		    if(key == VK_OEM_PLUS || key == VK_ADD || key == VK_OEM_MINUS || key == VK_SUBTRACT) KillTimer(LetterTimer);
2611
		}
2612
	}
2613
	return 1;
2614
}
2615
2616
TDE_CALLBACK:OnVirtualKeyDown(playerid, key)
2617
{
2618
    
2619
    if(!EditorEnabled || ProjectEditor != playerid) return false;
2620
    
2621
    if(key == VK_RBUTTON)
2622
    {
2623
        if(TDEHTimer == 1)
2624
		{
2625
		    TDEHTimer = 2;
2626
		    SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}Right click again to unfreeze the red lines.");
2627
		}
2628
		else if(TDEHTimer == 2)
2629
		{
2630
		    new X, Y;
2631
		    GetMousePos(X, Y);
2632
 			TextDrawSetPos(TDEditor_Helper[0], ((floatdiv(float(X), ScreenWidth) * 640.0)+0.15), -6.000000);
2633
			TextDrawLetterSize(TDEditor_Helper[0], 0.000000, (((floatdiv(float(Y), ScreenHeight) * 448.0)/9.0)+0.4));
2634
			TextDrawSetPos(TDEditor_Helper[1], ((floatdiv(float(X), ScreenWidth) * 640.0)+1.0), (floatdiv(float(Y), ScreenHeight) * 448.0));
2635
		    TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[0]);
2636
		    TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[1]);
2637
			TDEHTimer = 1;
2638
		}
2639
    }
2640
2641
	if(VirtualKeys[44][KEY_PRESSED])
2642
	{
2643
	    if(key == VK_KEY_R)
2644
	    {
2645
	        if(TDEHTimer == -1)
2646
			{
2647
			    new X, Y;
2648
			    GetMousePos(X, Y);
2649
	 			TextDrawSetPos(TDEditor_Helper[0], ((floatdiv(float(X), ScreenWidth) * 640.0)+0.15), -6.000000);
2650
				TextDrawLetterSize(TDEditor_Helper[0], 0.000000, (((floatdiv(float(Y), ScreenHeight) * 448.0)/9.0)+0.4));
2651
				TextDrawSetPos(TDEditor_Helper[1], ((floatdiv(float(X), ScreenWidth) * 640.0)+1.0), (floatdiv(float(Y), ScreenHeight) * 448.0));
2652
				SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}Right click to freeze the red lines.");
2653
			    TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[0]);
2654
			    TextDrawShowForPlayer(ProjectEditor, TDEditor_Helper[1]);
2655
				TDEHTimer = 1;
2656
			}
2657
	        else
2658
			{
2659
				TDEHTimer = -1;
2660
				TextDrawHideForPlayer(ProjectEditor, TDEditor_Helper[0]);
2661
    			TextDrawHideForPlayer(ProjectEditor, TDEditor_Helper[1]);
2662
			}
2663
	        return 1;
2664
	    }
2665
	    if(EditMode == EDITMODE_ADJUST) return false;
2666
	    if(key == VK_KEY_C)
2667
	    {
2668
	        if(EditIndex == INVALID_INDEX_ID) return false;
2669
	        if(!IsPSel) return false;
2670
	        new Index = GetAvailableIndex();
2671
			if(Index == INVALID_INDEX_ID) return SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}You can't create more TextDraws.");
2672
			DuplicateTextDraw(EditIndex, Index);
2673
2674
			new string[128];
2675
	        format(string, sizeof(string), "{e2b960}TDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}was duplicated on TextDraw{e2b960} #%d.", EditIndex, Index);
2676
	        SendClientMessage(ProjectEditor, -1, string);
2677
	      	EditIndex = Index;
2678
	        return 1;
2679
	    }
2680
	    if(key == VK_KEY_X)
2681
	    {
2682
	        if(EditIndex == INVALID_INDEX_ID) return false;
2683
	        if(!IsPSel) return false;
2684
	        new string[128];
2685
            format(string, sizeof(string), "{e2b960}TDEditor: {FFFFFF}TextDraw {e2b960}#%d {FFFFFF}removed.", EditIndex);
2686
            SendClientMessage(ProjectEditor, -1, string);
2687
2688
            RemoveTextDrawTDE(EditIndex);
2689
            SelectTextDraw(ProjectEditor, -1);
2690
		}
2691
	}
2692
	if(key == VK_END)
2693
    {
2694
        if(MouseCursor)
2695
		{
2696
			MouseCursor = false;
2697
			CancelSelectTextDraw(ProjectEditor);
2698
		}
2699
        else
2700
		{
2701
			MouseCursor = true;
2702
			SelectTextDraw(ProjectEditor, -1);
2703
		}
2704
        return 1;
2705
    }
2706
	if(EditMode == EDITMODE_ADJUST) return false;
2707
	if(EditIndex == INVALID_INDEX_ID) return false;
2708
    switch(EditMode)
2709
    {
2710
        case EDITMODE_TEXT:
2711
        {
2712
       		if(key == VK_KEY_T || key == VK_F6) PressKeyEnter(VK_ENTER);
2713
            if(key == VK_DELETE || key == VK_BACKSPACE)
2714
            {
2715
                new len = strlen(ProjectTD[EditIndex][ETextDrawText]);
2716
                if(len == 0) return 1;
2717
                if(ProjectTD[EditIndex][ETextDrawText][len-1] == '~' && ProjectTD[EditIndex][ETextDrawText][len-2] == 'n' && ProjectTD[EditIndex][ETextDrawText][len-3] == '~')
2718
				{
2719
					strdel(ProjectTD[EditIndex][ETextDrawText], len-3, len);
2720
				}
2721
				else strdel(ProjectTD[EditIndex][ETextDrawText], len-1, len);
2722
         		TextDrawSetString(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawText]);
2723
         		DeleteTimer = SetTimer("DeleteTextDrawLetter", 500, 0);
2724
                return 1;
2725
            }
2726
            /*new KEYT[24];                     NO HAVE GOOD WORK
2727
            /format(KEYT, 24, "%c", key);*/
2728
         	strcat(ProjectTD[EditIndex][ETextDrawText], KeyToString(key), 800);
2729
         	TextDrawSetString(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawText]);
2730
        }
2731
        case EDITMODE_POSITION:
2732
        {
2733
            switch(key)
2734
            {
2735
                case VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT: if(MoveTDTimer == -1) MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 50, 0);
2736
 				case VK_OEM_PLUS, VK_ADD:
2737
			 	{
2738
			 	    if(EditMoveSpeed == 0.05)
2739
				 	{
2740
				 		EditMoveSpeed = 0.1;
2741
				 		new SpeedSTR[24];
2742
				 		format(SpeedSTR, 24, "%.1f", EditMoveSpeed);
2743
				 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
2744
				 		SpeedTimer = SetTimerEx("EditMovementSpeed", 500, 0, "d", 0);
2745
				 		return 1;
2746
					}
2747
			 		EditMoveSpeed += 0.1;
2748
			 		new SpeedSTR[24];
2749
			 		format(SpeedSTR, 24, "%.1f", EditMoveSpeed);
2750
			 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
2751
			 		SpeedTimer = SetTimerEx("EditMovementSpeed", 500, 0, "d", 0);
2752
				}
2753
				case VK_OEM_MINUS, VK_SUBTRACT:
2754
				{
2755
					if(EditMoveSpeed <= 0.1)
2756
					{
2757
						EditMoveSpeed = 0.05;
2758
						new SpeedSTR[24];
2759
				 		format(SpeedSTR, 24, "~r~%.2f", EditMoveSpeed);
2760
				 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
2761
				 		SpeedTimer = SetTimerEx("EditMovementSpeed", 500, 0, "d", 1);
2762
				 		return 1;
2763
					}
2764
					EditMoveSpeed -= 0.1;
2765
					new SpeedSTR[24];
2766
			 		format(SpeedSTR, 24, "%.1f", EditMoveSpeed);
2767
			 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
2768
			 		SpeedTimer = SetTimerEx("EditMovementSpeed", 500, 0, "d", 1);
2769
				}
2770
            }
2771
        }
2772
        case EDITMODE_SIZE:
2773
        {
2774
            switch(key)
2775
            {
2776
                case VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT: if(EditSizeTDTimer == -1) EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 50, 0);
2777
 				case VK_OEM_PLUS, VK_ADD:
2778
			 	{
2779
			 	    if(EditSizeSpeed == 0.05)
2780
				 	{
2781
				 		EditSizeSpeed = 0.1;
2782
				 		new SpeedSTR[24];
2783
				 		format(SpeedSTR, 24, "%.1f", EditSizeSpeed);
2784
				 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
2785
				 		EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 500, 0, "d", 0);
2786
				 		return 1;
2787
					}
2788
			 		EditSizeSpeed += 0.1;
2789
			 		new SpeedSTR[24];
2790
			 		format(SpeedSTR, 24, "%.1f", EditSizeSpeed);
2791
			 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
2792
			 		EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 500, 0, "d", 0);
2793
				}
2794
				case VK_OEM_MINUS, VK_SUBTRACT:
2795
				{
2796
					if(EditSizeSpeed <= 0.1)
2797
					{
2798
						EditSizeSpeed = 0.05;
2799
						new SpeedSTR[24];
2800
				 		format(SpeedSTR, 24, "~r~%.2f", EditSizeSpeed);
2801
				 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
2802
				 		EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 500, 0, "d", 1);
2803
				 		return 1;
2804
					}
2805
					EditSizeSpeed -= 0.1;
2806
					new SpeedSTR[24];
2807
			 		format(SpeedSTR, 24, "%.1f", EditSizeSpeed);
2808
			 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
2809
			 		EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 500, 0, "d", 1);
2810
				}
2811
            }
2812
        }
2813
        case EDITMODE_COLOR, EDITMODE_BGCOLOR, EDITMODE_BOXCOLOR, EDITMODE_MODELS:
2814
        {
2815
			if(key == VK_LBUTTON)
2816
			{
2817
		        if(!CursorX && (0 < CursorY < (ScreenHeight - 1)) && ColorMode != COLORMODE_RED) ColorMode = COLORMODE_RED;
2818
		        if(CursorX == (ScreenWidth - 1) && (0 < CursorY < (ScreenHeight - 1)) && ColorMode != COLORMODE_BLUE) ColorMode = COLORMODE_BLUE;
2819
		        if(!CursorY && (0 < CursorX < (ScreenWidth - 1)) && ColorMode != COLORMODE_GREEN) ColorMode = COLORMODE_GREEN;
2820
		        if(CursorY == (ScreenHeight - 1) && (0 < CursorX < (ScreenWidth - 1)) && ColorMode != COLORMODE_ALPHA) ColorMode = COLORMODE_ALPHA;
2821
			}
2822
        }
2823
        case EDITMODE_OUTLINE:
2824
        {
2825
            switch(key)
2826
            {
2827
                case VK_OEM_PLUS, VK_ADD, VK_UP, VK_RIGHT:
2828
			 	{
2829
			 	    ProjectTD[EditIndex][ETextDrawOutline] += 1;
2830
					TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawOutline]);
2831
					TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2832
					new SpeedSTR[32];
2833
			 		format(SpeedSTR, 24, "OUTLINE: %d", ProjectTD[EditIndex][ETextDrawOutline]);
2834
			 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
2835
			 		
2836
			 		OutlineTimer = SetTimerEx("EditOutline", 500, 0, "d", 0);
2837
			 	}
2838
			 	case VK_OEM_MINUS, VK_SUBTRACT, VK_DOWN, VK_LEFT:
2839
			 	{
2840
			 	    ProjectTD[EditIndex][ETextDrawOutline] -= 1;
2841
					TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawOutline]);
2842
					TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2843
					new SpeedSTR[32];
2844
			 		format(SpeedSTR, 24, "OUTLINE: %d", ProjectTD[EditIndex][ETextDrawOutline]);
2845
			 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
2846
			 		
2847
			 		OutlineTimer = SetTimerEx("EditOutline", 500, 0, "d", 1);
2848
			 	}
2849
            }
2850
        }
2851
        case EDITMODE_SHADOW:
2852
        {
2853
            switch(key)
2854
            {
2855
                case VK_OEM_PLUS, VK_ADD, VK_UP, VK_RIGHT:
2856
			 	{
2857
			 	    ProjectTD[EditIndex][ETextDrawShadow] += 1;
2858
					TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawShadow]);
2859
					TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2860
					new SpeedSTR[32];
2861
			 		format(SpeedSTR, 24, "SHADOW: %d", ProjectTD[EditIndex][ETextDrawShadow]);
2862
			 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
2863
			 		
2864
			 		ShadowTimer = SetTimerEx("EditShadow", 500, 0, "d", 0);
2865
			 	}
2866
			 	case VK_OEM_MINUS, VK_SUBTRACT, VK_DOWN, VK_LEFT:
2867
			 	{
2868
			 	    ProjectTD[EditIndex][ETextDrawShadow] -= 1;
2869
					TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawShadow]);
2870
					TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2871
					new Speed[32];
2872
			 		format(Speed, 24, "SHADOW: %d", ProjectTD[EditIndex][ETextDrawShadow]);
2873
			 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
2874
			 		
2875
			 		ShadowTimer = SetTimerEx("EditShadow", 500, 0, "d", 1);
2876
			 	}
2877
            }
2878
        }
2879
        case EDITMODE_LETTERSIZE:
2880
        {
2881
            switch(key)
2882
            {
2883
                case VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT: if(LetterSizeTimer == -1) LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 50, 0);
2884
 				case VK_OEM_PLUS, VK_ADD:
2885
			 	{
2886
			 	    if(EditLetterSizeSpeed == 0.005)
2887
				 	{
2888
				 		EditLetterSizeSpeed = 0.01;
2889
				 		new Speed[24];
2890
				 		format(Speed, 24, "%.3f", EditLetterSizeSpeed);
2891
				 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
2892
				 		LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 0);
2893
				 		return 1;
2894
					}
2895
			 		EditLetterSizeSpeed += 0.01;
2896
			 		new Speed[24];
2897
			 		format(Speed, 24, "%.3f", EditLetterSizeSpeed);
2898
			 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
2899
			 		LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 0);
2900
				}
2901
				case VK_OEM_MINUS, VK_SUBTRACT:
2902
				{
2903
					if(EditLetterSizeSpeed <= 0.01)
2904
					{
2905
						EditLetterSizeSpeed = 0.005;
2906
						new Speed[24];
2907
				 		format(Speed, 24, "~r~%.4f", EditLetterSizeSpeed);
2908
				 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
2909
				 		LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 1);
2910
				 		return 1;
2911
					}
2912
					EditLetterSizeSpeed -= 0.01;
2913
					new Speed[24];
2914
			 		format(Speed, 24, "%.3f", EditLetterSizeSpeed);
2915
			 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
2916
			 		LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 1);
2917
				}
2918
            }
2919
        }
2920
    }
2921
	return true;
2922
}
2923
2924
TDE_CALLBACK:EditOutline(key)
2925
{
2926
    if(EditMode != EDITMODE_OUTLINE) return 1;
2927
    if(key == 0)
2928
    {
2929
        if(VirtualKeys[81][KEY_PRESSED] || VirtualKeys[76][KEY_PRESSED] || VirtualKeys[31][KEY_PRESSED] || VirtualKeys[30][KEY_PRESSED])
2930
		{
2931
		    ProjectTD[EditIndex][ETextDrawOutline] += 1;
2932
			TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawOutline]);
2933
			TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2934
			new Speed[32];
2935
	 		format(Speed, 24, "OUTLINE: %d", ProjectTD[EditIndex][ETextDrawOutline]);
2936
	 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
2937
	 		OutlineTimer = SetTimerEx("EditOutline", 25, 0, "d", 0);
2938
		}
2939
    }
2940
    else if(key == 1)
2941
    {
2942
        if(VirtualKeys[83][KEY_PRESSED] || VirtualKeys[78][KEY_PRESSED] || VirtualKeys[32][KEY_PRESSED] || VirtualKeys[29][KEY_PRESSED])
2943
		{
2944
		    ProjectTD[EditIndex][ETextDrawOutline] -= 1;
2945
			TextDrawSetOutline(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawOutline]);
2946
			TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2947
			new Speed[32];
2948
	 		format(Speed, 24, "OUTLINE: %d", ProjectTD[EditIndex][ETextDrawOutline]);
2949
	 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
2950
	 		OutlineTimer = SetTimerEx("EditOutline", 25, 0, "d", 1);
2951
		}
2952
    }
2953
	return 1;
2954
}
2955
2956
TDE_CALLBACK:EditShadow(key)
2957
{
2958
    if(EditMode != EDITMODE_SHADOW) return 1;
2959
    if(key == 0)
2960
    {
2961
        if(VirtualKeys[81][KEY_PRESSED] || VirtualKeys[76][KEY_PRESSED] || VirtualKeys[31][KEY_PRESSED] || VirtualKeys[30][KEY_PRESSED])
2962
		{
2963
		    ProjectTD[EditIndex][ETextDrawShadow] += 1;
2964
			TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawShadow]);
2965
			TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2966
			new Speed[32];
2967
	 		format(Speed, 24, "SHADOW: %d", ProjectTD[EditIndex][ETextDrawShadow]);
2968
	 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
2969
	 		ShadowTimer = SetTimerEx("EditShadow", 25, 0, "d", 0);
2970
		}
2971
    }
2972
    else if(key == 1)
2973
    {
2974
        if(VirtualKeys[83][KEY_PRESSED] || VirtualKeys[78][KEY_PRESSED] || VirtualKeys[32][KEY_PRESSED] || VirtualKeys[29][KEY_PRESSED])
2975
		{
2976
	 		ProjectTD[EditIndex][ETextDrawShadow] -= 1;
2977
			TextDrawSetShadow(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawShadow]);
2978
			TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
2979
			new Speed[32];
2980
	 		format(Speed, 24, "SHADOW: %d", ProjectTD[EditIndex][ETextDrawShadow]);
2981
	 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
2982
	 		ShadowTimer = SetTimerEx("EditShadow", 25, 0, "d", 1);
2983
		}
2984
    }
2985
	return 1;
2986
}
2987
2988
TDE_CALLBACK:EditSizeSpeedCallback(key)
2989
{
2990
    if(EditMode != EDITMODE_SIZE) return 1;
2991
	if(key == 0)
2992
	{
2993
	    if(VirtualKeys[81][KEY_PRESSED] || VirtualKeys[76][KEY_PRESSED])
2994
		{
2995
	 		if(EditSizeSpeed == 0.05)
2996
		 	{
2997
		 		EditSizeSpeed = 0.1;
2998
		 		new SpeedSTR[24];
2999
		 		format(SpeedSTR, 24, "%.1f", EditSizeSpeed);
3000
		 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3001
		 		EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 25, 0, "d", 0);
3002
		 		return 1;
3003
			}
3004
	 		EditSizeSpeed += 0.1;
3005
	 		new SpeedSTR[24];
3006
	 		format(SpeedSTR, 24, "%.1f", EditSizeSpeed);
3007
	 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3008
	 		EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 25, 0, "d", 0);
3009
		}
3010
	}
3011
	else if(key == 1)
3012
	{
3013
	    if(VirtualKeys[83][KEY_PRESSED] || VirtualKeys[78][KEY_PRESSED])
3014
		{
3015
		    if(EditSizeSpeed <= 0.1)
3016
			{
3017
				EditSizeSpeed = 0.05;
3018
				new SpeedSTR[24];
3019
		 		format(SpeedSTR, 24, "~r~%.2f", EditSizeSpeed);
3020
		 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3021
		 		EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 25, 0, "d", 1);
3022
		 		return 1;
3023
			}
3024
			EditSizeSpeed -= 0.1;
3025
			new SpeedSTR[24];
3026
	 		format(SpeedSTR, 24, "%.1f", EditSizeSpeed);
3027
	 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3028
	 		EditSizeSpeedT = SetTimerEx("EditSizeSpeedCallback", 25, 0, "d", 1);
3029
		}
3030
	}
3031
	return 1;
3032
}
3033
3034
TDE_CALLBACK:EditMovementSpeed(key)
3035
{
3036
    if(EditMode != EDITMODE_POSITION) return 1;
3037
	if(key == 0)
3038
	{
3039
	    if(VirtualKeys[81][KEY_PRESSED] || VirtualKeys[76][KEY_PRESSED])
3040
		{
3041
		    if(EditMoveSpeed == 0.05)
3042
		 	{
3043
		 		EditMoveSpeed = 0.1;
3044
		 		new Speed[24];
3045
		 		format(Speed, 24, "%.1f", EditMoveSpeed);
3046
		 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
3047
		 		SpeedTimer = SetTimerEx("EditMovementSpeed", 25, 0, "d", 0);
3048
		 		return 1;
3049
			}
3050
	 		EditMoveSpeed += 0.1;
3051
	 		new Speed[24];
3052
	 		format(Speed, 24, "%.1f", EditMoveSpeed);
3053
	 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
3054
	 		SpeedTimer = SetTimerEx("EditMovementSpeed", 25, 0, "d", 0);
3055
		}
3056
	}
3057
	else if(key == 1)
3058
	{
3059
	    if(VirtualKeys[83][KEY_PRESSED] || VirtualKeys[78][KEY_PRESSED])
3060
		{
3061
		    if(EditMoveSpeed <= 0.1)
3062
			{
3063
				EditMoveSpeed = 0.05;
3064
				new Speed[24];
3065
		 		format(Speed, 24, "~r~%.2f", EditMoveSpeed);
3066
		 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
3067
		 		SpeedTimer = SetTimerEx("EditMovementSpeed", 25, 0, "d", 1);
3068
		 		return 1;
3069
			}
3070
			EditMoveSpeed -= 0.1;
3071
			new Speed[24];
3072
	 		format(Speed, 24, "%.1f", EditMoveSpeed);
3073
	 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
3074
	 		SpeedTimer = SetTimerEx("EditMovementSpeed", 25, 0, "d", 1);
3075
		}
3076
	}
3077
	return 1;
3078
}
3079
3080
TDE_CALLBACK:TEditLetterSizeSpeed(key)
3081
{
3082
    if(EditMode != EDITMODE_LETTERSIZE) return 1;
3083
	if(key == 0)
3084
	{
3085
	    if(VirtualKeys[81][KEY_PRESSED] || VirtualKeys[76][KEY_PRESSED])
3086
		{
3087
		    if(EditLetterSizeSpeed == 0.005)
3088
		 	{
3089
		 		EditLetterSizeSpeed = 0.01;
3090
		 		new Speed[24];
3091
		 		format(Speed, 24, "%.3f", EditLetterSizeSpeed);
3092
		 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
3093
		 		LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 0);
3094
		 		return 1;
3095
			}
3096
	 		EditLetterSizeSpeed += 0.01;
3097
	 		new Speed[24];
3098
	 		format(Speed, 24, "%.3f", EditLetterSizeSpeed);
3099
	 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
3100
	 		LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 25, 0, "d", 0);
3101
		}
3102
	}
3103
	else if(key == 1)
3104
	{
3105
	    if(VirtualKeys[83][KEY_PRESSED] || VirtualKeys[78][KEY_PRESSED])
3106
		{
3107
		    if(EditLetterSizeSpeed <= 0.01)
3108
			{
3109
				EditLetterSizeSpeed = 0.005;
3110
				new Speed[24];
3111
		 		format(Speed, 24, "~r~%.4f", EditLetterSizeSpeed);
3112
		 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
3113
		 		LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 500, 0, "d", 1);
3114
		 		return 1;
3115
			}
3116
			EditLetterSizeSpeed -= 0.01;
3117
			new Speed[24];
3118
	 		format(Speed, 24, "%.3f", EditLetterSizeSpeed);
3119
	 		GameTextForPlayer(ProjectEditor, Speed, 1000, 5);
3120
	 		LetterTimer = SetTimerEx("TEditLetterSizeSpeed", 25, 0, "d", 1);
3121
		}
3122
	}
3123
	return 1;
3124
}
3125
3126
TDE_CALLBACK:DeleteTextDrawLetter()
3127
{
3128
    if(EditMode != EDITMODE_TEXT) return 1;
3129
    if(VirtualKeys[52][KEY_PRESSED] || VirtualKeys[37][KEY_PRESSED]) //Delete
3130
	{
3131
    	new len = strlen(ProjectTD[EditIndex][ETextDrawText]);
3132
        if(len == 0) return 1;
3133
        if(ProjectTD[EditIndex][ETextDrawText][len-1] == '~' && ProjectTD[EditIndex][ETextDrawText][len-2] == 'n' && ProjectTD[EditIndex][ETextDrawText][len-3] == '~')
3134
		{
3135
			strdel(ProjectTD[EditIndex][ETextDrawText], len-3, len);
3136
		}
3137
		else strdel(ProjectTD[EditIndex][ETextDrawText], len-1, len);
3138
 		TextDrawSetString(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawText]);
3139
 		DeleteTimer = SetTimer("DeleteTextDrawLetter", 25, 0);
3140
	}
3141
	return 1;
3142
}
3143
3144
TDE_CALLBACK:LetterSizeTextDrawEDITOR()
3145
{
3146
	if(EditMode != EDITMODE_LETTERSIZE) return 1;
3147
    if(VirtualKeys[31][KEY_PRESSED]) //UP
3148
	{
3149
	    ProjectTD[EditIndex][ETextDrawLetterY] -= EditLetterSizeSpeed;
3150
	    TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
3151
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3152
	    
3153
	    new SpeedSTR[64];
3154
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
3155
 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3156
	    LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
3157
	    return 1;
3158
	}
3159
	if(VirtualKeys[32][KEY_PRESSED]) //DOWN
3160
	{
3161
	    ProjectTD[EditIndex][ETextDrawLetterY] += EditLetterSizeSpeed;
3162
	    TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
3163
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3164
	    
3165
	    new SpeedSTR[64];
3166
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
3167
 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3168
	    LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
3169
	    return 1;
3170
	}
3171
    if(VirtualKeys[29][KEY_PRESSED]) //LEFT
3172
	{
3173
     	ProjectTD[EditIndex][ETextDrawLetterX] -= floatdiv(EditLetterSizeSpeed, 10);
3174
	    TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
3175
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3176
	    
3177
	    new SpeedSTR[64];
3178
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
3179
 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3180
	    LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
3181
	    return 1;
3182
	}
3183
	if(VirtualKeys[30][KEY_PRESSED]) //RIGHT
3184
	{
3185
	    ProjectTD[EditIndex][ETextDrawLetterX] += floatdiv(EditLetterSizeSpeed, 10);
3186
	    TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
3187
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3188
	    
3189
	    new SpeedSTR[64];
3190
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
3191
 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3192
	    LetterSizeTimer = SetTimer("LetterSizeTextDrawEDITOR", 25, 0);
3193
	    return 1;
3194
	}
3195
	KillTimer(LetterSizeTimer);
3196
	LetterSizeTimer = -1;
3197
	return 1;
3198
}
3199
3200
TDE_CALLBACK:ReSizeTextDrawEDITOR()
3201
{
3202
	if(EditMode != EDITMODE_SIZE) return 1;
3203
    if(VirtualKeys[31][KEY_PRESSED]) //UP
3204
	{
3205
	    
3206
	    if( (TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0)  )
3207
		{
3208
            ProjectTD[EditIndex][ETextDrawLetterY] -= EditSizeSpeed/10;
3209
            TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
3210
            
3211
            TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3212
		    new SpeedSTR[64];
3213
	 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawLetterY]);
3214
	 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3215
		    EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
3216
		    return 1;
3217
		}
3218
		ProjectTD[EditIndex][ETextDrawTextY] -= EditSizeSpeed;
3219
	    new alignment = TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
3220
	    switch(alignment)
3221
	    {
3222
	    	case 1, 3: TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
3223
	    	case 2: TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
3224
		}
3225
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3226
3227
	    new SpeedSTR[64];
3228
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
3229
 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3230
	    EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
3231
	    return 1;
3232
	}
3233
	if(VirtualKeys[32][KEY_PRESSED]) //DOWN
3234
	{
3235
	    if( (TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0)  )
3236
		{
3237
            ProjectTD[EditIndex][ETextDrawLetterY] += EditSizeSpeed/10;
3238
            TextDrawLetterSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawLetterX], ProjectTD[EditIndex][ETextDrawLetterY]);
3239
3240
            TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3241
		    new SpeedSTR[64];
3242
	 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawLetterY]);
3243
	 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3244
		    EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
3245
		    return 1;
3246
		}
3247
	    ProjectTD[EditIndex][ETextDrawTextY] += EditSizeSpeed;
3248
	    new alignment = TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
3249
	    switch(alignment)
3250
	    {
3251
	    	case 1, 3: TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
3252
	    	case 2: TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
3253
		}
3254
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3255
3256
	    new SpeedSTR[64];
3257
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
3258
 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3259
	    EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
3260
	    return 1;
3261
	}
3262
    if(VirtualKeys[29][KEY_PRESSED]) //LEFT
3263
	{
3264
	    ProjectTD[EditIndex][ETextDrawTextX] -= EditSizeSpeed;
3265
	    new alignment = TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
3266
	    switch(alignment)
3267
	    {
3268
	    	case 1, 3: TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
3269
	    	case 2: TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
3270
		}
3271
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3272
3273
	    new SpeedSTR[64];
3274
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
3275
 		if( (TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0)  ) format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawLetterY]);
3276
 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3277
	    EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
3278
	    return 1;
3279
	}
3280
	if(VirtualKeys[30][KEY_PRESSED]) //RIGHT
3281
	{
3282
	    ProjectTD[EditIndex][ETextDrawTextX] += EditSizeSpeed;
3283
	    new alignment = TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]);
3284
	    switch(alignment)
3285
	    {
3286
	    	case 1, 3: TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
3287
	    	case 2: TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextY], ProjectTD[EditIndex][ETextDrawTextX]);
3288
		}
3289
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3290
3291
	    new SpeedSTR[64];
3292
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
3293
 		if( (TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]) && ProjectTD[EditIndex][ETextDrawLetterX] == 0.0)  ) format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawLetterY]);
3294
        GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3295
		EditSizeTDTimer = SetTimer("ReSizeTextDrawEDITOR", 25, 0);
3296
	    return 1;
3297
	}
3298
	KillTimer(EditSizeTDTimer);
3299
	EditSizeTDTimer = -1;
3300
	return 1;
3301
}
3302
3303
TDE_CALLBACK:MoveTextDrawEDITOR()
3304
{
3305
	if(EditMode != EDITMODE_POSITION) return 1;
3306
    if(VirtualKeys[31][KEY_PRESSED]) //UP
3307
	{
3308
	    ProjectTD[EditIndex][ETextDrawPosY] -= EditMoveSpeed;
3309
	    TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
3310
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3311
	    
3312
	    new SpeedSTR[64];
3313
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
3314
 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3315
	    MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
3316
	    return 1;
3317
	}
3318
	if(VirtualKeys[32][KEY_PRESSED]) //DOWN
3319
	{
3320
	    ProjectTD[EditIndex][ETextDrawPosY] += EditMoveSpeed;
3321
	    TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
3322
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3323
	    
3324
	    new SpeedSTR[64];
3325
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
3326
 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3327
	    MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
3328
	    return 1;
3329
	}
3330
    if(VirtualKeys[29][KEY_PRESSED]) //LEFT
3331
	{
3332
	    ProjectTD[EditIndex][ETextDrawPosX] -= EditMoveSpeed;
3333
	    TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
3334
	    
3335
	    if(TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]))
3336
		{
3337
		    if(TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]) != 2)
3338
			{
3339
				ProjectTD[EditIndex][ETextDrawTextX] -= EditMoveSpeed;
3340
		    	TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
3341
			}
3342
		}
3343
	    
3344
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3345
	    
3346
	    new SpeedSTR[64];
3347
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
3348
 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3349
	    MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
3350
	    return 1;
3351
	}
3352
	if(VirtualKeys[30][KEY_PRESSED]) //RIGHT
3353
	{
3354
	    ProjectTD[EditIndex][ETextDrawPosX] += EditMoveSpeed;
3355
	    TextDrawSetPos(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
3356
	    
3357
	    if(TextDrawIsBox(ProjectTD[EditIndex][ETextDrawID]))
3358
		{
3359
		    if(TextDrawGetAlignment(ProjectTD[EditIndex][ETextDrawID]) != 2)
3360
			{
3361
				ProjectTD[EditIndex][ETextDrawTextX] += EditMoveSpeed;
3362
		    	TextDrawTextSize(ProjectTD[EditIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawTextX], ProjectTD[EditIndex][ETextDrawTextY]);
3363
			}
3364
		}
3365
		
3366
	    TextDrawShowForPlayer(ProjectEditor, ProjectTD[EditIndex][ETextDrawID]);
3367
	    
3368
	    new SpeedSTR[64];
3369
 		format(SpeedSTR, 64, "%.4f, %.4f", ProjectTD[EditIndex][ETextDrawPosX], ProjectTD[EditIndex][ETextDrawPosY]);
3370
 		GameTextForPlayer(ProjectEditor, SpeedSTR, 1000, 5);
3371
	    MoveTDTimer = SetTimer("MoveTextDrawEDITOR", 25, 0);
3372
	    return 1;
3373
	}
3374
	KillTimer(MoveTDTimer);
3375
	MoveTDTimer = -1;
3376
	return 1;
3377
}
3378
3379
stock ShowEditor()
3380
{
3381
	TogglePlayerControllable(ProjectEditor, false);
3382
    
3383
    Loop(0, sizeof(TDE_Menu))
3384
    {
3385
        switch(c)
3386
        {
3387
            case 0:
3388
			{
3389
                TextDrawColor(TDE_Menu[c], 0x000000FF);
3390
        		TextDrawSetSelectable(TDE_Menu[c], false);
3391
            }
3392
            case 2:
3393
            {
3394
        		TextDrawColor(TDE_Menu[c], 0xDDDDDDFF);
3395
        		TextDrawSetSelectable(TDE_Menu[c], true);
3396
			}
3397
			default:
3398
			{
3399
				TextDrawColor(TDE_Menu[c], 0x888888FF);
3400
 				TextDrawSetSelectable(TDE_Menu[c], false);
3401
			}
3402
		}
3403
        TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
3404
    }
3405
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
3406
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
3407
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
3408
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
3409
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
3410
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
3411
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
3412
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
3413
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
3414
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
3415
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
3416
    TextDrawShowForPlayer(ProjectEditor, TD_Status);
3417
	SelectTextDraw(ProjectEditor, -1);
3418
	return true;
3419
}
3420
3421
stock ShowEditorEx()
3422
{
3423
  
3424
3425
    Loop(0, sizeof(TDE_Menu))
3426
    {
3427
        switch(c)
3428
        {
3429
            case 0:
3430
			{
3431
                TextDrawColor(TDE_Menu[c], 0x000000FF);
3432
        		TextDrawSetSelectable(TDE_Menu[c], false);
3433
            }
3434
			default:
3435
			{
3436
				TextDrawColor(TDE_Menu[c], 0x888888FF);
3437
 				TextDrawSetSelectable(TDE_Menu[c], false);
3438
			}
3439
		}
3440
        TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
3441
    }
3442
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
3443
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
3444
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
3445
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
3446
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
3447
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
3448
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
3449
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
3450
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
3451
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
3452
    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
3453
    TextDrawShowForPlayer(ProjectEditor, TD_Status);
3454
	SelectTextDraw(ProjectEditor, -1);
3455
	return true;
3456
}
3457
3458
stock CreateMenuTextDraws()
3459
{
3460
    TDE_Menu[0] = TextDrawCreate(0.0, OffsetZ - 2.0, "LD_SPAC:white");
3461
	TextdrawSettings(TDE_Menu[0], Float:{0.5, 1.0, 640.0, 37.0}, {0,0x000000FF,0,0,0,0,255,4,1,0});
3462
3463
	new Float:OffsetX = 0.01;
3464
	TDE_Menu[1] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_manage"); OffsetX += 32.0;
3465
	TDE_Menu[4] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_export"); OffsetX += 32.0;
3466
	TDE_Menu[2] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_new"); OffsetX += 32.0;
3467
	TDE_Menu[3] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_delete"); OffsetX += 32.0;
3468
    TDE_Menu[8] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_duplicate"); OffsetX += 32.0;
3469
    TDE_Menu[24] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_font0");
3470
    TDE_Menu[25] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_font1");
3471
    TDE_Menu[26] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_font2");
3472
    TDE_Menu[27] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_font3");
3473
    TDE_Menu[12] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_image");
3474
    TDE_Menu[13] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_previews"); OffsetX += 32.0;
3475
	TDE_Menu[9] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_pos"); OffsetX += 32.0;
3476
    TDE_Menu[10] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_size"); OffsetX += 32.0;
3477
    TDE_Menu[11] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_text");
3478
	TDE_Menu[35] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_modelid"); OffsetX += 32.0;
3479
    TDE_Menu[14] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_color"); OffsetX += 32.0;
3480
    TDE_Menu[15] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_bgcolor"); OffsetX += 32.0;
3481
    TDE_Menu[32] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_boxcolor"); OffsetX += 32.0;
3482
    TDE_Menu[16] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_lettersize"); OffsetX += 32.0;
3483
    TDE_Menu[17] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_outline"); OffsetX += 32.0;
3484
    TDE_Menu[18] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_shadow"); OffsetX += 32.0;
3485
    TDE_Menu[19] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_useboxno");
3486
    TDE_Menu[20] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_useboxyes");
3487
	TDE_Menu[34] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_modeloptions"); OffsetX += 32.0;
3488
    TDE_Menu[21] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_alignmentleft");
3489
    TDE_Menu[22] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_alignmentcenter");
3490
    TDE_Menu[23] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_alignmentright"); OffsetX += 32.0;
3491
    TDE_Menu[5] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_global");
3492
	TDE_Menu[33] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_player"); OffsetX += 32.0;
3493
    TDE_Menu[28] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_selectableno");
3494
    TDE_Menu[29] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_selectableyes"); OffsetX += 32.0;
3495
    TDE_Menu[30] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_proportionno");
3496
    TDE_Menu[31] = TextDrawCreate(OffsetX, OffsetZ, "TDE:btn_proportionyes"); OffsetX += 32.0;
3497
    Loop(1, sizeof TDE_Menu) TextdrawSettings(TDE_Menu[c], Float:{0.5, 1.0, 32.0, 32.0}, {0,0xDDDDDDFF,0,0,0,0,0,4,1,0});
3498
    
3499
	TD_Status = TextDrawCreate(2.0, 404.86, "EditMode: EDITMODE_NONE");
3500
	TextDrawLetterSize(TD_Status, 0.179665, 0.857481);
3501
	TextDrawAlignment(TD_Status, 1);
3502
	TextDrawColor(TD_Status, -186);
3503
	TextDrawSetShadow(TD_Status, 0);
3504
	TextDrawSetOutline(TD_Status, 0);
3505
	TextDrawBackgroundColor(TD_Status, 255);
3506
	TextDrawFont(TD_Status, 1);
3507
	TextDrawSetProportional(TD_Status, 1);
3508
	
3509
	TDEditor_Helper[0] = TextDrawCreate(322.000000, -6.000000, "_");
3510
	TextDrawAlignment(TDEditor_Helper[0], 2);
3511
	TextDrawBackgroundColor(TDEditor_Helper[0], 255);
3512
	TextDrawFont(TDEditor_Helper[0], 1);
3513
	TextDrawLetterSize(TDEditor_Helper[0], 0.000000, 24.000003);
3514
	TextDrawColor(TDEditor_Helper[0], -1);
3515
	TextDrawSetOutline(TDEditor_Helper[0], 0);
3516
	TextDrawSetProportional(TDEditor_Helper[0], 1);
3517
	TextDrawSetShadow(TDEditor_Helper[0], 1);
3518
	TextDrawUseBox(TDEditor_Helper[0], 1);
3519
	TextDrawBoxColor(TDEditor_Helper[0], -16776961);
3520
	TextDrawTextSize(TDEditor_Helper[0], 0.000000, -2.000000);
3521
	TextDrawSetSelectable(TDEditor_Helper[0], 0);
3522
3523
	TDEditor_Helper[1] = TextDrawCreate(324.000000, 150.000000, "_");
3524
	TextDrawBackgroundColor(TDEditor_Helper[1], 255);
3525
	TextDrawFont(TDEditor_Helper[1], 1);
3526
	TextDrawLetterSize(TDEditor_Helper[1], 0.00000, -0.321204);
3527
	TextDrawColor(TDEditor_Helper[1], -1);
3528
	TextDrawSetOutline(TDEditor_Helper[1], 0);
3529
	TextDrawSetProportional(TDEditor_Helper[1], 1);
3530
	TextDrawSetShadow(TDEditor_Helper[1], 1);
3531
	TextDrawUseBox(TDEditor_Helper[1], 1);
3532
	TextDrawBoxColor(TDEditor_Helper[1], -16776961);
3533
	TextDrawTextSize(TDEditor_Helper[1], -30.000000, 0.000000);
3534
	TextDrawSetSelectable(TDEditor_Helper[1], 0);
3535
	
3536
	TDELOGO = TextDrawCreate(215.000091, 182.933395, "TDE:TDELogo");
3537
	TextDrawLetterSize(TDELOGO, 0.000000, 0.000000);
3538
	TextDrawTextSize(TDELOGO, 190.0, 50.0);
3539
	TextDrawAlignment(TDELOGO, 1);
3540
	TextDrawColor(TDELOGO, -1);
3541
	TextDrawSetShadow(TDELOGO, 0);
3542
	TextDrawSetOutline(TDELOGO, 0);
3543
	TextDrawFont(TDELOGO, 4);
3544
	TextDrawSetSelectable(TDELOGO, 1);
3545
    return 1;
3546
}
3547
3548
stock DestroyMenuTextDraws()
3549
{
3550
    Loop(0, sizeof TDE_Menu)
3551
	{
3552
		TextDrawDestroy(TDE_Menu[c]);
3553
		TDE_Menu[c] = Text:INVALID_TEXT_DRAW;
3554
	}
3555
	TextDrawDestroy(TD_Status);
3556
	TD_Status = Text:INVALID_TEXT_DRAW;
3557
	TextDrawDestroy(TDEditor_Helper[0]);
3558
	TDEditor_Helper[0] = Text:INVALID_TEXT_DRAW;
3559
	TextDrawDestroy(TDEditor_Helper[1]);
3560
	TDEditor_Helper[1] = Text:INVALID_TEXT_DRAW;
3561
	TextDrawDestroy(TDELOGO);
3562
	TDELOGO = Text:INVALID_TEXT_DRAW;
3563
	return 1;
3564
}
3565
3566
stock TextdrawSettings(Text:textid, Float:Sizes[4], Options[10]) //By iPleomax
3567
{
3568
	TextDrawLetterSize		(textid, Sizes[0], Sizes[1]);
3569
	TextDrawTextSize    	(textid, Sizes[2], Sizes[3]);
3570
	TextDrawAlignment   	(textid, Options[0] ? Options[0] : 1);
3571
	TextDrawColor   		(textid, Options[1]);
3572
	TextDrawUseBox   		(textid, Options[2]);
3573
	TextDrawBoxColor   		(textid, Options[3]);
3574
	TextDrawSetShadow   	(textid, Options[4]);
3575
	TextDrawSetOutline  	(textid, Options[5]);
3576
	TextDrawBackgroundColor (textid, Options[6]);
3577
	TextDrawFont   			(textid, Options[7]);
3578
	TextDrawSetProportional	(textid, Options[8]);
3579
	TextDrawSetSelectable   (textid, Options[9]);
3580
}
3581
3582
stock GetAvailableIndex()
3583
{
3584
	for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
3585
	{
3586
	    if(ProjectTD[i][ItsFromTDE] == -1)
3587
	    {
3588
			if(ProjectTD[i][ETextDrawID] == Text:INVALID_TEXT_DRAW)
3589
			{
3590
				return i;
3591
			}
3592
		}
3593
	}
3594
	return INVALID_INDEX_ID;
3595
}
3596
3597
stock KeyToString(key)
3598
{
3599
	new LETTER[4] = "";
3600
	if((GetKeyState(VK_CAPSLOCK) & 0x0001) != 0)
3601
	{
3602
	    if(VirtualKeys[41][KEY_PRESSED]) //Shift
3603
	    {
3604
	        switch(key)
3605
	        {
3606
	        	case VK_KEY_A: LETTER = "a";//41
3607
				case VK_KEY_B: LETTER = "b";//42
3608
				case VK_KEY_C: LETTER = "c";//43
3609
				case VK_KEY_D: LETTER = "d";//44
3610
				case VK_KEY_E: LETTER = "e";//45
3611
				case VK_KEY_F: LETTER = "f";//46
3612
				case VK_KEY_G: LETTER = "g";//47
3613
				case VK_KEY_H: LETTER = "h";//48
3614
				case VK_KEY_I: LETTER = "i";//49
3615
				case VK_KEY_J: LETTER = "j";//4A
3616
				case VK_KEY_K: LETTER = "k";//4B
3617
				case VK_KEY_L: LETTER = "l";//4C
3618
				case VK_KEY_M: LETTER = "m";//4D
3619
				case VK_KEY_N: LETTER = "n";//4E
3620
				case VK_KEY_O: LETTER = "o";//4F
3621
				case VK_KEY_P: LETTER = "p";//50
3622
				case VK_KEY_Q: LETTER = "q";//51
3623
				case VK_KEY_R: LETTER = "r";//52
3624
				case VK_KEY_S: LETTER = "s";//53
3625
				case VK_KEY_T: LETTER = "t";//54
3626
				case VK_KEY_U: LETTER = "u";//55
3627
				case VK_KEY_V: LETTER = "v";//56
3628
				case VK_KEY_W: LETTER = "w";//57
3629
				case VK_KEY_X: LETTER = "x";//58
3630
				case VK_KEY_Y: LETTER = "y";//59
3631
				case VK_KEY_Z: LETTER = "z";//5A
3632
				case VK_SPACE: LETTER = "_";
3633
				case VK_ENTER: LETTER = "~n~";
3634
				case VK_KEYB0: LETTER = "=";//30
3635
				case VK_KEYB1: LETTER = "!";//!
3636
				case VK_KEYB2: LETTER = "\"";//32
3637
				//case VK_KEYB3: LETTER = "·";//33
3638
				case VK_KEYB4: LETTER = "$";//34
3639
				case VK_KEYB5: LETTER = "%";//35
3640
				case VK_KEYB6: LETTER = "&";//36
3641
				case VK_KEYB7: LETTER = "/";//37
3642
				case VK_KEYB8: LETTER = "(";//38
3643
				case VK_KEYB9: LETTER = ")";//39
3644
				case VK_OEM_PLUS: LETTER = "*";
3645
				case VK_OEM_COMMA: LETTER = ";";
3646
				case VK_OEM_MINUS: LETTER = "_";
3647
				case VK_OEM_PERIOD: LETTER = ":";
3648
				case VK_OEM_2: LETTER = "?";
3649
				case VK_OEM_4: LETTER = "?";
3650
				//case VK_OEM_5: LETTER = "ª";
3651
				case VK_OEM_6: LETTER = "[";
3652
				case VK_OEM_102: LETTER = ">";
3653
				case VK_NUMPAD0: LETTER = "0";
3654
				case VK_NUMPAD1: LETTER = "1";
3655
				case VK_NUMPAD2: LETTER = "2";
3656
				case VK_NUMPAD3: LETTER = "3";
3657
				case VK_NUMPAD4: LETTER = "4";
3658
				case VK_NUMPAD5: LETTER = "5";
3659
				case VK_NUMPAD6: LETTER = "6";
3660
				case VK_NUMPAD7: LETTER = "7";
3661
				case VK_NUMPAD8: LETTER = "8";
3662
				case VK_NUMPAD9: LETTER = "9";
3663
				case VK_MULTIPLY: LETTER = "*";
3664
				case VK_ADD: LETTER = "+";
3665
				//case VK_SEPARATOR: LETTER = "?";
3666
				case VK_SUBTRACT: LETTER = "-";
3667
				case VK_DECIMAL: LETTER = ".";
3668
				case VK_DIVIDE: LETTER = "/";
3669
	        }
3670
	    }
3671
	    else
3672
	    {
3673
	        switch(key)
3674
	        {
3675
		        case VK_KEY_A: LETTER = "A";//41
3676
				case VK_KEY_B: LETTER = "B";//42
3677
				case VK_KEY_C: LETTER = "C";//43
3678
				case VK_KEY_D: LETTER = "D";//44
3679
				case VK_KEY_E: LETTER = "E";//45
3680
				case VK_KEY_F: LETTER = "F";//46
3681
				case VK_KEY_G: LETTER = "G";//47
3682
				case VK_KEY_H: LETTER = "H";//48
3683
				case VK_KEY_I: LETTER = "I";//49
3684
				case VK_KEY_J: LETTER = "J";//4A
3685
				case VK_KEY_K: LETTER = "K";//4B
3686
				case VK_KEY_L: LETTER = "L";//4C
3687
				case VK_KEY_M: LETTER = "M";//4D
3688
				case VK_KEY_N: LETTER = "N";//4E
3689
				case VK_KEY_O: LETTER = "O";//4F
3690
				case VK_KEY_P: LETTER = "P";//50
3691
				case VK_KEY_Q: LETTER = "Q";//51
3692
				case VK_KEY_R: LETTER = "R";//52
3693
				case VK_KEY_S: LETTER = "S";//53
3694
				case VK_KEY_T: LETTER = "T";//54
3695
				case VK_KEY_U: LETTER = "U";//55
3696
				case VK_KEY_V: LETTER = "V";//56
3697
				case VK_KEY_W: LETTER = "W";//57
3698
				case VK_KEY_X: LETTER = "X";//58
3699
				case VK_KEY_Y: LETTER = "Y";//59
3700
				case VK_KEY_Z: LETTER = "Z";//5A
3701
				case VK_SPACE: LETTER = "_";
3702
				case VK_ENTER: LETTER = "~n~";
3703
				case VK_KEYB0: LETTER = "0";//30
3704
				case VK_KEYB1: LETTER = "1";//31
3705
				case VK_KEYB2: LETTER = "2";//32
3706
				case VK_KEYB3: LETTER = "3";//33
3707
				case VK_KEYB4: LETTER = "4";//34
3708
				case VK_KEYB5: LETTER = "5";//35
3709
				case VK_KEYB6: LETTER = "6";//36
3710
				case VK_KEYB7: LETTER = "7";//37
3711
				case VK_KEYB8: LETTER = "8";//38
3712
				case VK_KEYB9: LETTER = "9";//39
3713
				case VK_OEM_PLUS: LETTER = "+";
3714
				case VK_OEM_COMMA: LETTER = ",";
3715
				case VK_OEM_MINUS: LETTER = "-";
3716
				case VK_OEM_PERIOD: LETTER = ".";
3717
				case VK_OEM_2: LETTER = "]";
3718
				case VK_OEM_4: LETTER = "'";
3719
				case VK_OEM_5: LETTER = "|";
3720
				case VK_OEM_6: LETTER = "¡";
3721
				case VK_OEM_102: LETTER = "<";
3722
				case VK_NUMPAD0: LETTER = "0";
3723
				case VK_NUMPAD1: LETTER = "1";
3724
				case VK_NUMPAD2: LETTER = "2";
3725
				case VK_NUMPAD3: LETTER = "3";
3726
				case VK_NUMPAD4: LETTER = "4";
3727
				case VK_NUMPAD5: LETTER = "5";
3728
				case VK_NUMPAD6: LETTER = "6";
3729
				case VK_NUMPAD7: LETTER = "7";
3730
				case VK_NUMPAD8: LETTER = "8";
3731
				case VK_NUMPAD9: LETTER = "9";
3732
				case VK_MULTIPLY: LETTER = "*";
3733
				case VK_ADD: LETTER = "+";
3734
				//case VK_SEPARATOR: LETTER = "?";
3735
				case VK_SUBTRACT: LETTER = "-";
3736
				case VK_DECIMAL: LETTER = ".";
3737
				case VK_DIVIDE: LETTER = "/";
3738
3739
3740
			}
3741
	    }
3742
	}
3743
	else
3744
	{
3745
 		if(VirtualKeys[41][KEY_PRESSED]) //Shift
3746
	    {
3747
	        switch(key)
3748
	        {
3749
				case VK_KEY_A: LETTER = "A";//41
3750
				case VK_KEY_B: LETTER = "B";//42
3751
				case VK_KEY_C: LETTER = "C";//43
3752
				case VK_KEY_D: LETTER = "D";//44
3753
				case VK_KEY_E: LETTER = "E";//45
3754
				case VK_KEY_F: LETTER = "F";//46
3755
				case VK_KEY_G: LETTER = "G";//47
3756
				case VK_KEY_H: LETTER = "H";//48
3757
				case VK_KEY_I: LETTER = "I";//49
3758
				case VK_KEY_J: LETTER = "J";//4A
3759
				case VK_KEY_K: LETTER = "K";//4B
3760
				case VK_KEY_L: LETTER = "L";//4C
3761
				case VK_KEY_M: LETTER = "M";//4D
3762
				case VK_KEY_N: LETTER = "N";//4E
3763
				case VK_KEY_O: LETTER = "O";//4F
3764
				case VK_KEY_P: LETTER = "P";//50
3765
				case VK_KEY_Q: LETTER = "Q";//51
3766
				case VK_KEY_R: LETTER = "R";//52
3767
				case VK_KEY_S: LETTER = "S";//53
3768
				case VK_KEY_T: LETTER = "T";//54
3769
				case VK_KEY_U: LETTER = "U";//55
3770
				case VK_KEY_V: LETTER = "V";//56
3771
				case VK_KEY_W: LETTER = "W";//57
3772
				case VK_KEY_X: LETTER = "X";//58
3773
				case VK_KEY_Y: LETTER = "Y";//59
3774
				case VK_KEY_Z: LETTER = "Z";//5A
3775
				case VK_SPACE: LETTER = "_";
3776
				case VK_ENTER: LETTER = "~n~";
3777
				case VK_KEYB0: LETTER = "=";//30
3778
				case VK_KEYB1: LETTER = "!";//!
3779
				case VK_KEYB2: LETTER = "\"";//32
3780
				//case VK_KEYB3: LETTER = "·";//33
3781
				case VK_KEYB4: LETTER = "$";//34
3782
				case VK_KEYB5: LETTER = "%";//35
3783
				case VK_KEYB6: LETTER = "&";//36
3784
				case VK_KEYB7: LETTER = "/";//37
3785
				case VK_KEYB8: LETTER = "(";//38
3786
				case VK_KEYB9: LETTER = ")";//39
3787
				case VK_OEM_PLUS: LETTER = "*";
3788
				case VK_OEM_COMMA: LETTER = ";";
3789
				case VK_OEM_MINUS: LETTER = "_";
3790
				case VK_OEM_PERIOD: LETTER = ":";
3791
				case VK_OEM_2: LETTER = "?";
3792
				case VK_OEM_4: LETTER = "?";
3793
				//case VK_OEM_5: LETTER = "ª";
3794
				case VK_OEM_6: LETTER = "[";
3795
				case VK_OEM_102: LETTER = ">";
3796
				case VK_NUMPAD0: LETTER = "0";
3797
				case VK_NUMPAD1: LETTER = "1";
3798
				case VK_NUMPAD2: LETTER = "2";
3799
				case VK_NUMPAD3: LETTER = "3";
3800
				case VK_NUMPAD4: LETTER = "4";
3801
				case VK_NUMPAD5: LETTER = "5";
3802
				case VK_NUMPAD6: LETTER = "6";
3803
				case VK_NUMPAD7: LETTER = "7";
3804
				case VK_NUMPAD8: LETTER = "8";
3805
				case VK_NUMPAD9: LETTER = "9";
3806
				case VK_MULTIPLY: LETTER = "*";
3807
				case VK_ADD: LETTER = "+";
3808
				//case VK_SEPARATOR: LETTER = "?";
3809
				case VK_SUBTRACT: LETTER = "-";
3810
				case VK_DECIMAL: LETTER = ".";
3811
				case VK_DIVIDE: LETTER = "/";
3812
	        }
3813
	    }
3814
	    else
3815
	    {
3816
	        switch(key)
3817
	        {
3818
		        case VK_KEY_A: LETTER = "a";//41
3819
				case VK_KEY_B: LETTER = "b";//42
3820
				case VK_KEY_C: LETTER = "c";//43
3821
				case VK_KEY_D: LETTER = "d";//44
3822
				case VK_KEY_E: LETTER = "e";//45
3823
				case VK_KEY_F: LETTER = "f";//46
3824
				case VK_KEY_G: LETTER = "g";//47
3825
				case VK_KEY_H: LETTER = "h";//48
3826
				case VK_KEY_I: LETTER = "i";//49
3827
				case VK_KEY_J: LETTER = "j";//4A
3828
				case VK_KEY_K: LETTER = "k";//4B
3829
				case VK_KEY_L: LETTER = "l";//4C
3830
				case VK_KEY_M: LETTER = "m";//4D
3831
				case VK_KEY_N: LETTER = "n";//4E
3832
				case VK_KEY_O: LETTER = "o";//4F
3833
				case VK_KEY_P: LETTER = "p";//50
3834
				case VK_KEY_Q: LETTER = "q";//51
3835
				case VK_KEY_R: LETTER = "r";//52
3836
				case VK_KEY_S: LETTER = "s";//53
3837
				case VK_KEY_T: LETTER = "t";//54
3838
				case VK_KEY_U: LETTER = "u";//55
3839
				case VK_KEY_V: LETTER = "v";//56
3840
				case VK_KEY_W: LETTER = "w";//57
3841
				case VK_KEY_X: LETTER = "x";//58
3842
				case VK_KEY_Y: LETTER = "y";//59
3843
				case VK_KEY_Z: LETTER = "z";//5A
3844
				case VK_SPACE: LETTER = "_";
3845
				case VK_ENTER: LETTER = "~n~";
3846
				case VK_KEYB0: LETTER = "0";//30
3847
				case VK_KEYB1: LETTER = "1";//31
3848
				case VK_KEYB2: LETTER = "2";//32
3849
				case VK_KEYB3: LETTER = "3";//33
3850
				case VK_KEYB4: LETTER = "4";//34
3851
				case VK_KEYB5: LETTER = "5";//35
3852
				case VK_KEYB6: LETTER = "6";//36
3853
				case VK_KEYB7: LETTER = "7";//37
3854
				case VK_KEYB8: LETTER = "8";//38
3855
				case VK_KEYB9: LETTER = "9";//39
3856
				case VK_OEM_PLUS: LETTER = "+";
3857
				case VK_OEM_COMMA: LETTER = ",";
3858
				case VK_OEM_MINUS: LETTER = "-";
3859
				case VK_OEM_PERIOD: LETTER = ".";
3860
				case VK_OEM_2: LETTER = "]";
3861
				case VK_OEM_4: LETTER = "'";
3862
				case VK_OEM_5: LETTER = "|";
3863
				case VK_OEM_6: LETTER = "¡";
3864
				case VK_OEM_102: LETTER = "<";
3865
				case VK_NUMPAD0: LETTER = "0";
3866
				case VK_NUMPAD1: LETTER = "1";
3867
				case VK_NUMPAD2: LETTER = "2";
3868
				case VK_NUMPAD3: LETTER = "3";
3869
				case VK_NUMPAD4: LETTER = "4";
3870
				case VK_NUMPAD5: LETTER = "5";
3871
				case VK_NUMPAD6: LETTER = "6";
3872
				case VK_NUMPAD7: LETTER = "7";
3873
				case VK_NUMPAD8: LETTER = "8";
3874
				case VK_NUMPAD9: LETTER = "9";
3875
				case VK_MULTIPLY: LETTER = "*";
3876
				case VK_ADD: LETTER = "+";
3877
				//case VK_SEPARATOR: LETTER = "?";
3878
				case VK_SUBTRACT: LETTER = "-";
3879
				case VK_DECIMAL: LETTER = ".";
3880
				case VK_DIVIDE: LETTER = "/";
3881
3882
3883
			}
3884
	    }
3885
	}
3886
	return LETTER;
3887
}
3888
3889
stock HexToRGBA(colour, &r, &g, &b, &a) //By Betamaster
3890
{
3891
    r = (colour >> 24) & 0xFF;
3892
    g = (colour >> 16) & 0xFF;
3893
    b = (colour >> 8) & 0xFF;
3894
    a = colour & 0xFF;
3895
}
3896
3897
stock RGBAToHex(r, g, b, a) //By Betamaster
3898
{
3899
    return (r<<24 | g<<16 | b<<8 | a);
3900
}
3901
3902
stock RemoveTextDrawTDE(Index)
3903
{
3904
	format(ProjectTD[Index][ETextDrawText], 800, "");
3905
	ProjectTD[Index][ETextDrawPosX] = 0.0;
3906
	ProjectTD[Index][ETextDrawPosY] = 0.0;
3907
	ProjectTD[Index][ETextDrawLetterX] = 0.0;
3908
	ProjectTD[Index][ETextDrawLetterY] = 0.0;
3909
	ProjectTD[Index][ETextDrawTextX] = 0.0;
3910
	ProjectTD[Index][ETextDrawTextY] = 0.0;
3911
	ProjectTD[Index][ETextDrawOutline] = 0;
3912
	ProjectTD[Index][ETextDrawShadow] = 0;
3913
	ProjectTD[Index][ETextDrawModelid] = 0;
3914
	ProjectTD[Index][ETextDrawRotX] = 0.0;
3915
	ProjectTD[Index][ETextDrawRotY] = 0.0;
3916
	ProjectTD[Index][ETextDrawRotZ] = 0.0;
3917
	ProjectTD[Index][ETextDrawZoom] = 0.0;
3918
	ProjectTD[Index][ETextDrawType] = 0;
3919
	ProjectTD[Index][ETextDrawSelectable] = 0;
3920
	ProjectTD[Index][ETextDrawColor] = 0;
3921
	ProjectTD[Index][ETextDrawBGColor] = 0;
3922
	ProjectTD[Index][ETextDrawBoxColor] = 0;
3923
	ProjectTD[Index][ETextDrawVehCol1] = 0;
3924
	ProjectTD[Index][ETextDrawVehCol2] = 0;
3925
	TextDrawDestroy(ProjectTD[Index][ETextDrawID]);
3926
	ProjectTD[Index][ItsFromTDE] = -1;
3927
	ProjectTD[Index][ETextDrawID] = Text:INVALID_TEXT_DRAW;
3928
	
3929
	new NewIndex = GetAvailableIndexBack(EditIndex);
3930
	EditIndex = NewIndex;
3931
	if(EditIndex == -1)
3932
	{
3933
	    Loop(1, sizeof(TDE_Menu))
3934
	    {
3935
			TextDrawColor(TDE_Menu[c], 0x888888FF);
3936
			TextDrawSetSelectable(TDE_Menu[c], false);
3937
	        TextDrawShowForPlayer(ProjectEditor, TDE_Menu[c]);
3938
	    }
3939
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
3940
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
3941
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
3942
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
3943
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
3944
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
3945
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
3946
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
3947
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
3948
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
3949
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
3950
	    TextDrawColor(TDE_Menu[2], 0xDDDDDDFF);
3951
	    TextDrawSetSelectable(TDE_Menu[2], true);
3952
	    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[2]);
3953
	    TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
3954
   		EditMode = EDITMODE_NONE;
3955
	}
3956
	else
3957
	{
3958
	    new string[128];
3959
        format(string, sizeof(string), "{e2b960}TDEditor: {FFFFFF}Now you are editing TextDraw {e2b960}#%d.", EditIndex);
3960
        SendClientMessage(ProjectEditor, -1, string);
3961
        UpdateIcons(EditIndex);
3962
        
3963
        if(EditMode == EDITMODE_MODELS)
3964
        {
3965
            TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
3966
	    	EditMode = EDITMODE_NONE;
3967
        }
3968
	}
3969
	return 1;
3970
}
3971
3972
stock RemoveTextDrawTDEOnly(Index)
3973
{
3974
	format(ProjectTD[Index][ETextDrawText], 800, "");
3975
	ProjectTD[Index][ETextDrawPosX] = 0.0;
3976
	ProjectTD[Index][ETextDrawPosY] = 0.0;
3977
	ProjectTD[Index][ETextDrawLetterX] = 0.0;
3978
	ProjectTD[Index][ETextDrawLetterY] = 0.0;
3979
	ProjectTD[Index][ETextDrawTextX] = 0.0;
3980
	ProjectTD[Index][ETextDrawTextY] = 0.0;
3981
	ProjectTD[Index][ETextDrawOutline] = 0;
3982
	ProjectTD[Index][ETextDrawShadow] = 0;
3983
	ProjectTD[Index][ETextDrawModelid] = 0;
3984
	ProjectTD[Index][ETextDrawRotX] = 0.0;
3985
	ProjectTD[Index][ETextDrawRotY] = 0.0;
3986
	ProjectTD[Index][ETextDrawRotZ] = 0.0;
3987
	ProjectTD[Index][ETextDrawZoom] = 0.0;
3988
	ProjectTD[Index][ETextDrawType] = 0;
3989
	ProjectTD[Index][ETextDrawSelectable] = 0;
3990
	ProjectTD[Index][ETextDrawColor] = 0;
3991
	ProjectTD[Index][ETextDrawBGColor] = 0;
3992
	ProjectTD[Index][ETextDrawBoxColor] = 0;
3993
	ProjectTD[Index][ETextDrawVehCol1] = 0;
3994
	ProjectTD[Index][ETextDrawVehCol2] = 0;
3995
	TextDrawDestroy(ProjectTD[Index][ETextDrawID]);
3996
	ProjectTD[Index][ItsFromTDE] = -1;
3997
	ProjectTD[Index][ETextDrawID] = Text:INVALID_TEXT_DRAW;
3998
	return 1;
3999
}
4000
4001
stock GetAvailableIndexBack(start)
4002
{
4003
	for (new i = start; i != -1; i--)
4004
	{
4005
	    if(ProjectTD[i][ItsFromTDE] == 1)
4006
	    {
4007
			if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
4008
			{
4009
				return i;
4010
			}
4011
		}
4012
	}
4013
	
4014
	for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
4015
	{
4016
	    if(ProjectTD[i][ItsFromTDE] == 1)
4017
	    {
4018
			if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
4019
			{
4020
				return i;
4021
			}
4022
		}
4023
	}
4024
	return INVALID_INDEX_ID;
4025
}
4026
4027
stock HexToInt(string[])//DracoBlue
4028
{
4029
   if (string[0] == 0) return 0;
4030
   new i, cur=1, res = 0;
4031
   for (i=strlen(string);i>0;i--) {
4032
     if (string[i-1]<58) res=res+cur*(string[i-1]-48); else res=res+cur*(string[i-1]-65+10);
4033
     cur=cur*16;
4034
   }
4035
   return res;
4036
}
4037
4038
stock RGB( red, green, blue, alpha )
4039
{
4040
	return (red * 16777216) + (green * 65536) + (blue * 256) + alpha;
4041
}
4042
4043
stock ShowManage(playerid)
4044
{
4045
	new d, c, dialog[310], str[31];
4046
    for (d = PageStart; d < MAX_PROJECT_TEXTDRAWS; d++)
4047
	{
4048
	    if(ProjectTD[d][ItsFromTDE] == 1)
4049
	    {
4050
			BackManageDialog[c] = 0;
4051
			c ++;
4052
			if(c == 11)
4053
			{
4054
				if(PageStart >= 10)
4055
			    {
4056
					format(str, 30, ">>\n");
4057
					strcat(dialog, str);
4058
				}
4059
				else
4060
				{
4061
				    format(str, 30, ">>");
4062
				    strcat(dialog, str);
4063
				}
4064
				break;
4065
			}
4066
			if(TextDrawGetFont(ProjectTD[d][ETextDrawID]) == 5) format(str, 31, "%s(%i)ModelPreview: %d\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawModelid]);
4067
			else format(str, 31, "%s(%i)%s\n", EditIndex == d ? ("{FFCC00}"):("{CCCCCC}"), d, ProjectTD[d][ETextDrawText]);
4068
			
4069
			if(strlen(str) >= 30)
4070
			{
4071
				strdel(str, 28, 30);
4072
				strcat(str, "\n");
4073
			}
4074
			strcat(dialog, str);
4075
		}
4076
	}
4077
	if(PageStart >= 10)
4078
	{
4079
	    BackManageDialog[c] = 1;
4080
		format(str, 30, "<<");
4081
		strcat(dialog, str);
4082
	}
4083
	ShowPlayerDialog(playerid, DIALOG_MANAGE, DIALOG_STYLE_LIST, "TDEditor - Manage", dialog, ">>", "X");
4084
	IsPSel = false;
4085
	return 1;
4086
}
4087
4088
stock DuplicateTextDraw(Index, ToIndex)
4089
{
4090
	format(ProjectTD[ToIndex][ETextDrawText], 800, "%s", ProjectTD[Index][ETextDrawText]);
4091
	ProjectTD[ToIndex][ETextDrawPosX] = ProjectTD[Index][ETextDrawPosX];
4092
	ProjectTD[ToIndex][ETextDrawPosY] = ProjectTD[Index][ETextDrawPosY];
4093
	ProjectTD[ToIndex][ETextDrawLetterX] = ProjectTD[Index][ETextDrawLetterX];
4094
	ProjectTD[ToIndex][ETextDrawLetterY] = ProjectTD[Index][ETextDrawLetterY];
4095
	ProjectTD[ToIndex][ETextDrawTextX] = ProjectTD[Index][ETextDrawTextX];
4096
	ProjectTD[ToIndex][ETextDrawTextY] = ProjectTD[Index][ETextDrawTextY];
4097
	ProjectTD[ToIndex][ETextDrawOutline] = ProjectTD[Index][ETextDrawOutline];
4098
	ProjectTD[ToIndex][ETextDrawShadow] = ProjectTD[Index][ETextDrawShadow];
4099
	ProjectTD[ToIndex][ETextDrawModelid] = ProjectTD[Index][ETextDrawModelid];
4100
	ProjectTD[ToIndex][ETextDrawRotX] = ProjectTD[Index][ETextDrawRotX];
4101
	ProjectTD[ToIndex][ETextDrawRotY] = ProjectTD[Index][ETextDrawRotY];
4102
	ProjectTD[ToIndex][ETextDrawRotZ] = ProjectTD[Index][ETextDrawRotZ];
4103
	ProjectTD[ToIndex][ETextDrawZoom] = ProjectTD[Index][ETextDrawZoom];
4104
	ProjectTD[ToIndex][ETextDrawType] = ProjectTD[Index][ETextDrawType];
4105
	ProjectTD[ToIndex][ETextDrawSelectable] = ProjectTD[Index][ETextDrawSelectable];
4106
	ProjectTD[ToIndex][ETextDrawColor] = ProjectTD[Index][ETextDrawColor];
4107
	ProjectTD[ToIndex][ETextDrawBGColor] = ProjectTD[Index][ETextDrawBGColor];
4108
	ProjectTD[ToIndex][ETextDrawBoxColor] = ProjectTD[Index][ETextDrawBoxColor];
4109
	ProjectTD[ToIndex][ETextDrawVehCol1] = ProjectTD[Index][ETextDrawVehCol1];
4110
	ProjectTD[ToIndex][ETextDrawVehCol2] = ProjectTD[Index][ETextDrawVehCol2];
4111
	
4112
	new Float:p[2];
4113
	TextDrawGetFontSize(ProjectTD[Index][ETextDrawID], p[0], p[1]);
4114
	ProjectTD[ToIndex][ETextDrawID] = TextDrawCreate(ProjectTD[ToIndex][ETextDrawPosX], ProjectTD[ToIndex][ETextDrawPosY], ProjectTD[ToIndex][ETextDrawText]);
4115
	TextDrawLetterSize(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawLetterX], ProjectTD[ToIndex][ETextDrawLetterY]);
4116
	TextDrawAlignment(ProjectTD[ToIndex][ETextDrawID], TextDrawGetAlignment(ProjectTD[Index][ETextDrawID]));
4117
	TextDrawColor(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawColor]);
4118
	TextDrawUseBox(ProjectTD[ToIndex][ETextDrawID], TextDrawIsBox(ProjectTD[Index][ETextDrawID]));
4119
	TextDrawTextSize(ProjectTD[ToIndex][ETextDrawID], p[0], p[1]);
4120
	TextDrawBoxColor(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawBoxColor]);
4121
	TextDrawSetShadow(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawShadow]);
4122
	TextDrawSetOutline(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawOutline]);
4123
	TextDrawBackgroundColor(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawBGColor]);
4124
	TextDrawFont(ProjectTD[ToIndex][ETextDrawID], TextDrawGetFont(ProjectTD[Index][ETextDrawID]));
4125
	TextDrawSetProportional(ProjectTD[ToIndex][ETextDrawID], TextDrawIsProportional(ProjectTD[Index][ETextDrawID]));
4126
	
4127
	if(TextDrawGetFont(ProjectTD[Index][ETextDrawID]) == 5)
4128
 	{
4129
 	    TextDrawSetPreviewModel(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawModelid]);
4130
		TextDrawSetPreviewRot(ProjectTD[ToIndex][ETextDrawID], ProjectTD[ToIndex][ETextDrawRotX], ProjectTD[ToIndex][ETextDrawRotY], ProjectTD[ToIndex][ETextDrawRotZ], ProjectTD[ToIndex][ETextDrawZoom]);
4131
		if(IsVehicle(ProjectTD[ToIndex][ETextDrawModelid])) TextDrawSetPreviewVehCol(ProjectTD[ToIndex][ETextDrawID], ProjectTD[EditIndex][ETextDrawVehCol1], ProjectTD[EditIndex][ETextDrawVehCol2]);
4132
 	}
4133
 	else
4134
 	{
4135
 	    if(EditMode == EDITMODE_MODELS)
4136
        {
4137
            TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
4138
	    	EditMode = EDITMODE_NONE;
4139
        }
4140
  	}
4141
	TextDrawShowForPlayer(ProjectEditor, ProjectTD[ToIndex][ETextDrawID]);
4142
	ProjectTD[ToIndex][ItsFromTDE] = ProjectTD[Index][ItsFromTDE];
4143
	return 1;
4144
}
4145
4146
stock UpdateIcons(Index)
4147
{
4148
    switch(TextDrawGetFont(ProjectTD[Index][ETextDrawID]))
4149
    {
4150
        case 0:
4151
        {
4152
            TextDrawColor(TDE_Menu[12], 0xDDDDDDFF);
4153
			TextDrawSetSelectable(TDE_Menu[12], true);
4154
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
4155
			TextDrawColor(TDE_Menu[15], 0xDDDDDDFF);
4156
			TextDrawSetSelectable(TDE_Menu[15], true);
4157
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
4158
			TextDrawColor(TDE_Menu[32], 0xDDDDDDFF);
4159
			TextDrawSetSelectable(TDE_Menu[32], true);
4160
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
4161
			TextDrawColor(TDE_Menu[16], 0xDDDDDDFF);
4162
			TextDrawSetSelectable(TDE_Menu[16], true);
4163
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
4164
			TextDrawColor(TDE_Menu[17], 0xDDDDDDFF);
4165
			TextDrawSetSelectable(TDE_Menu[17], true);
4166
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
4167
			TextDrawColor(TDE_Menu[18], 0xDDDDDDFF);
4168
			TextDrawSetSelectable(TDE_Menu[18], true);
4169
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
4170
			TextDrawColor(TDE_Menu[19], 0xDDDDDDFF);
4171
			TextDrawSetSelectable(TDE_Menu[19], true);
4172
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
4173
			TextDrawColor(TDE_Menu[20], 0xDDDDDDFF);
4174
			TextDrawSetSelectable(TDE_Menu[20], true);
4175
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
4176
			TextDrawColor(TDE_Menu[34], 0xDDDDDDFF);
4177
			TextDrawSetSelectable(TDE_Menu[34], true);
4178
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
4179
			TextDrawColor(TDE_Menu[21], 0xDDDDDDFF);
4180
			TextDrawSetSelectable(TDE_Menu[21], true);
4181
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
4182
			TextDrawColor(TDE_Menu[22], 0xDDDDDDFF);
4183
			TextDrawSetSelectable(TDE_Menu[22], true);
4184
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
4185
			TextDrawColor(TDE_Menu[23], 0xDDDDDDFF);
4186
			TextDrawSetSelectable(TDE_Menu[23], true);
4187
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
4188
			TextDrawColor(TDE_Menu[30], 0xDDDDDDFF);
4189
			TextDrawSetSelectable(TDE_Menu[30], true);
4190
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
4191
			TextDrawColor(TDE_Menu[31], 0xDDDDDDFF);
4192
			TextDrawSetSelectable(TDE_Menu[31], true);
4193
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
4194
			
4195
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
4196
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
4197
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
4198
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
4199
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
4200
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
4201
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
4202
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[11]);
4203
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[24]);
4204
        }
4205
        case 1:
4206
        {
4207
            TextDrawColor(TDE_Menu[12], 0xDDDDDDFF);
4208
			TextDrawSetSelectable(TDE_Menu[12], true);
4209
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
4210
			TextDrawColor(TDE_Menu[15], 0xDDDDDDFF);
4211
			TextDrawSetSelectable(TDE_Menu[15], true);
4212
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
4213
			TextDrawColor(TDE_Menu[32], 0xDDDDDDFF);
4214
			TextDrawSetSelectable(TDE_Menu[32], true);
4215
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
4216
			TextDrawColor(TDE_Menu[16], 0xDDDDDDFF);
4217
			TextDrawSetSelectable(TDE_Menu[16], true);
4218
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
4219
			TextDrawColor(TDE_Menu[17], 0xDDDDDDFF);
4220
			TextDrawSetSelectable(TDE_Menu[17], true);
4221
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
4222
			TextDrawColor(TDE_Menu[18], 0xDDDDDDFF);
4223
			TextDrawSetSelectable(TDE_Menu[18], true);
4224
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
4225
			TextDrawColor(TDE_Menu[19], 0xDDDDDDFF);
4226
			TextDrawSetSelectable(TDE_Menu[19], true);
4227
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
4228
			TextDrawColor(TDE_Menu[20], 0xDDDDDDFF);
4229
			TextDrawSetSelectable(TDE_Menu[20], true);
4230
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
4231
			TextDrawColor(TDE_Menu[34], 0xDDDDDDFF);
4232
			TextDrawSetSelectable(TDE_Menu[34], true);
4233
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
4234
			TextDrawColor(TDE_Menu[21], 0xDDDDDDFF);
4235
			TextDrawSetSelectable(TDE_Menu[21], true);
4236
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
4237
			TextDrawColor(TDE_Menu[22], 0xDDDDDDFF);
4238
			TextDrawSetSelectable(TDE_Menu[22], true);
4239
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
4240
			TextDrawColor(TDE_Menu[23], 0xDDDDDDFF);
4241
			TextDrawSetSelectable(TDE_Menu[23], true);
4242
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
4243
			TextDrawColor(TDE_Menu[30], 0xDDDDDDFF);
4244
			TextDrawSetSelectable(TDE_Menu[30], true);
4245
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
4246
			TextDrawColor(TDE_Menu[31], 0xDDDDDDFF);
4247
			TextDrawSetSelectable(TDE_Menu[31], true);
4248
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
4249
			
4250
            TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
4251
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
4252
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
4253
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
4254
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
4255
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
4256
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
4257
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[11]);
4258
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[25]);
4259
        }
4260
        case 2:
4261
        {
4262
            TextDrawColor(TDE_Menu[12], 0xDDDDDDFF);
4263
			TextDrawSetSelectable(TDE_Menu[12], true);
4264
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
4265
			TextDrawColor(TDE_Menu[15], 0xDDDDDDFF);
4266
			TextDrawSetSelectable(TDE_Menu[15], true);
4267
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
4268
			TextDrawColor(TDE_Menu[32], 0xDDDDDDFF);
4269
			TextDrawSetSelectable(TDE_Menu[32], true);
4270
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
4271
			TextDrawColor(TDE_Menu[16], 0xDDDDDDFF);
4272
			TextDrawSetSelectable(TDE_Menu[16], true);
4273
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
4274
			TextDrawColor(TDE_Menu[17], 0xDDDDDDFF);
4275
			TextDrawSetSelectable(TDE_Menu[17], true);
4276
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
4277
			TextDrawColor(TDE_Menu[18], 0xDDDDDDFF);
4278
			TextDrawSetSelectable(TDE_Menu[18], true);
4279
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
4280
			TextDrawColor(TDE_Menu[19], 0xDDDDDDFF);
4281
			TextDrawSetSelectable(TDE_Menu[19], true);
4282
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
4283
			TextDrawColor(TDE_Menu[20], 0xDDDDDDFF);
4284
			TextDrawSetSelectable(TDE_Menu[20], true);
4285
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
4286
			TextDrawColor(TDE_Menu[34], 0xDDDDDDFF);
4287
			TextDrawSetSelectable(TDE_Menu[34], true);
4288
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
4289
			TextDrawColor(TDE_Menu[21], 0xDDDDDDFF);
4290
			TextDrawSetSelectable(TDE_Menu[21], true);
4291
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
4292
			TextDrawColor(TDE_Menu[22], 0xDDDDDDFF);
4293
			TextDrawSetSelectable(TDE_Menu[22], true);
4294
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
4295
			TextDrawColor(TDE_Menu[23], 0xDDDDDDFF);
4296
			TextDrawSetSelectable(TDE_Menu[23], true);
4297
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
4298
			TextDrawColor(TDE_Menu[30], 0xDDDDDDFF);
4299
			TextDrawSetSelectable(TDE_Menu[30], true);
4300
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
4301
			TextDrawColor(TDE_Menu[31], 0xDDDDDDFF);
4302
			TextDrawSetSelectable(TDE_Menu[31], true);
4303
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
4304
			
4305
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
4306
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
4307
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
4308
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
4309
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
4310
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
4311
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
4312
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[11]);
4313
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[26]);
4314
        }
4315
        case 3:
4316
        {
4317
			TextDrawColor(TDE_Menu[12], 0xDDDDDDFF);
4318
			TextDrawSetSelectable(TDE_Menu[12], true);
4319
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
4320
			TextDrawColor(TDE_Menu[15], 0xDDDDDDFF);
4321
			TextDrawSetSelectable(TDE_Menu[15], true);
4322
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
4323
			TextDrawColor(TDE_Menu[32], 0xDDDDDDFF);
4324
			TextDrawSetSelectable(TDE_Menu[32], true);
4325
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
4326
			TextDrawColor(TDE_Menu[16], 0xDDDDDDFF);
4327
			TextDrawSetSelectable(TDE_Menu[16], true);
4328
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
4329
			TextDrawColor(TDE_Menu[17], 0xDDDDDDFF);
4330
			TextDrawSetSelectable(TDE_Menu[17], true);
4331
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
4332
			TextDrawColor(TDE_Menu[18], 0xDDDDDDFF);
4333
			TextDrawSetSelectable(TDE_Menu[18], true);
4334
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
4335
			TextDrawColor(TDE_Menu[19], 0xDDDDDDFF);
4336
			TextDrawSetSelectable(TDE_Menu[19], true);
4337
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
4338
			TextDrawColor(TDE_Menu[20], 0xDDDDDDFF);
4339
			TextDrawSetSelectable(TDE_Menu[20], true);
4340
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
4341
			TextDrawColor(TDE_Menu[34], 0xDDDDDDFF);
4342
			TextDrawSetSelectable(TDE_Menu[34], true);
4343
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
4344
			TextDrawColor(TDE_Menu[21], 0xDDDDDDFF);
4345
			TextDrawSetSelectable(TDE_Menu[21], true);
4346
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
4347
			TextDrawColor(TDE_Menu[22], 0xDDDDDDFF);
4348
			TextDrawSetSelectable(TDE_Menu[22], true);
4349
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
4350
			TextDrawColor(TDE_Menu[23], 0xDDDDDDFF);
4351
			TextDrawSetSelectable(TDE_Menu[23], true);
4352
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
4353
			TextDrawColor(TDE_Menu[30], 0xDDDDDDFF);
4354
			TextDrawSetSelectable(TDE_Menu[30], true);
4355
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
4356
			TextDrawColor(TDE_Menu[31], 0xDDDDDDFF);
4357
			TextDrawSetSelectable(TDE_Menu[31], true);
4358
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
4359
			
4360
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
4361
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
4362
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
4363
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
4364
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
4365
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
4366
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
4367
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[11]);
4368
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[27]);
4369
        }
4370
        case 4:
4371
        {
4372
			TextDrawColor(TDE_Menu[12], 0x888888FF);
4373
			TextDrawSetSelectable(TDE_Menu[12], false);
4374
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
4375
			TextDrawColor(TDE_Menu[15], 0x888888FF);
4376
			TextDrawSetSelectable(TDE_Menu[15], false);
4377
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
4378
			TextDrawColor(TDE_Menu[32], 0x888888FF);
4379
			TextDrawSetSelectable(TDE_Menu[32], false);
4380
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
4381
			TextDrawColor(TDE_Menu[16], 0x888888FF);
4382
			TextDrawSetSelectable(TDE_Menu[16], false);
4383
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
4384
			TextDrawColor(TDE_Menu[17], 0x888888FF);
4385
			TextDrawSetSelectable(TDE_Menu[17], false);
4386
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
4387
			TextDrawColor(TDE_Menu[18], 0x888888FF);
4388
			TextDrawSetSelectable(TDE_Menu[18], false);
4389
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
4390
			TextDrawColor(TDE_Menu[19], 0x888888FF);
4391
			TextDrawSetSelectable(TDE_Menu[19], false);
4392
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
4393
			TextDrawColor(TDE_Menu[20], 0x888888FF);
4394
			TextDrawSetSelectable(TDE_Menu[20], false);
4395
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
4396
			TextDrawColor(TDE_Menu[34], 0x888888FF);
4397
			TextDrawSetSelectable(TDE_Menu[34], false);
4398
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
4399
			TextDrawColor(TDE_Menu[21], 0x888888FF);
4400
			TextDrawSetSelectable(TDE_Menu[21], false);
4401
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
4402
			TextDrawColor(TDE_Menu[22], 0x888888FF);
4403
			TextDrawSetSelectable(TDE_Menu[22], false);
4404
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
4405
			TextDrawColor(TDE_Menu[23], 0x888888FF);
4406
			TextDrawSetSelectable(TDE_Menu[23], false);
4407
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
4408
			TextDrawColor(TDE_Menu[30], 0x888888FF);
4409
			TextDrawSetSelectable(TDE_Menu[30], false);
4410
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
4411
			TextDrawColor(TDE_Menu[31], 0x888888FF);
4412
			TextDrawSetSelectable(TDE_Menu[31], false);
4413
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
4414
			
4415
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
4416
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
4417
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
4418
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
4419
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
4420
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
4421
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[35]);
4422
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[11]);
4423
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
4424
			
4425
        }
4426
        case 5:
4427
        {
4428
            TextDrawColor(TDE_Menu[12], 0x888888FF);
4429
			TextDrawSetSelectable(TDE_Menu[12], false);
4430
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[12]);
4431
			TextDrawColor(TDE_Menu[15], 0xDDDDDDFF);
4432
			TextDrawSetSelectable(TDE_Menu[15], true);
4433
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[15]);
4434
			TextDrawColor(TDE_Menu[32], 0x888888FF);
4435
			TextDrawSetSelectable(TDE_Menu[32], false);
4436
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[32]);
4437
			TextDrawColor(TDE_Menu[16], 0x888888FF);
4438
			TextDrawSetSelectable(TDE_Menu[16], false);
4439
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[16]);
4440
			TextDrawColor(TDE_Menu[17], 0x888888FF);
4441
			TextDrawSetSelectable(TDE_Menu[17], false);
4442
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[17]);
4443
			TextDrawColor(TDE_Menu[18], 0x888888FF);
4444
			TextDrawSetSelectable(TDE_Menu[18], false);
4445
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[18]);
4446
			TextDrawColor(TDE_Menu[19], 0x888888FF);
4447
			TextDrawSetSelectable(TDE_Menu[19], false);
4448
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
4449
			TextDrawColor(TDE_Menu[20], 0x888888FF);
4450
			TextDrawSetSelectable(TDE_Menu[20], false);
4451
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
4452
			TextDrawColor(TDE_Menu[34], 0x888888FF);
4453
			TextDrawSetSelectable(TDE_Menu[34], false);
4454
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[34]);
4455
			TextDrawColor(TDE_Menu[21], 0x888888FF);
4456
			TextDrawSetSelectable(TDE_Menu[21], false);
4457
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
4458
			TextDrawColor(TDE_Menu[22], 0x888888FF);
4459
			TextDrawSetSelectable(TDE_Menu[22], false);
4460
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
4461
			TextDrawColor(TDE_Menu[23], 0x888888FF);
4462
			TextDrawSetSelectable(TDE_Menu[23], false);
4463
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
4464
			TextDrawColor(TDE_Menu[30], 0x888888FF);
4465
			TextDrawSetSelectable(TDE_Menu[30], false);
4466
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
4467
			TextDrawColor(TDE_Menu[31], 0x888888FF);
4468
			TextDrawSetSelectable(TDE_Menu[31], false);
4469
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
4470
			
4471
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[24]);
4472
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[25]);
4473
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[26]);
4474
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[27]);
4475
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[12]);
4476
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[13]);
4477
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[13]);
4478
			TextDrawHideForPlayer(ProjectEditor, TDE_Menu[11]);
4479
			TextDrawShowForPlayer(ProjectEditor, TDE_Menu[35]);
4480
        }
4481
    }
4482
    
4483
    if(TextDrawIsBox(ProjectTD[Index][ETextDrawID]))
4484
	{
4485
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[19]);
4486
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
4487
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[34]);
4488
	    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[20]);
4489
	}
4490
	else
4491
	{
4492
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[19]);
4493
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[20]);
4494
	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[34]);
4495
	    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[19]);
4496
	}
4497
4498
4499
4500
    switch(TextDrawGetAlignment(ProjectTD[Index][ETextDrawID]))
4501
    {
4502
    	case 1:
4503
		{
4504
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[21]);
4505
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
4506
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
4507
		    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[21]);
4508
		}
4509
    	case 2:
4510
    	{
4511
    	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[21]);
4512
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
4513
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
4514
		    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[22]);
4515
    	}
4516
    	case 3: 
4517
    	{
4518
    	    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[21]);
4519
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[22]);
4520
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[23]);
4521
		    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[23]);
4522
    	}
4523
	}
4524
	
4525
	switch(ProjectTD[Index][ETextDrawType])
4526
	{
4527
	    case 0:
4528
	    {
4529
	        TextDrawHideForPlayer(ProjectEditor, TDE_Menu[5]);
4530
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
4531
		    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[5]);
4532
	    }
4533
	    case 1:
4534
	    {
4535
	        TextDrawHideForPlayer(ProjectEditor, TDE_Menu[5]);
4536
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[33]);
4537
		    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[33]);
4538
	    }
4539
	}
4540
	
4541
	switch(ProjectTD[Index][ETextDrawSelectable])
4542
	{
4543
	    case 0:
4544
	    {
4545
	        TextDrawHideForPlayer(ProjectEditor, TDE_Menu[28]);
4546
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
4547
		    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[28]);
4548
	    }
4549
	    case 1:
4550
	    {
4551
	        TextDrawHideForPlayer(ProjectEditor, TDE_Menu[28]);
4552
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[29]);
4553
		    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[29]);
4554
	    }
4555
	}
4556
	
4557
	switch(TextDrawIsProportional(ProjectTD[Index][ETextDrawID]))
4558
	{
4559
	    case 0:
4560
	    {
4561
	        TextDrawHideForPlayer(ProjectEditor, TDE_Menu[30]);
4562
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[31]);
4563
		    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[30]);
4564
	    }
4565
	    case 1:
4566
	    {
4567
	        TextDrawHideForPlayer(ProjectEditor, TDE_Menu[30]);
4568
		    TextDrawHideForPlayer(ProjectEditor, TDE_Menu[31]);
4569
		    TextDrawShowForPlayer(ProjectEditor, TDE_Menu[31]);
4570
	    }
4571
	}
4572
    return 1;
4573
}
4574
4575
stock IsVehicle(modelid)
4576
{
4577
	if(modelid >= 400 && modelid <= 611) return true;
4578
	return false;
4579
}
4580
4581
4582
stock SaveProject()
4583
{
4584
	if(!strlen(ProjectFile)) return SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}Load the project first.");
4585
    if(fexist(ProjectFile)) fremove(ProjectFile);
4586
	Handler = fopen(ProjectFile, io_append);
4587
    if(!Handler) return SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}Couldn't save the project.");
4588
4589
	new alignment, usebox, font, proportional;
4590
    for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
4591
	{
4592
	    if(ProjectTD[i][ItsFromTDE] == 1)
4593
	    {
4594
4595
            alignment = TextDrawGetAlignment(ProjectTD[i][ETextDrawID]);
4596
            usebox = TextDrawIsBox(ProjectTD[i][ETextDrawID]);
4597
            font = TextDrawGetFont(ProjectTD[i][ETextDrawID]);
4598
            proportional = TextDrawIsProportional(ProjectTD[i][ETextDrawID]);
4599
		    format(Pro_Str, sizeof(Pro_Str),
4600
			"%f|%f|%f|%f|%f|%f|%i|%i|%i|%i|%i|%i|%i|%i|%i|%i|%i|%s|%d|%f|%f|%f|%f|%d|%d\r\n",
4601
		    ProjectTD[i][ETextDrawPosX], 				ProjectTD[i][ETextDrawPosY],
4602
			ProjectTD[i][ETextDrawLetterX], 			ProjectTD[i][ETextDrawLetterY],
4603
			ProjectTD[i][ETextDrawTextX], 				ProjectTD[i][ETextDrawTextY],
4604
			alignment, 									ProjectTD[i][ETextDrawColor],
4605
			usebox, 									ProjectTD[i][ETextDrawBoxColor],
4606
			ProjectTD[i][ETextDrawShadow], 				ProjectTD[i][ETextDrawOutline],
4607
			ProjectTD[i][ETextDrawBGColor], 			font,
4608
			proportional, 								ProjectTD[i][ETextDrawSelectable],
4609
			ProjectTD[i][ETextDrawType], 				ProjectTD[i][ETextDrawText],
4610
			ProjectTD[i][ETextDrawModelid],
4611
			ProjectTD[i][ETextDrawRotX],				ProjectTD[i][ETextDrawRotY],				ProjectTD[i][ETextDrawRotZ], ProjectTD[i][ETextDrawZoom],
4612
			ProjectTD[i][ETextDrawVehCol1], 			ProjectTD[i][ETextDrawVehCol2]);
4613
			fwrite(Handler, Pro_Str);
4614
		}
4615
	}
4616
    fclose(Handler);
4617
	return true;
4618
}
4619
4620
stock LoadProject()
4621
{
4622
    if(!strlen(ProjectFile)) return SendClientMessage(ProjectEditor, -1, "{e2b960}TDEditor: {FFFFFF}Couldnt load the project.");
4623
    Handler = fopen(ProjectFile, io_read);
4624
	if(!Handler) return false;
4625
    new i, alignment, usebox, font, proportional;
4626
    while(fread(Handler, Pro_Str))
4627
    {
4628
        StripNewLine(Pro_Str);
4629
		if(!sscanf(Pro_Str, "p<|>ffffffiiiiiiiiiiis[128]dffffdd",
4630
		ProjectTD[i][ETextDrawPosX], 				ProjectTD[i][ETextDrawPosY],
4631
		ProjectTD[i][ETextDrawLetterX], 			ProjectTD[i][ETextDrawLetterY],
4632
		ProjectTD[i][ETextDrawTextX], 				ProjectTD[i][ETextDrawTextY],
4633
		alignment, 									ProjectTD[i][ETextDrawColor],
4634
		usebox, 									ProjectTD[i][ETextDrawBoxColor],
4635
		ProjectTD[i][ETextDrawShadow], 				ProjectTD[i][ETextDrawOutline],
4636
		ProjectTD[i][ETextDrawBGColor], 			font,
4637
		proportional, 								ProjectTD[i][ETextDrawSelectable],
4638
		ProjectTD[i][ETextDrawType], 				ProjectTD[i][ETextDrawText],
4639
		ProjectTD[i][ETextDrawModelid],
4640
		ProjectTD[i][ETextDrawRotX],				ProjectTD[i][ETextDrawRotY],				ProjectTD[i][ETextDrawRotZ], ProjectTD[i][ETextDrawZoom],
4641
		ProjectTD[i][ETextDrawVehCol1], 			ProjectTD[i][ETextDrawVehCol2]))
4642
		{
4643
		    EditIndex = i;
4644
		    
4645
		    ProjectTD[i][ETextDrawID] = TextDrawCreate(ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY], ProjectTD[i][ETextDrawText]);
4646
			TextDrawLetterSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]);
4647
			TextDrawAlignment(ProjectTD[i][ETextDrawID], alignment);
4648
			TextDrawColor(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawColor]);
4649
			TextDrawUseBox(ProjectTD[i][ETextDrawID], usebox);
4650
			TextDrawSetShadow(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawShadow]);
4651
			TextDrawSetOutline(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawOutline]);
4652
			TextDrawBackgroundColor(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawBGColor]);
4653
			TextDrawFont(ProjectTD[i][ETextDrawID], font);
4654
			TextDrawSetProportional(ProjectTD[i][ETextDrawID], proportional);
4655
			TextDrawTextSize(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
4656
			TextDrawBoxColor(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawBoxColor]);
4657
			if(font == 5)
4658
		    {
4659
		        TextDrawSetPreviewModel(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawModelid]);
4660
				TextDrawSetPreviewRot(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawRotX], ProjectTD[i][ETextDrawRotY], ProjectTD[i][ETextDrawRotZ], ProjectTD[i][ETextDrawZoom]);
4661
				if(IsVehicle(ProjectTD[i][ETextDrawModelid])) TextDrawSetPreviewVehCol(ProjectTD[i][ETextDrawID], ProjectTD[i][ETextDrawVehCol1], ProjectTD[i][ETextDrawVehCol2]);
4662
		    }
4663
		    ProjectTD[i][ItsFromTDE] = 1;
4664
		    TextDrawShowForPlayer(ProjectEditor, ProjectTD[i][ETextDrawID]);
4665
		    i++;
4666
		}
4667
    }
4668
4669
    fclose(Handler);
4670
    PageStart = 0;
4671
//	UpdateIcons(EditIndex);
4672
	return true;
4673
}
4674
4675
stock StripNewLine(string[]) //DracoBlue (bugfix idea by Y_Less)
4676
{
4677
	new len = strlen(string);
4678
	if (string[0]==0) return ;
4679
	if ((string[len - 1] == '\n') || (string[len - 1] == '\r')) {
4680
		string[len - 1] = 0;
4681
		if (string[0]==0) return ;
4682
		if ((string[len - 2] == '\n') || (string[len - 2] == '\r')) string[len - 2] = 0;
4683
	}
4684
}
4685
4686
stock CheckProject(name[])
4687
{
4688
    if(!fexist("tdelist.txt")) return false;
4689
4690
    Handler = fopen("tdelist.txt", io_read);
4691
    if(!Handler) return -1;
4692
4693
	while(fread(Handler, Pro_Str))
4694
	{
4695
		if(!strcmp(Pro_Str, name, true, strlen(name)))
4696
		{
4697
		    fclose(Handler);
4698
		    return true;
4699
		}
4700
	}
4701
	fclose(Handler);
4702
	return false;
4703
}
4704
4705
stock AddProject(name[])
4706
{
4707
    Handler = fopen("tdelist.txt", io_append);
4708
    if(!Handler) return false;
4709
4710
    fwrite(Handler, name);
4711
    fwrite(Handler, "\r\n");
4712
    fclose(Handler);
4713
    return true;
4714
}
4715
4716
stock CloseProject()
4717
{
4718
    if(!strlen(ProjectFile)) return false;
4719
4720
    SaveProject();
4721
    for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++) RemoveTextDrawTDEOnly(i);
4722
4723
	EditIndex = INVALID_INDEX_ID;
4724
	TextDrawSetString(TD_Status, "EditMode: EDITMODE_NONE");
4725
	EditMode = EDITMODE_NONE;
4726
	ColorMode = COLORMODE_NONE;
4727
	EmptyString(ProjectFile);
4728
	ShowEditorEx();
4729
	IsPSel = false;
4730
	KillTimer(EditorUpdateTimer);
4731
	EmptyString(ProjectFile);
4732
    return true;
4733
}
4734
4735
stock IsValidProjectName(name[])
4736
{
4737
	Loop(0, strlen(name))
4738
	{
4739
	    switch(name[c])
4740
	    {
4741
	        case 'A' .. 'Z', 'a' .. 'z', '0' .. '9', '-', '_', '(', ')': continue;
4742
	        default: return false;
4743
	    }
4744
	}
4745
	return true;
4746
}
4747
4748
stock ExportProject()
4749
{
4750
	if(!strlen(ProjectFile)) return false;
4751
4752
    new ExportFile[64];
4753
    format(ExportFile, sizeof(ExportFile), "%s", ProjectFile);
4754
    strins(ExportFile, "TDE_", 0);
4755
    new len = strlen(ExportFile);
4756
	strdel(ExportFile, len - 3, len);
4757
	strcat(ExportFile, "txt");
4758
4759
    if(fexist(ExportFile)) fremove(ExportFile);
4760
    
4761
	new File:ExportIO = fopen(ExportFile, io_append);
4762
	if(!ExportIO) return false;
4763
4764
	new Index, global, player;
4765
    for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
4766
	{
4767
	    if(ProjectTD[i][ItsFromTDE] == 1)
4768
	    {
4769
			if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
4770
			{
4771
			    if(ProjectTD[i][ETextDrawType] == 0)
4772
			    {
4773
			    	Index++;
4774
			    	global++;
4775
				}
4776
			}
4777
		}
4778
	}
4779
	
4780
	if(Index != 0)
4781
	{
4782
	    fwrite(ExportIO, "//Global TextDraws: \r\n\r\n\r\n");
4783
	    format(line, sizeof(line), "new Text:TDEditor_TD[%i];\r\n", Index); fwrite(ExportIO, line);
4784
	    Index = 0;
4785
	    new alignment, font, proportion;
4786
	    fwrite(ExportIO, "\r\n");
4787
	    for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
4788
		{
4789
		    if(ProjectTD[i][ItsFromTDE] == 1)
4790
		    {
4791
				if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
4792
				{
4793
				    if(ProjectTD[i][ETextDrawType] == 0)
4794
				    {
4795
				        alignment = TextDrawGetAlignment(ProjectTD[i][ETextDrawID]);
4796
				        font = TextDrawGetFont(ProjectTD[i][ETextDrawID]);
4797
				        proportion = TextDrawIsProportional(ProjectTD[i][ETextDrawID]);
4798
				        format(line, sizeof(line), "TDEditor_TD[%i] = TextDrawCreate(%f, %f, \"%s\");\r\n", Index, ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY], ProjectTD[i][ETextDrawText]); fwrite(ExportIO, line);
4799
                        format(line, sizeof(line), "TextDrawLetterSize(TDEditor_TD[%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]); fwrite(ExportIO, line);
4800
	                    if(TextDrawIsBox(ProjectTD[i][ETextDrawID]) || font == 4 || font == 5)
4801
	                    {
4802
	                    	if(alignment == 2)
4803
							{
4804
								format(line, sizeof(line), "TextDrawTextSize(TDEditor_TD[%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawTextY], ProjectTD[i][ETextDrawTextX]);
4805
								fwrite(ExportIO, line);
4806
							}
4807
							else
4808
							{
4809
								format(line, sizeof(line), "TextDrawTextSize(TDEditor_TD[%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
4810
								fwrite(ExportIO, line);
4811
							}
4812
						}
4813
						format(line, sizeof(line), "TextDrawAlignment(TDEditor_TD[%i], %d);\r\n", Index, alignment); fwrite(ExportIO, line);
4814
						format(line, sizeof(line), "TextDrawColor(TDEditor_TD[%i], %i);\r\n", Index, ProjectTD[i][ETextDrawColor]); fwrite(ExportIO, line);
4815
						if(TextDrawIsBox(ProjectTD[i][ETextDrawID]))
4816
	                    {
4817
							format(line, sizeof(line), "TextDrawUseBox(TDEditor_TD[%i], 1);\r\n", Index); fwrite(ExportIO, line);
4818
                            format(line, sizeof(line), "TextDrawBoxColor(TDEditor_TD[%i], %i);\r\n", Index, ProjectTD[i][ETextDrawBoxColor]); fwrite(ExportIO, line);
4819
						}
4820
						format(line, sizeof(line), "TextDrawSetShadow(TDEditor_TD[%i], %d);\r\n", Index, ProjectTD[i][ETextDrawShadow]); fwrite(ExportIO, line);
4821
						format(line, sizeof(line), "TextDrawSetOutline(TDEditor_TD[%i], %d);\r\n", Index, ProjectTD[i][ETextDrawOutline]); fwrite(ExportIO, line);
4822
						format(line, sizeof(line), "TextDrawBackgroundColor(TDEditor_TD[%i], %d);\r\n", Index, ProjectTD[i][ETextDrawBGColor]); fwrite(ExportIO, line);
4823
						format(line, sizeof(line), "TextDrawFont(TDEditor_TD[%i], %d);\r\n", Index, font); fwrite(ExportIO, line);
4824
						format(line, sizeof(line), "TextDrawSetProportional(TDEditor_TD[%i], %d);\r\n", Index, proportion); fwrite(ExportIO, line);
4825
						format(line, sizeof(line), "TextDrawSetShadow(TDEditor_TD[%i], %d);\r\n", Index, ProjectTD[i][ETextDrawShadow]); fwrite(ExportIO, line);
4826
						
4827
                        if(ProjectTD[i][ETextDrawSelectable])
4828
						{
4829
						    format(line, sizeof(line), "TextDrawSetSelectable(TDEditor_TD[%i], true);\r\n", Index); fwrite(ExportIO, line);
4830
						}
4831
						
4832
						if(font == 5)
4833
						{
4834
						    format(line, sizeof(line), "TextDrawSetPreviewModel(TDEditor_TD[%i], %d);\r\n", Index, ProjectTD[i][ETextDrawModelid]); fwrite(ExportIO, line);
4835
						    format(line, sizeof(line), "TextDrawSetPreviewRot(TDEditor_TD[%i], %f, %f, %f, %f);\r\n", Index, ProjectTD[i][ETextDrawRotX], ProjectTD[i][ETextDrawRotY], ProjectTD[i][ETextDrawRotZ], ProjectTD[i][ETextDrawZoom]); fwrite(ExportIO, line);
4836
							if(IsVehicle(ProjectTD[i][ETextDrawModelid]))
4837
							{
4838
							    format(line, sizeof(line), "TextDrawSetPreviewVehCol(TDEditor_TD[%i], %d, %d);\r\n", Index, ProjectTD[i][ETextDrawVehCol1], ProjectTD[i][ETextDrawVehCol2]); fwrite(ExportIO, line);
4839
							}
4840
						}
4841
						format(line, sizeof(line), "\r\n"); fwrite(ExportIO, line);
4842
						Index ++;
4843
				    }
4844
				}
4845
			}
4846
		}
4847
	}
4848
4849
    Index = 0;
4850
    
4851
    for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
4852
	{
4853
	    if(ProjectTD[i][ItsFromTDE] == 1)
4854
	    {
4855
			if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
4856
			{
4857
			    if(ProjectTD[i][ETextDrawType] == 1)
4858
			    {
4859
			    	Index++;
4860
			    	player++;
4861
				}
4862
			}
4863
		}
4864
	}
4865
	
4866
	if(Index != 0)
4867
	{
4868
	    if(global > 0) fwrite(ExportIO, "\r\n\r\n");
4869
		fwrite(ExportIO, "//Player TextDraws: \r\n\r\n\r\n");
4870
	    format(line, sizeof(line), "new Text:TDEditor_PTD[MAX_PLAYERS][%i];\r\n", Index); fwrite(ExportIO, line);
4871
	    Index = 0;
4872
	    new alignment, font, proportion;
4873
	    fwrite(ExportIO, "\r\n");
4874
	    for (new i = 0; i < MAX_PROJECT_TEXTDRAWS; i++)
4875
		{
4876
		    if(ProjectTD[i][ItsFromTDE] == 1)
4877
		    {
4878
				if(ProjectTD[i][ETextDrawID] != Text:INVALID_TEXT_DRAW)
4879
				{
4880
				    if(ProjectTD[i][ETextDrawType] == 1)
4881
				    {
4882
				        alignment = TextDrawGetAlignment(ProjectTD[i][ETextDrawID]);
4883
				        font = TextDrawGetFont(ProjectTD[i][ETextDrawID]);
4884
				        proportion = TextDrawIsProportional(ProjectTD[i][ETextDrawID]);
4885
				        format(line, sizeof(line), "TDEditor_PTD[playerid][%i] = CreatePlayerTextDraw(playerid, %f, %f, \"%s\");\r\n", Index, ProjectTD[i][ETextDrawPosX], ProjectTD[i][ETextDrawPosY], ProjectTD[i][ETextDrawText]); fwrite(ExportIO, line);
4886
	                    format(line, sizeof(line), "PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawLetterX], ProjectTD[i][ETextDrawLetterY]); fwrite(ExportIO, line);
4887
	                    if(TextDrawIsBox(ProjectTD[i][ETextDrawID]) || font == 4 || font == 5)
4888
	                    {
4889
	                    	if(alignment == 2)
4890
							{
4891
								format(line, sizeof(line), "PlayerTextDrawTextSize(playerid, TDEditor_PTD[playerid][%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawTextY], ProjectTD[i][ETextDrawTextX]);
4892
								fwrite(ExportIO, line);
4893
							}
4894
							else
4895
							{
4896
								format(line, sizeof(line), "PlayerTextDrawTextSize(playerid, TDEditor_PTD[playerid][%i], %f, %f);\r\n", Index, ProjectTD[i][ETextDrawTextX], ProjectTD[i][ETextDrawTextY]);
4897
								fwrite(ExportIO, line);
4898
							}
4899
						}
4900
						format(line, sizeof(line), "PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, alignment); fwrite(ExportIO, line);
4901
						format(line, sizeof(line), "PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][%i], %i);\r\n", Index, ProjectTD[i][ETextDrawColor]); fwrite(ExportIO, line);
4902
						if(TextDrawIsBox(ProjectTD[i][ETextDrawID]))
4903
	                    {
4904
							format(line, sizeof(line), "PlayerTextDrawUseBox(playerid, TDEditor_PTD[playerid][%i], 1);\r\n", Index); fwrite(ExportIO, line);
4905
	                        format(line, sizeof(line), "PlayerTextDrawBoxColor(playerid, TDEditor_PTD[playerid][%i], %i);\r\n", Index, ProjectTD[i][ETextDrawBoxColor]); fwrite(ExportIO, line);
4906
						}
4907
						format(line, sizeof(line), "PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, ProjectTD[i][ETextDrawShadow]); fwrite(ExportIO, line);
4908
						format(line, sizeof(line), "PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, ProjectTD[i][ETextDrawOutline]); fwrite(ExportIO, line);
4909
						format(line, sizeof(line), "PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, ProjectTD[i][ETextDrawBGColor]); fwrite(ExportIO, line);
4910
						format(line, sizeof(line), "PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, font); fwrite(ExportIO, line);
4911
						format(line, sizeof(line), "PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, proportion); fwrite(ExportIO, line);
4912
						format(line, sizeof(line), "PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, ProjectTD[i][ETextDrawShadow]); fwrite(ExportIO, line);
4913
4914
	                    if(ProjectTD[i][ETextDrawSelectable])
4915
						{
4916
						    format(line, sizeof(line), "PlayerTextDrawSetSelectable(playerid, TDEditor_PTD[playerid][%i], true);\r\n", Index); fwrite(ExportIO, line);
4917
						}
4918
4919
						if(font == 5)
4920
						{
4921
						    format(line, sizeof(line), "PlayerTextDrawSetPreviewModel(playerid, TDEditor_PTD[playerid][%i], %d);\r\n", Index, ProjectTD[i][ETextDrawModelid]); fwrite(ExportIO, line);
4922
						    format(line, sizeof(line), "PlayerTextDrawSetPreviewRot(playerid, TDEditor_PTD[playerid][%i], %f, %f, %f, %f);\r\n", Index, ProjectTD[i][ETextDrawRotX], ProjectTD[i][ETextDrawRotY], ProjectTD[i][ETextDrawRotZ], ProjectTD[i][ETextDrawZoom]); fwrite(ExportIO, line);
4923
							if(IsVehicle(ProjectTD[i][ETextDrawModelid]))
4924
							{
4925
							    format(line, sizeof(line), "PlayerTextDrawSetPreviewVehCol(playerid, TDEditor_PTD[playerid][%i], %d, %d);\r\n", Index, ProjectTD[i][ETextDrawVehCol1], ProjectTD[i][ETextDrawVehCol2]); fwrite(ExportIO, line);
4926
							}
4927
						}
4928
						format(line, sizeof(line), "\r\n"); fwrite(ExportIO, line);
4929
						Index ++;
4930
				    }
4931
				}
4932
			}
4933
		}
4934
	}
4935
	
4936
	new Hour, Minute, Second;
4937
	gettime(Hour, Minute, Second);
4938
	new Year, Month, Day;
4939
	getdate(Year, Month, Day);
4940
4941
	format(line, sizeof(line), "\r\n\r\n\r\n//Total textdraws exported: %d (%d global textdraws / %d player textdraws) ~ %d/%d/%d ~ %d:%d:%d", (global+player), global, player, Day, Month, Year, Hour, Minute, Second); fwrite(ExportIO, line);
4942
	format(line, sizeof(line), "\r\nTDEditor V1.13 by adri1"); fwrite(ExportIO, line);
4943
	fclose(ExportIO);
4944
	
4945
	new str[128];
4946
	format(str, 128, "{e2b960}TDEditor: {FFFFFF}Proyecto exportado (%s, %d global textdraws, %d player textdraws).", ExportFile, global, player);
4947
	SendClientMessage(ProjectEditor, -1, str);
4948
	return 1;
4949
}
4950
4951
/*
4952
4953
	___ __  __
4954
	 | |  \|_  _|.|_ _  _
4955
	 | |__/|__(_|||_(_)|
4956
4957
	TDEditor 1.13 by adri1
4958
4959
*/