summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/callback_table.cpp46
-rw-r--r--src/callback_table.h20
-rw-r--r--src/network/network_client.cpp2
-rw-r--r--src/network/network_command.cpp34
-rw-r--r--src/network/network_server.cpp2
5 files changed, 32 insertions, 72 deletions
diff --git a/src/callback_table.cpp b/src/callback_table.cpp
deleted file mode 100644
index 001c6cb34..000000000
--- a/src/callback_table.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/* $Id$ */
-
-/*
- * This file is part of OpenTTD.
- * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
- * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/** @file callback_table.cpp All command callbacks. */
-
-#include "stdafx.h"
-#include "callback_table.h"
-#include "command_func.h"
-
-/* If you add a callback for DoCommandP, also add the callback in here
- * see below for the full list!
- * If you don't do it, it won't work across the network!! */
-
-CommandCallback * const _callback_table[] = {
- /* 0x00 */ NULL,
- /* 0x01 */ CcBuildPrimaryVehicle,
- /* 0x02 */ CcBuildAirport,
- /* 0x03 */ CcBuildBridge,
- /* 0x04 */ CcBuildCanal,
- /* 0x05 */ CcBuildDocks,
- /* 0x06 */ CcFoundTown,
- /* 0x07 */ CcBuildRoadTunnel,
- /* 0x08 */ CcBuildRailTunnel,
- /* 0x09 */ CcBuildWagon,
- /* 0x0A */ CcRoadDepot,
- /* 0x0B */ CcRailDepot,
- /* 0x0C */ CcPlaceSign,
- /* 0x0D */ CcPlaySound10,
- /* 0x0E */ CcPlaySound1D,
- /* 0x0F */ CcPlaySound1E,
- /* 0x10 */ CcStation,
- /* 0x11 */ CcTerraform,
- /* 0x12 */ CcAI,
- /* 0x13 */ CcCloneVehicle,
- /* 0x14 */ CcGiveMoney,
- /* 0x15 */ CcCreateGroup,
- /* 0x16 */ CcFoundRandomTown,
-};
-
-const int _callback_table_count = lengthof(_callback_table);
diff --git a/src/callback_table.h b/src/callback_table.h
deleted file mode 100644
index f08ba7a05..000000000
--- a/src/callback_table.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$ */
-
-/*
- * This file is part of OpenTTD.
- * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
- * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/** @file callback_table.h Table with all command callbacks. */
-
-#ifndef CALLBACK_TABLE_H
-#define CALLBACK_TABLE_H
-
-#include "command_type.h"
-
-extern CommandCallback * const _callback_table[];
-extern const int _callback_table_count;
-
-#endif /* CALLBACK_TABLE_H */
diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp
index 5db576ad6..c7029e8f4 100644
--- a/src/network/network_client.cpp
+++ b/src/network/network_client.cpp
@@ -233,7 +233,7 @@ DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_COMMAND)(const CommandPacket *cp)
* uint32: P2
* uint32: Tile
* string: text
- * uint8: CallBackID (see callback_table.c)
+ * uint8: CallBackID
*/
Packet *p = new Packet(PACKET_CLIENT_COMMAND);
diff --git a/src/network/network_command.cpp b/src/network/network_command.cpp
index d0aeb081e..9a6a064b5 100644
--- a/src/network/network_command.cpp
+++ b/src/network/network_command.cpp
@@ -16,9 +16,35 @@
#include "network_internal.h"
#include "network_client.h"
#include "../command_func.h"
-#include "../callback_table.h"
#include "../company_func.h"
+/** Table with all the callbacks we'll use for conversion*/
+static const CommandCallback * const _callback_table[] = {
+ /* 0x00 */ NULL,
+ /* 0x01 */ CcBuildPrimaryVehicle,
+ /* 0x02 */ CcBuildAirport,
+ /* 0x03 */ CcBuildBridge,
+ /* 0x04 */ CcBuildCanal,
+ /* 0x05 */ CcBuildDocks,
+ /* 0x06 */ CcFoundTown,
+ /* 0x07 */ CcBuildRoadTunnel,
+ /* 0x08 */ CcBuildRailTunnel,
+ /* 0x09 */ CcBuildWagon,
+ /* 0x0A */ CcRoadDepot,
+ /* 0x0B */ CcRailDepot,
+ /* 0x0C */ CcPlaceSign,
+ /* 0x0D */ CcPlaySound10,
+ /* 0x0E */ CcPlaySound1D,
+ /* 0x0F */ CcPlaySound1E,
+ /* 0x10 */ CcStation,
+ /* 0x11 */ CcTerraform,
+ /* 0x12 */ CcAI,
+ /* 0x13 */ CcCloneVehicle,
+ /* 0x14 */ CcGiveMoney,
+ /* 0x15 */ CcCreateGroup,
+ /* 0x16 */ CcFoundRandomTown,
+};
+
/** Local queue of packets */
static CommandPacket *_local_command_queue = NULL;
@@ -158,7 +184,7 @@ const char *NetworkClientSocket::Recv_Command(Packet *p, CommandPacket *cp)
if (!IsValidCommand(cp->cmd)) return "invalid command";
if (GetCommandFlags(cp->cmd) & CMD_OFFLINE) return "offline only command";
if ((cp->cmd & CMD_FLAGS_MASK) != 0) return "invalid command flag";
- if (callback > _callback_table_count) return "invalid callback";
+ if (callback > lengthof(_callback_table)) return "invalid callback";
cp->callback = _callback_table[callback];
return NULL;
@@ -179,11 +205,11 @@ void NetworkClientSocket::Send_Command(Packet *p, const CommandPacket *cp)
p->Send_string(cp->text);
byte callback = 0;
- while (callback < _callback_table_count && _callback_table[callback] != cp->callback) {
+ while (callback < lengthof(_callback_table) && _callback_table[callback] != cp->callback) {
callback++;
}
- if (callback == _callback_table_count) {
+ if (callback == lengthof(_callback_table)) {
DEBUG(net, 0, "Unknown callback. (Pointer: %p) No callback sent", cp->callback);
callback = 0; // _callback_table[0] == NULL
}
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp
index 82e8de6a4..c35e437e5 100644
--- a/src/network/network_server.cpp
+++ b/src/network/network_server.cpp
@@ -480,7 +480,7 @@ DEF_SERVER_SEND_COMMAND_PARAM(PACKET_SERVER_COMMAND)(NetworkClientSocket *cs, co
* uint32: P2
* uint32: Tile
* string: text
- * uint8: CallBackID (see callback_table.c)
+ * uint8: CallBackID
* uint32: Frame of execution
*/