Mercurial > hg > openttd
annotate console.c @ 2129:a0bf6416e39b draft
(svn r2639) -Add: Added the vehicle names in table/engines.h so that you know what line represents what vehicle (I hope I didn't mess that up). Added some comments while I'm at it and include the table/ directory in the Doxygen generation
author | celestar <celestar@openttd.org> |
---|---|
date | Tue, 19 Jul 2005 20:45:47 +0000 |
parents | 62b9262e06a4 |
children | dc4945fa6df1 |
rev | line source |
---|---|
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
1 #include "stdafx.h" |
1891
81b2cb2fc036
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater <Darkvater@openttd.org>
parents:
1889
diff
changeset
|
2 #include "openttd.h" |
507
9dcc34b8887e
(svn r815) Include strings.h only in the files which need it.
tron <tron@openttd.org>
parents:
301
diff
changeset
|
3 #include "table/strings.h" |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
4 #include "window.h" |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
5 #include "gui.h" |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
6 #include "gfx.h" |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
7 #include "player.h" |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
8 #include "variables.h" |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
9 #include "string.h" |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
10 #include "hal.h" |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
11 #include <stdarg.h> |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
12 #include <string.h> |
274
ea766af32749
(svn r280) -Fix: ^M removement in console.c
signde <signde@openttd.org>
parents:
273
diff
changeset
|
13 #include "console.h" |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
14 #include "network.h" |
1026
db6416ec34ba
(svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight <truelight@openttd.org>
parents:
1008
diff
changeset
|
15 #include "network_data.h" |
db6416ec34ba
(svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight <truelight@openttd.org>
parents:
1008
diff
changeset
|
16 #include "network_server.h" |
274
ea766af32749
(svn r280) -Fix: ^M removement in console.c
signde <signde@openttd.org>
parents:
273
diff
changeset
|
17 |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
18 #define ICON_BUFFER 79 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
19 #define ICON_HISTORY_SIZE 20 |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
20 #define ICON_LINE_HEIGHT 12 |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
21 #define ICON_RIGHT_BORDERWIDTH 10 |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
22 #define ICON_BOTTOM_BORDERWIDTH 12 |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
23 #define ICON_MAX_ALIAS_LINES 40 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
24 #define ICON_TOKEN_COUNT 20 |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
25 |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
26 // ** main console ** // |
1397
7e8611386aea
(svn r1901) - Fix: unwanted behaviour of the savegame dialog, as well as a bug with a sloppy termination of a string. When any editbox is open, scrolling is disabled. If any new types of editboxes come up, please use SET/CLRBIT of _no_scroll with its unique identifier (ttd.h)
Darkvater <Darkvater@openttd.org>
parents:
1390
diff
changeset
|
27 static Window *_iconsole_win; // Pointer to console window |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
28 static bool _iconsole_inited; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
29 static char *_iconsole_buffer[ICON_BUFFER + 1]; |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
30 static uint16 _iconsole_cbuffer[ICON_BUFFER + 1]; |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
31 static Textbuf _iconsole_cmdline; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
32 static byte _iconsole_scroll; |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
33 |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
34 // ** stdlib ** // |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
35 byte _stdlib_developer = 1; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
36 bool _stdlib_con_developer = false; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
37 FILE *_iconsole_output_file; |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
38 |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
39 // ** main console cmd buffer |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
40 static char *_iconsole_history[ICON_HISTORY_SIZE]; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
41 static byte _iconsole_historypos; |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
42 |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
43 /* *************** */ |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
44 /* end of header */ |
274
ea766af32749
(svn r280) -Fix: ^M removement in console.c
signde <signde@openttd.org>
parents:
273
diff
changeset
|
45 /* *************** */ |
ea766af32749
(svn r280) -Fix: ^M removement in console.c
signde <signde@openttd.org>
parents:
273
diff
changeset
|
46 |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
47 static void IConsoleClearCommand(void) |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
48 { |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
49 memset(_iconsole_cmdline.buf, 0, ICON_CMDLN_SIZE); |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
50 _iconsole_cmdline.length = 0; |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
51 _iconsole_cmdline.width = 0; |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
52 _iconsole_cmdline.caretpos = 0; |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
53 _iconsole_cmdline.caretxoffs = 0; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
54 SetWindowDirty(_iconsole_win); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
55 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
56 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
57 static inline void IConsoleResetHistoryPos(void) {_iconsole_historypos = ICON_HISTORY_SIZE - 1;} |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
58 |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
59 // ** console window ** // |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
60 static void IConsoleWndProc(Window* w, WindowEvent* e) |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
61 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
62 switch (e->event) { |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
63 case WE_PAINT: { |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
64 int i = _iconsole_scroll; |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
65 int max = (w->height / ICON_LINE_HEIGHT) - 1; |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
66 int delta = 0; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
67 GfxFillRect(w->left, w->top, w->width, w->height - 1, 0); |
986
df1bd17d8f18
(svn r1484) -Fix: [1099197] scrolling through console sometimes crashed the whole game. Also added MarkWholeScreenDirty() to have redrawing of console resize instant (sign_de)
darkvater <darkvater@openttd.org>
parents:
959
diff
changeset
|
68 while ((i > 0) && (i > _iconsole_scroll - max) && (_iconsole_buffer[i] != NULL)) { |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
69 DoDrawString(_iconsole_buffer[i], 5, |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
70 w->height - (_iconsole_scroll + 2 - i) * ICON_LINE_HEIGHT, _iconsole_cbuffer[i]); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
71 i--; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
72 } |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
73 /* If the text is longer than the window, don't show the starting ']' */ |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
74 delta = w->width - 10 - _iconsole_cmdline.width - ICON_RIGHT_BORDERWIDTH; |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
75 if (delta > 0) { |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
76 DoDrawString("]", 5, w->height - ICON_LINE_HEIGHT, _icolour_cmd); |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
77 delta = 0; |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
78 } |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
79 |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
80 DoDrawString(_iconsole_cmdline.buf, 10 + delta, w->height - ICON_LINE_HEIGHT, _icolour_cmd); |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
81 |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
82 if (_iconsole_cmdline.caret) |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
83 DoDrawString("_", 10 + delta + _iconsole_cmdline.caretxoffs, w->height - ICON_LINE_HEIGHT, 12); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
84 break; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
85 } |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
86 case WE_MOUSELOOP: |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
87 if (HandleCaret(&_iconsole_cmdline)) |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
88 SetWindowDirty(w); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
89 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
90 case WE_DESTROY: |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
91 _iconsole_win = NULL; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
92 _iconsole_mode = ICONSOLE_CLOSED; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
93 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
94 case WE_KEYPRESS: |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
95 e->keypress.cont = false; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
96 switch (e->keypress.keycode) { |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
97 case WKC_UP: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
98 IConsoleHistoryNavigate(+1); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
99 SetWindowDirty(w); |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
100 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
101 case WKC_DOWN: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
102 IConsoleHistoryNavigate(-1); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
103 SetWindowDirty(w); |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
104 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
105 case WKC_SHIFT | WKC_PAGEUP: |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
106 if (_iconsole_scroll - (w->height / ICON_LINE_HEIGHT) - 1 < 0) |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
107 _iconsole_scroll = 0; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
108 else |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
109 _iconsole_scroll -= (w->height / ICON_LINE_HEIGHT) - 1; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
110 SetWindowDirty(w); |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
111 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
112 case WKC_SHIFT | WKC_PAGEDOWN: |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
113 if (_iconsole_scroll + (w->height / ICON_LINE_HEIGHT) - 1 > ICON_BUFFER) |
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
114 _iconsole_scroll = ICON_BUFFER; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
115 else |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
116 _iconsole_scroll += (w->height / ICON_LINE_HEIGHT) - 1; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
117 SetWindowDirty(w); |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
118 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
119 case WKC_SHIFT | WKC_UP: |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
120 if (_iconsole_scroll <= 0) |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
121 _iconsole_scroll = 0; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
122 else |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
123 --_iconsole_scroll; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
124 SetWindowDirty(w); |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
125 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
126 case WKC_SHIFT | WKC_DOWN: |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
127 if (_iconsole_scroll >= ICON_BUFFER) |
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
128 _iconsole_scroll = ICON_BUFFER; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
129 else |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
130 ++_iconsole_scroll; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
131 SetWindowDirty(w); |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
132 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
133 case WKC_BACKQUOTE: |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
134 IConsoleSwitch(); |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
135 break; |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
136 case WKC_RETURN: case WKC_NUM_ENTER: |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
137 IConsolePrintF(_icolour_cmd, "] %s", _iconsole_cmdline.buf); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
138 IConsoleHistoryAdd(_iconsole_cmdline.buf); |
672
238376664628
(svn r1110) -Fix: Empty console commands were executed and returned error message (sign_de for GeniusDex)
darkvater <darkvater@openttd.org>
parents:
659
diff
changeset
|
139 |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
140 IConsoleCmdExec(_iconsole_cmdline.buf); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
141 IConsoleClearCommand(); |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
142 break; |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
143 case WKC_CTRL | WKC_RETURN: |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
144 _iconsole_mode = (_iconsole_mode == ICONSOLE_FULL) ? ICONSOLE_OPENED : ICONSOLE_FULL; |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
145 IConsoleResize(); |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
146 MarkWholeScreenDirty(); |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
147 break; |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
148 case (WKC_CTRL | 'V'): |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
149 if (InsertTextBufferClipboard(&_iconsole_cmdline)) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
150 IConsoleResetHistoryPos(); |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
151 SetWindowDirty(w); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
152 } |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
153 break; |
1879
4e5cb90acb42
(svn r2385) - Feature: shortcut CTRL + U that clears the commandline of the current input-box. As requested by Tron.
Darkvater <Darkvater@openttd.org>
parents:
1866
diff
changeset
|
154 case (WKC_CTRL | 'L'): |
1827
77c5a8039e65
(svn r2332) - Feature: Add 'clear' command and CTRL+L to empty the console window
Darkvater <Darkvater@openttd.org>
parents:
1819
diff
changeset
|
155 IConsoleCmdExec("clear"); |
77c5a8039e65
(svn r2332) - Feature: Add 'clear' command and CTRL+L to empty the console window
Darkvater <Darkvater@openttd.org>
parents:
1819
diff
changeset
|
156 break; |
1879
4e5cb90acb42
(svn r2385) - Feature: shortcut CTRL + U that clears the commandline of the current input-box. As requested by Tron.
Darkvater <Darkvater@openttd.org>
parents:
1866
diff
changeset
|
157 case (WKC_CTRL | 'U'): |
4e5cb90acb42
(svn r2385) - Feature: shortcut CTRL + U that clears the commandline of the current input-box. As requested by Tron.
Darkvater <Darkvater@openttd.org>
parents:
1866
diff
changeset
|
158 DeleteTextBufferAll(&_iconsole_cmdline); |
4e5cb90acb42
(svn r2385) - Feature: shortcut CTRL + U that clears the commandline of the current input-box. As requested by Tron.
Darkvater <Darkvater@openttd.org>
parents:
1866
diff
changeset
|
159 SetWindowDirty(w); |
4e5cb90acb42
(svn r2385) - Feature: shortcut CTRL + U that clears the commandline of the current input-box. As requested by Tron.
Darkvater <Darkvater@openttd.org>
parents:
1866
diff
changeset
|
160 break; |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
161 case WKC_BACKSPACE: case WKC_DELETE: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
162 if (DeleteTextBufferChar(&_iconsole_cmdline, e->keypress.keycode)) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
163 IConsoleResetHistoryPos(); |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
164 SetWindowDirty(w); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
165 } |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
166 break; |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
167 case WKC_LEFT: case WKC_RIGHT: case WKC_END: case WKC_HOME: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
168 if (MoveTextBufferPos(&_iconsole_cmdline, e->keypress.keycode)) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
169 IConsoleResetHistoryPos(); |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
170 SetWindowDirty(w); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
171 } |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
172 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
173 default: |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
174 if (IsValidAsciiChar(e->keypress.ascii)) { |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
175 _iconsole_scroll = ICON_BUFFER; |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
176 InsertTextBufferChar(&_iconsole_cmdline, e->keypress.ascii); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
177 IConsoleResetHistoryPos(); |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
178 SetWindowDirty(w); |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
179 } else |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
180 e->keypress.cont = true; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
181 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
182 } |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
183 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
184 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
185 |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
186 static const Widget _iconsole_window_widgets[] = { |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
187 {WIDGETS_END} |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
188 }; |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
189 |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
190 static const WindowDesc _iconsole_window_desc = { |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
191 0, 0, 2, 2, |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
192 WC_CONSOLE, 0, |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
193 WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS, |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
194 _iconsole_window_widgets, |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
195 IConsoleWndProc, |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
196 }; |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
197 |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
198 void IConsoleInit(void) |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
199 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
200 extern const char _openttd_revision[]; |
247
fca3d55c0984
(svn r248) -Feature: console script files "exec myscript.file"
darkvater <darkvater@openttd.org>
parents:
229
diff
changeset
|
201 _iconsole_output_file = NULL; |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
202 _icolour_def = 1; |
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
203 _icolour_err = 3; |
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
204 _icolour_warn = 13; |
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
205 _icolour_dbg = 5; |
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
206 _icolour_cmd = 2; |
301
a44c6d12ae01
(svn r307) -Fix: Several potential buffer-overflow fixes, and removal of 'magic-numbers' in favour of constants. (Tron)
darkvater <darkvater@openttd.org>
parents:
289
diff
changeset
|
207 _iconsole_scroll = ICON_BUFFER; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
208 _iconsole_historypos = ICON_HISTORY_SIZE - 1; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
209 _iconsole_inited = true; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
210 _iconsole_mode = ICONSOLE_CLOSED; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
211 _iconsole_win = NULL; |
1243
e2033fc4f250
(svn r1747) - Fix: [network] ottd should compile when networking is disabled.
darkvater <darkvater@openttd.org>
parents:
1230
diff
changeset
|
212 |
e2033fc4f250
(svn r1747) - Fix: [network] ottd should compile when networking is disabled.
darkvater <darkvater@openttd.org>
parents:
1230
diff
changeset
|
213 #ifdef ENABLE_NETWORK /* Initialize network only variables */ |
e2033fc4f250
(svn r1747) - Fix: [network] ottd should compile when networking is disabled.
darkvater <darkvater@openttd.org>
parents:
1230
diff
changeset
|
214 _redirect_console_to_client = 0; |
e2033fc4f250
(svn r1747) - Fix: [network] ottd should compile when networking is disabled.
darkvater <darkvater@openttd.org>
parents:
1230
diff
changeset
|
215 #endif |
e2033fc4f250
(svn r1747) - Fix: [network] ottd should compile when networking is disabled.
darkvater <darkvater@openttd.org>
parents:
1230
diff
changeset
|
216 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
217 memset(_iconsole_history, 0, sizeof(_iconsole_history)); |
1243
e2033fc4f250
(svn r1747) - Fix: [network] ottd should compile when networking is disabled.
darkvater <darkvater@openttd.org>
parents:
1230
diff
changeset
|
218 memset(_iconsole_buffer, 0, sizeof(_iconsole_buffer)); |
e2033fc4f250
(svn r1747) - Fix: [network] ottd should compile when networking is disabled.
darkvater <darkvater@openttd.org>
parents:
1230
diff
changeset
|
219 memset(_iconsole_cbuffer, 0, sizeof(_iconsole_cbuffer)); |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
220 _iconsole_cmdline.buf = calloc(ICON_CMDLN_SIZE, sizeof(*_iconsole_cmdline.buf)); // create buffer and zero it |
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
221 _iconsole_cmdline.maxlength = ICON_CMDLN_SIZE - 1; |
1243
e2033fc4f250
(svn r1747) - Fix: [network] ottd should compile when networking is disabled.
darkvater <darkvater@openttd.org>
parents:
1230
diff
changeset
|
222 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
223 IConsolePrintF(13, "OpenTTD Game Console Revision 7 - %s", _openttd_revision); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
224 IConsolePrint(12, "------------------------------------"); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
225 IConsolePrint(12, "use \"help\" for more information"); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
226 IConsolePrint(12, ""); |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
227 IConsoleStdLibRegister(); |
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
228 IConsoleClearCommand(); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
229 IConsoleHistoryAdd(""); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
230 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
231 |
1827
77c5a8039e65
(svn r2332) - Feature: Add 'clear' command and CTRL+L to empty the console window
Darkvater <Darkvater@openttd.org>
parents:
1819
diff
changeset
|
232 void IConsoleClearBuffer(void) |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
233 { |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
234 uint i; |
1827
77c5a8039e65
(svn r2332) - Feature: Add 'clear' command and CTRL+L to empty the console window
Darkvater <Darkvater@openttd.org>
parents:
1819
diff
changeset
|
235 for (i = 0; i <= ICON_BUFFER; i++) { |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
236 free(_iconsole_buffer[i]); |
1827
77c5a8039e65
(svn r2332) - Feature: Add 'clear' command and CTRL+L to empty the console window
Darkvater <Darkvater@openttd.org>
parents:
1819
diff
changeset
|
237 _iconsole_buffer[i] = NULL; |
77c5a8039e65
(svn r2332) - Feature: Add 'clear' command and CTRL+L to empty the console window
Darkvater <Darkvater@openttd.org>
parents:
1819
diff
changeset
|
238 } |
77c5a8039e65
(svn r2332) - Feature: Add 'clear' command and CTRL+L to empty the console window
Darkvater <Darkvater@openttd.org>
parents:
1819
diff
changeset
|
239 } |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
240 |
1827
77c5a8039e65
(svn r2332) - Feature: Add 'clear' command and CTRL+L to empty the console window
Darkvater <Darkvater@openttd.org>
parents:
1819
diff
changeset
|
241 static void IConsoleClear(void) |
77c5a8039e65
(svn r2332) - Feature: Add 'clear' command and CTRL+L to empty the console window
Darkvater <Darkvater@openttd.org>
parents:
1819
diff
changeset
|
242 { |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
243 free(_iconsole_cmdline.buf); |
1827
77c5a8039e65
(svn r2332) - Feature: Add 'clear' command and CTRL+L to empty the console window
Darkvater <Darkvater@openttd.org>
parents:
1819
diff
changeset
|
244 IConsoleClearBuffer(); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
245 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
246 |
1046
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
247 static void IConsoleWriteToLogFile(const char* string) |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
248 { |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
249 if (_iconsole_output_file != NULL) { |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
250 // if there is an console output file ... also print it there |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
251 fwrite(string, strlen(string), 1, _iconsole_output_file); |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
252 fwrite("\n", 1, 1, _iconsole_output_file); |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
253 } |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
254 } |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
255 |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
256 bool CloseConsoleLogIfActive(void) |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
257 { |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
258 if (_iconsole_output_file != NULL) { |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
259 IConsolePrintF(_icolour_def, "file output complete"); |
1046
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
260 fclose(_iconsole_output_file); |
1127
5c6ec2f4d519
(svn r1628) -Fix: [1107893] script command; log file pointer was not reset to NULL after logging was closed
darkvater <darkvater@openttd.org>
parents:
1109
diff
changeset
|
261 _iconsole_output_file = NULL; |
1046
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
262 return true; |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
263 } |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
264 |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
265 return false; |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
266 } |
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
267 |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
268 void IConsoleFree(void) |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
269 { |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
270 _iconsole_inited = false; |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
271 IConsoleClear(); |
1046
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
272 CloseConsoleLogIfActive(); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
273 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
274 |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
275 void IConsoleResize(void) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
276 { |
986
df1bd17d8f18
(svn r1484) -Fix: [1099197] scrolling through console sometimes crashed the whole game. Also added MarkWholeScreenDirty() to have redrawing of console resize instant (sign_de)
darkvater <darkvater@openttd.org>
parents:
959
diff
changeset
|
277 _iconsole_win = FindWindowById(WC_CONSOLE, 0); |
df1bd17d8f18
(svn r1484) -Fix: [1099197] scrolling through console sometimes crashed the whole game. Also added MarkWholeScreenDirty() to have redrawing of console resize instant (sign_de)
darkvater <darkvater@openttd.org>
parents:
959
diff
changeset
|
278 |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
279 switch (_iconsole_mode) { |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
280 case ICONSOLE_OPENED: |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
281 _iconsole_win->height = _screen.height / 3; |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
282 _iconsole_win->width = _screen.width; |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
283 break; |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
284 case ICONSOLE_FULL: |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
285 _iconsole_win->height = _screen.height - ICON_BOTTOM_BORDERWIDTH; |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
286 _iconsole_win->width = _screen.width; |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
287 break; |
1755
c1d6dd3d87d3
(svn r2259) - Fix (regression): remove a warning and make the help for variables behave the same as for commands
Darkvater <Darkvater@openttd.org>
parents:
1754
diff
changeset
|
288 default: break; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
289 } |
986
df1bd17d8f18
(svn r1484) -Fix: [1099197] scrolling through console sometimes crashed the whole game. Also added MarkWholeScreenDirty() to have redrawing of console resize instant (sign_de)
darkvater <darkvater@openttd.org>
parents:
959
diff
changeset
|
290 |
df1bd17d8f18
(svn r1484) -Fix: [1099197] scrolling through console sometimes crashed the whole game. Also added MarkWholeScreenDirty() to have redrawing of console resize instant (sign_de)
darkvater <darkvater@openttd.org>
parents:
959
diff
changeset
|
291 MarkWholeScreenDirty(); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
292 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
293 |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
294 void IConsoleSwitch(void) |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
295 { |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
296 switch (_iconsole_mode) { |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
297 case ICONSOLE_CLOSED: |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
298 _iconsole_win = AllocateWindowDesc(&_iconsole_window_desc); |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
299 _iconsole_win->height = _screen.height / 3; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
300 _iconsole_win->width = _screen.width; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
301 _iconsole_mode = ICONSOLE_OPENED; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
302 SETBIT(_no_scroll, SCROLL_CON); // override cursor arrows; the gamefield will not scroll |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
303 break; |
1397
7e8611386aea
(svn r1901) - Fix: unwanted behaviour of the savegame dialog, as well as a bug with a sloppy termination of a string. When any editbox is open, scrolling is disabled. If any new types of editboxes come up, please use SET/CLRBIT of _no_scroll with its unique identifier (ttd.h)
Darkvater <Darkvater@openttd.org>
parents:
1390
diff
changeset
|
304 case ICONSOLE_OPENED: case ICONSOLE_FULL: |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
305 DeleteWindowById(WC_CONSOLE, 0); |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
306 _iconsole_win = NULL; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
307 _iconsole_mode = ICONSOLE_CLOSED; |
1397
7e8611386aea
(svn r1901) - Fix: unwanted behaviour of the savegame dialog, as well as a bug with a sloppy termination of a string. When any editbox is open, scrolling is disabled. If any new types of editboxes come up, please use SET/CLRBIT of _no_scroll with its unique identifier (ttd.h)
Darkvater <Darkvater@openttd.org>
parents:
1390
diff
changeset
|
308 CLRBIT(_no_scroll, SCROLL_CON); |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
309 break; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
310 } |
986
df1bd17d8f18
(svn r1484) -Fix: [1099197] scrolling through console sometimes crashed the whole game. Also added MarkWholeScreenDirty() to have redrawing of console resize instant (sign_de)
darkvater <darkvater@openttd.org>
parents:
959
diff
changeset
|
311 |
df1bd17d8f18
(svn r1484) -Fix: [1099197] scrolling through console sometimes crashed the whole game. Also added MarkWholeScreenDirty() to have redrawing of console resize instant (sign_de)
darkvater <darkvater@openttd.org>
parents:
959
diff
changeset
|
312 MarkWholeScreenDirty(); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
313 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
314 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
315 void IConsoleClose(void) {if (_iconsole_mode == ICONSOLE_OPENED) IConsoleSwitch();} |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
316 void IConsoleOpen(void) {if (_iconsole_mode == ICONSOLE_CLOSED) IConsoleSwitch();} |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
317 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
318 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
319 * Add the entered line into the history so you can look it back |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
320 * scroll, etc. Put it to the beginning as it is the latest text |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
321 * @param cmd Text to be entered into the 'history' |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
322 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
323 void IConsoleHistoryAdd(const char *cmd) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
324 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
325 free(_iconsole_history[ICON_HISTORY_SIZE - 1]); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
326 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
327 memmove(&_iconsole_history[1], &_iconsole_history[0], sizeof(_iconsole_history[0]) * (ICON_HISTORY_SIZE - 1)); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
328 _iconsole_history[0] = strdup(cmd); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
329 IConsoleResetHistoryPos(); |
141
c1b1024d9f3f
(svn r142) -Feature development: [1016299] Console Rev #3 allowes variable references and has a new commandline buffer (sign_de)
darkvater <darkvater@openttd.org>
parents:
136
diff
changeset
|
330 } |
c1b1024d9f3f
(svn r142) -Feature development: [1016299] Console Rev #3 allowes variable references and has a new commandline buffer (sign_de)
darkvater <darkvater@openttd.org>
parents:
136
diff
changeset
|
331 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
332 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
333 * Navigate Up/Down in the history of typed commands |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
334 * @param direction Go further back in history (+1), go to recently typed commands (-1) |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
335 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
336 void IConsoleHistoryNavigate(signed char direction) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
337 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
338 int i = _iconsole_historypos + direction; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
339 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
340 // watch out for overflows, just wrap around |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
341 if (i < 0) i = ICON_HISTORY_SIZE - 1; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
342 if (i >= ICON_HISTORY_SIZE) i = 0; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
343 |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
344 if (direction > 0) |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
345 if (_iconsole_history[i] == NULL) i = 0; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
346 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
347 if (direction < 0) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
348 while (i > 0 && _iconsole_history[i] == NULL) i--; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
349 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
350 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
351 _iconsole_historypos = i; |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
352 IConsoleClearCommand(); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
353 // copy history to 'command prompt / bash' |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
354 assert(_iconsole_history[i] != NULL && IS_INT_INSIDE(i, 0, ICON_HISTORY_SIZE)); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
355 ttd_strlcpy(_iconsole_cmdline.buf, _iconsole_history[i], _iconsole_cmdline.maxlength); |
1390
f641c4f29274
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater <Darkvater@openttd.org>
parents:
1379
diff
changeset
|
356 UpdateTextBufferSize(&_iconsole_cmdline); |
141
c1b1024d9f3f
(svn r142) -Feature development: [1016299] Console Rev #3 allowes variable references and has a new commandline buffer (sign_de)
darkvater <darkvater@openttd.org>
parents:
136
diff
changeset
|
357 } |
c1b1024d9f3f
(svn r142) -Feature development: [1016299] Console Rev #3 allowes variable references and has a new commandline buffer (sign_de)
darkvater <darkvater@openttd.org>
parents:
136
diff
changeset
|
358 |
1588
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
359 /** |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
360 * Handle the printing of text entered into the console or redirected there |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
361 * by any other means. Text can be redirected to other players in a network game |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
362 * as well as to a logfile. If the network server is a dedicated server, all activities |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
363 * are also logged. All lines to print are added to a temporary buffer which can be |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
364 * used as a history to print them onscreen |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
365 * @param color_code the colour of the command. Red in case of errors, etc. |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
366 * @param string the message entered or output on the console (notice, error, etc.) |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
367 */ |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
368 void IConsolePrint(uint16 color_code, const char* string) |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
369 { |
1243
e2033fc4f250
(svn r1747) - Fix: [network] ottd should compile when networking is disabled.
darkvater <darkvater@openttd.org>
parents:
1230
diff
changeset
|
370 #ifdef ENABLE_NETWORK |
1026
db6416ec34ba
(svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight <truelight@openttd.org>
parents:
1008
diff
changeset
|
371 if (_redirect_console_to_client != 0) { |
db6416ec34ba
(svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight <truelight@openttd.org>
parents:
1008
diff
changeset
|
372 /* Redirect the string to the client */ |
db6416ec34ba
(svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight <truelight@openttd.org>
parents:
1008
diff
changeset
|
373 SEND_COMMAND(PACKET_SERVER_RCON)(NetworkFindClientStateFromIndex(_redirect_console_to_client), color_code, string); |
db6416ec34ba
(svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight <truelight@openttd.org>
parents:
1008
diff
changeset
|
374 return; |
db6416ec34ba
(svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight <truelight@openttd.org>
parents:
1008
diff
changeset
|
375 } |
1243
e2033fc4f250
(svn r1747) - Fix: [network] ottd should compile when networking is disabled.
darkvater <darkvater@openttd.org>
parents:
1230
diff
changeset
|
376 #endif |
1026
db6416ec34ba
(svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight <truelight@openttd.org>
parents:
1008
diff
changeset
|
377 |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
378 if (_network_dedicated) { |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
379 printf("%s\n", string); |
1046
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
380 IConsoleWriteToLogFile(string); |
543
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
381 return; |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
382 } |
0bade3c3b8ba
(svn r942) -Merged branch/network back into the trunk
truelight <truelight@openttd.org>
parents:
518
diff
changeset
|
383 |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
384 if (!_iconsole_inited) return; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
385 |
1588
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
386 /* move up all the strings in the buffer one place and do the same for colour |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
387 * to accomodate for the new command/message */ |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
388 free(_iconsole_buffer[0]); |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
389 memmove(&_iconsole_buffer[0], &_iconsole_buffer[1], sizeof(_iconsole_buffer[0]) * ICON_BUFFER); |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
390 _iconsole_buffer[ICON_BUFFER] = strdup(string); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
391 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
392 { // filter out unprintable characters |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
393 char *i; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
394 for (i = _iconsole_buffer[ICON_BUFFER]; *i != '\0'; i++) |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
395 if (!IsValidAsciiChar((byte)*i)) *i = ' '; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
396 } |
1588
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
397 |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
398 memmove(&_iconsole_cbuffer[0], &_iconsole_cbuffer[1], sizeof(_iconsole_cbuffer[0]) * ICON_BUFFER); |
cf447f2bbced
(svn r2092) - Fix: old commands/lines in the console (history) did not show when they used 'special' characters like öä, etc. Diff approved by the code-police.
Darkvater <Darkvater@openttd.org>
parents:
1483
diff
changeset
|
399 _iconsole_cbuffer[ICON_BUFFER] = color_code; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
400 |
1046
76fbc6938454
(svn r1547) -Feature: windows dedicated (if anyone would run that, but ok), is now functioning correctly. There is no other way but to create a new thread, but that's only MS braindeadness
darkvater <darkvater@openttd.org>
parents:
1026
diff
changeset
|
401 IConsoleWriteToLogFile(string); |
650
72efe36394c8
(svn r1083) Fix: the console "script" command saves all output to the textfile, not only printf stuff (sign_de)
dominik <dominik@openttd.org>
parents:
644
diff
changeset
|
402 |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
403 if (_iconsole_win != NULL) SetWindowDirty(_iconsole_win); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
404 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
405 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
406 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
407 * Handle the printing of text entered into the console or redirected there |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
408 * by any other means. Uses printf() style format, for more information look |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
409 * at @IConsolePrint() |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
410 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
411 void CDECL IConsolePrintF(uint16 color_code, const char *s, ...) |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
412 { |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
413 va_list va; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
414 char buf[ICON_MAX_STREAMSIZE]; |
247
fca3d55c0984
(svn r248) -Feature: console script files "exec myscript.file"
darkvater <darkvater@openttd.org>
parents:
229
diff
changeset
|
415 |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
416 va_start(va, s); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
417 vsnprintf(buf, sizeof(buf), s, va); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
418 va_end(va); |
247
fca3d55c0984
(svn r248) -Feature: console script files "exec myscript.file"
darkvater <darkvater@openttd.org>
parents:
229
diff
changeset
|
419 |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
420 IConsolePrint(color_code, buf); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
421 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
422 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
423 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
424 * It is possible to print debugging information to the console, |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
425 * which is achieved by using this function. Can only be used by |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
426 * @debug() in debug.c. You need at least a level 2 (developer) for debugging |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
427 * messages to show up |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
428 */ |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
429 void IConsoleDebug(const char* string) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
430 { |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
431 if (_stdlib_developer > 1) |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
432 IConsolePrintF(_icolour_dbg, "dbg: %s", string); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
433 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
434 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
435 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
436 * It is possible to print warnings to the console. These are mostly |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
437 * errors or mishaps, but non-fatal. You need at least a level 1 (developer) for |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
438 * debugging messages to show up |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
439 */ |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
440 void IConsoleWarning(const char* string) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
441 { |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
442 if (_stdlib_developer > 0) |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
443 IConsolePrintF(_icolour_warn, "WARNING: %s", string); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
444 } |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
445 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
446 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
447 * It is possible to print error information to the console. This can include |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
448 * game errors, or errors in general you would want the user to notice |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
449 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
450 void IConsoleError(const char* string) |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
451 { |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
452 IConsolePrintF(_icolour_err, "ERROR: %s", string); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
453 } |
554
8e054ea3d0d4
(svn r954) -Fix: [Console] Hook fixes (sign_de)
truelight <truelight@openttd.org>
parents:
543
diff
changeset
|
454 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
455 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
456 * Change a string into its number representation. Supports |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
457 * decimal and hexadecimal numbers as well as 'on'/'off' 'true'/'false' |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
458 * @param *value the variable a successfull conversion will be put in |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
459 * @param *arg the string to be converted |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
460 * @return Return true on success or false on failure |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
461 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
462 bool GetArgumentInteger(uint32 *value, const char *arg) |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
463 { |
1773
9a6b53ee6a1d
(svn r2277) - Codechange: change sscanf() into stroul() Which Does The Right Thing tm. Thanks tron
Darkvater <Darkvater@openttd.org>
parents:
1771
diff
changeset
|
464 char *endptr; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
465 |
1773
9a6b53ee6a1d
(svn r2277) - Codechange: change sscanf() into stroul() Which Does The Right Thing tm. Thanks tron
Darkvater <Darkvater@openttd.org>
parents:
1771
diff
changeset
|
466 if (strcmp(arg, "on") == 0 || strcmp(arg, "true") == 0) { |
9a6b53ee6a1d
(svn r2277) - Codechange: change sscanf() into stroul() Which Does The Right Thing tm. Thanks tron
Darkvater <Darkvater@openttd.org>
parents:
1771
diff
changeset
|
467 *value = 1; |
9a6b53ee6a1d
(svn r2277) - Codechange: change sscanf() into stroul() Which Does The Right Thing tm. Thanks tron
Darkvater <Darkvater@openttd.org>
parents:
1771
diff
changeset
|
468 return true; |
9a6b53ee6a1d
(svn r2277) - Codechange: change sscanf() into stroul() Which Does The Right Thing tm. Thanks tron
Darkvater <Darkvater@openttd.org>
parents:
1771
diff
changeset
|
469 } |
9a6b53ee6a1d
(svn r2277) - Codechange: change sscanf() into stroul() Which Does The Right Thing tm. Thanks tron
Darkvater <Darkvater@openttd.org>
parents:
1771
diff
changeset
|
470 if (strcmp(arg, "off") == 0 || strcmp(arg, "false") == 0) { |
9a6b53ee6a1d
(svn r2277) - Codechange: change sscanf() into stroul() Which Does The Right Thing tm. Thanks tron
Darkvater <Darkvater@openttd.org>
parents:
1771
diff
changeset
|
471 *value = 0; |
9a6b53ee6a1d
(svn r2277) - Codechange: change sscanf() into stroul() Which Does The Right Thing tm. Thanks tron
Darkvater <Darkvater@openttd.org>
parents:
1771
diff
changeset
|
472 return true; |
9a6b53ee6a1d
(svn r2277) - Codechange: change sscanf() into stroul() Which Does The Right Thing tm. Thanks tron
Darkvater <Darkvater@openttd.org>
parents:
1771
diff
changeset
|
473 } |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
474 |
1773
9a6b53ee6a1d
(svn r2277) - Codechange: change sscanf() into stroul() Which Does The Right Thing tm. Thanks tron
Darkvater <Darkvater@openttd.org>
parents:
1771
diff
changeset
|
475 *value = strtoul(arg, &endptr, 0); |
1899
62b9262e06a4
(svn r2405) Simplify a few '? true : false' and '? false : true', especially the latter is confusing
tron <tron@openttd.org>
parents:
1891
diff
changeset
|
476 return arg != endptr; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
477 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
478 |
1833
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
479 // * ************************* * // |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
480 // * hooking code * // |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
481 // * ************************* * // |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
482 /** |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
483 * General internal hooking code that is the same for both commands and variables |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
484 * @param hooks @IConsoleHooks structure that will be set according to |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
485 * @param type type access trigger |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
486 * @param proc function called when the hook criteria is met |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
487 */ |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
488 static void IConsoleHookAdd(IConsoleHooks *hooks, IConsoleHookTypes type, IConsoleHook *proc) |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
489 { |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
490 if (hooks == NULL || proc == NULL) return; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
491 |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
492 switch (type) { |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
493 case ICONSOLE_HOOK_ACCESS: |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
494 hooks->access = proc; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
495 break; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
496 case ICONSOLE_HOOK_PRE_ACTION: |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
497 hooks->pre = proc; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
498 break; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
499 case ICONSOLE_HOOK_POST_ACTION: |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
500 hooks->post = proc; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
501 break; |
1889
4181d880fd7d
(svn r2395) - Fix: oops, forgot a break in a console switch.
Darkvater <Darkvater@openttd.org>
parents:
1879
diff
changeset
|
502 default: NOT_REACHED(); |
1833
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
503 } |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
504 } |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
505 |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
506 /** |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
507 * Handle any special hook triggers. If the hook type is met check if |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
508 * there is a function associated with that and if so, execute it |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
509 * @param hooks @IConsoleHooks structure that will be checked |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
510 * @param type type of hook, trigger that needs to be activated |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
511 * @return true on a successfull execution of the hook command or if there |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
512 * is no hook/trigger present at all. False otherwise |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
513 */ |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
514 static bool IConsoleHookHandle(const IConsoleHooks *hooks, IConsoleHookTypes type) |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
515 { |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
516 IConsoleHook *proc = NULL; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
517 if (hooks == NULL) return false; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
518 |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
519 switch (type) { |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
520 case ICONSOLE_HOOK_ACCESS: |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
521 proc = hooks->access; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
522 break; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
523 case ICONSOLE_HOOK_PRE_ACTION: |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
524 proc = hooks->pre; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
525 break; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
526 case ICONSOLE_HOOK_POST_ACTION: |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
527 proc = hooks->post; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
528 break; |
1889
4181d880fd7d
(svn r2395) - Fix: oops, forgot a break in a console switch.
Darkvater <Darkvater@openttd.org>
parents:
1879
diff
changeset
|
529 default: NOT_REACHED(); |
1833
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
530 } |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
531 |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
532 return (proc == NULL) ? true : proc(); |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
533 } |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
534 |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
535 /** |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
536 * Add a hook to a command that will be triggered at certain points |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
537 * @param name name of the command that the hook is added to |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
538 * @param type type of hook that is added (ACCESS, BEFORE and AFTER change) |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
539 * @param proc function called when the hook criteria is met |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
540 */ |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
541 void IConsoleCmdHookAdd(const char *name, IConsoleHookTypes type, IConsoleHook *proc) |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
542 { |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
543 IConsoleCmd *cmd = IConsoleCmdGet(name); |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
544 if (cmd == NULL) return; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
545 IConsoleHookAdd(&cmd->hook, type, proc); |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
546 } |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
547 |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
548 /** |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
549 * Add a hook to a variable that will be triggered at certain points |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
550 * @param name name of the variable that the hook is added to |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
551 * @param type type of hook that is added (ACCESS, BEFORE and AFTER change) |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
552 * @param proc function called when the hook criteria is met |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
553 */ |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
554 void IConsoleVarHookAdd(const char *name, IConsoleHookTypes type, IConsoleHook *proc) |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
555 { |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
556 IConsoleVar *var = IConsoleVarGet(name); |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
557 if (var == NULL) return; |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
558 IConsoleHookAdd(&var->hook, type, proc); |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
559 } |
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
560 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
561 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
562 * Perhaps ugly macro, but this saves us the trouble of writing the same function |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
563 * three types, just with different variables. Yes, templates would be handy. It was |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
564 * either this define or an even more ugly void* magic function |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
565 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
566 #define IConsoleAddSorted(_base, item_new, IConsoleType, type) \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
567 { \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
568 IConsoleType *item, *item_before; \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
569 /* first command */ \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
570 if (_base == NULL) { \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
571 _base = item_new; \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
572 return; \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
573 } \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
574 \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
575 item_before = NULL; \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
576 item = _base; \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
577 \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
578 /* BEGIN - Alphabetically insert the commands into the linked list */ \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
579 while (item != NULL) { \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
580 int i = strcmp(item->name, item_new->name); \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
581 if (i == 0) { \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
582 IConsoleError(type " with this name already exists; insertion aborted"); \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
583 free(item_new); \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
584 return; \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
585 } \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
586 \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
587 if (i > 0) break; /* insert at this position */ \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
588 \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
589 item_before = item; \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
590 item = item->next; \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
591 } \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
592 \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
593 if (item_before == NULL) { \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
594 _base = item_new; \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
595 } else \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
596 item_before->next = item_new; \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
597 \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
598 item_new->next = item; \ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
599 /* END - Alphabetical insert */ \ |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
600 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
601 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
602 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
603 * Register a new command to be used in the console |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
604 * @param name name of the command that will be used |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
605 * @param proc function that will be called upon execution of command |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
606 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
607 void IConsoleCmdRegister(const char *name, IConsoleCmdProc *proc) |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
608 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
609 char *new_cmd = strdup(name); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
610 IConsoleCmd *item_new = malloc(sizeof(IConsoleCmd)); |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
611 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
612 item_new->next = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
613 item_new->proc = proc; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
614 item_new->name = new_cmd; |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
615 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
616 item_new->hook.access = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
617 item_new->hook.pre = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
618 item_new->hook.post = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
619 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
620 IConsoleAddSorted(_iconsole_cmds, item_new, IConsoleCmd, "a command"); |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
621 } |
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
622 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
623 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
624 * Find the command pointed to by its string |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
625 * @param name command to be found |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
626 * @return return Cmdstruct of the found command, or NULL on failure |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
627 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
628 IConsoleCmd *IConsoleCmdGet(const char *name) |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
629 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
630 IConsoleCmd *item; |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
631 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
632 for (item = _iconsole_cmds; item != NULL; item = item->next) { |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
633 if (strcmp(item->name, name) == 0) return item; |
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
634 } |
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
635 return NULL; |
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
636 } |
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
637 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
638 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
639 * Register a an alias for an already existing command in the console |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
640 * @param name name of the alias that will be used |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
641 * @param cmd name of the command that 'name' will be alias of |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
642 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
643 void IConsoleAliasRegister(const char *name, const char *cmd) |
1095 | 644 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
645 char *new_alias = strdup(name); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
646 char *cmd_aliased = strdup(cmd); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
647 IConsoleAlias *item_new = malloc(sizeof(IConsoleAlias)); |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
648 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
649 item_new->next = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
650 item_new->cmdline = cmd_aliased; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
651 item_new->name = new_alias; |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
652 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
653 IConsoleAddSorted(_iconsole_aliases, item_new, IConsoleAlias, "an alias"); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
654 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
655 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
656 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
657 * Find the alias pointed to by its string |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
658 * @param name alias to be found |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
659 * @return return Aliasstruct of the found alias, or NULL on failure |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
660 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
661 IConsoleAlias *IConsoleAliasGet(const char *name) |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
662 { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
663 IConsoleAlias* item; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
664 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
665 for (item = _iconsole_aliases; item != NULL; item = item->next) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
666 if (strcmp(item->name, name) == 0) return item; |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
667 } |
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
668 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
669 return NULL; |
634
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
670 } |
6471338a8aa9
(svn r1065) -Add: [Console] Alias support. Type 'list_aliases' to show them all (sign_de)
truelight <truelight@openttd.org>
parents:
618
diff
changeset
|
671 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
672 /** copy in an argument into the aliasstream */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
673 static inline int IConsoleCopyInParams(char *dst, const char *src, uint bufpos) |
554
8e054ea3d0d4
(svn r954) -Fix: [Console] Hook fixes (sign_de)
truelight <truelight@openttd.org>
parents:
543
diff
changeset
|
674 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
675 int len = min(ICON_MAX_STREAMSIZE - bufpos, strlen(src)); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
676 strncpy(dst, src, len); |
554
8e054ea3d0d4
(svn r954) -Fix: [Console] Hook fixes (sign_de)
truelight <truelight@openttd.org>
parents:
543
diff
changeset
|
677 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
678 return len; |
554
8e054ea3d0d4
(svn r954) -Fix: [Console] Hook fixes (sign_de)
truelight <truelight@openttd.org>
parents:
543
diff
changeset
|
679 } |
8e054ea3d0d4
(svn r954) -Fix: [Console] Hook fixes (sign_de)
truelight <truelight@openttd.org>
parents:
543
diff
changeset
|
680 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
681 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
682 * An alias is just another name for a command, or for more commands |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
683 * Execute it as well. |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
684 * @param *alias is the alias of the command |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
685 * @param tokencount the number of parameters passed |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
686 * @param *tokens are the parameters given to the original command (0 is the first param) |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
687 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
688 void IConsoleAliasExec(const IConsoleAlias *alias, byte tokencount, char *tokens[ICON_TOKEN_COUNT]) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
689 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
690 const char *cmdptr; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
691 char *aliases[ICON_MAX_ALIAS_LINES], aliasstream[ICON_MAX_STREAMSIZE]; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
692 int i; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
693 uint a_index, astream_i; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
694 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
695 memset(&aliases, 0, sizeof(aliases)); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
696 memset(&aliasstream, 0, sizeof(aliasstream)); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
697 |
1866
2c61fb1c4f5f
(svn r2372) - Fix (console): update the example scripts in the scripts/ directory to reflect the new console functionality
Darkvater <Darkvater@openttd.org>
parents:
1833
diff
changeset
|
698 if (_stdlib_con_developer) |
2c61fb1c4f5f
(svn r2372) - Fix (console): update the example scripts in the scripts/ directory to reflect the new console functionality
Darkvater <Darkvater@openttd.org>
parents:
1833
diff
changeset
|
699 IConsolePrintF(_icolour_dbg, "condbg: requested command is an alias; parsing..."); |
2c61fb1c4f5f
(svn r2372) - Fix (console): update the example scripts in the scripts/ directory to reflect the new console functionality
Darkvater <Darkvater@openttd.org>
parents:
1833
diff
changeset
|
700 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
701 aliases[0] = aliasstream; |
1819
3ad217ef533e
(svn r2323) Remove unused dereferencing
tron <tron@openttd.org>
parents:
1805
diff
changeset
|
702 for (cmdptr = alias->cmdline, a_index = 0, astream_i = 0; *cmdptr != '\0'; cmdptr++) { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
703 if (a_index >= lengthof(aliases) || astream_i >= lengthof(aliasstream)) break; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
704 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
705 switch (*cmdptr) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
706 case '\'': /* ' will double for "" */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
707 aliasstream[astream_i++] = '"'; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
708 break; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
709 case ';': /* Cmd seperator, start new command */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
710 aliasstream[astream_i] = '\0'; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
711 aliases[++a_index] = &aliasstream[++astream_i]; |
1819
3ad217ef533e
(svn r2323) Remove unused dereferencing
tron <tron@openttd.org>
parents:
1805
diff
changeset
|
712 cmdptr++; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
713 break; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
714 case '%': /* Some or all parameters */ |
1819
3ad217ef533e
(svn r2323) Remove unused dereferencing
tron <tron@openttd.org>
parents:
1805
diff
changeset
|
715 cmdptr++; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
716 switch (*cmdptr) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
717 case '+': { /* All parameters seperated: "[param 1]" "[param 2]" */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
718 for (i = 0; i != tokencount; i++) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
719 aliasstream[astream_i++] = '"'; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
720 astream_i += IConsoleCopyInParams(&aliasstream[astream_i], tokens[i], astream_i); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
721 aliasstream[astream_i++] = '"'; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
722 aliasstream[astream_i++] = ' '; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
723 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
724 } break; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
725 case '!': { /* Merge the parameters to one: "[param 1] [param 2] [param 3...]" */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
726 aliasstream[astream_i++] = '"'; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
727 for (i = 0; i != tokencount; i++) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
728 astream_i += IConsoleCopyInParams(&aliasstream[astream_i], tokens[i], astream_i); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
729 aliasstream[astream_i++] = ' '; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
730 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
731 aliasstream[astream_i++] = '"'; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
732 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
733 } break; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
734 default: { /* One specific parameter: %A = [param 1] %B = [param 2] ... */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
735 int param = *cmdptr - 'A'; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
736 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
737 if (param < 0 || param >= tokencount) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
738 IConsoleError("too many or wrong amount of parameters passed to alias, aborting"); |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
739 IConsolePrintF(_icolour_warn, "Usage of alias '%s': %s", alias->name, alias->cmdline); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
740 return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
741 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
742 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
743 aliasstream[astream_i++] = '"'; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
744 astream_i += IConsoleCopyInParams(&aliasstream[astream_i], tokens[param], astream_i); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
745 aliasstream[astream_i++] = '"'; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
746 } break; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
747 } break; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
748 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
749 default: |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
750 aliasstream[astream_i++] = *cmdptr; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
751 break; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
752 } |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
753 } |
554
8e054ea3d0d4
(svn r954) -Fix: [Console] Hook fixes (sign_de)
truelight <truelight@openttd.org>
parents:
543
diff
changeset
|
754 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
755 for (i = 0; i <= (int)a_index; i++) IConsoleCmdExec(aliases[i]); // execute each alias in turn |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
756 } |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
757 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
758 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
759 * Special function for adding string-type variables. They in addition |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
760 * also need a 'size' value saying how long their string buffer is. |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
761 * @param size the length of the string buffer |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
762 * For more information see @IConsoleVarRegister() |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
763 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
764 void IConsoleVarStringRegister(const char *name, void *addr, uint32 size, const char *help) |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
765 { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
766 IConsoleVar *var; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
767 IConsoleVarRegister(name, addr, ICONSOLE_VAR_STRING, help); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
768 var = IConsoleVarGet(name); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
769 var->size = size; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
770 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
771 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
772 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
773 * Register a new variable to be used in the console |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
774 * @param name name of the variable that will be used |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
775 * @param addr memory location the variable will point to |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
776 * @param help the help string shown for the variable |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
777 * @param type the type of the variable (simple atomic) so we know which values it can get |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
778 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
779 void IConsoleVarRegister(const char *name, void *addr, IConsoleVarTypes type, const char *help) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
780 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
781 char *new_cmd = strdup(name); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
782 IConsoleVar *item_new = malloc(sizeof(IConsoleVar)); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
783 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
784 item_new->help = (help != NULL) ? strdup(help) : NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
785 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
786 item_new->next = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
787 item_new->name = new_cmd; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
788 item_new->addr = addr; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
789 item_new->proc = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
790 item_new->type = type; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
791 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
792 item_new->hook.access = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
793 item_new->hook.pre = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
794 item_new->hook.post = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
795 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
796 IConsoleAddSorted(_iconsole_vars, item_new, IConsoleVar, "a variable"); |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
797 } |
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
798 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
799 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
800 * Find the variable pointed to by its string |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
801 * @param name variable to be found |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
802 * @return return Varstruct of the found variable, or NULL on failure |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
803 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
804 IConsoleVar *IConsoleVarGet(const char *name) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
805 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
806 IConsoleVar *item; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
807 for (item = _iconsole_vars; item != NULL; item = item->next) { |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
808 if (strcmp(item->name, name) == 0) return item; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
809 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
810 |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
811 return NULL; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
812 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
813 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
814 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
815 * Set a new value to a console variable |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
816 * @param *var the variable being set/changed |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
817 * @param value the new value given to the variable, cast properly |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
818 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
819 static void IConsoleVarSetValue(const IConsoleVar *var, uint32 value) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
820 { |
1833
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
821 IConsoleHookHandle(&var->hook, ICONSOLE_HOOK_PRE_ACTION); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
822 switch (var->type) { |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
823 case ICONSOLE_VAR_BOOLEAN: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
824 *(bool*)var->addr = (value != 0); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
825 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
826 case ICONSOLE_VAR_BYTE: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
827 *(byte*)var->addr = (byte)value; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
828 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
829 case ICONSOLE_VAR_UINT16: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
830 *(uint16*)var->addr = (byte)value; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
831 break; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
832 case ICONSOLE_VAR_INT16: |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
833 *(int16*)var->addr = (int16)value; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
834 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
835 case ICONSOLE_VAR_UINT32: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
836 *(uint32*)var->addr = (uint32)value; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
837 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
838 case ICONSOLE_VAR_INT32: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
839 *(int32*)var->addr = (int32)value; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
840 break; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
841 default: NOT_REACHED(); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
842 } |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
843 |
1833
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
844 IConsoleHookHandle(&var->hook, ICONSOLE_HOOK_POST_ACTION); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
845 IConsoleVarPrintSetValue(var); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
846 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
847 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
848 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
849 * Set a new value to a string-type variable. Basically this |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
850 * means to copy the new value over to the container. |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
851 * @param *var the variable in question |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
852 * @param *value the new value |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
853 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
854 static void IConsoleVarSetStringvalue(const IConsoleVar *var, char *value) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
855 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
856 if (var->type != ICONSOLE_VAR_STRING || var->addr == NULL) return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
857 |
1833
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
858 IConsoleHookHandle(&var->hook, ICONSOLE_HOOK_PRE_ACTION); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
859 ttd_strlcpy((char*)var->addr, (char*)value, var->size); |
1833
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
860 IConsoleHookHandle(&var->hook, ICONSOLE_HOOK_POST_ACTION); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
861 IConsoleVarPrintSetValue(var); // print out the new value, giving feedback |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
862 return; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
863 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
864 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
865 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
866 * Query the current value of a variable and return it |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
867 * @param *var the variable queried |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
868 * @return current value of the variable |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
869 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
870 static uint32 IConsoleVarGetValue(const IConsoleVar *var) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
871 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
872 uint32 result = 0; |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
873 |
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
874 switch (var->type) { |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
875 case ICONSOLE_VAR_BOOLEAN: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
876 result = *(bool*)var->addr; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
877 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
878 case ICONSOLE_VAR_BYTE: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
879 result = *(byte*)var->addr; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
880 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
881 case ICONSOLE_VAR_UINT16: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
882 result = *(uint16*)var->addr; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
883 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
884 case ICONSOLE_VAR_INT16: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
885 result = *(int16*)var->addr; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
886 break; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
887 case ICONSOLE_VAR_UINT32: |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
888 result = *(uint32*)var->addr; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
889 break; |
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
890 case ICONSOLE_VAR_INT32: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
891 result = *(int32*)var->addr; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
892 break; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
893 default: NOT_REACHED(); |
222
d1b097f4593b
(svn r223) -Fix: Const correctness and miscellaneous fixes. Thank you Tron for your diligent fixing of warnings (and some possibly bugs) (Tron)
darkvater <darkvater@openttd.org>
parents:
220
diff
changeset
|
894 } |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
895 return result; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
896 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
897 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
898 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
899 * Get the value of the variable and put it into a printable |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
900 * string form so we can use it for printing |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
901 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
902 static char *IConsoleVarGetStringValue(const IConsoleVar *var) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
903 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
904 static char tempres[50]; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
905 char *value = tempres; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
906 |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
907 switch (var->type) { |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
908 case ICONSOLE_VAR_BOOLEAN: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
909 snprintf(tempres, sizeof(tempres), "%s", (*(bool*)var->addr) ? "on" : "off"); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
910 break; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
911 case ICONSOLE_VAR_BYTE: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
912 snprintf(tempres, sizeof(tempres), "%u", *(byte*)var->addr); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
913 break; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
914 case ICONSOLE_VAR_UINT16: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
915 snprintf(tempres, sizeof(tempres), "%u", *(uint16*)var->addr); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
916 break; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
917 case ICONSOLE_VAR_UINT32: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
918 snprintf(tempres, sizeof(tempres), "%u", *(uint32*)var->addr); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
919 break; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
920 case ICONSOLE_VAR_INT16: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
921 snprintf(tempres, sizeof(tempres), "%i", *(int16*)var->addr); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
922 break; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
923 case ICONSOLE_VAR_INT32: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
924 snprintf(tempres, sizeof(tempres), "%i", *(int32*)var->addr); |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
925 break; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
926 case ICONSOLE_VAR_STRING: |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
927 value = (char*)var->addr; |
1889
4181d880fd7d
(svn r2395) - Fix: oops, forgot a break in a console switch.
Darkvater <Darkvater@openttd.org>
parents:
1879
diff
changeset
|
928 break; |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
929 default: NOT_REACHED(); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
930 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
931 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
932 return value; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
933 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
934 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
935 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
936 * Print out the value of the variable when asked |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
937 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
938 void IConsoleVarPrintGetValue(const IConsoleVar *var) |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
939 { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
940 char *value; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
941 /* Some variables need really specific handling, handle this in its |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
942 * callback function */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
943 if (var->proc != NULL) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
944 var->proc(0, NULL); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
945 return; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
946 } |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
947 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
948 value = IConsoleVarGetStringValue(var); |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
949 IConsolePrintF(_icolour_warn, "Current value for '%s' is: %s", var->name, value); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
950 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
951 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
952 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
953 * Print out the value of the variable after it has been assigned |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
954 * a new value, thus giving us feedback on the action |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
955 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
956 void IConsoleVarPrintSetValue(const IConsoleVar *var) |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
957 { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
958 char *value = IConsoleVarGetStringValue(var); |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
959 IConsolePrintF(_icolour_warn, "'%s' changed to: %s", var->name, value); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
960 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
961 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
962 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
963 * Execute a variable command. Without any parameters, print out its value |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
964 * with parameters it assigns a new value to the variable |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
965 * @param *var the variable that we will be querying/changing |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
966 * @param tokencount how many additional parameters have been given to the commandline |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
967 * @param *token the actual parameters the variable was called with |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
968 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
969 void IConsoleVarExec(const IConsoleVar *var, byte tokencount, char *token[ICON_TOKEN_COUNT]) |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
970 { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
971 const char *tokenptr = token[0]; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
972 byte t_index = tokencount; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
973 uint32 value; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
974 |
1866
2c61fb1c4f5f
(svn r2372) - Fix (console): update the example scripts in the scripts/ directory to reflect the new console functionality
Darkvater <Darkvater@openttd.org>
parents:
1833
diff
changeset
|
975 if (_stdlib_con_developer) |
2c61fb1c4f5f
(svn r2372) - Fix (console): update the example scripts in the scripts/ directory to reflect the new console functionality
Darkvater <Darkvater@openttd.org>
parents:
1833
diff
changeset
|
976 IConsolePrintF(_icolour_dbg, "condbg: requested command is a variable"); |
2c61fb1c4f5f
(svn r2372) - Fix (console): update the example scripts in the scripts/ directory to reflect the new console functionality
Darkvater <Darkvater@openttd.org>
parents:
1833
diff
changeset
|
977 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
978 if (tokencount == 0) { /* Just print out value */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
979 IConsoleVarPrintGetValue(var); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
980 return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
981 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
982 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
983 /* Use of assignment sign is not mandatory but supported, so just 'ignore it appropiately' */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
984 if (strcmp(tokenptr, "=") == 0) tokencount--; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
985 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
986 if (tokencount == 1) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
987 /* Some variables need really special handling, handle it in their callback procedure */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
988 if (var->proc != NULL) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
989 var->proc(tokencount, &token[t_index - tokencount]); // set the new value |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
990 return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
991 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
992 /* Strings need special processing. No need to convert the argument to |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
993 * an integer value, just copy over the argument on a one-by-one basis */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
994 if (var->type == ICONSOLE_VAR_STRING) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
995 IConsoleVarSetStringvalue(var, token[t_index - tokencount]); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
996 return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
997 } else if (GetArgumentInteger(&value, token[t_index - tokencount])) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
998 IConsoleVarSetValue(var, value); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
999 return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1000 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1001 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1002 /* Increase or decrease the value by one. This of course can only happen to 'number' types */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1003 if (strcmp(tokenptr, "++") == 0 && var->type != ICONSOLE_VAR_STRING) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1004 IConsoleVarSetValue(var, IConsoleVarGetValue(var) + 1); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1005 return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1006 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1007 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1008 if (strcmp(tokenptr, "--") == 0 && var->type != ICONSOLE_VAR_STRING) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1009 IConsoleVarSetValue(var, IConsoleVarGetValue(var) - 1); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1010 return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1011 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1012 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1013 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1014 IConsoleError("invalid variable assignment"); |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
1015 } |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
1016 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1017 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1018 * Add a callback function to the variable. Some variables need |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1019 * very special processing, which can only be done with custom code |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1020 * @param name name of the variable the callback function is added to |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1021 * @param proc the function called |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1022 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1023 void IConsoleVarProcAdd(const char *name, IConsoleCmdProc *proc) |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
1024 { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1025 IConsoleVar *var = IConsoleVarGet(name); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1026 if (var == NULL) return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1027 var->proc = proc; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1028 } |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
1029 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1030 /** |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1031 * Execute a given command passed to us. First chop it up into |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1032 * individual tokens (seperated by spaces), then execute it if possible |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1033 * @param cmdstr string to be parsed and executed |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1034 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1035 void IConsoleCmdExec(const char *cmdstr) |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1036 { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1037 IConsoleCmd *cmd = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1038 IConsoleAlias *alias = NULL; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1039 IConsoleVar *var = NULL; |
1109
aa09f0ca9ea0
(svn r1610) Remove trailing whitespace (last time ever, i hope)
tron <tron@openttd.org>
parents:
1095
diff
changeset
|
1040 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1041 const char *cmdptr; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1042 char *tokens[ICON_TOKEN_COUNT], tokenstream[ICON_MAX_STREAMSIZE]; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1043 uint t_index, tstream_i; |
1726
aff32b2460fe
(svn r2230) Oops, revert wrongly committed local console.c. Also add the endian_target.h and endian_host.h to the ignore list
Darkvater <Darkvater@openttd.org>
parents:
1725
diff
changeset
|
1044 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1045 bool longtoken = false; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1046 bool foundtoken = false; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1047 |
1866
2c61fb1c4f5f
(svn r2372) - Fix (console): update the example scripts in the scripts/ directory to reflect the new console functionality
Darkvater <Darkvater@openttd.org>
parents:
1833
diff
changeset
|
1048 if (cmdstr[0] == '#') return; // comments |
2c61fb1c4f5f
(svn r2372) - Fix (console): update the example scripts in the scripts/ directory to reflect the new console functionality
Darkvater <Darkvater@openttd.org>
parents:
1833
diff
changeset
|
1049 |
1819
3ad217ef533e
(svn r2323) Remove unused dereferencing
tron <tron@openttd.org>
parents:
1805
diff
changeset
|
1050 for (cmdptr = cmdstr; *cmdptr != '\0'; cmdptr++) { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1051 if (!IsValidAsciiChar(*cmdptr)) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1052 IConsoleError("command contains malformed characters, aborting"); |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
1053 IConsolePrintF(_icolour_err, "ERROR: command was: '%s'", cmdstr); |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1054 return; |
1379
9e0a3d4702d9
(svn r1883) -Fix: [1109400] Better test if a string actually contains any console command
tron <tron@openttd.org>
parents:
1243
diff
changeset
|
1055 } |
9e0a3d4702d9
(svn r1883) -Fix: [1109400] Better test if a string actually contains any console command
tron <tron@openttd.org>
parents:
1243
diff
changeset
|
1056 } |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
1057 |
640
38b9e89a812d
(svn r1073) - condebugger extended a bit [shows the commandline] (sign_de)
dominik <dominik@openttd.org>
parents:
634
diff
changeset
|
1058 if (_stdlib_con_developer) |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
1059 IConsolePrintF(_icolour_dbg, "condbg: executing cmdline: '%s'", cmdstr); |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
1060 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1061 memset(&tokens, 0, sizeof(tokens)); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1062 memset(&tokenstream, 0, sizeof(tokenstream)); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
1063 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1064 /* 1. Split up commandline into tokens, seperated by spaces, commands |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1065 * enclosed in "" are taken as one token. We can only go as far as the amount |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1066 * of characters in our stream or the max amount of tokens we can handle */ |
1819
3ad217ef533e
(svn r2323) Remove unused dereferencing
tron <tron@openttd.org>
parents:
1805
diff
changeset
|
1067 for (cmdptr = cmdstr, t_index = 0, tstream_i = 0; *cmdptr != '\0'; cmdptr++) { |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1068 if (t_index >= lengthof(tokens) || tstream_i >= lengthof(tokenstream)) break; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1069 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1070 switch (*cmdptr) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1071 case ' ': /* Token seperator */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1072 if (!foundtoken) break; |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
1073 |
1746
241ba7323b9e
(svn r2250) - Fix (regression): arguments with spaces in them were incorrectly parsed
Darkvater <Darkvater@openttd.org>
parents:
1743
diff
changeset
|
1074 if (longtoken) { |
241ba7323b9e
(svn r2250) - Fix (regression): arguments with spaces in them were incorrectly parsed
Darkvater <Darkvater@openttd.org>
parents:
1743
diff
changeset
|
1075 tokenstream[tstream_i] = *cmdptr; |
241ba7323b9e
(svn r2250) - Fix (regression): arguments with spaces in them were incorrectly parsed
Darkvater <Darkvater@openttd.org>
parents:
1743
diff
changeset
|
1076 } else { |
241ba7323b9e
(svn r2250) - Fix (regression): arguments with spaces in them were incorrectly parsed
Darkvater <Darkvater@openttd.org>
parents:
1743
diff
changeset
|
1077 tokenstream[tstream_i] = '\0'; |
241ba7323b9e
(svn r2250) - Fix (regression): arguments with spaces in them were incorrectly parsed
Darkvater <Darkvater@openttd.org>
parents:
1743
diff
changeset
|
1078 foundtoken = false; |
241ba7323b9e
(svn r2250) - Fix (regression): arguments with spaces in them were incorrectly parsed
Darkvater <Darkvater@openttd.org>
parents:
1743
diff
changeset
|
1079 } |
220
9b7653080948
(svn r221) -Feature: console command and variable hooking
signde <signde@openttd.org>
parents:
209
diff
changeset
|
1080 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1081 tstream_i++; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1082 break; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1083 case '"': /* Tokens enclosed in "" are one token */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1084 longtoken = !longtoken; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1085 break; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1086 default: /* Normal character */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1087 tokenstream[tstream_i++] = *cmdptr; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1088 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1089 if (!foundtoken) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1090 tokens[t_index++] = &tokenstream[tstream_i - 1]; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1091 foundtoken = true; |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
1092 } |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1093 break; |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
1094 } |
289
61f1ea337ebc
(svn r295) -Fix: Rewrite and fix of console stuff, including marking (XXX) of areas that require further investigation (Tron)
darkvater <darkvater@openttd.org>
parents:
274
diff
changeset
|
1095 } |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
1096 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1097 if (_stdlib_con_developer) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1098 uint i; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1099 for (i = 0; tokens[i] != NULL; i++) |
1805
9c91d08b3943
(svn r2309) - CodeChange: Change all _iconsole_color_whatever into _icolour_wtv (abbreviated). Besides the changed into proper english, yes this commit is pretty useless ;)
Darkvater <Darkvater@openttd.org>
parents:
1773
diff
changeset
|
1100 IConsolePrintF(_icolour_dbg, "condbg: token %d is: '%s'", i, tokens[i]); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
1101 } |
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
1102 |
1828
b15c8dfef71a
(svn r2333) - CodeChange: also don't execute command if user has typed all spaces (eg nothing worthwhile). Suggested and implemented by Tron.
Darkvater <Darkvater@openttd.org>
parents:
1827
diff
changeset
|
1103 if (tokens[0] == '\0') return; // don't execute empty commands |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1104 /* 2. Determine type of command (cmd, alias or variable) and execute |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1105 * First try commands, then aliases, and finally variables. Execute |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1106 * the found action taking into account its hooking code |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1107 */ |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1108 cmd = IConsoleCmdGet(tokens[0]); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1109 if (cmd != NULL) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1110 if (IConsoleHookHandle(&cmd->hook, ICONSOLE_HOOK_ACCESS)) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1111 IConsoleHookHandle(&cmd->hook, ICONSOLE_HOOK_PRE_ACTION); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1112 if (cmd->proc(t_index, tokens)) { // index started with 0 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1113 IConsoleHookHandle(&cmd->hook, ICONSOLE_HOOK_POST_ACTION); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1114 } else cmd->proc(0, NULL); // if command failed, give help |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1115 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1116 return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1117 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1118 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1119 t_index--; // ignore the variable-name for comfort for both aliases and variaables |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1120 alias = IConsoleAliasGet(tokens[0]); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1121 if (alias != NULL) { |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1122 IConsoleAliasExec(alias, t_index, &tokens[1]); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1123 return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1124 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1125 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1126 var = IConsoleVarGet(tokens[0]); |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1127 if (var != NULL) { |
1833
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
1128 if (IConsoleHookHandle(&var->hook, ICONSOLE_HOOK_ACCESS)) |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1129 IConsoleVarExec(var, t_index, &tokens[1]); |
1833
49b91393f676
(svn r2338) - CodeChange: only call the variable hooks when you set their value not when you query them
Darkvater <Darkvater@openttd.org>
parents:
1828
diff
changeset
|
1130 |
1739
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1131 return; |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1132 } |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1133 |
9c888f74a57e
(svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater <Darkvater@openttd.org>
parents:
1726
diff
changeset
|
1134 IConsoleError("command or variable not found"); |
135
5f7d4f435388
(svn r136) -Feature/Fix: Console Rev #2 and WKC_BACKQUOTE this patch adds new features to the ingame console and inserts a new keymanagement for windows pcs... (sign_de)
darkvater <darkvater@openttd.org>
parents:
129
diff
changeset
|
1135 } |