project_files/frontlib/hwconsts.c
author S.D.
Tue, 27 Sep 2022 14:59:03 +0300
changeset 15878 fc3cb23fd26f
parent 10017 de822cd3df3a
permissions -rw-r--r--
Allow to see rooms of incompatible versions in the lobby For the new clients the room version is shown in a separate column. There is also a hack for previous versions clients: the room vesion specifier is prepended to the room names for rooms of incompatible versions, and the server shows 'incompatible version' error if the client tries to join them.
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
#include "hwconsts.h"
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    21
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    22
const uint32_t flib_teamcolors[] = HW_TEAMCOLOR_ARRAY;
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    23
const size_t flib_teamcolor_count = sizeof(flib_teamcolors)/sizeof(uint32_t)-1;
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    24
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    25
static const flib_metascheme_setting metaSchemeSettings[] = {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    26
    { .name = "damagefactor",      .times1000 = false, .engineCommand = "e$damagepct",   .maxMeansInfinity = false, .min = 10, .max = 300,  .def = 100 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    27
    { .name = "turntime",          .times1000 = true,  .engineCommand = "e$turntime",    .maxMeansInfinity = true,  .min = 1,  .max = 9999, .def = 45  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    28
    { .name = "health",            .times1000 = false, .engineCommand = NULL,            .maxMeansInfinity = false, .min = 50, .max = 200,  .def = 100 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    29
    { .name = "suddendeath",       .times1000 = false, .engineCommand = "e$sd_turns",    .maxMeansInfinity = true,  .min = 0,  .max = 50,   .def = 15  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    30
    { .name = "caseprobability",   .times1000 = false, .engineCommand = "e$casefreq",    .maxMeansInfinity = false, .min = 0,  .max = 9,    .def = 5   },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    31
    { .name = "minestime",         .times1000 = true,  .engineCommand = "e$minestime",   .maxMeansInfinity = false, .min = -1, .max = 5,    .def = 3   },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    32
    { .name = "minesnum",          .times1000 = false, .engineCommand = "e$minesnum",    .maxMeansInfinity = false, .min = 0,  .max = 80,   .def = 4   },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    33
    { .name = "minedudpct",        .times1000 = false, .engineCommand = "e$minedudpct",  .maxMeansInfinity = false, .min = 0,  .max = 100,  .def = 0   },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    34
    { .name = "explosives",        .times1000 = false, .engineCommand = "e$explosives",  .maxMeansInfinity = false, .min = 0,  .max = 40,   .def = 2   },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    35
    { .name = "healthprobability", .times1000 = false, .engineCommand = "e$healthprob",  .maxMeansInfinity = false, .min = 0,  .max = 100,  .def = 35  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    36
    { .name = "healthcaseamount",  .times1000 = false, .engineCommand = "e$hcaseamount", .maxMeansInfinity = false, .min = 0,  .max = 200,  .def = 25  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    37
    { .name = "waterrise",         .times1000 = false, .engineCommand = "e$waterrise",   .maxMeansInfinity = false, .min = 0,  .max = 100,  .def = 47  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    38
    { .name = "healthdecrease",    .times1000 = false, .engineCommand = "e$healthdec",   .maxMeansInfinity = false, .min = 0,  .max = 100,  .def = 5   },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    39
    { .name = "ropepct",           .times1000 = false, .engineCommand = "e$ropepct",     .maxMeansInfinity = false, .min = 25, .max = 999,  .def = 100 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    40
    { .name = "getawaytime",       .times1000 = false, .engineCommand = "e$getawaytime", .maxMeansInfinity = false, .min = 0,  .max = 999,  .def = 100 }
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    41
};
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    42
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    43
static const flib_metascheme_mod metaSchemeMods[] = {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    44
    { .name = "fortsmode",          .bitmaskIndex = 12 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    45
    { .name = "divteams",           .bitmaskIndex = 4  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    46
    { .name = "solidland",          .bitmaskIndex = 2  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    47
    { .name = "border",             .bitmaskIndex = 3  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    48
    { .name = "lowgrav",            .bitmaskIndex = 5  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    49
    { .name = "laser",              .bitmaskIndex = 6  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    50
    { .name = "invulnerability",    .bitmaskIndex = 7  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    51
    { .name = "resethealth",        .bitmaskIndex = 8  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    52
    { .name = "vampiric",           .bitmaskIndex = 9  },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    53
    { .name = "karma",              .bitmaskIndex = 10 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    54
    { .name = "artillery",          .bitmaskIndex = 11 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    55
    { .name = "randomorder",        .bitmaskIndex = 13 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    56
    { .name = "king",               .bitmaskIndex = 14 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    57
    { .name = "placehog",           .bitmaskIndex = 15 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    58
    { .name = "sharedammo",         .bitmaskIndex = 16 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    59
    { .name = "disablegirders",     .bitmaskIndex = 17 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    60
    { .name = "disablelandobjects", .bitmaskIndex = 18 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    61
    { .name = "aisurvival",         .bitmaskIndex = 19 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    62
    { .name = "infattack",          .bitmaskIndex = 20 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    63
    { .name = "resetweps",          .bitmaskIndex = 21 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    64
    { .name = "perhogammo",         .bitmaskIndex = 22 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    65
    { .name = "disablewind",        .bitmaskIndex = 23 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    66
    { .name = "morewind",           .bitmaskIndex = 24 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    67
    { .name = "tagteam",            .bitmaskIndex = 25 },
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    68
    { .name = "bottomborder",       .bitmaskIndex = 26 }
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    69
};
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    70
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    71
const flib_metascheme flib_meta = {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    72
    .settingCount = sizeof(metaSchemeSettings)/sizeof(flib_metascheme_setting),
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    73
    .modCount = sizeof(metaSchemeMods)/sizeof(flib_metascheme_mod),
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    74
    .settings = metaSchemeSettings,
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    75
    .mods = metaSchemeMods
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    76
};
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    77
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    78
uint32_t flib_get_teamcolor(int colorIndex) {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    79
    if(colorIndex>=0 && colorIndex < flib_teamcolor_count) {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    80
        return flib_teamcolors[colorIndex];
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    81
    } else {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    82
        return 0;
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    83
    }
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    84
}
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    85
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    86
int flib_get_teamcolor_count() {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    87
    return flib_teamcolor_count;
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    88
}
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    89
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    90
int flib_get_hedgehogs_per_team() {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    91
    return HEDGEHOGS_PER_TEAM;
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    92
}
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    93
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    94
int flib_get_weapons_count() {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    95
    return WEAPONS_COUNT;
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    96
}
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    97
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    98
const flib_metascheme *flib_get_metascheme() {
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
    99
    return &flib_meta;
de822cd3df3a fixwhitespace and dos2unix
koda
parents: 7497
diff changeset
   100
}