src/main_gui.cpp
changeset 7343 7a44e07734c7
parent 7341 1da2f9a6bd65
child 7353 716c6dd9322a
--- a/src/main_gui.cpp	Sun Jun 10 21:28:20 2007 +0000
+++ b/src/main_gui.cpp	Sun Jun 10 21:34:45 2007 +0000
@@ -58,6 +58,21 @@
 extern bool GenerateTowns();
 
 
+void CcGiveMoney(bool success, TileIndex tile, uint32 p1, uint32 p2)
+{
+	if (!success) return;
+
+	char msg[20];
+	/* Inform the player of this action */
+	snprintf(msg, sizeof(msg), "%d", p1);
+
+	if (!_network_server) {
+		SEND_COMMAND(PACKET_CLIENT_CHAT)(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_TEAM, p2, msg);
+	} else {
+		NetworkServer_HandleChat(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_TEAM, p2, msg, NETWORK_SERVER_INDEX);
+	}
+}
+
 void HandleOnEditText(const char *str)
 {
 	int id = _rename_id;
@@ -75,22 +90,11 @@
 	case 3: { // Give money, you can only give money in excess of loan
 		const Player *p = GetPlayer(_current_player);
 		int32 money = min(p->money64 - p->current_loan, atoi(str) / _currency->rate);
-		char msg[20];
 
 		money = clamp(money, 0, 20000000); // Clamp between 20 million and 0
 
 		/* Give 'id' the money, and substract it from ourself */
-		int32 ret = DoCommandP(0, money, id, NULL, CMD_GIVE_MONEY | CMD_MSG(STR_INSUFFICIENT_FUNDS));
-		if (CmdFailed(ret) || ret == 0) break; // We either did something wrong, or we don't have any money anymore
-
-		/* Inform the player of this action */
-		snprintf(msg, sizeof(msg), "%d", money);
-
-		if (!_network_server) {
-			SEND_COMMAND(PACKET_CLIENT_CHAT)(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_TEAM, id, msg);
-		} else {
-			NetworkServer_HandleChat(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_TEAM, id, msg, NETWORK_SERVER_INDEX);
-		}
+		DoCommandP(0, money, id, CcGiveMoney, CMD_GIVE_MONEY | CMD_MSG(STR_INSUFFICIENT_FUNDS));
 	} break;
 #endif /* ENABLE_NETWORK */
 		default: NOT_REACHED();