project_files/frontlib/net/netconn_callbacks.c
author nemo
Thu, 04 Apr 2013 08:10:59 -0400
changeset 8848 e9ebd63f8a03
parent 7691 55c0a856ecd0
child 10017 de822cd3df3a
permissions -rw-r--r--
So. Some themes have objects that seem to be large natural extensions of the landscape. Masks allow maintaining that. Lemme know if it doesn't look good. If it doesn't, can still use for ice/bounce/indestructible. Indestructible bunker object for example.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7314
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
     1
/*
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
     2
 * Hedgewars, a free turn based strategy game
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
     3
 * Copyright (C) 2012 Simeon Maxein <smaxein@googlemail.com>
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
     4
 *
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
     5
 * This program is free software; you can redistribute it and/or
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
     6
 * modify it under the terms of the GNU General Public License
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
     7
 * as published by the Free Software Foundation; either version 2
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
     8
 * of the License, or (at your option) any later version.
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
     9
 *
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
    13
 * GNU General Public License for more details.
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
    14
 *
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
    15
 * You should have received a copy of the GNU General Public License
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
    16
 * along with this program; if not, write to the Free Software
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
    17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
    18
 */
6171f0bad318 frontlib: Fixes and improvements. Added a GPLv2+ license header to all frontlib
Medo <smaxein@googlemail.com>
parents: 7275
diff changeset
    19
7273
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    20
#include "netconn_internal.h"
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    21
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    22
#include "../util/logging.h"
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    23
#include "../util/util.h"
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    24
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    25
#include <string.h>
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    26
#include <stdlib.h>
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    27
#include <ctype.h>
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    28
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    29
static void defaultCallback_onMessage(void *context, int msgtype, const char *msg) {
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    30
	flib_log_i("Net: [%i] %s", msgtype, msg);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    31
}
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    32
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    33
static void defaultCallback_onChat(void *context, const char *nick, const char *msg) {
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    34
	flib_log_i("%s: %s", nick, msg);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    35
}
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    36
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    37
// Change the name by suffixing it with a number. If it already ends in a number, increase that number by 1.
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    38
static void defaultCallback_onNickTaken(void *context, const char *requestedNick) {
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    39
	flib_netconn *conn = context;
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    40
	size_t namelen = strlen(requestedNick);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    41
	int digits = 0;
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    42
	while(digits<namelen && isdigit(requestedNick[namelen-1-digits])) {
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    43
		digits++;
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    44
	}
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    45
	long suffix = 0;
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    46
	if(digits>0) {
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    47
		suffix = atol(requestedNick+namelen-digits)+1;
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    48
	}
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    49
	char *newPlayerName = flib_asprintf("%.*s%li", namelen-digits, requestedNick, suffix);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    50
	if(newPlayerName) {
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    51
		flib_netconn_send_nick(conn, newPlayerName);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    52
	} else {
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    53
		flib_netconn_send_quit(conn, "Nick already taken.");
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    54
	}
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    55
	free(newPlayerName);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    56
}
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    57
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    58
// Default behavior: Quit
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    59
static void defaultCallback_onPasswordRequest(void *context, const char *requestedNick) {
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    60
	flib_netconn_send_quit((flib_netconn*)context, "Authentication failed");
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    61
}
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    62
7275
15f722e0b96f frontlib: Getting there :) Added commandline client for testing
Medo <smaxein@googlemail.com>
parents: 7273
diff changeset
    63
