diff --git a/Jamfile.next b/Jamfile.next index 9199c4b947..331b8c3d0e 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 3055b58fcd..188c5ed9f8 100644 --- a/Makefile +++ b/Makefile @@ -59,12 +59,12 @@ # a 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 307213c846..0b5ea344bd 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 71f8981c69..128bd8c3ef 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 fc499939f3..c2293d47ea 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 05012fbc31..8c9b7a0252 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; + 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]; + // 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 e0a68f9e49..b72b3cc3c1 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 9fc239d898..948bc7b039 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 e69de29bb2..0000000000 diff --git a/graph_gui.c b/graph_gui.c index 0562e333af..35ac932d38 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 764e664e33..8eff9e662d 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 3e05c79d0b..db34d8b445 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 9669431ce3..5e0ff540c4 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 17acb1256a..5f62fa9569 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 a1a8d9f5c5..77cca994d7 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 6c4089d9da..e2596d1927 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 fbc6aa6c9b..cfacbe2624 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 ad0ce8e416..235a37fe43 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 0c63b85610..21e4e12598 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 3547c1cfde..6c98a2c644 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 87d4878a47..e3efc54fd4 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 ad8bc63637..a061bc1c57 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 6a0823d46c..596fb333a4 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 05959fb3c3..9f56d78360 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 5337a53492..b1c553a303 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 a6107329c0..8726de932e 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 = " "; + const char *s = " "; 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 a438670ef5..6b48b465db 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 c96445abad..4dacee426b 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 f6ee1409bb..fd4a77f38c 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 4c5ce66b80..5328bc6a1d 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 772d9cf488..6042b6c0a7 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 ddcd381bbe..10a74e1233 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 6bd86d4b4d..df11ecaa73 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 975878a600..36d856c84c 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 a60fbf76f8..c7d7923072 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 f6feb99ce3..932a4a56c9 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 a181cbf06b..ebcecdacfd 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 0b92978698..8aad805aee 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 45f0093321..bee14f853b 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 2f70df88c0..b0dd73a3e4 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;