call.pwn 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550
  1. public OnFilterScriptInit() {
  2. CreateGenericCategoryManager();
  3. for(new playerid, max_playerid = GetPlayerPoolSize(); playerid <= max_playerid; playerid ++) {
  4. if( IsPlayerConnected(playerid) ) {
  5. DefaultCategoryManagerData(playerid);
  6. }
  7. }
  8. #if defined cm_OnFilterScriptInit
  9. cm_OnFilterScriptInit();
  10. #endif
  11. }
  12. #if defined _ALS_OnFilterScriptInit
  13. #undef OnFilterScriptInit
  14. #else
  15. #define _ALS_OnFilterScriptInit
  16. #endif
  17. #define OnFilterScriptInit cm_OnFilterScriptInit
  18. #if defined cm_OnFilterScriptInit
  19. forward cm_OnFilterScriptInit();
  20. #endif
  21. public OnFilterScriptExit() {
  22. DestroyGenericCategoryManager();
  23. #if defined cm_OnFilterScriptExit
  24. cm_OnFilterScriptExit();
  25. #endif
  26. }
  27. #if defined _ALS_OnFilterScriptExit
  28. #undef OnFilterScriptExit
  29. #else
  30. #define _ALS_OnFilterScriptExit
  31. #endif
  32. #define OnFilterScriptExit cm_OnFilterScriptExit
  33. #if defined cm_OnFilterScriptExit
  34. forward cm_OnFilterScriptExit();
  35. #endif
  36. public OnPlayerConnect(playerid) {
  37. DefaultCategoryManagerData(playerid);
  38. #if defined cm_OnPlayerConnect
  39. return cm_OnPlayerConnect(playerid);
  40. #else
  41. return 1;
  42. #endif
  43. }
  44. #if defined _ALS_OnPlayerConnect
  45. #undef OnPlayerConnect
  46. #else
  47. #define _ALS_OnPlayerConnect
  48. #endif
  49. #define OnPlayerConnect cm_OnPlayerConnect
  50. #if defined cm_OnPlayerConnect
  51. forward cm_OnPlayerConnect(playerid);
  52. #endif
  53. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  54. switch( dialogid ) {
  55. case DIALOGID_CATMANAGER_CAT_CREATE: {
  56. if( !response ) {
  57. return 1;
  58. }
  59. if( isempty(inputtext) ) {
  60. ShowCategoryManagerDialog(playerid, dialogid);
  61. SendClientMessage(playerid, RGBA_RED, "ERROR: You did not enter anything into the textfield!");
  62. return 1;
  63. }
  64. new create_success;
  65. switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
  66. case TDMODE_CATMANAGER_MODELS: {
  67. create_success = CreateModelCategory(inputtext);
  68. }
  69. case TDMODE_CATMANAGER_VEHICLES: {
  70. create_success = CreateVehicleCategory(inputtext);
  71. }
  72. case TDMODE_CATMANAGER_SKINS: {
  73. create_success = CreateSkinCategory(inputtext);
  74. }
  75. case TDMODE_CATMANAGER_TEXTURES: {
  76. create_success = CreateTextureCategory(inputtext);
  77. }
  78. default: {
  79. return 1;
  80. }
  81. }
  82. if( create_success ) {
  83. SendClientMessage(playerid, RGBA_GREEN, "Category created successfully.");
  84. } else {
  85. SendClientMessage(playerid, RGBA_RED, "ERROR: Category could not be created!");
  86. ShowCategoryManagerDialog(playerid, dialogid);
  87. }
  88. return 1;
  89. }
  90. case DIALOGID_CATMANAGER_CAT_DESTROY: {
  91. if( !response ) {
  92. return 1;
  93. }
  94. if( isempty(inputtext) || strcmp(inputtext, CATMANAGER_DELETE_CODE, true) != 0 ) {
  95. SendClientMessage(playerid, RGBA_RED, "ERROR: You did not enter the correct delete code!");
  96. ShowCategoryManagerDialog(playerid, dialogid);
  97. return 1;
  98. }
  99. new categoryid = g_CatManagerData[playerid][CATMANAGER_DATA_CATEGORY];
  100. if( categoryid == INVALID_CATEGORY_ID ) {
  101. return 1;
  102. }
  103. new success;
  104. switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
  105. case TDMODE_CATMANAGER_MODELS: {
  106. success = DestroyModelCategory(categoryid);
  107. }
  108. case TDMODE_CATMANAGER_VEHICLES: {
  109. success = DestroyVehicleCategory(categoryid);
  110. }
  111. case TDMODE_CATMANAGER_SKINS: {
  112. success = DestroySkinCategory(categoryid);
  113. }
  114. case TDMODE_CATMANAGER_TEXTURES: {
  115. success = DestroyTextureCategory(categoryid);
  116. }
  117. default: {
  118. return 1;
  119. }
  120. }
  121. if( success ) {
  122. SendClientMessage(playerid, RGBA_GREEN, "Category destroyed successfully.");
  123. SetCategoryManagerPage(playerid, CATMANAGER_WINDOW_CAT, MIN_CATMANAGER_PAGE);
  124. g_CatManagerData[playerid][CATMANAGER_DATA_CATEGORY] = INVALID_CATEGORY_ID;
  125. LoadCategoryManagerRowData(playerid, CATMANAGER_WINDOW_CAT);
  126. ApplyCategoryManagerPage(playerid, CATMANAGER_WINDOW_CAT);
  127. ApplyCategoryManagerCatName(playerid);
  128. ApplyCategoryManagerRowData(playerid, CATMANAGER_WINDOW_CAT);
  129. } else {
  130. SendClientMessage(playerid, RGBA_RED, "ERROR: This category could not be removed!");
  131. ShowCategoryManagerDialog(playerid, dialogid);
  132. }
  133. return 1;
  134. }
  135. case DIALOGID_CATMANAGER_CAT_RENAME: {
  136. if( !response ) {
  137. return 1;
  138. }
  139. if( isempty(inputtext) ) {
  140. SendClientMessage(playerid, RGBA_RED, "ERROR: You did not enter anything into the textfield!");
  141. ShowCategoryManagerDialog(playerid, dialogid);
  142. return 1;
  143. }
  144. new categoryid = g_CatManagerData[playerid][CATMANAGER_DATA_CATEGORY];
  145. if( categoryid == INVALID_CATEGORY_ID ) {
  146. return 1;
  147. }
  148. new success;
  149. switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
  150. case TDMODE_CATMANAGER_MODELS: {
  151. success = RenameModelCategory(categoryid, inputtext);
  152. }
  153. case TDMODE_CATMANAGER_VEHICLES: {
  154. success = RenameVehicleCategory(categoryid, inputtext);
  155. }
  156. case TDMODE_CATMANAGER_SKINS: {
  157. success = RenameSkinCategory(categoryid, inputtext);
  158. }
  159. case TDMODE_CATMANAGER_TEXTURES: {
  160. success = RenameTextureCategory(categoryid, inputtext);
  161. }
  162. default: {
  163. return 1;
  164. }
  165. }
  166. if( success ) {
  167. SendClientMessage(playerid, RGBA_GREEN, "Category renamed successfully.");
  168. ApplyCategoryManagerCatName(playerid);
  169. } else {
  170. SendClientMessage(playerid, RGBA_RED, "ERROR: This category could not be renamed!");
  171. ShowCategoryManagerDialog(playerid, dialogid);
  172. }
  173. return 1;
  174. }
  175. case DIALOGID_CATMANAGER_PAGE_ALL, DIALOGID_CATMANAGER_PAGE_CAT: {
  176. if( !response ) {
  177. return 1;
  178. }
  179. new
  180. bool:window = (dialogid == DIALOGID_CATMANAGER_PAGE_ALL) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT,
  181. maxpage = GetCategoryManagerMaxPage(playerid, window),
  182. page
  183. ;
  184. if( sscanf(inputtext, "i", page) || (page-1) < MIN_CATMANAGER_PAGE || (page-1) > maxpage ) {
  185. SendClientMessage(playerid, RGBA_RED, "ERROR: You did not enter a valid page number!");
  186. ShowCategoryManagerDialog(playerid, dialogid);
  187. return 1;
  188. }
  189. SetCategoryManagerPage(playerid, window, page - 1);
  190. LoadCategoryManagerRowData(playerid, window);
  191. ApplyCategoryManagerPage(playerid, window);
  192. ApplyCategoryManagerRowData(playerid, window);
  193. return 1;
  194. }
  195. case DIALOGID_CATMANAGER_SEARCH_ALL, DIALOGID_CATMANAGER_SEARCH_CAT: {
  196. if( !response ) {
  197. return 1;
  198. }
  199. new bool:window = (dialogid == DIALOGID_CATMANAGER_SEARCH_ALL) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT;
  200. SetCategoryManagerSearch(playerid, window, inputtext);
  201. SetCategoryManagerPage(playerid, window, MIN_CATMANAGER_PAGE);
  202. LoadCategoryManagerRowData(playerid, window);
  203. ApplyCategoryManagerSearch(playerid, window);
  204. ApplyCategoryManagerPage(playerid, window);
  205. ApplyCategoryManagerRowData(playerid, window);
  206. return 1;
  207. }
  208. }
  209. #if defined cm_OnDialogResponse
  210. return cm_OnDialogResponse(playerid, dialogid, response, listitem, inputtext);
  211. #else
  212. return 0;
  213. #endif
  214. }
  215. #if defined _ALS_OnDialogResponse
  216. #undef OnDialogResponse
  217. #else
  218. #define _ALS_OnDialogResponse
  219. #endif
  220. #define OnDialogResponse cm_OnDialogResponse
  221. #if defined cm_OnDialogResponse
  222. forward cm_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
  223. #endif
  224. public OnPlayerClickTextDraw(playerid, Text:clickedid) {
  225. if( clickedid == Text: INVALID_TEXT_DRAW ) {
  226. switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
  227. case TDMODE_CATMANAGER_MODELS, TDMODE_CATMANAGER_VEHICLES, TDMODE_CATMANAGER_SKINS, TDMODE_CATMANAGER_TEXTURES: {
  228. HidePlayerTextdrawMode(playerid);
  229. }
  230. }
  231. }
  232. if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_CLOSE] ) {
  233. return HidePlayerTextdrawMode(playerid), 1;
  234. }
  235. if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_CATEGORY_CREATE] ) {
  236. return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_CAT_CREATE), 1;
  237. }
  238. if(clickedid == g_CatManagerGTD[CATMANAGER_GTD_CATEGORY_DESTROY]) {
  239. return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_CAT_DESTROY), 1;
  240. }
  241. if(clickedid == g_CatManagerGTD[CATMANAGER_GTD_CATEGORY_RENAME]) {
  242. return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_CAT_RENAME), 1;
  243. }
  244. if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_F_ALL] || clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_F_CAT] ) {
  245. new bool: window = ( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_F_ALL] ) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT;
  246. if( GetCategoryManagerPage(playerid, window) == MIN_CATMANAGER_PAGE ) {
  247. return 1;
  248. }
  249. SetCategoryManagerPage(playerid, window, MIN_CATMANAGER_PAGE);
  250. LoadCategoryManagerRowData(playerid, window);
  251. ApplyCategoryManagerPage(playerid, window);
  252. ApplyCategoryManagerRowData(playerid, window);
  253. return 1;
  254. }
  255. if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_P_ALL] || clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_P_CAT] ) {
  256. new
  257. bool: window = ( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_P_ALL] ) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT,
  258. page = GetCategoryManagerPage(playerid, window)
  259. ;
  260. if( page == MIN_CATMANAGER_PAGE ) {
  261. return 1;
  262. }
  263. if( -- page < MIN_CATMANAGER_PAGE ) {
  264. page = MIN_CATMANAGER_PAGE;
  265. }
  266. SetCategoryManagerPage(playerid, window, page);
  267. LoadCategoryManagerRowData(playerid, window);
  268. ApplyCategoryManagerPage(playerid, window);
  269. ApplyCategoryManagerRowData(playerid, window);
  270. return 1;
  271. }
  272. if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_N_ALL] || clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_N_CAT] ) {
  273. new
  274. bool: window = ( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_N_ALL] ) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT,
  275. page = GetCategoryManagerPage(playerid, window),
  276. maxpage = GetCategoryManagerMaxPage(playerid, window)
  277. ;
  278. if( page == maxpage ) {
  279. return 1;
  280. }
  281. if( ++ page > maxpage ) {
  282. page = maxpage;
  283. }
  284. SetCategoryManagerPage(playerid, window, page);
  285. LoadCategoryManagerRowData(playerid, window);
  286. ApplyCategoryManagerPage(playerid, window);
  287. ApplyCategoryManagerRowData(playerid, window);
  288. return 1;
  289. }
  290. if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_L_ALL] || clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_L_CAT] ) {
  291. new
  292. bool: window = ( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_L_ALL] ) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT,
  293. maxpage = GetCategoryManagerMaxPage(playerid, window)
  294. ;
  295. if( GetCategoryManagerPage(playerid, window) == maxpage ) {
  296. return 1;
  297. }
  298. SetCategoryManagerPage(playerid, window, maxpage);
  299. LoadCategoryManagerRowData(playerid, window);
  300. ApplyCategoryManagerPage(playerid, window);
  301. ApplyCategoryManagerRowData(playerid, window);
  302. return 1;
  303. }
  304. #if defined cm_OnPlayerClickTextDraw
  305. return cm_OnPlayerClickTextDraw(playerid, Text:clickedid);
  306. #else
  307. return 0;
  308. #endif
  309. }
  310. #if defined _ALS_OnPlayerClickTextDraw
  311. #undef OnPlayerClickTextDraw
  312. #else
  313. #define _ALS_OnPlayerClickTextDraw
  314. #endif
  315. #define OnPlayerClickTextDraw cm_OnPlayerClickTextDraw
  316. #if defined cm_OnPlayerClickTextDraw
  317. forward cm_OnPlayerClickTextDraw(playerid, Text:clickedid);
  318. #endif
  319. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) {
  320. if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_TYPE_MODELS] ) {
  321. return ShowPlayerTextdrawMode(playerid, TDMODE_CATMANAGER_MODELS), 1;
  322. }
  323. if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_TYPE_VEHICLES] ) {
  324. return ShowPlayerTextdrawMode(playerid, TDMODE_CATMANAGER_VEHICLES), 1;
  325. }
  326. if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_TYPE_SKINS] ) {
  327. return ShowPlayerTextdrawMode(playerid, TDMODE_CATMANAGER_SKINS), 1;
  328. }
  329. if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_TYPE_TEXTURES] ) {
  330. return ShowPlayerTextdrawMode(playerid, TDMODE_CATMANAGER_TEXTURES), 1;
  331. }
  332. if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_CATEGORY_NAME] ) {
  333. DefaultCategorySelectData(playerid);
  334. LoadCategorySelectData(playerid);
  335. ShowCategorySelect(playerid);
  336. return 1;
  337. }
  338. if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_PAGE_ALL] ) {
  339. return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_PAGE_ALL), 1;
  340. }
  341. if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_PAGE_CAT] ) {
  342. return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_PAGE_CAT), 1;
  343. }
  344. if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_SEARCH_ALL] ) {
  345. return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_SEARCH_ALL), 1;
  346. }
  347. if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_SEARCH_CAT] ) {
  348. return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_SEARCH_CAT), 1;
  349. }
  350. for(new row; row < MAX_CATMANAGER_ROWS; row ++) {
  351. if(
  352. playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_1_ALL][row] ||
  353. playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_2_ALL][row] ||
  354. playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_3_ALL][row] ||
  355. playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_1_CAT][row] ||
  356. playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_2_CAT][row] ||
  357. playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_3_CAT][row]
  358. ) {
  359. new bool: window;
  360. if(
  361. playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_1_ALL][row] ||
  362. playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_2_ALL][row] ||
  363. playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_3_ALL][row]
  364. ) {
  365. window = CATMANAGER_WINDOW_ALL;
  366. } else {
  367. window = CATMANAGER_WINDOW_CAT;
  368. }
  369. new
  370. bool: prev_window = g_CatManagerData[playerid][CATMANAGER_DATA_SELECT_WINDOW],
  371. prev_row = g_CatManagerData[playerid][CATMANAGER_DATA_SELECT_ROW],
  372. row_id = GetCategoryManagerRowID(playerid, window, row),
  373. bool: ismodel
  374. ;
  375. // model or texture ?
  376. switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
  377. case TDMODE_CATMANAGER_MODELS, TDMODE_CATMANAGER_VEHICLES, TDMODE_CATMANAGER_SKINS: {
  378. ismodel = true; // model
  379. }
  380. default: {
  381. ismodel = false; // texture
  382. }
  383. }
  384. if( ismodel && row_id == INVALID_MODEL_ID ) {
  385. return 1; // invalid modelid
  386. }
  387. if( !ismodel && row_id == INVALID_TEXTURE_ID ) {
  388. return 1; // invalid textureid
  389. }
  390. if( prev_window != window || prev_row != row ) {
  391. // New row selected
  392. g_CatManagerData[playerid][CATMANAGER_DATA_SELECT_WINDOW] = window;
  393. g_CatManagerData[playerid][CATMANAGER_DATA_SELECT_ROW] = row;
  394. g_CatManagerData[playerid][CATMANAGER_DATA_SELECT_ID] = row_id;
  395. if( prev_row != INVALID_ROW ) {
  396. ApplyCategoryManagerRowColor(playerid, prev_window, prev_row); // apply color to previous row (uncolor)
  397. }
  398. ApplyCategoryManagerRowColor(playerid, window, row); // apply color to new row
  399. if( ismodel ) {
  400. DestroyTextureView(playerid);
  401. g_ModelViewData[playerid][MODELVIEW_DATA_MODELID] = row_id;
  402. if( g_ModelViewData[playerid][MODELVIEW_DATA_TOGGLE] ) {
  403. ApplyModelViewModel(playerid, .showtd = true);
  404. } else {
  405. ShowModelView(playerid);
  406. }
  407. } else {
  408. HideModelView(playerid);
  409. RefreshTextureView(playerid, .textureid = row_id);
  410. }
  411. return 1;
  412. }
  413. // Same row selected
  414. new categoryid = g_CatManagerData[playerid][CATMANAGER_DATA_CATEGORY];
  415. if( categoryid == INVALID_CATEGORY_ID ) {
  416. return 1;
  417. }
  418. new
  419. bool: create_bind = (window == CATMANAGER_WINDOW_ALL) ? true : false,
  420. bool: bind_success = false
  421. ;
  422. switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
  423. case TDMODE_CATMANAGER_MODELS: {
  424. if( create_bind ) {
  425. bind_success = ( CreateModelCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
  426. } else {
  427. bind_success = ( DestroyModelCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
  428. }
  429. }
  430. case TDMODE_CATMANAGER_VEHICLES: {
  431. if( create_bind ) {
  432. bind_success = ( CreateVehicleCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
  433. } else {
  434. bind_success = ( DestroyVehicleCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
  435. }
  436. }
  437. case TDMODE_CATMANAGER_SKINS: {
  438. if( create_bind ) {
  439. bind_success = ( CreateSkinCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
  440. } else {
  441. bind_success = ( DestroySkinCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
  442. }
  443. }
  444. case TDMODE_CATMANAGER_TEXTURES: {
  445. if( create_bind ) {
  446. bind_success = ( CreateTextureCategoryBind(categoryid, .textureid = row_id) ) ? true : false;
  447. } else {
  448. bind_success = ( DestroyTextureCategoryBind(categoryid, .textureid = row_id) ) ? true : false;
  449. }
  450. }
  451. }
  452. if( bind_success ) {
  453. LoadCategoryManagerRowData(playerid, CATMANAGER_WINDOW_CAT);
  454. ApplyCategoryManagerRowData(playerid, CATMANAGER_WINDOW_CAT);
  455. } else {
  456. format(g_ClientMessage, sizeof g_ClientMessage, "ERROR: This item could not be %s the category!", create_bind ? ("added to") : ("removed from"));
  457. SendClientMessage(playerid, RGBA_RED, g_ClientMessage);
  458. }
  459. return 1;
  460. }
  461. }
  462. #if defined cm_OnPlayerClickPlayerTD
  463. return cm_OnPlayerClickPlayerTD(playerid, PlayerText:playertextid);
  464. #else
  465. return 0;
  466. #endif
  467. }
  468. #if defined _ALS_OnPlayerClickPlayerTD
  469. #undef OnPlayerClickPlayerTextDraw
  470. #else
  471. #define _ALS_OnPlayerClickPlayerTD
  472. #endif
  473. #define OnPlayerClickPlayerTextDraw cm_OnPlayerClickPlayerTD
  474. #if defined cm_OnPlayerClickPlayerTD
  475. forward cm_OnPlayerClickPlayerTD(playerid, PlayerText:playertextid);
  476. #endif