void netconn_clearCallbacks(flib_netconn *conn) {
7273
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    64
	flib_netconn_onMessage(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    65
	flib_netconn_onConnected(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    66
	flib_netconn_onDisconnected(conn, NULL, NULL);
7338
1ed603a54ebd frontlib:
Medo <smaxein@googlemail.com>
parents: 7320
diff changeset
    67
	flib_netconn_onRoomlist(conn, NULL, NULL);
7273
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    68
	flib_netconn_onRoomAdd(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    69
	flib_netconn_onRoomDelete(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    70
	flib_netconn_onRoomUpdate(conn, NULL, NULL);
7691
55c0a856ecd0 frontlib+Hedgeroid: Added support for the new client flags (chief, admin, reg)
Medo <smaxein@googlemail.com>
parents: 7580
diff changeset
    71
	flib_netconn_onClientFlags(conn, NULL, NULL);
7273
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    72
	flib_netconn_onChat(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    73
	flib_netconn_onLobbyJoin(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    74
	flib_netconn_onLobbyLeave(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    75
	flib_netconn_onRoomJoin(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    76
	flib_netconn_onRoomLeave(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    77
	flib_netconn_onNickTaken(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    78
	flib_netconn_onPasswordRequest(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    79
	flib_netconn_onEnterRoom(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    80
	flib_netconn_onLeaveRoom(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    81
	flib_netconn_onTeamAdd(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    82
	flib_netconn_onTeamDelete(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    83
	flib_netconn_onRunGame(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    84
	flib_netconn_onTeamAccepted(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    85
	flib_netconn_onHogCountChanged(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    86
	flib_netconn_onTeamColorChanged(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    87
	flib_netconn_onEngineMessage(conn, NULL, NULL);
7580
c92596feac0d frontlib: Improved documentation of netconn, unified naming of a callback
Medo <smaxein@googlemail.com>
parents: 7482
diff changeset
    88
	flib_netconn_onSchemeChanged(conn, NULL, NULL);
7273
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    89
	flib_netconn_onMapChanged(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    90
	flib_netconn_onScriptChanged(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    91
	flib_netconn_onWeaponsetChanged(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    92
	flib_netconn_onServerVar(conn, NULL, NULL);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    93
}
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    94
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    95
/**
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    96
 * This macro generates a callback setter function. It uses the name of the callback to
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    97
 * automatically generate the function name and the fields to set, so a consistent naming
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    98
 * convention needs to be enforced (not that that is a bad thing). If null is passed as
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
    99
 * callback to the generated function, the defaultCb will be set instead (with conn
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   100
 * as the context).
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   101
 */
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   102
#define GENERATE_CB_SETTER(cbName, cbParameterTypes, defaultCb) \
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   103
	void flib_netconn_##cbName(flib_netconn *conn, void (*callback)cbParameterTypes, void *context) { \
7316
f7b49b2c5d84 frontlib: Improved and unified parameter checking, moved the cmdlineClient out
Medo <smaxein@googlemail.com>
parents: 7314
diff changeset
   104
		if(!log_badargs_if(conn==NULL)) { \
7273
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   105
			conn->cbName##Cb = callback ? callback : &defaultCb; \
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   106
			conn->cbName##Ctx = callback ? context : conn; \
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   107
		} \
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   108
	}
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   109
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   110
/**
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   111
 * Generate a callback setter function like GENERATE_CB_SETTER, and automatically generate a
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   112
 * no-op callback function as well that is used as default.
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   113
 */
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   114
#define GENERATE_CB_SETTER_AND_DEFAULT(cbName, cbParameterTypes) \
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   115
	static void _noop_callback_##cbName cbParameterTypes {} \
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   116
	GENERATE_CB_SETTER(cbName, cbParameterTypes, _noop_callback_##cbName)
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   117
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   118
GENERATE_CB_SETTER(onMessage, (void *context, int msgtype, const char *msg), defaultCallback_onMessage);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   119
GENERATE_CB_SETTER_AND_DEFAULT(onConnected, (void *context));
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   120
GENERATE_CB_SETTER_AND_DEFAULT(onDisconnected, (void *context, int reason, const char *message));
7338
1ed603a54ebd frontlib:
Medo <smaxein@googlemail.com>
parents: 7320
diff changeset
   121
GENERATE_CB_SETTER_AND_DEFAULT(onRoomlist, (void *context, const flib_room **rooms, int roomCount));
7275
15f722e0b96f frontlib: Getting there :) Added commandline client for testing
Medo <smaxein@googlemail.com>
parents: 7273
diff changeset
   122
GENERATE_CB_SETTER_AND_DEFAULT(onRoomAdd, (void *context, const flib_room *room));
7273
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   123
GENERATE_CB_SETTER_AND_DEFAULT(onRoomDelete, (void *context, const char *name));
7275
15f722e0b96f frontlib: Getting there :) Added commandline client for testing
Medo <smaxein@googlemail.com>
parents: 7273
diff changeset
   124
GENERATE_CB_SETTER_AND_DEFAULT(onRoomUpdate, (void *context, const char *oldName, const flib_room *room));
7691
55c0a856ecd0 frontlib+Hedgeroid: Added support for the new client flags (chief, admin, reg)
Medo <smaxein@googlemail.com>
parents: 7580
diff changeset
   125
GENERATE_CB_SETTER_AND_DEFAULT(onClientFlags, (void *context, const char *nick, const char *flags, bool newFlagState));
7273
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   126
GENERATE_CB_SETTER(onChat, (void *context, const char *nick, const char *msg), defaultCallback_onChat);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   127
GENERATE_CB_SETTER_AND_DEFAULT(onLobbyJoin, (void *context, const char *nick));
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   128
GENERATE_CB_SETTER_AND_DEFAULT(onLobbyLeave, (void *context, const char *nick, const char *partMsg));
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   129
GENERATE_CB_SETTER_AND_DEFAULT(onRoomJoin, (void *context, const char *nick));
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   130
GENERATE_CB_SETTER_AND_DEFAULT(onRoomLeave, (void *context, const char *nick, const char *partMessage));
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   131
GENERATE_CB_SETTER(onNickTaken, (void *context, const char *nick), defaultCallback_onNickTaken);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   132
GENERATE_CB_SETTER(onPasswordRequest, (void *context, const char *nick), defaultCallback_onPasswordRequest);
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   133
GENERATE_CB_SETTER_AND_DEFAULT(onEnterRoom, (void *context, bool chief));
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   134
GENERATE_CB_SETTER_AND_DEFAULT(onLeaveRoom, (void *context, int reason, const char *message));
7320
e704706008d4 frontlib: Renamed cfg to scheme, Un-refcounted some types, small API adjustments
Medo <smaxein@googlemail.com>
parents: 7316
diff changeset
   135
GENERATE_CB_SETTER_AND_DEFAULT(onTeamAdd, (void *context, const flib_team *team));
7273
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   136
GENERATE_CB_SETTER_AND_DEFAULT(onTeamDelete, (void *context, const char *teamname));
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   137
GENERATE_CB_SETTER_AND_DEFAULT(onRunGame, (void *context));
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   138
GENERATE_CB_SETTER_AND_DEFAULT(onTeamAccepted, (void *context, const char *teamName));
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   139
GENERATE_CB_SETTER_AND_DEFAULT(onHogCountChanged, (void *context, const char *teamName, int hogs));
7275
15f722e0b96f frontlib: Getting there :) Added commandline client for testing
Medo <smaxein@googlemail.com>
parents: 7273
diff changeset
   140
GENERATE_CB_SETTER_AND_DEFAULT(onTeamColorChanged, (void *context, const char *teamName, int colorIndex));
15f722e0b96f frontlib: Getting there :) Added commandline client for testing
Medo <smaxein@googlemail.com>
parents: 7273
diff changeset
   141
GENERATE_CB_SETTER_AND_DEFAULT(onEngineMessage, (void *context, const uint8_t *message, size_t size));
7580
c92596feac0d frontlib: Improved documentation of netconn, unified naming of a callback
Medo <smaxein@googlemail.com>
parents: 7482
diff changeset
   142
GENERATE_CB_SETTER_AND_DEFAULT(onSchemeChanged, (void *context, const flib_scheme *scheme));
7273
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   143
GENERATE_CB_SETTER_AND_DEFAULT(onMapChanged, (void *context, const flib_map *map, int changetype));
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   144
GENERATE_CB_SETTER_AND_DEFAULT(onScriptChanged, (void *context, const char *script));
7320
e704706008d4 frontlib: Renamed cfg to scheme, Un-refcounted some types, small API adjustments
Medo <smaxein@googlemail.com>
parents: 7316
diff changeset
   145
GENERATE_CB_SETTER_AND_DEFAULT(onWeaponsetChanged, (void *context, const flib_weaponset *weaponset));
7273
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   146
GENERATE_CB_SETTER_AND_DEFAULT(onServerVar, (void *context, const char *name, const char *value));
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   147
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   148
#undef GENERATE_CB_SETTER_AND_DEFAULT
8eed495fd8da frontlib: Using macros for simplification of callbacks
Medo <smaxein@googlemail.com>
parents:
diff changeset
   149
#undef GENERATE_CB_SETTER