project_files/frontlib/net/netprotocol.h
author Wuzzy <almikes@aol.com>
Sat, 30 Sep 2017 23:52:08 +0200
changeset 12627 07fdda8c13a2
parent 10017 de822cd3df3a
permissions -rw-r--r--
TrophyRace: Fix game never eliminating any hogs after a hog skipped or ran out of time Warning: This commit _might_ invalidate past records, but I'm not sure if this is actually the case. Note that only the eliminiation part of the script is touched, not the actual race logic. Even if records are actually broken by this, I and sheepluva have decided that it's more imporant to fix this very, VERY stupid and old bug than to preserve records.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10017
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
     1
/*
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
     2
 * Hedgewars, a free turn based strategy game
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
     3
 * Copyright (C) 2012 Simeon Maxein <smaxein@googlemail.com>
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
     4
 *
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
     5
 * This program is free software; you can redistribute it and/or
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
     6
 * modify it under the terms of the GNU General Public License
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
     7
 * as published by the Free Software Foundation; either version 2
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
     8
 * of the License, or (at your option) any later version.
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
     9
 *
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    13
 * GNU General Public License for more details.
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    14
 *
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    15
 * You should have received a copy of the GNU General Public License
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    16
 * along with this program; if not, write to the Free Software
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    18
 */
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    19
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    20
#ifndef NETPROTOCOL_H_
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    21
#define NETPROTOCOL_H_
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    22
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    23
#include "../model/team.h"
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    24
#include "../model/scheme.h"
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    25
#include "../model/map.h"
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    26
#include "../model/room.h"
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    27
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    28
#include <stddef.h>
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    29
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    30
/**
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    31
 * Create a new team from this 23-part net message
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    32
 */
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    33
flib_team *flib_team_from_netmsg(char **parts);
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    34
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    35
/**
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    36
 * Create a new scheme from this net message, which must have
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    37
 * meta->modCount+meta->settingCount+1 parts.
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    38
 */
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    39
flib_scheme *flib_scheme_from_netmsg(char **parts);
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    40
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    41
/**
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    42
 * Create a new map from this five-part netmsg
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    43
 */
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    44
flib_map *flib_map_from_netmsg(char **parts);
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    45
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    46
/**
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    47
 * Decode the drawn map data from this netmessage line.
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    48
 *
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    49
 * The data is first base64 decoded and then quncompress()ed.
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    50
 * The return value is a newly allocated byte buffer, the length
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    51
 * is written to the variable pointed to by outlen.
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    52
 * Returns NULL on error.
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    53
 */
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    54
int flib_drawnmapdata_from_netmsg(char *netmsg, uint8_t **outbuf, size_t *outlen);
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    55
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    56
/**
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    57
 * Create a new room from this 8-part net message
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    58
 */
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    59
flib_room *flib_room_from_netmsg(char **params);
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    60
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    61
/**
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    62
 * Create an array of count rooms from count*8 netmessage parts
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    63
 */
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    64
flib_room **flib_room_array_from_netmsg(char **params, int count);
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    65
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    66
#endif /* NETPROTOCOL_H_ */