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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
a744cbd0f378 (svn r1596) Add some more statics
tron <tron@openttd.org>
parents: 1046
diff changeset
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 }