Project

General

Profile

Bug #787 ยป 0011-Correct-symetry-to-symmetry.patch

Marko Lindqvist, 08/12/2024 06:37 AM

View differences:

server/generator/mapgen.c
}
/**********************************************************************//**
Symetry matrix.
Symmetry matrix.
**************************************************************************/
static void fair_do_symetry1(int *x, int *y)
static void fair_do_symmetry1(int *x, int *y)
{
*x = -*x;
}
/**********************************************************************//**
Symetry matrix.
Symmetry matrix.
**************************************************************************/
static void fair_do_symetry2(int *x, int *y)
static void fair_do_symmetry2(int *x, int *y)
{
*y = -*y;
}
/**********************************************************************//**
Symetry matrix for hexagonal topologies.
Symmetry matrix for hexagonal topologies.
**************************************************************************/
static void fair_do_hex_symetry1(int *x, int *y)
static void fair_do_hex_symmetry1(int *x, int *y)
{
*x = -(*x + *y);
}
/**********************************************************************//**
Symetry matrix for hexagonal topologies.
Symmetry matrix for hexagonal topologies.
**************************************************************************/
static void fair_do_hex_symetry2(int *x, int *y)
static void fair_do_hex_symmetry2(int *x, int *y)
{
*x = -*x;
*y = -*y;
}
/**********************************************************************//**
Symetry matrix for hexgonal-isometric topology.
Symmetry matrix for hexgonal-isometric topology.
**************************************************************************/
static void fair_do_iso_hex_symetry1(int *x, int *y)
static void fair_do_iso_hex_symmetry1(int *x, int *y)
{
*y = *x - *y;
}
#define fair_do_iso_hex_symetry2 fair_do_rotation
#define fair_do_iso_hex_symmetry2 fair_do_rotation
/**********************************************************************//**
Rotation matrix, also symetry matrix for hexagonal-isometric topology.
Rotation matrix, also symmetry matrix for hexagonal-isometric topology.
**************************************************************************/
static void fair_do_rotation(int *x, int *y)
{
......
if (!current_topo_has_flag(TF_HEX)) {
if (fc_rand(100) < 50) {
data->transform[i++] = fair_do_symetry1;
data->transform[i++] = fair_do_symmetry1;
}
if (fc_rand(100) < 50) {
data->transform[i++] = fair_do_symetry2;
data->transform[i++] = fair_do_symmetry2;
}
if (fc_rand(100) < 50) {
data->transform[i++] = fair_do_rotation;
......
int steps;
if (fc_rand(100) < 50) {
data->transform[i++] = fair_do_hex_symetry1;
data->transform[i++] = fair_do_hex_symmetry1;
}
if (fc_rand(100) < 50) {
data->transform[i++] = fair_do_hex_symetry2;
data->transform[i++] = fair_do_hex_symmetry2;
}
/* Rotations have 2 steps on hexgonal topologies. */
for (steps = fc_rand(99) % 3; steps > 0; steps--) {
......
int steps;
if (fc_rand(100) < 50) {
data->transform[i++] = fair_do_iso_hex_symetry1;
data->transform[i++] = fair_do_iso_hex_symmetry1;
}
if (fc_rand(100) < 50) {
data->transform[i++] = fair_do_iso_hex_symetry2;
data->transform[i++] = fair_do_iso_hex_symmetry2;
}
/* Rotations have 2 steps on hexgonal topologies. */
for (steps = fc_rand(99) % 3; steps > 0; steps--) {
    (1-1/1)