Commit 229901e0 authored by Markus Koschany's avatar Markus Koschany

Import Upstream version 0.6

parents
This diff is collapsed.
This diff is collapsed.
# NEWS -- news file for galois.
# Copyright (C) 2012-2018 Gerardo Ballabio
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
* 30 Jun 2018: Galois 0.6 released
Widget tree cleanup
Packaging improvements
Updated documentation
* 16 Nov 2017: Galois 0.5 released
Port to gtkmm 3
Updated style of user interface
Improved superblock frequency in superblocks mode
Fall back to online manual if Gnome help isn't present
Updated documentation
* 14 Jul 2015: Galois 0.4 released
Animate dropping block rather than dropping it instantly
Updated documentation
Added documentation in Italian
* 25 Mar 2014: Galois 0.3 released
New game mode: superblocks mode
Display "Game over" message when game is over
Remove PDF version of manual from source tarball
Updated documentation
Change paths of user data files: to preserve your preferences and
scores, read the upgrade notes in the Galois manual
* 26 Jan 2013: Galois 0.2 released
Improved graphics: brighter colors, sharper brick contours, rescaled
triangular board
Install Galois menu item (XDG compliant environments) and man page
Updated documentation
* 9 Nov 2012: Galois 0.1 released
Initial release
# TODO -- todo file for galois.
# Copyright (C) 2012-2015 Gerardo Ballabio
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
Things to do:
* INTERNATIONALIZATION
* hints
This diff is collapsed.
This diff is collapsed.
# configure.ac -- autoconf file for galois.
# Copyright (C) 2012-2015 Gerardo Ballabio
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AC_INIT
AC_CONFIG_FILES([src/makefile doc/makefile misc/makefile])
AC_CONFIG_FILES([doc/galois.6 doc/galois-it.6])
AC_CONFIG_FILES([doc/galois-C.omf doc/galois-it.omf])
AC_CONFIG_FILES([misc/galois.desktop])
AC_PROG_CXX
PKG_CHECK_MODULES([gtkmm], [gtkmm-3.0])
PKG_CHECK_MODULES([libxmlplusplus], [libxml++-2.6])
AC_OUTPUT
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<omf>
<resource>
<creator>(Gerardo Ballabio)</creator>
<maintainer>(Gerardo Ballabio)</maintainer>
<title>Galois Manual</title>
<date>June 2018</date>
<version identifier="Galois Manual" date="June 2018"/>
<subject category="GNOME|Applications|Games"/>
<description>
Galois is a game of the falling blocks type, but with unique features.
</description>
<type>manual</type>
<format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.5//EN"/>
<identifier url="file://@prefix@/share/gnome/help/galois/C/galois.xml"/>
<language code="C++"/>
<rights type="GNU FDL" license.version="1.3" holder="Gerardo Ballabio"/>
</resource>
</omf>
.\" galois-it.6 -- Italian man page for galois. -*- nroff -*-
.\" Copyright (C) 2012-2018 Gerardo Ballabio
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful, but
.\" WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program. If not, see <http://www.gnu.org/licenses/>.
.\"
.\" @configure_input@
.TH "GALOIS" "6" "0.6" "Gerardo Ballabio" "Giochi"
.SH NOME
galois \- gioco con blocchi che cadono di diverse forme e dimensioni
.SH SINOSSI
.B galois
.SH DESCRIZIONE
Galois è un videogioco del tipo con i "blocchi che cadono", ma con
caratteristiche uniche.
Diversamente dalla maggior parte degli altri giochi di questo tipo,
non è limitato a blocchi fatti da quattro mattoncini quadrati
bidimensionali: potete scegliere tra varie diverse forme di
mattoncini, blocchi composti da più o meno mattoncini, e persino tra
partite bi e tridimensionali.
.PP
Galois è software libero, rilasciato sotto le condizioni della GNU
General Public License, versione 3 o successiva.
.SH CONFIGURAZIONE
Selezionare
.B Preferences
dal menù dell'applicazione (se il vostro ambiente lo supporta), o
.B Game/Preferences
dalla barra dei menù per modificare le impostazioni del gioco e i
tasti di controllo.
.SH FILE
.I <config_dir>/galois/galois.conf
: file di configurazione
.br
.I <data_dir>/galois/galois.res
: file dei punteggi
.PP
.I <config_dir>
e
.I <data_dir>
sono i path restituiti dalle funzioni di glibmm
.B get_user_config_dir()
e
.B get_user_data_dir()
, rispettivamente.
Valori tipici su GNU/Linux sono
.I $HOME/.config
e
.I $HOME/.local/share
.SH VEDI ANCHE
Informazioni dettagliate sono disponibili nel manuale di Galois:
.br
.I @prefix@/share/gnome/help/galois/it/galois.html
.SH AUTORE
Gerardo Ballabio
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="utf-8"?>
<omf>
<resource>
<creator>(Gerardo Ballabio)</creator>
<maintainer>(Gerardo Ballabio)</maintainer>
<title>Manuale di Galois</title>
<date>Giugno 2018</date>
<version identifier="Galois Manual" date="June 2018"/>
<subject category="GNOME|Applications|Games"/>
<description>
Galois è un gioco del tipo con i blocchi che cadono, ma con caratteristiche uniche.
</description>
<type>manual</type>
<format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.5//EN"/>
<identifier url="file://@prefix@/share/gnome/help/galois/it/galois.xml"/>
<language code="C++"/>
<rights type="GNU FDL" license.version="1.3" holder="Gerardo Ballabio"/>
</resource>
</omf>
This diff is collapsed.
.\" galois.6 -- man page for galois. -*- nroff -*-
.\" Copyright (C) 2012-2018 Gerardo Ballabio
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful, but
.\" WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program. If not, see <http://www.gnu.org/licenses/>.
.\"
.\" @configure_input@
.TH "GALOIS" "6" "0.6" "Gerardo Ballabio" "Games"
.SH NAME
galois \- falling blocks game with blocks of various shapes and sizes
.SH SYNOPSIS
.B galois
.SH DESCRIPTION
Galois is a computer game of the "falling blocks" type, but with
unique features.
Unlike most other games of that type, it is not limited to blocks made
of four two-dimensional, square bricks: you can choose among several
different brick shapes, blocks composed of more or fewer bricks, and
even between two- and three-dimensional games.
.PP
Galois is free software, released under the terms of the GNU General
Public License, version 3 or later.
.SH CONFIGURATION
Select
.B Preferences
from the application menu (if your environment supports that), or
.B Game/Preferences
from the menu bar to modify game settings and control keys.
.SH FILES
.I <config_dir>/galois/galois.conf
: configuration file
.br
.I <data_dir>/galois/galois.res
: scores file
.PP
.I <config_dir>
and
.I <data_dir>
are the paths returned by the glibmm functions
.B get_user_config_dir()
and
.B get_user_data_dir()
, respectively.
Typical values on GNU/Linux systems are
.I $HOME/.config
and
.I $HOME/.local/share
.SH SEE ALSO
Detailed information is available in the Galois manual:
.br
.I @prefix@/share/gnome/help/galois/C/galois.html
.SH AUTHOR
Gerardo Ballabio
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
# makefile -- makefile for galois documentation directory.
# Copyright (C) 2012-2015 Gerardo Ballabio
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# @configure_input@
prefix = ${DESTDIR}@prefix@
AC = makefile galois.6 galois-it.6 galois-C.omf galois-it.omf
BAK = *~
FIGURES = figure1.png figure2.png figure3.png
HELP_DEPS = ${FIGURES} gpl.dbk fdl-1.3.xml
HELP = galois.xml ${HELP_DEPS} galois.html
OMF = galois-C.omf galois-it.omf
.SUFFIXES : .xml .html .pdf
.xml.html :
xmlto html-nochunks $<
.xml.pdf :
xmlto --with-dblatex pdf $<
default:
html : galois.html galois-it.html
pdf : galois.pdf galois-it.pdf
# other targets
clean :
- rm -f ${BAK}
distclean : clean
- rm -f ${AC}
install :
mkdir -p ${prefix}/share/gnome/help/galois/C
cp ${HELP} ${prefix}/share/gnome/help/galois/C
for L in it ; do \
mkdir -p ${prefix}/share/gnome/help/galois/$$L ;\
cp galois-$$L.xml \
${prefix}/share/gnome/help/galois/$$L/galois.xml ;\
cp ${HELP_DEPS} ${prefix}/share/gnome/help/galois/$$L ;\
cp galois-$$L.html \
${prefix}/share/gnome/help/galois/$$L/galois.html ;\
done
mkdir -p ${prefix}/share/man/man6
cp galois.6 ${prefix}/share/man/man6
gzip -9 -f ${prefix}/share/man/man6/galois.6
for L in it ; do \
mkdir -p ${prefix}/share/man/$$L/man6 ;\
cp galois-$$L.6 ${prefix}/share/man/$$L/man6/galois.6 ;\
gzip -9 -f ${prefix}/share/man/$$L/man6/galois.6 ;\
done
mkdir -p ${prefix}/share/omf/galois
cp ${OMF} ${prefix}/share/omf/galois
uninstall :
- cd ${prefix}/share/gnome/help/galois/C && rm -f ${HELP}
- rmdir ${prefix}/share/gnome/help/galois/C
- for L in it ; do \
cd ${prefix}/share/gnome/help/galois/$$L && rm -f ${HELP} ;\
rmdir ${prefix}/share/gnome/help/galois/$$L ;\
done
- rmdir ${prefix}/share/gnome/help/galois
- cd ${prefix}/share/man/man6 && rm -f galois.6.gz
- for L in it; do \
cd ${prefix}/share/man/it/man6 && rm -f galois.6.gz ;\
done
- cd ${prefix}/share/omf/galois && rm -f ${OMF}
- rmdir ${prefix}/share/omf/galois
# dependencies
galois.html : ${FIGURES}
galois.pdf : ${FIGURES}
galois-it.html : ${FIGURES}
galois-it.pdf : ${FIGURES}
# makefile -- makefile for galois.
# Copyright (C) 2011-2014 Gerardo Ballabio
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AC = config.log config.status autom4te.cache
BAK = *~
default:
cd src ; make
# documentation
html :
cd doc ; make html
pdf :
cd doc ; make pdf
# other targets
clean :
- rm -rf ${BAK}
- cd src ; make clean
- cd doc ; make clean
- cd misc ; make clean
distclean : clean
- rm -rf ${AC}
- cd src ; make distclean
- cd doc ; make distclean
- cd misc ; make distclean
install :
cd src ; make install
cd doc ; make install
cd misc ; make install
uninstall :
- cd src ; make uninstall
- cd doc ; make uninstall
- cd misc ; make uninstall
# galois.desktop -- desktop entry file for galois.
# Copyright (C) 2012-2018 Gerardo Ballabio
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# @configure_input@
[Desktop Entry]
Exec=@prefix@/games/galois
Terminal=false
Type=Application
Categories=GNOME;GTK;Game;BlocksGame;
Keywords=GNOME;GTK;Game;BlocksGame;
StartupNotify=true
Name=Galois
Name[it]=Galois
GenericName=Extended Falling Blocks Game
GenericName[it]=Gioco potenziato con i blocchi che cadono
Comment=Play with falling blocks of different shapes
Comment[it]=Gioca con blocchi che cadono di diverse forme
Icon=galois
This diff is collapsed.
# makefile -- makefile for galois miscellanies directory.
# Copyright (C) 2012-2014 Gerardo Ballabio
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# @configure_input@
prefix = ${DESTDIR}@prefix@
AC = makefile galois.desktop
BAK = *~
MENU = galois.desktop
ICON = galois.png
default:
# other targets
clean :
- rm -f ${BAK}
distclean : clean
- rm -f ${AC}
install :
mkdir -p ${prefix}/share/applications
cp ${MENU} ${prefix}/share/applications
mkdir -p ${prefix}/share/pixmaps
cp ${ICON} ${prefix}/share/pixmaps
uninstall :
cd ${prefix}/share/applications && rm -f ${MENU}
cd ${prefix}/share/pixmaps && rm -f ${ICON}
# dependencies
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/* hexagon.h -- spatial groups for hexagonal bricks. -*- C++ -*-
Copyright (C) 2011-2015 Gerardo Ballabio
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef __HEXAGON_
#define __HEXAGON_
#include <vector>
#include <gtkmm.h>
#include "grid.h"
#include "group.h"
class group_hexagon : public group_2d
{
private:
virtual int size() const { return 6; }
virtual int rotate(int n, int m) const;
virtual int reflect(int n) const;
virtual int type(const coords &c) const
{ return ((c.x + c.y) % 2 == 0) ? 0 : -1; }
virtual std::vector<coords> neighbors(const coords &c) const;
virtual std::vector<coords> blockers(const coords &c) const
{ return std::vector<coords>(); }
virtual grid<bool> transform(const grid<bool> &g, int n) const;
virtual grid<bool> center(const grid<bool> &g) const;
public:
virtual int blockset_max() const { return 50; }
// game
virtual coords left(const coords &c) const
{ return c + make_coords(-1, (c.x % 2 == 0) ? 1 : -1); }
virtual coords right(const coords &c) const
{ return c + make_coords(1, (c.x % 2 == 0) ? 1 : -1); }
virtual coords down(const coords &c) const
{ return c + make_coords(0, 2); }
virtual grid<int> make_board(int width, int depth = 1) const
{ return grid<int>(40, width, 1, -width / 2, 0, 0); }
virtual std::vector<int> check_lines(grid<int> &g, int n) const;
virtual void color_line(grid<int> &g, int n, int c) const;
virtual void remove_line(grid<int> &g, int n) const;
// drawing methods
virtual Gdk::Rectangle block_size(const grid<bool> &b, int size) const;
virtual Gdk::Rectangle board_size(int size, int rows, int cols,
int layers) const;
virtual void draw_brick(Cairo::RefPtr<Cairo::Context> context,
const coords &c, const Gdk::RGBA &color,
int size) const;
virtual void draw_shadow(Cairo::RefPtr<Cairo::Context> context,
const coords &c, const Gdk::RGBA &color,
int size) const;
virtual void draw_board(Cairo::RefPtr<Cairo::Context> context,
int rows, int cols, int layers, int size) const;
};
class group_hexagon_mirror : public group_hexagon
{
private:
virtual int size() const { return 12; }
virtual int rotate(int n, int m) const;
virtual int reflect(int n) const;
virtual grid<bool> transform(const grid<bool> &g, int n) const;
public:
virtual int blockset_max() const { return 30; }
};
#endif /* __HEXAGON_ */
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment