summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jamfile.next20
-rw-r--r--Makefile20
-rw-r--r--airport.c2
-rw-r--r--airport.h18
-rw-r--r--changelog.txt6
-rw-r--r--console.c156
-rw-r--r--console.h24
-rw-r--r--console_cmds.c778
-rw-r--r--console_cmds.h0
-rw-r--r--graph_gui.c4
-rw-r--r--hal.h2
-rw-r--r--industry_gui.c6
-rw-r--r--macros.h6
-rw-r--r--main_gui.c8
-rw-r--r--misc_gui.c2
-rw-r--r--network.c2
-rw-r--r--network_gui.c4
-rw-r--r--rail_cmd.c6
-rw-r--r--readme.txt10
-rw-r--r--road_cmd.c8
-rw-r--r--saveload.c4
-rw-r--r--sdl.c4
-rw-r--r--settings.c17
-rw-r--r--station_cmd.c10
-rw-r--r--station_gui.c5
-rw-r--r--strgen/strgen.c32
-rw-r--r--table/landscape_const.h2
-rw-r--r--table/landscape_sprite.h4
-rw-r--r--table/palettes.h128
-rw-r--r--table/road_land.h2
-rw-r--r--table/station_land.h48
-rw-r--r--table/train_cmd.h60
-rw-r--r--table/water_land.h6
-rw-r--r--town_gui.c10
-rw-r--r--ttd.c4
-rw-r--r--unix.c4
-rw-r--r--unmovable_cmd.c4
-rw-r--r--water_cmd.c8
-rw-r--r--win32.c4
-rw-r--r--window.c2
40 files changed, 718 insertions, 722 deletions
diff --git a/Jamfile.next b/Jamfile.next
index 9199c4b94..331b8c3d0 100644
--- a/Jamfile.next
+++ b/Jamfile.next
@@ -12,7 +12,7 @@ CFILES = ai.c aircraft_cmd.c aircraft_gui.c airport_gui.c
strings.c subsidy_gui.c texteff.c town_cmd.c town_gui.c
train_cmd.c train_gui.c tree_cmd.c ttd.c
tunnelbridge_cmd.c unmovable_cmd.c vehicle.c
- viewport.c water_cmd.c widget.c window.c screenshot.c
+ viewport.c water_cmd.c widget.c window.c screenshot.c
airport.c grfspecial.c terraform_gui.c ;
@@ -28,10 +28,10 @@ if $(UNIX) {
LINKFLAGS += $(SDL_CONFIG_LIBS) ;
CC = gcc ;
CCFLAGS += -Wall -Wno-multichar -DUNIX -DWITH_SDL ;
-
+
OPTIMFLAGS = -O2 -fomit-frame-pointer ;
DEBUGFLAGS = -g ;
-
+
# also include extmidi
CFILES += extmidi.c unix.c ;
@@ -64,7 +64,7 @@ if $(UNIX) {
####################
actions ActWin32Res {
- $(VISUALC)\\..\\common\\msdev98\\bin\\rc /r /i $(STDHDRS) /fo $(<) $(>)
+ $(VISUALC)\\..\\common\\msdev98\\bin\\rc /r /i $(STDHDRS) /fo $(<) $(>)
}
rule Win32Res { ActWin32Res $(<) : $(>) ; DEPENDS $(<) : $(>) ; }
@@ -73,11 +73,11 @@ if $(TOOLSET) = VISUALC {
OPTIMFLAGS = /Oa /Os /Ow /Oy /Oi /Og /Ox /Gr /Gf /Gy /Zp4 /J /WX /W3 -DNDEBUG ;
CCFLAGS += -DWIN32 -DWIN32_EXCEPTION_TRACKER ;
- CFILES += win32.c ;
+ CFILES += win32.c ;
LINKFLAGS += /opt:nowin98 /LIBPATH:$(VISUALC)\\lib ;
-
+
LINKLIBS = ws2_32.lib winmm.lib user32.lib gdi32.lib ;
-
+
# compile resources too
EOBJ = ttd.res ;
Win32Res ttd.res : ttd.rc ;
@@ -93,7 +93,7 @@ if $(TOOLSET) = VISUALC {
CCFLAGS += -DWITH_ZLIB ;
LINKLIBS += zlibstat.lib ;
}
-
+
# build release by default
RELEASE = 1 ;
}
@@ -107,7 +107,7 @@ rule MyObjects {
_t = $(OUTDIR)/$(>:S=$(SUFOBJ)) ;
OPTIM on $(_t) = $(3) ;
-
+
MkDir $(OUTDIR) ;
Depends $(_t) : $(OUTDIR) ;
@@ -142,7 +142,7 @@ rule LangFile {
} else {
CompileLang $(<) : $(>) ;
}
-
+
Clean clean : $(<) ;
DEPENDS $(<) : $(>) ;
DEPENDS all : $(<) ;
diff --git a/Makefile b/Makefile
index 3055b58fc..188c5ed9f 100644
--- a/Makefile
+++ b/Makefile
@@ -59,12 +59,12 @@
# a <TODO> mark)
# RELEASE: this will be the released version number. It replaces all places
# where it normally would print the revision number
-# MIDI: if set, it will use it as custom path to midi player.
+# MIDI: if set, it will use it as custom path to midi player.
# If unset, it will use the hardcoded path in the c code
-# NOVERBOSE: supress all warnings and errors during compilation.
+# NOVERBOSE: supress all warnings and errors during compilation.
# It looks nicer, but you will not know what went wrong. Use it on released (stable) sources only
#
-# DATA_DIR_PREFIX: This sets the dir OpenTTD looks for the needed files.
+# DATA_DIR_PREFIX: This sets the dir OpenTTD looks for the needed files.
# MUST END WITH / if defined
#
# STATIC: link statically
@@ -134,14 +134,14 @@ endif
# Verbose filter
ifdef NOVERBOSE
-VERBOSE_FILTER = >/dev/null 2>&1
+VERBOSE_FILTER = >/dev/null 2>&1
else
-VERBOSE_FILTER =
+VERBOSE_FILTER =
endif
ifdef DISPLAY_WARNINGS
WARNING_DISPLAY:=-fstrict-aliasing
-VERBOSE_FILTER =
+VERBOSE_FILTER =
else
WARNING_DISPLAY:=-fno-strict-aliasing
endif
@@ -517,14 +517,14 @@ endif
all: endian.h $(UPDATECONFIG) $(TTD) $(OSX) $(endwarnings)
endian.h: $(ENDIAN_CHECK)
- @# Check if system is LITTLE_ENDIAN or BIG_ENDIAN
+ @# Check if system is LITTLE_ENDIAN or BIG_ENDIAN
@echo 'Running endian_check'; \
./$(ENDIAN_CHECK) > $@
$(ENDIAN_CHECK): endian_check.c
@echo 'Compiling and Linking $@'; \
$(CC) $(BASECFLAGS) $(CDEFS) endian_check.c -o $@
-
+
$(TTD): table/strings.h $(ttd_OBJS) $(LANGS) $(MAKE_CONFIG)
@echo 'Compiling and Linking $@'; \
@@ -555,7 +555,7 @@ $(STRGEN): strgen/strgen.c rev.o
lang/english.lng: lang/english.txt $(STRGEN)
@echo 'Generating $@'; \
$(STRGEN)
-
+
table/strings.h: lang/english.lng
lang/%.lng: lang/%.txt $(STRGEN)
@@ -621,7 +621,7 @@ love:
### Automatic configuration
-include $(CONFIG_WRITER)
-
+
# Export all variables set to subprocesses (a bit dirty)
.EXPORT_ALL_VARIABLES:
diff --git a/airport.c b/airport.c
index 307213c84..0b5ea344b 100644
--- a/airport.c
+++ b/airport.c
@@ -88,7 +88,7 @@ static void AirportFTAClass_Constructor(AirportFTAClass *Airport,
Airport->nofhelipadgroups = nofhelipadgroups;
Airport->acc_planes = acc_planes;
Airport->entry_point = entry_point;
- Airport->airport_depots = (uint16*)depots;
+ Airport->airport_depots = (const uint16*)depots;
// build the state machine
diff --git a/airport.h b/airport.h
index 71f8981c6..128bd8c3e 100644
--- a/airport.h
+++ b/airport.h
@@ -25,15 +25,15 @@ enum {
// Finite sTate mAchine --> FTA
typedef struct AirportFTAClass {
- byte nofelements; // number of positions the airport consists of
- byte nofterminals; // number of terminals this airport has
- byte nofterminalgroups; // terminals belong to so many groups (MAX is the nofterminals)
- byte nofhelipads; // number of helipads this airport has
- byte nofhelipadgroups; // helipads belong to so many groups (MAX is the nofhelipads)
- byte entry_point; // when an airplane arrives at this airport, enter it at position entry_point
- byte acc_planes; // accept airplanes or helicopters or both
- uint16 *airport_depots; // gives the position of the depots on the airports
- struct AirportFTA *layout; // state machine for airport
+ byte nofelements; // number of positions the airport consists of
+ byte nofterminals; // number of terminals this airport has
+ byte nofterminalgroups; // terminals belong to so many groups (MAX is the nofterminals)
+ byte nofhelipads; // number of helipads this airport has
+ byte nofhelipadgroups; // helipads belong to so many groups (MAX is the nofhelipads)
+ byte entry_point; // when an airplane arrives at this airport, enter it at position entry_point
+ byte acc_planes; // accept airplanes or helicopters or both
+ const uint16 *airport_depots; // gives the position of the depots on the airports
+ struct AirportFTA *layout; // state machine for airport
} AirportFTAClass;
// internal structure used in openttd - Finite sTate mAchine --> FTA
diff --git a/changelog.txt b/changelog.txt
index fc499939f..c2293d47e 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -5,7 +5,7 @@
- Feature: improved german town name generator
- Change: scenarios now have the file extension .scn
- Fix: removing and upgrading tracks under a bridge when a train is on the bridge
-- Change: default network port from 12345 (known trojan) to 3979
+- Change: default network port from 12345 (known trojan) to 3979
- Fix: pause button was not synched in network games
- Fix: crash caused by invalid screen resolutions
- Fix: AI can not build tubular bridges in 1950, etc. Same restrictions apply to it, as to human players.
@@ -29,7 +29,7 @@
- Fix: 80% CPU load paused in fast-forward
- Feature: Enabled 'remove' button for stations
- Feature: Cheat GUI (activate with crtl-alt-c) The game remembers if you have used a cheat
-- Fix: Some airport runways were treated
+- Fix: Some airport runways were treated
- Fix: minor minimap glitch
- Fix: station sorting scroll fails with not ennough stations
- Fix: desert ground for depots in the desert
@@ -58,7 +58,7 @@
- Fix: allow deleting a bridge if a vehicle is below
- Fix: crash loading a scenario
- Fix: build tracks on water
-- Fix: fast forward button pressed with tab
+- Fix: fast forward button pressed with tab
- Fix: vehicles don't get old
- Feature: realistic train reversing
- Feature: added support for 64 bit CPUs
diff --git a/console.c b/console.c
index 05012fbc3..8c9b7a025 100644
--- a/console.c
+++ b/console.c
@@ -207,9 +207,9 @@ void IConsoleInit()
}
IConsoleStdLibRegister();
#if defined(WITH_REV)
- IConsolePrintF(13,"OpenTTD Game Console Revision 3 - %s",_openttd_revision);
+ IConsolePrintF(13,"OpenTTD Game Console Revision 4 - %s",_openttd_revision);
#else
- IConsolePrint(13,"OpenTTD Game Console Revision 3");
+ IConsolePrint(13,"OpenTTD Game Console Revision 4");
#endif
IConsolePrint(12,"---------------------------------");
IConsolePrint(12,"use \"help\" for more info");
@@ -269,16 +269,16 @@ void IConsoleOpen()
if (_iconsole_mode==ICONSOLE_CLOSED) IConsoleSwitch();
}
-void IConsoleCmdBufferAdd(byte * cmd)
+void IConsoleCmdBufferAdd(const byte * cmd)
{
int i;
if (_iconsole_cmdbufferpos != 19) return;
if (_iconsole_cmdbuffer[18]!=NULL) free(_iconsole_cmdbuffer[18]);
for (i=18; i>0; i--) _iconsole_cmdbuffer[i]=_iconsole_cmdbuffer[i-1];
- i=strlen((char *)cmd);
+ i=strlen(cmd);
_iconsole_cmdbuffer[0]=malloc(i+1);
memset(((void *)_iconsole_cmdbuffer[0]),0,i+1);
- memcpy(((void *)_iconsole_cmdbuffer[0]),(void *)cmd,i);
+ memcpy(((void *)_iconsole_cmdbuffer[0]),cmd,i);
_iconsole_cmdbuffer[0][i]=0;
_iconsole_cmdbufferpos = 19;
}
@@ -303,7 +303,7 @@ void IConsoleCmdBufferNavigate(signed char direction)
_iconsole_cmdpos =strlen(_iconsole_cmdbuffer[i]);
}
-void IConsolePrint(byte color_code, byte* string)
+void IConsolePrint(byte color_code, const byte* string)
{
byte * _ex;
byte * _new;
@@ -314,7 +314,7 @@ void IConsolePrint(byte color_code, byte* string)
if (!_iconsole_inited) return;
_newc=color_code;
- i=strlen((char *)string);
+ i=strlen(string);
_new=malloc(i+1);
memset(_new,0,i+1);
memcpy(_new,string,i);
@@ -354,22 +354,22 @@ void IConsoleDebug(byte* string)
if (_stdlib_developer>1) IConsolePrintF(_iconsole_color_debug, "DEBUG: %s", string);
}
-void IConsoleError(byte* string)
+void IConsoleError(const byte* string)
{
if (_stdlib_developer>0) IConsolePrintF(_iconsole_color_error, "ERROR: %s", string);
}
-void IConsoleCmdRegister(byte * name, void * addr)
+void IConsoleCmdRegister(const byte * name, void * addr)
{
byte * _new;
_iconsole_cmd * item;
_iconsole_cmd * item_new;
int i;
- i=strlen((char *)name);
- _new=malloc(i+1);
- memset(_new,0,i+1);
- memcpy(_new,name,i);
+ i=strlen(name);
+ _new=malloc(i+1);
+ memset(_new,0,i+1);
+ memcpy(_new,name,i);
item_new = malloc(sizeof(_iconsole_cmd));
@@ -390,7 +390,7 @@ void IConsoleCmdRegister(byte * name, void * addr)
}
}
-void* IConsoleCmdGet(byte * name)
+void* IConsoleCmdGet(const byte * name)
{
_iconsole_cmd * item;
@@ -402,18 +402,18 @@ void* IConsoleCmdGet(byte * name)
return NULL;
}
-void IConsoleVarRegister(byte * name, void * addr, byte type)
+void IConsoleVarRegister(const byte * name, void * addr, byte type)
{
byte * _new;
_iconsole_var * item;
_iconsole_var * item_new;
int i;
- i=strlen((char *)name)+1;
- _new=malloc(i+1);
- memset(_new,0,i+1);
- _new[0]='*';
- memcpy(_new+1,name,i);
+ i=strlen(name)+1;
+ _new=malloc(i+1);
+ memset(_new,0,i+1);
+ _new[0]='*';
+ memcpy(_new+1,name,i);
item_new = malloc(sizeof(_iconsole_var));
@@ -436,7 +436,7 @@ void IConsoleVarRegister(byte * name, void * addr, byte type)
}
}
-void IConsoleVarMemRegister(byte * name, byte type)
+void IConsoleVarMemRegister(byte * name, byte type) /* XXX TRON */
{
_iconsole_var * item;
item = IConsoleVarAlloc(type);
@@ -444,7 +444,7 @@ void IConsoleVarMemRegister(byte * name, byte type)
}
-void IConsoleVarInsert(_iconsole_var * var, byte * name)
+void IConsoleVarInsert(_iconsole_var * var, const byte * name)
{
byte * _new;
_iconsole_var * item;
@@ -456,11 +456,11 @@ void IConsoleVarInsert(_iconsole_var * var, byte * name)
// dont allow to build variable rings
if (item_new->_next != NULL) return;
- i=strlen((char *)name)+1;
- _new=malloc(i+1);
- memset(_new,0,i+1);
- _new[0]='*';
- memcpy(_new+1,name,i);
+ i=strlen(name)+1;
+ _new=malloc(i+1);
+ memset(_new,0,i+1);
+ _new[0]='*';
+ memcpy(_new+1,name,i);
item_new->name = _new;
@@ -474,7 +474,7 @@ void IConsoleVarInsert(_iconsole_var * var, byte * name)
}
-_iconsole_var * IConsoleVarGet(byte * name)
+_iconsole_var * IConsoleVarGet(const byte * name)
{
_iconsole_var * item;
@@ -551,13 +551,12 @@ _iconsole_var * IConsoleVarAlloc(byte type)
void IConsoleVarFree(_iconsole_var * var)
{
- if (var ->_malloc) {
- free(var ->addr);
- }
+ if (var->_malloc)
+ free(var->addr);
free(var);
}
-void IConsoleVarSetString(_iconsole_var * var, byte * string)
+void IConsoleVarSetString(_iconsole_var * var, const byte * string)
{
int l;
@@ -567,52 +566,40 @@ void IConsoleVarSetString(_iconsole_var * var, byte * string)
free(var->addr);
}
- l=strlen((char *) string);
+ l=strlen(string);
var->addr=malloc(l+1);
var->_malloc=true;
memset(var->addr,0,l);
- memcpy((void *) var->addr,(void *) string, l);
+ memcpy(var->addr, string, l);
((byte *)var->addr)[l]=0;
- }
+}
- void IConsoleVarSetValue(_iconsole_var * var, int value) {
+void IConsoleVarSetValue(_iconsole_var * var, int value) {
switch (var->type) {
case ICONSOLE_VAR_BOOLEAN:
- {
- (*(bool *)var->addr)=(value!=0);
- }
+ *(bool *)var->addr = (value != 0);
break;
case ICONSOLE_VAR_BYTE:
- {
- (*(byte *)var->addr)=value;
- }
+ *(byte *)var->addr = value;
break;
case ICONSOLE_VAR_UINT16:
- {
- (*(unsigned short *)var->addr)=value;
- }
+ *(unsigned short *)var->addr = value;
break;
case ICONSOLE_VAR_UINT32:
- {
- (*(unsigned int *)var->addr)=value;
- }
+ *(unsigned int *)var->addr = value;
break;
case ICONSOLE_VAR_INT16:
- {
- (*(signed short *)var->addr)=value;
- }
+ *(signed short *)var->addr = value;
break;
case ICONSOLE_VAR_INT32:
- {
- (*(signed int *)var->addr)=value;
- }
+ *(signed int *)var->addr = value;
break;
default:
break;
- }
+ }
}
-void IConsoleVarDump(_iconsole_var * var, byte * dump_desc)
+void IConsoleVarDump(_iconsole_var * var, const byte * dump_desc)
{
byte var_b; // TYPE BYTE
unsigned short var_ui16; // TYPE UINT16
@@ -686,7 +673,7 @@ void IConsoleVarDump(_iconsole_var * var, byte * dump_desc)
// * hooking code * //
// * ************************* * //
-void IConsoleVarHook(byte * name, byte type, void * proc)
+void IConsoleVarHook(const byte * name, byte type, void * proc)
{
_iconsole_var * hook_var;
hook_var = IConsoleVarGet(name);
@@ -706,7 +693,7 @@ void IConsoleVarHook(byte * name, byte type, void * proc)
bool IConsoleVarHookHandle(_iconsole_var * hook_var, byte type)
{
- bool (*proc)(_iconsole_var * hook_var);
+ bool (*proc)(_iconsole_var * hook_var) = NULL;
switch (type) {
case ICONSOLE_HOOK_BEFORE_CHANGE:
proc = hook_var->hook_before_change;
@@ -717,12 +704,13 @@ bool IConsoleVarHookHandle(_iconsole_var * hook_var, byte type)
case ICONSOLE_HOOK_ACCESS:
proc = hook_var->hook_access;
break;
+ default: return true;
}
- if (proc == NULL) return true;
+
return proc(hook_var);
}
-void IConsoleCmdHook(byte * name, byte type, void * proc)
+void IConsoleCmdHook(const byte * name, byte type, void * proc)
{
_iconsole_cmd * hook_cmd;
hook_cmd = IConsoleCmdGet(name);
@@ -753,6 +741,9 @@ bool IConsoleCmdHookHandle(_iconsole_cmd * hook_cmd, byte type)
case ICONSOLE_HOOK_ACCESS:
proc = hook_cmd->hook_access;
break;
+ default:
+ proc = NULL;
+ break;
}
if (proc == NULL) return true;
return proc(hook_cmd);
@@ -885,7 +876,7 @@ void IConsoleCmdExec(byte * cmdstr)
execution_mode=2; // this is a variable
if (c>2) if (strcmp(tokens[1],"<<")==0) {
// this is command to variable mode [normal]
-
+
function = NULL;
cmd = IConsoleCmdGet(tokens[2]);
if (cmd != NULL) function = cmd->addr;
@@ -1115,28 +1106,29 @@ void IConsoleCmdExec(byte * cmdstr)
case 4:
{
// execute command with result or assign a variable
- if (execution_mode==3) if (IConsoleCmdHookHandle(cmd,ICONSOLE_HOOK_ACCESS)) {
- int i;
- int diff;
- void * temp;
- byte temp2;
-
- // tokenshifting
- for (diff=0; diff<2; diff++) {
- temp=tokens[0];
- temp2=tokentypes[0];
- for (i=1; i<20; i++) {
- tokens[i-1]=tokens[i];
- tokentypes[i-1]=tokentypes[i];
+ if (execution_mode==3) {
+ if (IConsoleCmdHookHandle(cmd,ICONSOLE_HOOK_ACCESS)) {
+ int i;
+ int diff;
+ void * temp;
+ byte temp2;
+
+ // tokenshifting
+ for (diff=0; diff<2; diff++) {
+ temp=tokens[0];
+ temp2=tokentypes[0];
+ for (i=1; i<20; i++) {
+ tokens[i-1]=tokens[i];
+ tokentypes[i-1]=tokentypes[i];
+ }
+ tokens[19]=temp;
+ tokentypes[19]=temp2;
}
- tokens[19]=temp;
- tokentypes[19]=temp2;
- }
- IConsoleCmdHookHandle(cmd,ICONSOLE_HOOK_BEFORE_EXEC);
- result = function(c,tokens,tokentypes);
- IConsoleCmdHookHandle(cmd,ICONSOLE_HOOK_AFTER_EXEC);
- } else {
- execution_mode=255;
+ IConsoleCmdHookHandle(cmd,ICONSOLE_HOOK_BEFORE_EXEC);
+ result = function(c,tokens,tokentypes);
+ IConsoleCmdHookHandle(cmd,ICONSOLE_HOOK_AFTER_EXEC);
+ } else
+ execution_mode=255;
}
if (IConsoleVarHookHandle(var,ICONSOLE_HOOK_ACCESS)) if (result!=NULL) {
diff --git a/console.h b/console.h
index e0a68f9e4..b72b3cc3c 100644
--- a/console.h
+++ b/console.h
@@ -47,7 +47,7 @@ typedef struct {
typedef struct {
// --------------- //
void * addr;
- byte * name;
+ const byte * name;
byte type;
// -------------- //
void * hook_access;
@@ -85,31 +85,31 @@ void IConsoleClose();
void IConsoleOpen();
// ** console cmd buffer ** //
-void IConsoleCmdBufferAdd(byte * cmd);
+void IConsoleCmdBufferAdd(const byte *cmd);
void IConsoleCmdBufferNavigate(signed char direction);
// ** console output ** //
-void IConsolePrint(byte color_code, byte* string);
+void IConsolePrint(byte color_code, const byte* string);
void CDECL IConsolePrintF(byte color_code, const char *s, ...);
void IConsoleDebug(byte* string);
-void IConsoleError(byte* string);
+void IConsoleError(const byte* string);
// *** Commands *** //
-void IConsoleCmdRegister(byte * name, void * addr);
+void IConsoleCmdRegister(const byte * name, void * addr);
void* IConsoleCmdGetAddr(byte * name);
// *** Variables *** //
-void IConsoleVarRegister(byte * name, void * addr, byte type);
+void IConsoleVarRegister(const byte * name, void * addr, byte type);
void IConsoleVarMemRegister(byte * name, byte type);
-void IConsoleVarInsert(_iconsole_var * var, byte * name);
-_iconsole_var * IConsoleVarGet(byte * name);
+void IConsoleVarInsert(_iconsole_var * var, const byte * name);
+_iconsole_var * IConsoleVarGet(const byte * name);
_iconsole_var * IConsoleVarAlloc(byte type);
void IConsoleVarFree(_iconsole_var * var);
-void IConsoleVarSetString(_iconsole_var * var, byte * string);
+void IConsoleVarSetString(_iconsole_var * var, const byte * string);
void IConsoleVarSetValue(_iconsole_var * var, int value);
-void IConsoleVarDump(_iconsole_var * var, byte * dump_desc);
+void IConsoleVarDump(_iconsole_var * var, const byte * dump_desc);
// *** Parser *** //
@@ -119,8 +119,8 @@ void IConsoleCmdExec(byte * cmdstr);
void IConsoleStdLibRegister();
// ** hook code ** //
-void IConsoleVarHook(byte * name, byte type, void * proc);
-void IConsoleCmdHook(byte * name, byte type, void * proc);
+void IConsoleVarHook(const byte * name, byte type, void * proc);
+void IConsoleCmdHook(const byte * name, byte type, void * proc);
bool IConsoleVarHookHandle(_iconsole_var * hook_var, byte type);
bool IConsoleCmdHookHandle(_iconsole_cmd * hook_cmd, byte type);
diff --git a/console_cmds.c b/console_cmds.c
index 9fc239d89..948bc7b03 100644
--- a/console_cmds.c
+++ b/console_cmds.c
@@ -1,387 +1,391 @@
-/* -------------------- dont cross this line --------------------- */
-#include "stdafx.h"
-#include "ttd.h"
-#include "console.h"
-#include "engine.h"
-#include "functions.h"
-#include "variables.h"
-
-#if defined(WIN32)
-# define ENABLE_NETWORK
-#endif
-
-// ** console command / variable defines ** //
-#define DEF_CONSOLE_CMD(yyyy) static _iconsole_var * yyyy(byte argc, byte* argv[], byte argt[])
-#define DEF_CONSOLE_CMD_HOOK(yyyy) static bool yyyy(_iconsole_cmd * hookcmd)
-#define DEF_CONSOLE_VAR_HOOK(yyyy) static bool yyyy(_iconsole_var * hookvar)
-
-static int32 GetArgumentInteger(byte *arg)
-{
- int32 result;
- sscanf((char *)arg, "%u", &result);
-
- if (result == 0 && arg[0] == '0' && arg[1] == 'x')
- sscanf((char *)arg, "%x", &result);
-
- return result;
-}
-
-/* **************************** */
-/* variable and command hooks */
-/* **************************** */
-
-DEF_CONSOLE_CMD_HOOK(ConCmdHookNoNetwork)
-{
- if (_networking) {
- IConsoleError("this command is forbidden in multiplayer");
- return false;
- }
- return true;
-}
-
-DEF_CONSOLE_VAR_HOOK(ConVarHookNoNetwork)
-{
- if (_networking) {
- IConsoleError("this variable is forbidden in multiplayer");
- return false;
- }
- return true;
-}
-
-DEF_CONSOLE_VAR_HOOK(ConVarHookNoNetClient)
-{
- if (!_networking_server) {
- IConsoleError("this variable only makes sense for a network server");
- return false;
- }
- return true;
-}
-
-/* **************************** */
-/* reset commands */
-/* **************************** */
-
-DEF_CONSOLE_CMD(ConResetEngines)
-{
- StartupEngines();
- return 0;
-}
-
-DEF_CONSOLE_CMD(ConResetTile)
-{
- if (argc == 2) {
- TileIndex tile = (TileIndex)GetArgumentInteger(argv[1]);
- DoClearSquare(tile);
- }
-
- return 0;
-}
-
-DEF_CONSOLE_CMD(ConScrollToTile)
-{
- if (argc == 2) {
- TileIndex tile = (TileIndex)GetArgumentInteger(argv[1]);
- ScrollMainWindowToTile(tile);
- }
-
- return 0;
-}
-
-// ********************************* //
-// * Network Core Console Commands * //
-// ********************************* //
-#ifdef ENABLE_NETWORK
-
-DEF_CONSOLE_CMD(ConNetworkConnect)
-{
- byte * b;
- byte * ip = NULL;
- byte * port = NULL;
- byte * player = NULL;
- byte c;
- uint16 rport;
-
- if (argc<2) return NULL;
-
- b = argv[1];
- rport = _network_server_port;
- c = 0;
- ip = b;
-
- while (b[c] != 0) {
- if (((char)b[c]) == '#') {
- player = &b[c+1];
- b[c] = 0;
- }
- if (((char)b[c]) == ':') {
- port = &b[c+1];
- b[c] = 0;
- }
- c++;
- }
-
- IConsolePrintF(_iconsole_color_default,"Connecting to %s...",ip);
- if (player!=NULL) {
- _network_playas = atoi(player);
- IConsolePrintF(_iconsole_color_default," player-no: %s",player);
- }
- if (port!=NULL) {
- rport = atoi(port);
- IConsolePrintF(_iconsole_color_default," port: %s",port);
- }
-
- NetworkCoreConnectGame(b, rport);
-
- return NULL;
-}
-
-#endif
-
-/* **************************** */
-/* default console commands */
-/* **************************** */
-
-DEF_CONSOLE_CMD(ConEcho)
-{
- if (argc<2) return NULL;
- IConsolePrint(_iconsole_color_default, argv[1]);
- return NULL;
-}
-
-DEF_CONSOLE_CMD(ConEchoC)
-{
- if (argc<3) return NULL;
- IConsolePrint(atoi(argv[1]), argv[2]);
- return NULL;
-}
-
-DEF_CONSOLE_CMD(ConPrintF)
-{
- if (argc<3) return NULL;
- IConsolePrintF(_iconsole_color_default, argv[1] ,argv[2],argv[3],argv[4],argv[5],argv[6],argv[7],argv[8],argv[9],argv[10],argv[11],argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],argv[18],argv[19]);
- return NULL;
-}
-
-DEF_CONSOLE_CMD(ConPrintFC)
-{
- if (argc<3) return NULL;
- IConsolePrintF(atoi(argv[1]), argv[2] ,argv[3],argv[4],argv[5],argv[6],argv[7],argv[8],argv[9],argv[10],argv[11],argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],argv[18],argv[19]);
- return NULL;
-}
-
-DEF_CONSOLE_CMD(ConScreenShot)
-{
- if (argc<2) {
- _make_screenshot=1;
- } else {
- if (strcmp(argv[1],"big")==0) {
- _make_screenshot=2;
- }
- if (strcmp(argv[1],"no_con")==0) {
- IConsoleClose();
- _make_screenshot=1;
- }
- }
- return NULL;
-}
-
-DEF_CONSOLE_CMD(ConVarInfo)
-{
- if (argc<2) return NULL;
- if (argt[1]!=ICONSOLE_VAR_REFERENCE) {
- IConsoleError("variable must be an variable reference");
- } else {
- _iconsole_var * item;
- item = (_iconsole_var *) argv[1];
- IConsolePrintF(_iconsole_color_default,"variable_name: %s",item->name);
- IConsolePrintF(_iconsole_color_default,"variable_type: %i",item->type);
- IConsolePrintF(_iconsole_color_default,"variable_addr: %i",item->addr);
- if (item->_malloc) IConsolePrintF(_iconsole_color_default,"variable_malloc: internal allocated"); else IConsolePrintF(_iconsole_color_default, "variable_malloc: external allocated");
- }
- return NULL;
-}
-
-DEF_CONSOLE_CMD(ConDebugLevel)
-{
- if (argc<2) return NULL;
- SetDebugString(argv[1]);
- return NULL;
-}
-
-DEF_CONSOLE_CMD(ConExit)
-{
- _exit_game = true;
- return NULL;
-}
-
-DEF_CONSOLE_CMD(ConHelp)
-{
- IConsolePrint(13 ," -- console help -- ");
- IConsolePrint(1 ," variables: [command to list them: list_vars]");
- IConsolePrint(1 ," *temp_string = \"my little \"");
- IConsolePrint(1 ,"");
- IConsolePrint(1 ," commands: [command to list them: list_cmds]");
- IConsolePrint(1 ," [command] [\"string argument with spaces\"] [argument 2] ...");
- IConsolePrint(1 ," printf \"%s world\" *temp_string");
- IConsolePrint(1 ,"");
- IConsolePrint(1 ," command/variable returning a value into an variable:");
- IConsolePrint(1 ," *temp_uint16 << random");
- IConsolePrint(1 ," *temp_uint16 << *temp_uint16_2");
- IConsolePrint(1 ,"");
- return NULL;
-}
-
-DEF_CONSOLE_CMD(ConRandom)
-{
- _iconsole_var * result;
- result = IConsoleVarAlloc(ICONSOLE_VAR_UINT16);
- IConsoleVarSetValue(result,rand());
- return result;
-}
-
-DEF_CONSOLE_CMD(ConListCommands)
-{
- _iconsole_cmd * item;
- int l = 0;
-
- if (argv[1]!=NULL) l = strlen((char *) argv[1]);
-
- item = _iconsole_cmds;
- while (item != NULL) {
- if (argv[1]!=NULL) {
-
- if (memcmp((void *) item->name, (void *) argv[1],l)==0)
- IConsolePrintF(_iconsole_color_default,"%s",item->name);
-
- } else {
-
- IConsolePrintF(_iconsole_color_default,"%s",item->name);
-
- }
- item = item->_next;
- }
-
- return NULL;
-}
-
-DEF_CONSOLE_CMD(ConListVariables)
-{
- _iconsole_var * item;
- int l = 0;
-
- if (argv[1]!=NULL) l = strlen((char *) argv[1]);
-
- item = _iconsole_vars;
- while (item != NULL) {
- if (argv[1]!=NULL) {
-
- if (memcmp((void *) item->name, (void *) argv[1],l)==0)
- IConsolePrintF(_iconsole_color_default,"%s",item->name);
-
- } else {
-
- IConsolePrintF(_iconsole_color_default,"%s",item->name);
-
- }
- item = item->_next;
- }
-
- return NULL;
-}
-
-DEF_CONSOLE_CMD(ConListDumpVariables)
-{
- _iconsole_var * item;
- int l = 0;
-
- if (argv[1]!=NULL) l = strlen((char *) argv[1]);
-
- item = _iconsole_vars;
- while (item != NULL) {
- if (argv[1]!=NULL) {
-
- if (memcmp((void *) item->name, (void *) argv[1],l)==0)
- IConsoleVarDump(item,NULL);
-
- } else {
-
- IConsoleVarDump(item,NULL);
-
- }
- item = item->_next;
- }
-
- return NULL;
-}
-
-#ifdef _DEBUG
-/* ****************************************** */
-/* debug commands and variables */
-/* ****************************************** */
-
-void IConsoleDebugLibRegister()
-{
- IConsoleVarMemRegister("temp_bool",ICONSOLE_VAR_BOOLEAN);
- IConsoleVarMemRegister("temp_int16",ICONSOLE_VAR_INT16);
- IConsoleVarMemRegister("temp_int32",ICONSOLE_VAR_INT32);
- IConsoleVarMemRegister("temp_pointer",ICONSOLE_VAR_POINTER);
- IConsoleVarMemRegister("temp_uint16",ICONSOLE_VAR_UINT16);
- IConsoleVarMemRegister("temp_uint16_2",ICONSOLE_VAR_UINT16);
- IConsoleVarMemRegister("temp_uint32",ICONSOLE_VAR_UINT32);
- IConsoleVarMemRegister("temp_string",ICONSOLE_VAR_STRING);
- IConsoleVarMemRegister("temp_string2",ICONSOLE_VAR_STRING);
- IConsoleCmdRegister("resettile",ConResetTile);
-}
-#endif
-
-/* ****************************************** */
-/* console command and variable registration */
-/* ****************************************** */
-
-void IConsoleStdLibRegister()
-{
- // stdlib
- extern byte _stdlib_developer;
- extern bool _stdlib_con_developer;
-
-#ifdef _DEBUG
- IConsoleDebugLibRegister();
-#endif
-
- // functions [please add them alphabeticaly]
-#ifdef ENABLE_NETWORK
- IConsoleCmdRegister("connect",ConNetworkConnect);
- IConsoleCmdHook("connect",ICONSOLE_HOOK_ACCESS,ConCmdHookNoNetwork);
-#endif
- IConsoleCmdRegister("debug_level",ConDebugLevel);
- IConsoleCmdRegister("dump_vars",ConListDumpVariables);
- IConsoleCmdRegister("echo",ConEcho);
- IConsoleCmdRegister("echoc",ConEchoC);
- IConsoleCmdRegister("exit",ConExit);
- IConsoleCmdRegister("help",ConHelp);
- IConsoleCmdRegister("printf",ConPrintF);
- IConsoleCmdRegister("printfc",ConPrintFC);
- IConsoleCmdRegister("quit",ConExit);
- IConsoleCmdRegister("random",ConRandom);
- IConsoleCmdRegister("list_cmds",ConListCommands);
- IConsoleCmdRegister("list_vars",ConListVariables);
- IConsoleCmdRegister("resetengines",ConResetEngines);
- IConsoleCmdHook("resetengines",ICONSOLE_HOOK_ACCESS,ConCmdHookNoNetwork);
- IConsoleCmdRegister("screenshot",ConScreenShot);
- IConsoleCmdRegister("scrollto",ConScrollToTile);
- IConsoleCmdRegister("varinfo",ConVarInfo);
-
- // variables [please add them alphabeticaly]
- IConsoleVarRegister("con_developer",(void *) &_stdlib_con_developer,ICONSOLE_VAR_BOOLEAN);
- IConsoleVarRegister("developer",(void *) &_stdlib_developer,ICONSOLE_VAR_BYTE);
-#ifdef ENABLE_NETWORK
- IConsoleVarRegister("net_client_timeout",&_network_client_timeout,ICONSOLE_VAR_UINT16);
- IConsoleVarHook("*net_client_timeout",ICONSOLE_HOOK_ACCESS,ConVarHookNoNetClient);
- IConsoleVarRegister("net_ready_ahead",&_network_ready_ahead,ICONSOLE_VAR_UINT16);
- IConsoleVarRegister("net_sync_freq",&_network_sync_freq,ICONSOLE_VAR_UINT16);
- IConsoleVarHook("*net_sync_freq",ICONSOLE_HOOK_ACCESS,ConVarHookNoNetClient);
-#endif
-
-
-}
-/* -------------------- dont cross this line --------------------- */
+/* -------------------- dont cross this line --------------------- */
+#include "stdafx.h"
+#include "ttd.h"
+#include "console.h"
+#include "engine.h"
+#include "functions.h"
+#include "variables.h"
+
+#if defined(WIN32)
+# define ENABLE_NETWORK
+#endif
+
+// ** console command / variable defines ** //
+#define DEF_CONSOLE_CMD(yyyy) static _iconsole_var * yyyy(byte argc, byte* argv[], byte argt[])
+#define DEF_CONSOLE_CMD_HOOK(yyyy) static bool yyyy(_iconsole_cmd * hookcmd)
+#define DEF_CONSOLE_VAR_HOOK(yyyy) static bool yyyy(_iconsole_var * hookvar)
+
+static int32 GetArgumentInteger(byte *arg)
+{
+ int32 result;
+ sscanf((char *)arg, "%u", &result);
+
+ if (result == 0 && arg[0] == '0' && arg[1] == 'x')
+ sscanf((char *)arg, "%x", &result);
+
+ return result;
+}
+
+/* **************************** */
+/* variable and command hooks */
+/* **************************** */
+
+DEF_CONSOLE_CMD_HOOK(ConCmdHookNoNetwork)
+{
+ if (_networking) {
+ IConsoleError("this command is forbidden in multiplayer");
+ return false;
+ }
+ return true;
+}
+
+#if 0 /* Not used atm */
+DEF_CONSOLE_VAR_HOOK(ConVarHookNoNetwork)
+{
+ if (_networking) {
+ IConsoleError("this variable is forbidden in multiplayer");
+ return false;
+ }
+ return true;
+}
+#endif
+
+DEF_CONSOLE_VAR_HOOK(ConVarHookNoNetClient)
+{
+ if (!_networking_server) {
+ IConsoleError("this variable only makes sense for a network server");
+ return false;
+ }
+ return true;
+}
+
+/* **************************** */
+/* reset commands */
+/* **************************** */
+
+DEF_CONSOLE_CMD(ConResetEngines)
+{
+ StartupEngines();
+ return 0;
+}
+
+DEF_CONSOLE_CMD(ConResetTile)
+{
+ if (argc == 2) {
+ TileIndex tile = (TileIndex)GetArgumentInteger(argv[1]);
+ DoClearSquare(tile);
+ }
+
+ return 0;
+}
+
+DEF_CONSOLE_CMD(ConScrollToTile)
+{
+ if (argc == 2) {
+ TileIndex tile = (TileIndex)GetArgumentInteger(argv[1]);
+ ScrollMainWindowToTile(tile);
+ }
+
+ return 0;
+}
+
+// ********************************* //
+// * Network Core Console Commands * //
+// ********************************* //
+#ifdef ENABLE_NETWORK
+
+DEF_CONSOLE_CMD(ConNetworkConnect)
+{
+ byte * b;
+ byte * ip = NULL;
+ byte * port = NULL;
+ byte * player = NULL;
+ byte c;
+ uint16 rport;
+
+ if (argc<2) return NULL;
+
+ b = argv[1];
+ rport = _network_server_port;
+ c = 0;
+ ip = b;
+
+ while (b[c] != 0) {
+ if (((char)b[c]) == '#') {
+ player = &b[c+1];
+ b[c] = 0;
+ }
+ if (((char)b[c]) == ':') {
+ port = &b[c+1];
+ b[c] = 0;
+ }
+ c++;
+ }
+
+ IConsolePrintF(_iconsole_color_default,"Connecting to %s...",ip);
+ if (player!=NULL) {
+ _network_playas = atoi(player);
+ IConsolePrintF(_iconsole_color_default," player-no: %s",player);
+ }
+ if (port!=NULL) {
+ rport = atoi(port);
+ IConsolePrintF(_iconsole_color_default," port: %s",port);
+ }
+
+ NetworkCoreConnectGame(b, rport);
+
+ return NULL;
+}
+
+#endif
+
+/* **************************** */
+/* default console commands */
+/* **************************** */
+
+DEF_CONSOLE_CMD(ConEcho)
+{
+ if (argc<2) return NULL;
+ IConsolePrint(_iconsole_color_default, argv[1]);
+ return NULL;
+}
+
+DEF_CONSOLE_CMD(ConEchoC)
+{
+ if (argc<3) return NULL;
+ IConsolePrint(atoi(argv[1]), argv[2]);
+ return NULL;
+}
+
+DEF_CONSOLE_CMD(ConPrintF)
+{
+ if (argc<3) return NULL;
+ IConsolePrintF(_iconsole_color_default, argv[1] ,argv[2],argv[3],argv[4],argv[5],argv[6],argv[7],argv[8],argv[9],argv[10],argv[11],argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],argv[18],argv[19]);
+ return NULL;
+}
+
+DEF_CONSOLE_CMD(ConPrintFC)
+{
+ if (argc<3) return NULL;
+ IConsolePrintF(atoi(argv[1]), argv[2] ,argv[3],argv[4],argv[5],argv[6],argv[7],argv[8],argv[9],argv[10],argv[11],argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],argv[18],argv[19]);
+ return NULL;
+}
+
+DEF_CONSOLE_CMD(ConScreenShot)
+{
+ if (argc<2) {
+ _make_screenshot=1;
+ } else {
+ if (strcmp(argv[1],"big")==0) {
+ _make_screenshot=2;
+ }
+ if (strcmp(argv[1],"no_con")==0) {
+ IConsoleClose();
+ _make_screenshot=1;
+ }
+ }
+ return NULL;
+}
+
+DEF_CONSOLE_CMD(ConVarInfo)
+{
+ if (argc<2) return NULL;
+ if (argt[1]!=ICONSOLE_VAR_REFERENCE) {
+ IConsoleError("variable must be an variable reference");
+ } else {
+ _iconsole_var * item;
+ item = (_iconsole_var *) argv[1];
+ IConsolePrintF(_iconsole_color_default,"variable_name: %s",item->name);
+ IConsolePrintF(_iconsole_color_default,"variable_type: %i",item->type);
+ IConsolePrintF(_iconsole_color_default,"variable_addr: %i",item->addr);
+ if (item->_malloc) IConsolePrintF(_iconsole_color_default,"variable_malloc: internal allocated"); else IConsolePrintF(_iconsole_color_default, "variable_malloc: external allocated");
+ }
+ return NULL;
+}
+
+DEF_CONSOLE_CMD(ConDebugLevel)
+{
+ if (argc<2) return NULL;
+ SetDebugString(argv[1]);
+ return NULL;
+}
+
+DEF_CONSOLE_CMD(ConExit)
+{
+ _exit_game = true;
+ return NULL;
+}
+
+DEF_CONSOLE_CMD(ConHelp)
+{
+ IConsolePrint(13 ," -- console help -- ");
+ IConsolePrint(1 ," variables: [command to list them: list_vars]");
+ IConsolePrint(1 ," *temp_string = \"my little \"");
+ IConsolePrint(1 ,"");
+ IConsolePrint(1 ," commands: [command to list them: list_cmds]");
+ IConsolePrint(1 ," [command] [\"string argument with spaces\"] [argument 2] ...");
+ IConsolePrint(1 ," printf \"%s world\" *temp_string");
+ IConsolePrint(1 ,"");
+ IConsolePrint(1 ," command/variable returning a value into an variable:");
+ IConsolePrint(1 ," *temp_uint16 << random");
+ IConsolePrint(1 ," *temp_uint16 << *temp_uint16_2");
+ IConsolePrint(1 ,"");
+ return NULL;
+}
+
+DEF_CONSOLE_CMD(ConRandom)
+{
+ _iconsole_var * result;
+ result = IConsoleVarAlloc(ICONSOLE_VAR_UINT16);
+ IConsoleVarSetValue(result,rand());
+ return result;
+}
+
+DEF_CONSOLE_CMD(ConListCommands)
+{
+ _iconsole_cmd * item;
+ int l = 0;
+
+ if (argv[1]!=NULL) l = strlen((char *) argv[1]);
+
+ item = _iconsole_cmds;
+ while (item != NULL) {
+ if (argv[1]!=NULL) {
+
+ if (memcmp((void *) item->name, (void *) argv[1],l)==0)
+ IConsolePrintF(_iconsole_color_default,"%s",item->name);
+
+ } else {
+
+ IConsolePrintF(_iconsole_color_default,"%s",item->name);
+
+ }
+ item = item->_next;
+ }
+
+ return NULL;
+}
+
+DEF_CONSOLE_CMD(ConListVariables)
+{
+ _iconsole_var * item;
+ int l = 0;
+
+ if (argv[1]!=NULL) l = strlen((char *) argv[1]);
+
+ item = _iconsole_vars;
+ while (item != NULL) {
+ if (argv[1]!=NULL) {
+
+ if (memcmp(item->name, argv[1],l)==0)
+ IConsolePrintF(_iconsole_color_default,"%s",item->name);
+
+ } else {
+
+ IConsolePrintF(_iconsole_color_default,"%s",item->name);
+
+ }
+ item = item->_next;
+ }
+
+ return NULL;
+}
+
+DEF_CONSOLE_CMD(ConListDumpVariables)
+{
+ _iconsole_var * item;
+ int l = 0;
+
+ if (argv[1]!=NULL) l = strlen((char *) argv[1]);
+
+ item = _iconsole_vars;
+ while (item != NULL) {
+ if (argv[1]!=NULL) {
+
+ if (memcmp(item->name, argv[1],l)==0)
+ IConsoleVarDump(item,NULL);
+
+ } else {
+
+ IConsoleVarDump(item,NULL);
+
+ }
+ item = item->_next;
+ }
+
+ return NULL;
+}
+
+#ifdef _DEBUG
+/* ****************************************** */
+/* debug commands and variables */
+/* ****************************************** */
+
+void IConsoleDebugLibRegister()
+{
+ IConsoleVarMemRegister("temp_bool",ICONSOLE_VAR_BOOLEAN);
+ IConsoleVarMemRegister("temp_int16",ICONSOLE_VAR_INT16);
+ IConsoleVarMemRegister("temp_int32",ICONSOLE_VAR_INT32);
+ IConsoleVarMemRegister("temp_pointer",ICONSOLE_VAR_POINTER);
+ IConsoleVarMemRegister("temp_uint16",ICONSOLE_VAR_UINT16);
+ IConsoleVarMemRegister("temp_uint16_2",ICONSOLE_VAR_UINT16);
+ IConsoleVarMemRegister("temp_uint32",ICONSOLE_VAR_UINT32);
+ IConsoleVarMemRegister("temp_string",ICONSOLE_VAR_STRING);
+ IConsoleVarMemRegister("temp_string2",ICONSOLE_VAR_STRING);
+ IConsoleCmdRegister("resettile",ConResetTile);
+}
+#endif
+
+/* ****************************************** */
+/* console command and variable registration */
+/* ****************************************** */
+
+void IConsoleStdLibRegister()
+{
+ // stdlib
+ extern byte _stdlib_developer;
+ extern bool _stdlib_con_developer;
+
+#ifdef _DEBUG
+ IConsoleDebugLibRegister();
+#else
+ (void)ConResetTile; // Silence warning, this is only used in _DEBUG
+#endif
+
+ // functions [please add them alphabeticaly]
+#ifdef ENABLE_NETWORK
+ IConsoleCmdRegister("connect",ConNetworkConnect);
+ IConsoleCmdHook("connect",ICONSOLE_HOOK_ACCESS,ConCmdHookNoNetwork);
+#endif
+ IConsoleCmdRegister("debug_level",ConDebugLevel);
+ IConsoleCmdRegister("dump_vars",ConListDumpVariables);
+ IConsoleCmdRegister("echo",ConEcho);
+ IConsoleCmdRegister("echoc",ConEchoC);
+ IConsoleCmdRegister("exit",ConExit);
+ IConsoleCmdRegister("help",ConHelp);
+ IConsoleCmdRegister("printf",ConPrintF);
+ IConsoleCmdRegister("printfc",ConPrintFC);
+ IConsoleCmdRegister("quit",ConExit);
+ IConsoleCmdRegister("random",ConRandom);
+ IConsoleCmdRegister("list_cmds",ConListCommands);
+ IConsoleCmdRegister("list_vars",ConListVariables);
+ IConsoleCmdRegister("resetengines",ConResetEngines);
+ IConsoleCmdHook("resetengines",ICONSOLE_HOOK_ACCESS,ConCmdHookNoNetwork);
+ IConsoleCmdRegister("screenshot",ConScreenShot);
+ IConsoleCmdRegister("scrollto",ConScrollToTile);
+ IConsoleCmdRegister("varinfo",ConVarInfo);
+
+ // variables [please add them alphabeticaly]
+ IConsoleVarRegister("con_developer",(void *) &_stdlib_con_developer,ICONSOLE_VAR_BOOLEAN);
+ IConsoleVarRegister("developer",(void *) &_stdlib_developer,ICONSOLE_VAR_BYTE);
+#ifdef ENABLE_NETWORK
+ IConsoleVarRegister("net_client_timeout",&_network_client_timeout,ICONSOLE_VAR_UINT16);
+ IConsoleVarHook("*net_client_timeout",ICONSOLE_HOOK_ACCESS,ConVarHookNoNetClient);
+ IConsoleVarRegister("net_ready_ahead",&_network_ready_ahead,ICONSOLE_VAR_UINT16);
+ IConsoleVarRegister("net_sync_freq",&_network_sync_freq,ICONSOLE_VAR_UINT16);
+ IConsoleVarHook("*net_sync_freq",ICONSOLE_HOOK_ACCESS,ConVarHookNoNetClient);
+#endif
+
+
+}
+/* -------------------- dont cross this line --------------------- */
diff --git a/console_cmds.h b/console_cmds.h
deleted file mode 100644
index e69de29bb..000000000
--- a/console_cmds.h
+++ /dev/null
diff --git a/graph_gui.c b/graph_gui.c
index 0562e333a..35ac932d3 100644
--- a/graph_gui.c
+++ b/graph_gui.c
@@ -1016,8 +1016,8 @@ static StringID GetPerformanceTitleFromValue(uint v)
}
static int CDECL _perf_hist_comp(const void *elem1, const void *elem2 ) {
- Player *p1 = *(Player**)elem1;
- Player *p2 = *(Player**)elem2;
+ const Player *p1 = *(const Player* const *)elem1;
+ const Player *p2 = *(const Player* const *)elem2;
int32 v = p2->old_economy[1].performance_history - p1->old_economy[1].performance_history;
return (v!=0) | (v >> (sizeof(int32)*8-1));
}
diff --git a/hal.h b/hal.h
index 764e664e3..8eff9e662 100644
--- a/hal.h
+++ b/hal.h
@@ -135,7 +135,7 @@ char *FiosBrowseTo(const FiosItem *item);
// Get descriptive texts.
// Returns a path as well as a
// string describing the path.
-StringID FiosGetDescText(char **path);
+StringID FiosGetDescText(const char **path);
// Delete a name
void FiosDelete(const char *name);
// Make a filename from a name
diff --git a/industry_gui.c b/industry_gui.c
index 3e05c79d0..db34d8b44 100644
--- a/industry_gui.c
+++ b/industry_gui.c
@@ -392,8 +392,8 @@ static int CDECL GeneralIndustrySorter(const void *a, const void *b)
{
char buf1[96];
byte val;
- Industry *i = DEREF_INDUSTRY(*(byte*)a);
- Industry *j = DEREF_INDUSTRY(*(byte*)b);
+ Industry *i = DEREF_INDUSTRY(*(const byte*)a);
+ Industry *j = DEREF_INDUSTRY(*(const byte*)b);
int r = 0;
switch (_industry_sort_order >> 1) {
@@ -437,7 +437,7 @@ static int CDECL GeneralIndustrySorter(const void *a, const void *b)
SET_DPARAM32(0, i->town->townnameparts);
GetString(buf1, i->town->townnametype);
- if ( (val=*(byte*)b) != _last_industry_idx) {
+ if ( (val=*(const byte*)b) != _last_industry_idx) {
_last_industry_idx = val;
SET_DPARAM32(0, j->town->townnameparts);
GetString(_bufcache, j->town->townnametype);
diff --git a/macros.h b/macros.h
index 9669431ce..5e0ff540c 100644
--- a/macros.h
+++ b/macros.h
@@ -203,18 +203,18 @@ static INLINE void swap_tile(TileIndex *a, TileIndex *b) { TileIndex t = *a; *a
#if defined(TTD_LITTLE_ENDIAN)
-# define READ_LE_UINT16(b) (*(uint16*)(b))
+# define READ_LE_UINT16(b) (*(const uint16*)(b))
# define ADD_WORD(x) (x)&0xFF, ((x) >> 8)&0xFF
# define ADD_DWORD(x) (x)&0xFF, ((x) >> 8)&0xFF, ((x) >> 16)&0xFF, ((x) >> 24)&0xFF
#elif defined(TTD_BIG_ENDIAN)
static INLINE uint16 READ_LE_UINT16(const void *b) {
- return ((byte*)b)[0] + (((byte*)b)[1] << 8);
+ return ((const byte*)b)[0] + (((const byte*)b)[1] << 8);
}
# define ADD_WORD(x) ((x) >> 8)&0xFF, (x)&0xFF
# define ADD_DWORD(x) ((x) >> 24)&0xFF, ((x) >> 16)&0xFF, ((x) >> 8)&0xFF, (x)&0xFF
#endif
-static INLINE void WRITE_LE_UINT16(const void *b, uint16 x) {
+static INLINE void WRITE_LE_UINT16(void *b, uint16 x) {
((byte*)b)[0] = (byte)x;
((byte*)b)[1] = (byte)(x >> 8);
}
diff --git a/main_gui.c b/main_gui.c
index 17acb1256..5f62fa956 100644
--- a/main_gui.c
+++ b/main_gui.c
@@ -2226,10 +2226,10 @@ void SetupColorsAndInitialWindow()
w = AllocateWindowDesc(&_toolb_normal_desc);
w->disabled_state = 1 << 17; // disable zoon-in button (by default game is zoomed in)
- if (_networking) { // if networking, disable fast-forward button
- w->disabled_state |= (1 << 1);
- if (!_networking_server) // if not server, disable pause button
- w->disabled_state |= (1 << 0);
+ if (_networking) { // if networking, disable fast-forward button
+ w->disabled_state |= (1 << 1);
+ if (!_networking_server) // if not server, disable pause button
+ w->disabled_state |= (1 << 0);
}
w->flags4 &= ~WF_WHITE_BORDER_MASK;
diff --git a/misc_gui.c b/misc_gui.c
index a1a8d9f5c..77cca994d 100644
--- a/misc_gui.c
+++ b/misc_gui.c
@@ -963,7 +963,7 @@ static void BuildFileList()
static void DrawFiosTexts()
{
- char *path;
+ const char *path;
StringID str;
str = FiosGetDescText(&path);
diff --git a/network.c b/network.c
index 6c4089d9d..e2596d192 100644
--- a/network.c
+++ b/network.c
@@ -528,7 +528,7 @@ static void HandleCommandPacket(ClientState *cs, CommandPacket *np)
qp = (QueuedCommand*)calloc(sizeof(QueuedCommand), 1);
}
qp->cp = *np;
-
+
qp->frame = _frame_counter_max - GetNextSyncFrame();
qp->callback = NULL;
diff --git a/network_gui.c b/network_gui.c
index fbc6aa6c9..cfacbe262 100644
--- a/network_gui.c
+++ b/network_gui.c
@@ -144,7 +144,7 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e)
NetworkGameListFromInternet();
break;
}
-
+
_network_game_count_last = _network_game_count;
SetWindowDirty(w);
@@ -179,7 +179,7 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e)
rport = _network_server_port;
c = 0;
ip = b;
-
+
while (b[c] != 0) {
if (((char)b[c]) == '#') {
player = &b[c+1];
diff --git a/rail_cmd.c b/rail_cmd.c
index ad0ce8e41..235a37fe4 100644
--- a/rail_cmd.c
+++ b/rail_cmd.c
@@ -1520,7 +1520,7 @@ static void DrawTile_Track(TileInfo *ti)
s = _track_depot_layout_table[m5 & 0x3F];
- image = *(uint16*)s;
+ image = *(const uint16*)s;
if (image & 0x8000) image = (image & 0x7FFF) + tracktype_offs;
// adjust ground tile for desert
@@ -1566,11 +1566,11 @@ void DrawTrainDepotSprite(int x, int y, int image, int railtype)
x+=33;
y+=17;
- img = *(uint16*)t;
+ img = *(const uint16*)t;
if (img & 0x8000) img = (img & 0x7FFF) + railtype;
DrawSprite(img, x, y);
- for(dtss = (DrawTrackSeqStruct *)(t + sizeof(uint16)); dtss->image != 0; dtss++) {
+ for(dtss = (const DrawTrackSeqStruct *)(t + sizeof(uint16)); dtss->image != 0; dtss++) {
Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0);
image = dtss->image;
if (image & 0x8000) image |= ormod;
diff --git a/readme.txt b/readme.txt
index 0c63b8561..21e4e1259 100644
--- a/readme.txt
+++ b/readme.txt
@@ -126,7 +126,7 @@ Windows:
and it should build automatically. In case you don't build with SDL,
you need to remove WITH_SDL from the project settings.
(see also docs/Readme_Windows_MSVC6.0.txt)
-
+
You can also build it using the Makefile with MSys/MingW or Cygwin/MingW.
Please read the Makefile for more information.
@@ -147,8 +147,8 @@ FreeBSD
Use "gmake".
MorphOS
- Use "make". Note that you need the MorphOS SDK and the
- powersdl.library SDK.
+ Use "make". Note that you need the MorphOS SDK and the
+ powersdl.library SDK.
8.0) Translating:
---- -------------------
@@ -209,7 +209,7 @@ The OpenTTD team:
Cian Duffy (MYOB) - BeOS port / manual writing
Christian Rosentreter (tokaiz) - MorphOS/AmigaOS port
Viktor Strigeus (wiggo) - Web hosting services
-
+
Thanks to:
Josef Drexler - For his great work on TTDPatch.
Marcin Grzegorczyk - For his TTDPatch work and documentation of TTD internals and graphics (signals and track foundations).
@@ -222,4 +222,4 @@ Thanks to:
George - Canal graphics
Bug Reporters - Thanks for all bug reports.
Chris Sawyer - For an amazing game.
-
+
diff --git a/road_cmd.c b/road_cmd.c
index 3547c1cfd..6c98a2c64 100644
--- a/road_cmd.c
+++ b/road_cmd.c
@@ -810,9 +810,9 @@ static void DrawTile_Road(TileInfo *ti)
s = _road_display_datas[ti->map5 & 0xF];
- DrawGroundSprite(*(uint32*)s);
+ DrawGroundSprite(*(const uint32*)s);
s += sizeof(uint32);
- drss = (DrawRoadSeqStruct*)s;
+ drss = (const DrawRoadSeqStruct*)s;
while ((image=drss->image) != 0) {
if (image & 0x8000)
@@ -840,10 +840,10 @@ void DrawRoadDepotSprite(int x, int y, int image)
x+=33;
y+=17;
- DrawSprite(*(uint32*)t, x, y);
+ DrawSprite(*(const uint32*)t, x, y);
t += sizeof(uint32);
- for(dtss = (DrawRoadSeqStruct *)t; dtss->image != 0; dtss++) {
+ for(dtss = (const DrawRoadSeqStruct *)t; dtss->image != 0; dtss++) {
Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0);
image = dtss->image;
diff --git a/saveload.c b/saveload.c
index 87d4878a4..e3efc54fd 100644
--- a/saveload.c
+++ b/saveload.c
@@ -422,7 +422,7 @@ static size_t SlCalcObjLength(void *object, const void *desc)
{
size_t length = 0;
uint cmd,conv;
- byte *d = (byte*)desc;
+ const byte *d = (const byte*)desc;
// Need to determine the length and write a length tag.
while (true) {
@@ -464,7 +464,7 @@ static size_t SlCalcObjLength(void *object, const void *desc)
void SlObject(void *object, const void *desc)
{
- byte *d = (byte*)desc;
+ const byte *d = (const byte*)desc;
void *ptr;
uint cmd,conv;
diff --git a/sdl.c b/sdl.c
index ad8bc6363..a061bc1c5 100644
--- a/sdl.c
+++ b/sdl.c
@@ -212,9 +212,9 @@ static void DrawSurfaceToScreen()
static int CDECL compare_res(const void *pa, const void *pb)
{
- int x = ((uint16*)pa)[0] - ((uint16*)pb)[0];
+ int x = ((const uint16*)pa)[0] - ((const uint16*)pb)[0];
if (x) return x;
- return ((uint16*)pa)[1] - ((uint16*)pb)[1];
+ return ((const uint16*)pa)[1] - ((const uint16*)pb)[1];
}
static const uint16 default_resolutions[][2] = {
diff --git a/settings.c b/settings.c
index 6a0823d46..596fb333a 100644
--- a/settings.c
+++ b/settings.c
@@ -325,9 +325,9 @@ static void ini_free(IniFile *ini)
struct SettingDesc {
const char *name;
int flags;
- void *def;
+ const void *def;
void *ptr;
- void *b;
+ const void *b;
};
@@ -493,7 +493,7 @@ static void make_manyofmany(char *buf, const char *many, uint32 x)
*buf = 0;
}
-static void *string_to_val(const SettingDesc *desc, const char *str)
+static const void *string_to_val(const SettingDesc *desc, const char *str)
{
unsigned long val;
char *end;
@@ -532,11 +532,11 @@ static void *string_to_val(const SettingDesc *desc, const char *str)
return NULL;
}
-static void load_setting_desc(IniFile *ini, const SettingDesc *desc, void *grpname, void *base)
+static void load_setting_desc(IniFile *ini, const SettingDesc *desc, const void *grpname, void *base)
{
IniGroup *group_def = ini_getgroup(ini, grpname, -1), *group;
IniItem *item;
- void *p;
+ const void *p;
void *ptr;
for (;desc->name;desc++) {
@@ -603,11 +603,12 @@ static void load_setting_desc(IniFile *ini, const SettingDesc *desc, void *grpna
}
}
-static void save_setting_desc(IniFile *ini, const SettingDesc *desc, void *grpname, void *base)
+static void save_setting_desc(IniFile *ini, const SettingDesc *desc, const void *grpname, void *base)
{
IniGroup *group_def = NULL, *group;
IniItem *item;
- void *p, *ptr;
+ const void *p;
+ void *ptr;
int i = 0;
char buf[512]; // setting buffer
const char *s;
@@ -883,7 +884,7 @@ static const SettingDesc patch_settings[] = {
{NULL, 0, NULL, NULL, NULL}
};
-typedef void SettingDescProc(IniFile *ini, const SettingDesc *desc, void *grpname, void *base);
+typedef void SettingDescProc(IniFile *ini, const SettingDesc *desc, const void *grpname, void *base);
static void HandleSettingDescs(IniFile *ini, SettingDescProc *proc)
{
diff --git a/station_cmd.c b/station_cmd.c
index 05959fb3c..9f56d7836 100644
--- a/station_cmd.c
+++ b/station_cmd.c
@@ -1743,13 +1743,13 @@ static void DrawTile_Station(TileInfo *ti)
t = _station_display_datas[ti->map5];
- image = *(uint32*)t;
+ image = *(const uint32*)t;
t += sizeof(uint32);
if (image & 0x8000)
image |= image_or_modificator;
DrawGroundSprite(image + base_img);
- for(dtss = (DrawTileSeqStruct *)t; (byte)dtss->delta_x != 0x80; dtss++) {
+ for(dtss = (const DrawTileSeqStruct *)t; (byte)dtss->delta_x != 0x80; dtss++) {
if ((byte)dtss->delta_z != 0x80) {
image = dtss->image + base_img;
if (_display_opt & DO_TRANS_BUILDINGS) {
@@ -1760,7 +1760,7 @@ static void DrawTile_Station(TileInfo *ti)
AddSortableSpriteToDraw(image, ti->x + dtss->delta_x, ti->y + dtss->delta_y, dtss->width, dtss->height, dtss->unk, ti->z + dtss->delta_z);
} else {
- image = *(uint32*)&dtss->height + base_img; /* endian ok */
+ image = *(const uint32*)&dtss->height + base_img; /* endian ok */
if (_display_opt & DO_TRANS_BUILDINGS) {
if (image&0x8000) image |= image_or_modificator;
@@ -1785,13 +1785,13 @@ void StationPickerDrawSprite(int x, int y, int railtype, int image)
t = _station_display_datas[image];
- img = *(uint32*)t;
+ img = *(const uint32*)t;
t += sizeof(uint32);
if (img & 0x8000)
img |= ormod;
DrawSprite(img, x, y);
- for(dtss = (DrawTileSeqStruct *)t; (byte)dtss->delta_x != 0x80; dtss++) {
+ for(dtss = (const DrawTileSeqStruct *)t; (byte)dtss->delta_x != 0x80; dtss++) {
Point pt = RemapCoords(dtss->delta_x, dtss->delta_y, dtss->delta_z);
DrawSprite((dtss->image | ormod) + railtype, x + pt.x, y + pt.y);
}
diff --git a/station_gui.c b/station_gui.c
index 5337a5349..b1c553a30 100644
--- a/station_gui.c
+++ b/station_gui.c
@@ -54,9 +54,8 @@ static int CDECL StationNameSorter(const void *a, const void *b)
{
char buf1[64];
Station *st;
- SortStruct *cmp1, *cmp2;
- cmp1 = (SortStruct*)a;
- cmp2 = (SortStruct*)b;
+ const SortStruct *cmp1 = (const SortStruct*)a;
+ const SortStruct *cmp2 = (const SortStruct*)b;
st = DEREF_STATION(cmp1->index);
SET_DPARAM16(0, st->town->townnametype);
diff --git a/strgen/strgen.c b/strgen/strgen.c
index a6107329c..8726de932 100644
--- a/strgen/strgen.c
+++ b/strgen/strgen.c
@@ -43,7 +43,7 @@ typedef struct LineName {
struct LineName *hash_next;
int value;
char str[1];
-} LineName;
+} LineName;
int _cur_line;
bool _warnings;
@@ -218,7 +218,7 @@ static const CmdStruct _cmd_structs[] = {
{"", EmitSingleByte, 10},
// Colors
- {"BLUE", EmitSingleByte, 15},
+ {"BLUE", EmitSingleByte, 15},
{"SILVER", EmitSingleByte, 16},
{"GOLD", EmitSingleByte, 17},
{"RED", EmitSingleByte, 18},
@@ -235,7 +235,7 @@ static const CmdStruct _cmd_structs[] = {
{"GRAY", EmitSingleByte, 29},
{"DKBLUE", EmitSingleByte, 30},
{"BLACK", EmitSingleByte, 31},
-
+
// 0x7B=123 is the LAST special character we may use.
// Numbers
@@ -245,12 +245,12 @@ static const CmdStruct _cmd_structs[] = {
{"NUMU16", EmitSingleByte, 0x7E},
{"CURRENCY", EmitSingleByte, 0x7F},
-
+
{"CURRCOMPACT", EmitEscapedByte, 0}, // compact currency
{"INT32", EmitEscapedByte, 1}, // compact currency
{"REV", EmitEscapedByte, 2}, // openttd revision string
{"SHORTCARGO", EmitEscapedByte, 3}, // short cargo description, only ### tons, or ### litres
-
+
{"STRINL", EmitStringInl, 0x81},
{"DATE_LONG", EmitSingleByte, 0x82},
@@ -388,7 +388,7 @@ bool check_commands_match(char *a, char *b)
void handle_string(char *str, bool master) {
char *s,*t,*r;
int ent;
-
+
if (*str == '#') {
if (str[1] == '#' && str[2] != '#')
handle_pragma(str + 2);
@@ -471,7 +471,7 @@ uint32 my_hash_str(uint32 hash, const char *s)
if (hash & 1) hash = (hash>>1) ^ 0xDEADBEEF; else hash >>= 1;
}
return hash;
-
+
}
void parse_file(const char *file, bool english) {
@@ -481,7 +481,7 @@ void parse_file(const char *file, bool english) {
in = fopen(file, "r");
if (in == NULL) { error("Cannot open file '%s'", file); }
-
+
_cur_line = 1;
while (fgets(buf, sizeof(buf),in) != NULL) {
i = strlen(buf);
@@ -512,7 +512,7 @@ void parse_file(const char *file, bool english) {
if (hash & 1) hash = (hash>>1) ^ 0xF00BAA4; else hash >>= 1;
}
}
- }
+ }
}
_hash = hash;
}
@@ -579,7 +579,7 @@ void gen_output(FILE *f) {
for(j=0; j!=in_use[i]; j++) {
char *s = allstr[(i<<11)+j];
if (s == NULL) error("Internal error, s==NULL");
-
+
write_length(f, *(uint16*)s);
fwrite(s + sizeof(uint16), *(uint16*)s , 1, f);
tot_str--;
@@ -642,7 +642,7 @@ void write_strings_h(const char *filename)
lastgrp = (i >> 11);
fprintf(out, "};\n\nenum {");
}
-
+
fprintf(out, next == i ? "%s,\n" : "\n%s = 0x%X,\n", allstr[i] + 1, i);
next = i + 1;
}
@@ -650,7 +650,7 @@ void write_strings_h(const char *filename)
fprintf(out, "};\n");
- fprintf(out,
+ fprintf(out,
"\nenum {\n"
"\tLANGUAGE_PACK_IDENT = 0x474E414C, // Big Endian value for 'LANG' (LE is 0x 4C 41 4E 47)\n"
"\tLANGUAGE_PACK_VERSION = 0x%X,\n"
@@ -690,7 +690,7 @@ void write_langfile(const char *filename, int show_todo)
hdr.offsets[i] = TO_LE16(n);
}
- // see line 655: fprintf(..."\tLANGUAGE_PACK_IDENT = 0x474E414C,...)
+ // see line 655: fprintf(..."\tLANGUAGE_PACK_IDENT = 0x474E414C,...)
hdr.ident = TO_LE32(0x474E414C); // Big Endian value for 'LANG'
hdr.version = TO_LE32(_hash);
strcpy(hdr.name, _lang_name);
@@ -712,7 +712,7 @@ void write_langfile(const char *filename, int show_todo)
if (show_todo == 2) {
fprintf(stderr, "Warning:%s: String '%s' is untranslated\n", filename, s + 1);
} else {
- char *s = "<TODO> ";
+ const char *s = "<TODO> ";
while(*s) put_byte(*s++);
}
}
@@ -769,10 +769,10 @@ int main(int argc, char* argv[])
if (_warnings) return 1;
// write english.lng and strings.h
-
+
write_langfile("lang/english.lng", 0);
write_strings_h("table/strings.h");
-
+
} else if (argc == 2) {
parse_file("lang/english.txt", true);
parse_file(argv[1], false);
diff --git a/table/landscape_const.h b/table/landscape_const.h
index a438670ef..6b48b465d 100644
--- a/table/landscape_const.h
+++ b/table/landscape_const.h
@@ -66,7 +66,7 @@ static const LandscapePredefVar _landscape_predef_var[4] = {
STR_000E,
STR_001F_PAPER,
STR_0020_GOLD,
- STR_001E_FOOD,
+ STR_001E_FOOD,
},
/* hilly weights */
{
diff --git a/table/landscape_sprite.h b/table/landscape_sprite.h
index c96445aba..4dacee426 100644
--- a/table/landscape_sprite.h
+++ b/table/landscape_sprite.h
@@ -132,7 +132,7 @@ static const SpriteID _landscape_spriteindexes_3[] = {
};
-/* Slope graphics indexes temperate climate
+/* Slope graphics indexes temperate climate
Skip first 3 sprites and only load the proper set */
static const SpriteID _slopes_spriteindexes_0[] = {
0xfffe, 3,
@@ -148,7 +148,7 @@ static const SpriteID _slopes_spriteindexes_1[] = {
0xffff,
};
-/* Slope graphics indexes tropical climate
+/* Slope graphics indexes tropical climate
Skip first 155 sprites and only load the proper set */
static const SpriteID _slopes_spriteindexes_2[] = {
0xfffe, 155,
diff --git a/table/palettes.h b/table/palettes.h
index f6ee1409b..fd4a77f38 100644
--- a/table/palettes.h
+++ b/table/palettes.h
@@ -1,70 +1,70 @@
byte _palettes[4][256 * 3] = {
/* palette 1 */
{
-0, 0, 0, 212, 0, 212, 212, 0, 212, 212, 0, 212,
-212, 0, 212, 212, 0, 212, 212, 0, 212, 212, 0, 212,
-212, 0, 212, 212, 0, 212, 168, 168, 168, 184, 184, 184,
-200, 200, 200, 216, 216, 216, 232, 232, 232, 252, 252, 252,
- 52, 60, 72, 68, 76, 92, 88, 96, 112, 108, 116, 132,
-132, 140, 152, 156, 160, 172, 176, 184, 196, 204, 208, 220,
- 48, 44, 4, 64, 60, 12, 80, 76, 20, 96, 92, 28,
-120, 120, 64, 148, 148, 100, 176, 176, 132, 204, 204, 168,
-100, 100, 100, 116, 116, 116, 104, 80, 44, 124, 104, 72,
-152, 132, 92, 184, 160, 120, 212, 188, 148, 244, 220, 176,
-132, 132, 132, 88, 4, 16, 112, 16, 32, 136, 32, 52,
-160, 56, 76, 188, 84, 108, 204, 104, 124, 220, 132, 144,
-236, 156, 164, 252, 188, 192, 252, 212, 0, 252, 232, 60,
-252, 248, 128, 76, 40, 0, 96, 60, 8, 116, 88, 28,
-136, 116, 56, 156, 136, 80, 176, 156, 108, 196, 180, 136,
- 68, 24, 0, 96, 44, 4, 128, 68, 8, 156, 96, 16,
-184, 120, 24, 212, 156, 32, 232, 184, 16, 252, 212, 0,
-252, 248, 128, 252, 252, 192, 32, 4, 0, 64, 20, 8,
- 84, 28, 16, 108, 44, 28, 128, 56, 40, 148, 72, 56,
-168, 92, 76, 184, 108, 88, 196, 128, 108, 212, 148, 128,
- 8, 52, 0, 16, 64, 0, 32, 80, 4, 48, 96, 4,
- 64, 112, 12, 84, 132, 20, 104, 148, 28, 128, 168, 44,
- 64, 64, 64, 44, 68, 32, 60, 88, 48, 80, 104, 60,
-104, 124, 76, 128, 148, 92, 152, 176, 108, 180, 204, 124,
- 16, 52, 24, 32, 72, 44, 56, 96, 72, 76, 116, 88,
- 96, 136, 108, 120, 164, 136, 152, 192, 168, 184, 220, 200,
- 32, 24, 0, 56, 28, 0, 80, 80, 80, 88, 52, 12,
-104, 64, 24, 124, 84, 44, 140, 108, 64, 160, 128, 88,
- 76, 40, 16, 96, 52, 24, 116, 68, 40, 136, 84, 56,
-164, 96, 64, 184, 112, 80, 204, 128, 96, 212, 148, 112,
-224, 168, 128, 236, 188, 148, 80, 28, 4, 100, 40, 20,
-120, 56, 40, 140, 76, 64, 160, 100, 96, 184, 136, 136,
- 36, 40, 68, 48, 52, 84, 64, 64, 100, 80, 80, 116,
-100, 100, 136, 132, 132, 164, 172, 172, 192, 212, 212, 224,
- 48, 48, 48, 64, 44, 144, 88, 64, 172, 104, 76, 196,
-120, 88, 224, 140, 104, 252, 160, 136, 252, 188, 168, 252,
- 0, 24, 108, 0, 36, 132, 0, 52, 160, 0, 72, 184,
- 0, 96, 212, 24, 120, 220, 56, 144, 232, 88, 168, 240,
-128, 196, 252, 188, 224, 252, 16, 64, 96, 24, 80, 108,
- 40, 96, 120, 52, 112, 132, 80, 140, 160, 116, 172, 192,
-156, 204, 220, 204, 240, 252, 172, 52, 52, 212, 52, 52,
-252, 52, 52, 252, 100, 88, 252, 144, 124, 252, 184, 160,
-252, 216, 200, 252, 244, 236, 72, 20, 112, 92, 44, 140,
-112, 68, 168, 140, 100, 196, 168, 136, 224, 204, 180, 252,
-204, 180, 252, 232, 208, 252, 60, 0, 0, 92, 0, 0,
-128, 0, 0, 160, 0, 0, 196, 0, 0, 224, 0, 0,
-252, 0, 0, 252, 80, 0, 252, 108, 0, 252, 136, 0,
-252, 164, 0, 252, 192, 0, 252, 220, 0, 252, 252, 0,
-204, 136, 8, 228, 144, 4, 252, 156, 0, 252, 176, 48,
-252, 196, 100, 252, 216, 152, 8, 24, 88, 12, 36, 104,
- 20, 52, 124, 28, 68, 140, 40, 92, 164, 56, 120, 188,
- 72, 152, 216, 100, 172, 224, 92, 156, 52, 108, 176, 64,
-124, 200, 76, 144, 224, 92, 224, 244, 252, 204, 240, 252,
-180, 220, 236, 132, 188, 216, 88, 152, 172, 16, 16, 16,
- 32, 32, 32, 8, 92, 104, 16, 100, 112, 24, 108, 120,
- 32, 116, 128, 44, 124, 140, 92, 164, 184, 116, 180, 196,
-148, 200, 216, 180, 220, 232, 216, 244, 252, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-252, 60, 0, 252, 80, 0, 252, 104, 0, 252, 128, 0,
-252, 148, 0, 252, 172, 0, 252, 196, 0, 252, 0, 0,
-252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-252, 228, 0, 148, 148, 148, 212, 0, 212, 212, 0, 212,
-212, 0, 212, 212, 0, 212, 212, 0, 212, 212, 0, 212,
-212, 0, 212, 212, 0, 212, 212, 0, 212, 252, 252, 252,
+0, 0, 0, 212, 0, 212, 212, 0, 212, 212, 0, 212,
+212, 0, 212, 212, 0, 212, 212, 0, 212, 212, 0, 212,
+212, 0, 212, 212, 0, 212, 168, 168, 168, 184, 184, 184,
+200, 200, 200, 216, 216, 216, 232, 232, 232, 252, 252, 252,
+ 52, 60, 72, 68, 76, 92, 88, 96, 112, 108, 116, 132,
+132, 140, 152, 156, 160, 172, 176, 184, 196, 204, 208, 220,
+ 48, 44, 4, 64, 60, 12, 80, 76, 20, 96, 92, 28,
+120, 120, 64, 148, 148, 100, 176, 176, 132, 204, 204, 168,
+100, 100, 100, 116, 116, 116, 104, 80, 44, 124, 104, 72,
+152, 132, 92, 184, 160, 120, 212, 188, 148, 244, 220, 176,
+132, 132, 132, 88, 4, 16, 112, 16, 32, 136, 32, 52,
+160, 56, 76, 188, 84, 108, 204, 104, 124, 220, 132, 144,
+236, 156, 164, 252, 188, 192, 252, 212, 0, 252, 232, 60,
+252, 248, 128, 76, 40, 0, 96, 60, 8, 116, 88, 28,
+136, 116, 56, 156, 136, 80, 176, 156, 108, 196, 180, 136,
+ 68, 24, 0, 96, 44, 4, 128, 68, 8, 156, 96, 16,
+184, 120, 24, 212, 156, 32, 232, 184, 16, 252, 212, 0,
+252, 248, 128, 252, 252, 192, 32, 4, 0, 64, 20, 8,
+ 84, 28, 16, 108, 44, 28, 128, 56, 40, 148, 72, 56,
+168, 92, 76, 184, 108, 88, 196, 128, 108, 212, 148, 128,
+ 8, 52, 0, 16, 64, 0, 32, 80, 4, 48, 96, 4,
+ 64, 112, 12, 84, 132, 20, 104, 148, 28, 128, 168, 44,
+ 64, 64, 64, 44, 68, 32, 60, 88, 48, 80, 104, 60,
+104, 124, 76, 128, 148, 92, 152, 176, 108, 180, 204, 124,
+ 16, 52, 24, 32, 72, 44, 56, 96, 72, 76, 116, 88,
+ 96, 136, 108, 120, 164, 136, 152, 192, 168, 184, 220, 200,
+ 32, 24, 0, 56, 28, 0, 80, 80, 80, 88, 52, 12,
+104, 64, 24, 124, 84, 44, 140, 108, 64, 160, 128, 88,
+ 76, 40, 16, 96, 52, 24, 116, 68, 40, 136, 84, 56,
+164, 96, 64, 184, 112, 80, 204, 128, 96, 212, 148, 112,
+224, 168, 128, 236, 188, 148, 80, 28, 4, 100, 40, 20,
+120, 56, 40, 140, 76, 64, 160, 100, 96, 184, 136, 136,
+ 36, 40, 68, 48, 52, 84, 64, 64, 100, 80, 80, 116,
+100, 100, 136, 132, 132, 164, 172, 172, 192, 212, 212, 224,
+ 48, 48, 48, 64, 44, 144, 88, 64, 172, 104, 76, 196,
+120, 88, 224, 140, 104, 252, 160, 136, 252, 188, 168, 252,
+ 0, 24, 108, 0, 36, 132, 0, 52, 160, 0, 72, 184,
+ 0, 96, 212, 24, 120, 220, 56, 144, 232, 88, 168, 240,
+128, 196, 252, 188, 224, 252, 16, 64, 96, 24, 80, 108,
+ 40, 96, 120, 52, 112, 132, 80, 140, 160, 116, 172, 192,
+156, 204, 220, 204, 240, 252, 172, 52, 52, 212, 52, 52,
+252, 52, 52, 252, 100, 88, 252, 144, 124, 252, 184, 160,
+252, 216, 200, 252, 244, 236, 72, 20, 112, 92, 44, 140,
+112, 68, 168, 140, 100, 196, 168, 136, 224, 204, 180, 252,
+204, 180, 252, 232, 208, 252, 60, 0, 0, 92, 0, 0,
+128, 0, 0, 160, 0, 0, 196, 0, 0, 224, 0, 0,
+252, 0, 0, 252, 80, 0, 252, 108, 0, 252, 136, 0,
+252, 164, 0, 252, 192, 0, 252, 220, 0, 252, 252, 0,
+204, 136, 8, 228, 144, 4, 252, 156, 0, 252, 176, 48,
+252, 196, 100, 252, 216, 152, 8, 24, 88, 12, 36, 104,
+ 20, 52, 124, 28, 68, 140, 40, 92, 164, 56, 120, 188,
+ 72, 152, 216, 100, 172, 224, 92, 156, 52, 108, 176, 64,
+124, 200, 76, 144, 224, 92, 224, 244, 252, 204, 240, 252,
+180, 220, 236, 132, 188, 216, 88, 152, 172, 16, 16, 16,
+ 32, 32, 32, 8, 92, 104, 16, 100, 112, 24, 108, 120,
+ 32, 116, 128, 44, 124, 140, 92, 164, 184, 116, 180, 196,
+148, 200, 216, 180, 220, 232, 216, 244, 252, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+252, 60, 0, 252, 80, 0, 252, 104, 0, 252, 128, 0,
+252, 148, 0, 252, 172, 0, 252, 196, 0, 252, 0, 0,
+252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+252, 228, 0, 148, 148, 148, 212, 0, 212, 212, 0, 212,
+212, 0, 212, 212, 0, 212, 212, 0, 212, 212, 0, 212,
+212, 0, 212, 212, 0, 212, 212, 0, 212, 252, 252, 252,
}};
#define GET_PALETTE(x) _palettes[x]
diff --git a/table/road_land.h b/table/road_land.h
index 4c5ce66b8..5328bc6a1 100644
--- a/table/road_land.h
+++ b/table/road_land.h
@@ -43,7 +43,7 @@ static const SpriteID _road_tile_sprites_1[16] = {
-#define MAKELINE(a,b,c) ADD_WORD(a), b, c,
+#define MAKELINE(a,b,c) ADD_WORD(a), b, c,
static const byte _road_display_datas2_0[] = {
0,0
};
diff --git a/table/station_land.h b/table/station_land.h
index 772d9cf48..6042b6c0a 100644
--- a/table/station_land.h
+++ b/table/station_land.h
@@ -536,7 +536,7 @@ static const byte _station_display_datas_82[] = {
TILE_SEQ_END()
};
-// end of runway
+// end of runway
const byte _station_display_datas_083[] = {
TILE_SEQ_BEGIN(0xA59)
TILE_SEQ_END()
@@ -570,7 +570,7 @@ const byte _station_display_datas_087[] = {
TILE_SEQ_END()
};
-// end of runway
+// end of runway
const byte _station_display_datas_088[] = {
TILE_SEQ_BEGIN(0xA59)
TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, 0x8A68) // fences
@@ -580,7 +580,7 @@ const byte _station_display_datas_088[] = {
// runway tiles
const byte _station_display_datas_089[] = {
TILE_SEQ_BEGIN(0xA56)
- TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, 0x8A68) // fences
+ TILE_SEQ_LINE( 0, 0, 0, 16, 1, 6, 0x8A68) // fences
TILE_SEQ_END()
};
@@ -857,28 +857,28 @@ static const byte * const _station_display_datas[] = {
_station_display_datas_087,
_station_display_datas_088,
_station_display_datas_089,
- _station_display_datas_090,
- _station_display_datas_091,
- _station_display_datas_092,
- _station_display_datas_093,
- _station_display_datas_094,
- _station_display_datas_095,
- _station_display_datas_096,
- _station_display_datas_097,
- _station_display_datas_098,
- _station_display_datas_099,
+ _station_display_datas_090,
+ _station_display_datas_091,
+ _station_display_datas_092,
+ _station_display_datas_093,
+ _station_display_datas_094,
+ _station_display_datas_095,
+ _station_display_datas_096,
+ _station_display_datas_097,
+ _station_display_datas_098,
+ _station_display_datas_099,
_station_display_datas_0100,
- _station_display_datas_0101,
- _station_display_datas_0102,
- _station_display_datas_0103,
- _station_display_datas_0104,
- _station_display_datas_0105,
- _station_display_datas_0106,
- _station_display_datas_0107,
- _station_display_datas_0108,
- _station_display_datas_0109,
- _station_display_datas_0110,
- _station_display_datas_0111,
+ _station_display_datas_0101,
+ _station_display_datas_0102,
+ _station_display_datas_0103,
+ _station_display_datas_0104,
+ _station_display_datas_0105,
+ _station_display_datas_0106,
+ _station_display_datas_0107,
+ _station_display_datas_0108,
+ _station_display_datas_0109,
+ _station_display_datas_0110,
+ _station_display_datas_0111,
_station_display_datas_0112,
_station_display_datas_0113,
_station_display_datas_0114,
diff --git a/table/train_cmd.h b/table/train_cmd.h
index ddcd381bb..10a74e123 100644
--- a/table/train_cmd.h
+++ b/table/train_cmd.h
@@ -1,43 +1,43 @@
static const SpriteID _engine_sprite_base[] = {
-0x0B59, 0x0B61, 0x0B69, 0x0BE1, 0x0B71, 0x0B75, 0x0B7D, 0x0B7D,
-0x0B85, 0x0B85, 0x0B8D, 0x0B8D, 0x0BC9, 0x0BD1, 0x0BD9, 0x0BE9,
-0x0BED, 0x0BED, 0x0BF5, 0x0BF9, 0x0B79, 0x0B9D, 0x0B9D, 0x0B95,
-0x0B95, 0x0BA5, 0x0BA9, 0x0BA9, 0x0BC1, 0x0BC5, 0x0BB1, 0x0BB9,
-0x0BB9, 0x0AAD, 0x0AB1, 0x0AB5, 0x0AB9, 0x0ABD, 0x0AC1, 0x0AC9,
-0x0ACD, 0x0AD5, 0x0AD1, 0x0AD9, 0x0AC5, 0x0AD1, 0x0AD5, 0x0AF9,
-0x0AFD, 0x0B05, 0x0AB9, 0x0AC1, 0x0AC9, 0x0AD1, 0x0AD9, 0x0AE1,
-0x0AE5, 0x0AE9, 0x0AF1, 0x0AF9, 0x0B0D, 0x0B11, 0x0B15, 0x0B19,
-0x0B1D, 0x0B21, 0x0B29, 0x0B2D, 0x0B35, 0x0B31, 0x0B39, 0x0B25,
-0x0B31, 0x0B35,
+0x0B59, 0x0B61, 0x0B69, 0x0BE1, 0x0B71, 0x0B75, 0x0B7D, 0x0B7D,
+0x0B85, 0x0B85, 0x0B8D, 0x0B8D, 0x0BC9, 0x0BD1, 0x0BD9, 0x0BE9,
+0x0BED, 0x0BED, 0x0BF5, 0x0BF9, 0x0B79, 0x0B9D, 0x0B9D, 0x0B95,
+0x0B95, 0x0BA5, 0x0BA9, 0x0BA9, 0x0BC1, 0x0BC5, 0x0BB1, 0x0BB9,
+0x0BB9, 0x0AAD, 0x0AB1, 0x0AB5, 0x0AB9, 0x0ABD, 0x0AC1, 0x0AC9,
+0x0ACD, 0x0AD5, 0x0AD1, 0x0AD9, 0x0AC5, 0x0AD1, 0x0AD5, 0x0AF9,
+0x0AFD, 0x0B05, 0x0AB9, 0x0AC1, 0x0AC9, 0x0AD1, 0x0AD9, 0x0AE1,
+0x0AE5, 0x0AE9, 0x0AF1, 0x0AF9, 0x0B0D, 0x0B11, 0x0B15, 0x0B19,
+0x0B1D, 0x0B21, 0x0B29, 0x0B2D, 0x0B35, 0x0B31, 0x0B39, 0x0B25,
+0x0B31, 0x0B35,
};
/* For how many directions do we have sprites? (8 or 4; if 4, the other 4
* directions are symmetric. */
static const byte _engine_sprite_and[] = {
-7, 7, 7, 7, 3, 3, 7, 7,
-7, 7, 7, 7, 7, 7, 7, 3,
-7, 7, 3, 7, 3, 7, 7, 7,
-7, 3, 7, 7, 3, 3, 7, 7,
-7, 3, 3, 3, 3, 3, 3, 3,
-3, 3, 3, 3, 3, 3, 3, 3,
-3, 3, 3, 3, 3, 3, 3, 3,
-3, 3, 3, 3, 3, 3, 3, 3,
-3, 3, 3, 3, 3, 3, 3, 3,
-3, 3,
+7, 7, 7, 7, 3, 3, 7, 7,
+7, 7, 7, 7, 7, 7, 7, 3,
+7, 7, 3, 7, 3, 7, 7, 7,
+7, 3, 7, 7, 3, 3, 7, 7,
+7, 3, 3, 3, 3, 3, 3, 3,
+3, 3, 3, 3, 3, 3, 3, 3,
+3, 3, 3, 3, 3, 3, 3, 3,
+3, 3, 3, 3, 3, 3, 3, 3,
+3, 3, 3, 3, 3, 3, 3, 3,
+3, 3,
};
/* Non-zero for multihead trains. */
static const byte _engine_sprite_add[] = {
-0, 0, 0, 0, 0, 0, 0, 4,
-0, 4, 0, 4, 0, 0, 0, 0,
-0, 4, 0, 0, 0, 0, 4, 0,
-4, 0, 0, 4, 0, 0, 0, 0,
-4, 0, 0, 0, 0, 0, 0, 0,
-0, 0, 0, 0, 0, 0, 0, 0,
-0, 0, 0, 0, 0, 0, 0, 0,
-0, 0, 0, 0, 0, 0, 0, 0,
-0, 0, 0, 0, 0, 0, 0, 0,
-0, 0,
+0, 0, 0, 0, 0, 0, 0, 4,
+0, 4, 0, 4, 0, 0, 0, 0,
+0, 4, 0, 0, 0, 0, 4, 0,
+4, 0, 0, 4, 0, 0, 0, 0,
+4, 0, 0, 0, 0, 0, 0, 0,
+0, 0, 0, 0, 0, 0, 0, 0,
+0, 0, 0, 0, 0, 0, 0, 0,
+0, 0, 0, 0, 0, 0, 0, 0,
+0, 0, 0, 0, 0, 0, 0, 0,
+0, 0,
};
diff --git a/table/water_land.h b/table/water_land.h
index 6bd86d4b4..df11ecaa7 100644
--- a/table/water_land.h
+++ b/table/water_land.h
@@ -3,8 +3,8 @@ static const byte _shipdepot_display_seq_1[] = {
0,15,0,16,1,0x14,
ADD_WORD(0x8FE8),
-
- 0x80
+
+ 0x80
};
static const byte _shipdepot_display_seq_2[] = {
@@ -121,7 +121,7 @@ static const byte _shiplift_display_seq_3t[] = {
ADD_WORD(0xFDD),
0, 0, 0, 1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 16 + 3),
0xF, 0, 0, 1, 0x10, 0x14, ADD_WORD(SPR_CANALS_BASE + 9 + 20 + 3),
- 0x80, 8
+ 0x80, 8
};
static const byte * const _shiplift_display_seq[] = {
diff --git a/town_gui.c b/town_gui.c
index 975878a60..36d856c84 100644
--- a/town_gui.c
+++ b/town_gui.c
@@ -354,15 +354,15 @@ static byte _last_town_idx;
static int CDECL TownNameSorter(const void *a, const void *b)
{
char buf1[64];
- Town *t;
+ const Town *t;
byte val;
int r;
- t = DEREF_TOWN(*(byte*)a);
+ t = DEREF_TOWN(*(const byte*)a);
SET_DPARAM32(0, t->townnameparts);
GetString(buf1, t->townnametype);
- if ( (val=*(byte*)b) != _last_town_idx) {
+ if ( (val=*(const byte*)b) != _last_town_idx) {
_last_town_idx = val;
t = DEREF_TOWN(val);
SET_DPARAM32(0, t->townnameparts);
@@ -376,8 +376,8 @@ static int CDECL TownNameSorter(const void *a, const void *b)
static int CDECL TownPopSorter(const void *a, const void *b)
{
- Town *ta = DEREF_TOWN(*(byte*)a);
- Town *tb = DEREF_TOWN(*(byte*)b);
+ const Town *ta = DEREF_TOWN(*(const byte*)a);
+ const Town *tb = DEREF_TOWN(*(const byte*)b);
int r = ta->population - tb->population;
if (_town_sort_order & 1) r = -r;
return r;
diff --git a/ttd.c b/ttd.c
index a60fbf76f..c7d792307 100644
--- a/ttd.c
+++ b/ttd.c
@@ -279,10 +279,10 @@ void LoadDriver(int driver, const char *name)
error("No such %s driver: %s\n", dc->name, buffer);
}
var = dc->var;
- if (*var != NULL) ((HalCommonDriver*)*var)->stop();
+ if (*var != NULL) ((const HalCommonDriver*)*var)->stop();
*var = NULL;
drv = dd->drv;
- if ((err=((HalCommonDriver*)drv)->start(parms)) != NULL)
+ if ((err=((const HalCommonDriver*)drv)->start(parms)) != NULL)
error("Unable to load driver %s(%s). The error was: %s\n", dd->name, dd->longname, err);
*var = drv;
}
diff --git a/unix.c b/unix.c
index f6feb99ce..932a4a56c 100644
--- a/unix.c
+++ b/unix.c
@@ -279,7 +279,7 @@ char *FiosBrowseTo(const FiosItem *item)
// Get descriptive texts.
// Returns a path as well as a
// string describing the path.
-StringID FiosGetDescText(char **path)
+StringID FiosGetDescText(const char **path)
{
*path = _fios_path[0] ? _fios_path : "/";
@@ -360,7 +360,7 @@ bool FileExists(const char *filename)
static int LanguageCompareFunc(const void *a, const void *b)
{
- return strcmp(*(char**)a, *(char**)b);
+ return strcmp(*(const char* const *)a, *(const char* const *)b);
}
int GetLanguageList(char **languages, int max)
diff --git a/unmovable_cmd.c b/unmovable_cmd.c
index a181cbf06..ebcecdacf 100644
--- a/unmovable_cmd.c
+++ b/unmovable_cmd.c
@@ -84,11 +84,11 @@ static void DrawTile_Unmovable(TileInfo *ti)
ormod = PLAYER_SPRITE_COLOR(_map_owner[ti->tile]);
t = _unmovable_display_datas[ti->map5 & 0x7F];
- DrawGroundSprite(*(uint16*)t | ormod);
+ DrawGroundSprite(*(const uint16*)t | ormod);
t += sizeof(uint16);
- for(dtss = (DrawTileSeqStruct *)t; (byte)dtss->delta_x != 0x80; dtss++) {
+ for(dtss = (const DrawTileSeqStruct *)t; (byte)dtss->delta_x != 0x80; dtss++) {
image = dtss->image;
if (_display_opt & DO_TRANS_BUILDINGS) {
image |= ormod;
diff --git a/water_cmd.c b/water_cmd.c
index 0b9297869..8aad805ae 100644
--- a/water_cmd.c
+++ b/water_cmd.c
@@ -383,10 +383,10 @@ static void DrawWaterStuff(TileInfo *ti, const byte *t, uint32 palette, uint bas
const WaterDrawTileStruct *wdts;
uint32 image;
- DrawGroundSprite(*(uint16*)t);
+ DrawGroundSprite(*(const uint16*)t);
t += sizeof(uint16);
- for(wdts = (WaterDrawTileStruct *)t; (byte)wdts->delta_x != 0x80; wdts++) {
+ for(wdts = (const WaterDrawTileStruct *)t; (byte)wdts->delta_x != 0x80; wdts++) {
image = wdts->image + base;
if (_display_opt & DO_TRANS_BUILDINGS) {
image |= palette;
@@ -429,10 +429,10 @@ void DrawShipDepotSprite(int x, int y, int image)
const WaterDrawTileStruct *wdts;
t = _shipdepot_display_seq[image];
- DrawSprite(*(uint16*)t, x, y);
+ DrawSprite(*(const uint16*)t, x, y);
t += sizeof(uint16);
- for(wdts = (WaterDrawTileStruct *)t; (byte)wdts->delta_x != 0x80; wdts++) {
+ for(wdts = (const WaterDrawTileStruct *)t; (byte)wdts->delta_x != 0x80; wdts++) {
Point pt = RemapCoords(wdts->delta_x, wdts->delta_y, wdts->delta_z);
DrawSprite(wdts->image + PLAYER_SPRITE_COLOR(_local_player), x + pt.x, y + pt.y);
}
diff --git a/win32.c b/win32.c
index 45f009332..bee14f853 100644
--- a/win32.c
+++ b/win32.c
@@ -1741,7 +1741,7 @@ char *FiosBrowseTo(const FiosItem *item)
// Get descriptive texts.
// Returns a path as well as a
// string describing the path.
-StringID FiosGetDescText(char **path)
+StringID FiosGetDescText(const char **path)
{
char root[4];
DWORD spc, bps, nfc, tnc;
@@ -1812,7 +1812,7 @@ bool FileExists(const char *filename)
static int CDECL LanguageCompareFunc(const void *a, const void *b)
{
- return strcmp(*(char**)a, *(char**)b);
+ return strcmp(*(const char* const *)a, *(const char* const *)b);
}
int GetLanguageList(char **languages, int max)
diff --git a/window.c b/window.c
index 2f70df88c..b0dd73a3e 100644
--- a/window.c
+++ b/window.c
@@ -25,7 +25,7 @@ void DispatchLeftClickEvent(Window *w, int x, int y) {
if (e.click.widget < 0) return; /* exit if clicked outside of widgets */
wi = &w->widget[e.click.widget];
-
+
/* don't allow any interaction if the button has been disabled */
if (HASBIT(w->disabled_state, e.click.widget))
return;