project_files/frontlib/net/netprotocol.h
author Wuzzy <almikes@aol.com>
Mon, 25 Sep 2017 20:09:33 +0200
changeset 12520 22f2a586b9ca
parent 10017 de822cd3df3a
permissions -rw-r--r--
Remove checkpoints in ASA: Getting to the device This means the player now must win this mission in one go. Justification: There were many ways for the mission to be saved in an unwinnable state, there are many ways to win this mission and the checkpoints try to "force" one particular way. Also, this mission isn't too long anyway.
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_ */