mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r18782) -Codechange: move the content of callback_table.cpp to network_command.cpp; it's only ever used there.
This commit is contained in:
parent
2b97f38cd1
commit
6a047d2316
|
@ -475,10 +475,6 @@
|
||||||
RelativePath=".\..\src\bmp.cpp"
|
RelativePath=".\..\src\bmp.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\..\src\callback_table.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\cargopacket.cpp"
|
RelativePath=".\..\src\cargopacket.cpp"
|
||||||
>
|
>
|
||||||
|
@ -811,10 +807,6 @@
|
||||||
RelativePath=".\..\src\bridge.h"
|
RelativePath=".\..\src\bridge.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\..\src\callback_table.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\cargo_type.h"
|
RelativePath=".\..\src\cargo_type.h"
|
||||||
>
|
>
|
||||||
|
|
|
@ -472,10 +472,6 @@
|
||||||
RelativePath=".\..\src\bmp.cpp"
|
RelativePath=".\..\src\bmp.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\..\src\callback_table.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\cargopacket.cpp"
|
RelativePath=".\..\src\cargopacket.cpp"
|
||||||
>
|
>
|
||||||
|
@ -808,10 +804,6 @@
|
||||||
RelativePath=".\..\src\bridge.h"
|
RelativePath=".\..\src\bridge.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\..\src\callback_table.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\cargo_type.h"
|
RelativePath=".\..\src\cargo_type.h"
|
||||||
>
|
>
|
||||||
|
|
|
@ -4,7 +4,6 @@ animated_tile.cpp
|
||||||
articulated_vehicles.cpp
|
articulated_vehicles.cpp
|
||||||
autoreplace.cpp
|
autoreplace.cpp
|
||||||
bmp.cpp
|
bmp.cpp
|
||||||
callback_table.cpp
|
|
||||||
cargopacket.cpp
|
cargopacket.cpp
|
||||||
cargotype.cpp
|
cargotype.cpp
|
||||||
cheat.cpp
|
cheat.cpp
|
||||||
|
@ -112,7 +111,6 @@ base_media_func.h
|
||||||
base_station_base.h
|
base_station_base.h
|
||||||
bmp.h
|
bmp.h
|
||||||
bridge.h
|
bridge.h
|
||||||
callback_table.h
|
|
||||||
cargo_type.h
|
cargo_type.h
|
||||||
cargopacket.h
|
cargopacket.h
|
||||||
cargotype.h
|
cargotype.h
|
||||||
|
|
|
@ -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);
|
|
|
@ -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 */
|
|
|
@ -233,7 +233,7 @@ DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_COMMAND)(const CommandPacket *cp)
|
||||||
* uint32: P2
|
* uint32: P2
|
||||||
* uint32: Tile
|
* uint32: Tile
|
||||||
* string: text
|
* string: text
|
||||||
* uint8: CallBackID (see callback_table.c)
|
* uint8: CallBackID
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Packet *p = new Packet(PACKET_CLIENT_COMMAND);
|
Packet *p = new Packet(PACKET_CLIENT_COMMAND);
|
||||||
|
|
|
@ -16,9 +16,35 @@
|
||||||
#include "network_internal.h"
|
#include "network_internal.h"
|
||||||
#include "network_client.h"
|
#include "network_client.h"
|
||||||
#include "../command_func.h"
|
#include "../command_func.h"
|
||||||
#include "../callback_table.h"
|
|
||||||
#include "../company_func.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 */
|
/** Local queue of packets */
|
||||||
static CommandPacket *_local_command_queue = NULL;
|
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 (!IsValidCommand(cp->cmd)) return "invalid command";
|
||||||
if (GetCommandFlags(cp->cmd) & CMD_OFFLINE) return "offline only command";
|
if (GetCommandFlags(cp->cmd) & CMD_OFFLINE) return "offline only command";
|
||||||
if ((cp->cmd & CMD_FLAGS_MASK) != 0) return "invalid command flag";
|
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];
|
cp->callback = _callback_table[callback];
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -179,11 +205,11 @@ void NetworkClientSocket::Send_Command(Packet *p, const CommandPacket *cp)
|
||||||
p->Send_string(cp->text);
|
p->Send_string(cp->text);
|
||||||
|
|
||||||
byte callback = 0;
|
byte callback = 0;
|
||||||
while (callback < _callback_table_count && _callback_table[callback] != cp->callback) {
|
while (callback < lengthof(_callback_table) && _callback_table[callback] != cp->callback) {
|
||||||
callback++;
|
callback++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (callback == _callback_table_count) {
|
if (callback == lengthof(_callback_table)) {
|
||||||
DEBUG(net, 0, "Unknown callback. (Pointer: %p) No callback sent", cp->callback);
|
DEBUG(net, 0, "Unknown callback. (Pointer: %p) No callback sent", cp->callback);
|
||||||
callback = 0; // _callback_table[0] == NULL
|
callback = 0; // _callback_table[0] == NULL
|
||||||
}
|
}
|
||||||
|
|
|
@ -480,7 +480,7 @@ DEF_SERVER_SEND_COMMAND_PARAM(PACKET_SERVER_COMMAND)(NetworkClientSocket *cs, co
|
||||||
* uint32: P2
|
* uint32: P2
|
||||||
* uint32: Tile
|
* uint32: Tile
|
||||||
* string: text
|
* string: text
|
||||||
* uint8: CallBackID (see callback_table.c)
|
* uint8: CallBackID
|
||||||
* uint32: Frame of execution
|
* uint32: Frame of execution
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue