Week breaks introduced.

This commit is contained in:
gyboth 2008-12-26 15:59:46 +00:00
parent 214184cdd3
commit a76cae2a44
19 changed files with 387 additions and 82 deletions

View File

@ -2304,7 +2304,7 @@ msgstr "Ru"
#: src/cup.c:1099
msgid "Round robin"
msgstr "Jeder gg. jeden"
msgstr "Gruppenphase"
#: src/misc_interface.c:1087
msgid "Safety (%)"

View File

@ -68,6 +68,7 @@ cup_new(gboolean new_id)
new.teams = g_ptr_array_new();
new.team_names = g_ptr_array_new();
new.fixtures = g_array_new(FALSE, FALSE, sizeof(Fixture));
new.week_breaks = g_array_new(FALSE, FALSE, sizeof(WeekBreak));
new.bye = g_ptr_array_new();
new.properties = g_ptr_array_new();

View File

@ -178,6 +178,8 @@ typedef struct
GPtrArray *team_names;
/** The fixtures of a season for the cup. */
GArray *fixtures;
/** Array of custom breaks in schedule. */
GArray *week_breaks;
} Cup;
#endif

View File

@ -536,12 +536,12 @@ fixture_write_round_robin(gpointer league_cup, gint cup_round,
}
/* first half of fixtures */
week_number = first_week;
week_number = league_cup_get_week_with_break(clid, first_week);
for(i=0;i<len - 1;i++)
{
if(i > 0 && !query_league_cup_matchday_in_two_match_week(two_match_weeks,
fixture_count_matchdays(fixtures) + 1))
week_number += week_gap;
week_number = league_cup_get_week_with_break(clid, week_number + week_gap);
fixture_write_round_robin_matchday(fixtures, cup_round, teams, i,
week_number, clid, home_advantage);
@ -550,13 +550,13 @@ fixture_write_round_robin(gpointer league_cup, gint cup_round,
if(!one_round)
{
/* second half of fixtures */
week_number += g_array_index(rr_breaks, gint, rr_break_idx + 1);
week_number = league_cup_get_week_with_break(clid, week_number + g_array_index(rr_breaks, gint, rr_break_idx + 1));
for(i = 0; i < len - 1; i++)
{
if(i > 0 && !query_league_cup_matchday_in_two_match_week(two_match_weeks,
fixture_count_matchdays(fixtures) + 1))
week_number += week_gap;
week_number = league_cup_get_week_with_break(clid, week_number + week_gap);
week_round_number =
fixture_get_free_round(week_number, teams, -1, -1);
@ -671,20 +671,21 @@ fixture_write_knockout_round(Cup *cup, gint cup_round, GPtrArray *teams)
else if(round->randomise_teams)
teams = misc_randomise_g_pointer_array(teams);
week_number = league_cup_get_week_with_break(cup->id, first_week);
week_round_number =
fixture_get_free_round(first_week, teams, -1, -1);
fixture_get_free_round(week_number, teams, -1, -1);
for(i=0; i<=(teams->len - 2) / 2; i++)
if(!round->home_away && query_league_cup_has_property(cup->id, "weak_at_home") &&
league_from_clid(((Team*)g_ptr_array_index(teams, 2 * i))->clid)->layer <
league_from_clid(((Team*)g_ptr_array_index(teams, 2 * i + 1))->clid)->layer)
fixture_write(cup->fixtures, (Team*)g_ptr_array_index(teams, 2 * i + 1),
(Team*)g_ptr_array_index(teams, 2 * i), first_week,
(Team*)g_ptr_array_index(teams, 2 * i), week_number,
week_round_number, cup->id, cup_round, 0,
!round->neutral, FALSE,
(!round->home_away && round->replay == 0));
else
fixture_write(cup->fixtures, (Team*)g_ptr_array_index(teams, 2 * i),
(Team*)g_ptr_array_index(teams, 2 * i + 1), first_week,
(Team*)g_ptr_array_index(teams, 2 * i + 1), week_number,
week_round_number, cup->id, cup_round, 0,
!round->neutral, FALSE,
(!round->home_away && round->replay == 0));
@ -693,7 +694,8 @@ fixture_write_knockout_round(Cup *cup, gint cup_round, GPtrArray *teams)
if(round->home_away)
{
week_number = (round->two_match_week) ?
first_week : first_week + cup->week_gap;
week_number :
league_cup_get_week_with_break(cup->id, week_number + cup->week_gap);
week_round_number =
fixture_get_free_round(week_number, teams, -1, -1);
for(i=0; i<=(teams->len - 2) / 2; i++)

View File

@ -395,6 +395,7 @@ free_league(League *league)
free_g_array(&league->fixtures);
free_g_array(&league->rr_breaks);
free_g_array(&league->week_breaks);
free_g_array(&league->two_match_weeks[0]);
free_g_array(&league->two_match_weeks[1]);
@ -646,6 +647,7 @@ free_cup(Cup *cup)
free_g_array(&cup->rounds);
free_g_array(&cup->fixtures);
free_g_array(&cup->week_breaks);
free_g_ptr_array(&cup->bye);
free_gchar_array(&cup->team_names);

View File

@ -72,6 +72,7 @@ league_new(gboolean new_id)
new.tables = g_array_new(FALSE, FALSE, sizeof(Table));
new.properties = g_ptr_array_new();
new.rr_breaks = g_array_new(FALSE, FALSE, sizeof(gint));
new.week_breaks = g_array_new(FALSE, FALSE, sizeof(WeekBreak));
new.first_week = new.week_gap = 1;
new.two_match_weeks[0] = g_array_new(FALSE, FALSE, sizeof(gint));
@ -1118,3 +1119,33 @@ league_cup_fill_rr_breaks(GArray *rr_breaks, const gchar *breaks)
g_strfreev(breaks_arr);
}
/** Set the values of the week breaks to the week gap of the league or
cup if necessary. */
void
league_cup_adjust_week_breaks(GArray *week_breaks, gint week_gap)
{
gint i;
for(i = 0; i < week_breaks->len; i++)
if(g_array_index(week_breaks, WeekBreak, i).length == -1)
g_array_index(week_breaks, WeekBreak, i).length = week_gap;
}
/** Return the week number with a possible schedule break adjustment. */
gint
league_cup_get_week_with_break(gint clid, gint week_number)
{
gint i;
const GArray *week_breaks;
week_breaks = (clid >= ID_CUP_START) ?
cup_from_clid(clid)->week_breaks :
league_from_clid(clid)->week_breaks;
for(i = 0; i < week_breaks->len; i++)
if(g_array_index(week_breaks, WeekBreak, i).week_number == week_number)
return week_number + g_array_index(week_breaks, WeekBreak, i).length;
return week_number;
}

View File

@ -164,4 +164,10 @@ league_cup_adjust_rr_breaks(GArray *rr_breaks, gint round_robins, gint week_gap)
void
league_cup_fill_rr_breaks(GArray *rr_breaks, const gchar *breaks);
void
league_cup_adjust_week_breaks(GArray *week_breaks, gint week_gap);
gint
league_cup_get_week_with_break(gint clid, gint week_number);
#endif

View File

@ -27,7 +27,6 @@
#define LEAGUE_STRUCT_H
#include "bygfoot.h"
#include "cup_struct.h"
#include "stat_struct.h"
#include "table_struct.h"
@ -112,6 +111,18 @@ typedef struct
gchar *name;
} NewTable;
/**
A structure describing a custom break in the fixtures
schedule occuring at a particular week.
*/
typedef struct
{
/** In which week the break occurs. */
gint week_number;
/** Length of break in weeks. */
gint length;
} WeekBreak;
/**
Representation of a league.
@see PromRel
@ -165,6 +176,8 @@ typedef struct
GArray *fixtures;
/** A gchar pointer array of properties (like "inactive"). */
GPtrArray *properties;
/** Array of custom breaks in schedule. */
GArray *week_breaks;
/** The current league statistics. */
LeagueStat stats;
} League;

View File

@ -84,6 +84,7 @@ news_generate_match(const LiveGame *live_game)
new_article.subtitle_id = subtitle_id;
new_article.user_idx = fixture_user_team_involved(live_game->fix);
new_article.clid = live_game->fix->clid;
new_article.cup_round = live_game->fix->round;
if(counters[COUNT_NEW_NEWS] == 0)
counters[COUNT_NEW_NEWS] = 2;

View File

@ -78,7 +78,7 @@ typedef struct
{
gint week_number, week_round_number;
gint title_id, subtitle_id;
gint clid;
gint clid, cup_round;
gchar *title_small, *title, *subtitle;
gint id;
gint user_idx;

View File

@ -1848,7 +1848,7 @@ treeview_helper_news_additional(GtkTreeViewColumn *col,
const NewsPaperArticle *article = NULL;
const gchar *colour_fg;
const gchar *colour_bg;
gchar buf[SMALL];
gchar buf[SMALL], buf2[SMALL], round_name[SMALL];
gtk_tree_model_get(model, iter, 2, &article, -1);
@ -1862,9 +1862,17 @@ treeview_helper_news_additional(GtkTreeViewColumn *col,
return;
}
if(article->clid >= ID_CUP_START)
{
cup_get_round_name(cup_from_clid(article->clid), article->cup_round, round_name);
sprintf(buf2, "%s\n%s", league_cup_get_name_string(article->clid), round_name);
}
else
sprintf(buf2, "%s", league_cup_get_name_string(article->clid));
sprintf(buf, "<span %s>%s</span>",
const_app("string_news_window_league_cup_attribute"),
league_cup_get_name_string(article->clid));
buf2);
g_object_set(renderer, "markup", buf,
"background", colour_bg, "foreground", colour_fg, NULL);

View File

@ -50,6 +50,8 @@ enum XmlTags
TAG_SHORT_NAME,
TAG_ID,
TAG_WEEK_GAP,
TAG_WEEK_BREAK,
TAG_WEEK_BREAK_LENGTH,
TAG_YELLOW_RED,
TAG_TEAM_ID,
TAG_NAMES_FILE,
@ -57,6 +59,16 @@ enum XmlTags
TAG_ROUND
};
#define TAG_DEF_NAME "name"
#define TAG_DEF_SHORT_NAME "short_name"
#define TAG_DEF_SID "sid"
#define TAG_DEF_SYMBOL "symbol"
#define TAG_DEF_WEEK_GAP "week_gap"
#define TAG_DEF_PROPERTY "property"
#define TAG_DEF_YELLOW_RED "yellow_red"
#define TAG_DEF_WEEK_BREAK "break_in"
#define ATT_DEF_NAME_WEEK_BREAK_LENGTH "length"
/** Starting values for tag enums in the various xml loading source files. */
#define TAG_START_MISC 1000
#define TAG_START_LEAGUE 2000

View File

@ -31,15 +31,13 @@
#include "xml_cup.h"
#include "xml_country.h"
#include "xml_league.h"
#include "xml.h"
/**
* The tags used in the XML files defining countries.
*/
#define TAG_COUNTRY "country"
#define TAG_NAME "name"
#define TAG_RATING "rating"
#define TAG_SYMBOL "symbol"
#define TAG_SID "sid"
#define TAG_SUPERNATIONAL "supernational"
#define TAG_LEAGUES "leagues"
#define TAG_LEAGUE "league"
@ -88,13 +86,13 @@ xml_country_read_start_element (GMarkupParseContext *context,
printf("xml_country_read_start_element\n");
#endif
if(strcmp(element_name, TAG_NAME) == 0)
if(strcmp(element_name, TAG_DEF_NAME) == 0)
state = STATE_NAME;
else if(strcmp(element_name, TAG_RATING) == 0)
state = STATE_RATING;
else if(strcmp(element_name, TAG_SYMBOL) == 0)
else if(strcmp(element_name, TAG_DEF_SYMBOL) == 0)
state = STATE_SYMBOL;
else if(strcmp(element_name, TAG_SID) == 0)
else if(strcmp(element_name, TAG_DEF_SID) == 0)
state = STATE_SID;
else if(strcmp(element_name, TAG_SUPERNATIONAL) == 0)
state = STATE_SUPERNATIONAL;
@ -130,14 +128,15 @@ xml_country_read_end_element (GMarkupParseContext *context,
gpointer user_data,
GError **error)
{
#ifdef DEBUG
printf("xml_country_read_end_element\n");
#endif
if(strcmp(element_name, TAG_NAME) == 0 ||
if(strcmp(element_name, TAG_DEF_NAME) == 0 ||
strcmp(element_name, TAG_RATING) == 0 ||
strcmp(element_name, TAG_SYMBOL) == 0 ||
strcmp(element_name, TAG_SID) == 0 ||
strcmp(element_name, TAG_DEF_SYMBOL) == 0 ||
strcmp(element_name, TAG_DEF_SID) == 0 ||
strcmp(element_name, TAG_SUPERNATIONAL) == 0 ||
strcmp(element_name, TAG_LEAGUES) == 0 ||
strcmp(element_name, TAG_CUPS) == 0)

View File

@ -31,21 +31,15 @@
#include "option.h"
#include "variables.h"
#include "xml_cup.h"
#include "xml.h"
/**
* The tags used in the XML files defining cups.
*/
#define TAG_CUP "cup"
#define TAG_NAME "name"
#define TAG_SHORT_NAME "short_name"
#define TAG_SYMBOL "symbol"
#define TAG_SID "sid"
#define TAG_GROUP "group"
#define TAG_PROPERTY "property"
#define TAG_LAST_WEEK "last_week"
#define TAG_ADD_WEEK "add_week"
#define TAG_WEEK_GAP "week_gap"
#define TAG_YELLOW_RED "yellow_red"
#define TAG_TALENT_DIFF "talent_diff"
#define TAG_CUP_ROUNDS "cup_rounds"
#define TAG_CUP_ROUND "cup_round"
@ -90,6 +84,7 @@ enum XmlCupStates
STATE_LAST_WEEK,
STATE_ADD_WEEK,
STATE_WEEK_GAP,
STATE_WEEK_BREAK,
STATE_YELLOW_RED,
STATE_TALENT_DIFF,
STATE_CUP_ROUNDS,
@ -131,6 +126,7 @@ gint state;
Cup new_cup;
CupRound new_round;
CupChooseTeam new_choose_team;
WeekBreak new_week_break;
/**
* The function called by the parser when an opening tag is read.
@ -155,25 +151,33 @@ xml_cup_read_start_element (GMarkupParseContext *context,
new_cup = cup_new(FALSE);
state = STATE_CUP;
}
else if(strcmp(element_name, TAG_NAME) == 0)
else if(strcmp(element_name, TAG_DEF_NAME) == 0)
state = STATE_NAME;
else if(strcmp(element_name, TAG_SHORT_NAME) == 0)
else if(strcmp(element_name, TAG_DEF_SHORT_NAME) == 0)
state = STATE_SHORT_NAME;
else if(strcmp(element_name, TAG_SYMBOL) == 0)
else if(strcmp(element_name, TAG_DEF_SYMBOL) == 0)
state = STATE_SYMBOL;
else if(strcmp(element_name, TAG_SID) == 0)
else if(strcmp(element_name, TAG_DEF_SID) == 0)
state = STATE_SID;
else if(strcmp(element_name, TAG_GROUP) == 0)
state = STATE_GROUP;
else if(strcmp(element_name, TAG_LAST_WEEK) == 0)
state = STATE_LAST_WEEK;
else if(strcmp(element_name, TAG_PROPERTY) == 0)
else if(strcmp(element_name, TAG_DEF_PROPERTY) == 0)
state = STATE_PROPERTY;
else if(strcmp(element_name, TAG_ADD_WEEK) == 0)
state = STATE_ADD_WEEK;
else if(strcmp(element_name, TAG_WEEK_GAP) == 0)
else if(strcmp(element_name, TAG_DEF_WEEK_GAP) == 0)
state = STATE_WEEK_GAP;
else if(strcmp(element_name, TAG_YELLOW_RED) == 0)
else if(strcmp(element_name, TAG_DEF_WEEK_BREAK) == 0)
{
state = STATE_WEEK_BREAK;
if(attribute_names[0] != NULL && strcmp(attribute_names[0], ATT_DEF_NAME_WEEK_BREAK_LENGTH) == 0)
new_week_break.length = (gint)g_ascii_strtod(attribute_values[0], NULL);
else
new_week_break.length = -1;
}
else if(strcmp(element_name, TAG_DEF_YELLOW_RED) == 0)
state = STATE_YELLOW_RED;
else if(strcmp(element_name, TAG_TALENT_DIFF) == 0)
state = STATE_TALENT_DIFF;
@ -257,19 +261,24 @@ xml_cup_read_end_element (GMarkupParseContext *context,
printf("xml_cup_read_end_element\n");
#endif
if(strcmp(element_name, TAG_NAME) == 0 ||
strcmp(element_name, TAG_SHORT_NAME) == 0 ||
strcmp(element_name, TAG_SYMBOL) == 0 ||
strcmp(element_name, TAG_SID) == 0 ||
if(strcmp(element_name, TAG_DEF_NAME) == 0 ||
strcmp(element_name, TAG_DEF_SHORT_NAME) == 0 ||
strcmp(element_name, TAG_DEF_SYMBOL) == 0 ||
strcmp(element_name, TAG_DEF_SID) == 0 ||
strcmp(element_name, TAG_GROUP) == 0 ||
strcmp(element_name, TAG_LAST_WEEK) == 0 ||
strcmp(element_name, TAG_PROPERTY) == 0 ||
strcmp(element_name, TAG_DEF_PROPERTY) == 0 ||
strcmp(element_name, TAG_ADD_WEEK) == 0 ||
strcmp(element_name, TAG_WEEK_GAP) == 0 ||
strcmp(element_name, TAG_YELLOW_RED) == 0 ||
strcmp(element_name, TAG_DEF_WEEK_GAP) == 0 ||
strcmp(element_name, TAG_DEF_YELLOW_RED) == 0 ||
strcmp(element_name, TAG_TALENT_DIFF) == 0 ||
strcmp(element_name, TAG_CUP_ROUNDS) == 0)
state = STATE_CUP;
else if(strcmp(element_name, TAG_DEF_WEEK_BREAK) == 0)
{
state = STATE_CUP;
g_array_append_val(new_cup.week_breaks, new_week_break);
}
else if(strcmp(element_name, TAG_CUP_ROUND) == 0)
{
state = STATE_CUP_ROUNDS;
@ -361,6 +370,8 @@ xml_cup_read_text (GMarkupParseContext *context,
new_cup.add_week = int_value;
else if(state == STATE_WEEK_GAP)
new_cup.week_gap = int_value;
else if(state == STATE_WEEK_BREAK)
new_week_break.week_number = int_value;
else if(state == STATE_YELLOW_RED)
new_cup.yellow_red = int_value;
else if(state == STATE_TALENT_DIFF)
@ -472,5 +483,6 @@ xml_cup_read(const gchar *cup_name, GArray *cups)
}
new_cup.id = cup_id_new;
league_cup_adjust_week_breaks(new_cup.week_breaks, new_cup.week_gap);
g_array_append_val(cups, new_cup);
}

View File

@ -34,25 +34,19 @@
#include "variables.h"
#include "xml_league.h"
#include "xml_cup.h"
#include "xml.h"
/**
* The tags used in the XML files defining leagues.
*/
#define TAG_LEAGUE "league"
#define TAG_NAME "name"
#define TAG_SHORT_NAME "short_name"
#define TAG_SID "sid"
#define TAG_SYMBOL "symbol"
#define TAG_LAYER "layer"
#define TAG_FIRST_WEEK "first_week"
#define TAG_WEEK_GAP "week_gap"
#define TAG_ROUND_ROBINS "round_robins"
#define TAG_YELLOW_RED "yellow_red"
#define TAG_AVERAGE_TALENT "average_talent"
#define TAG_NAMES_FILE "names_file"
#define TAG_BREAK "break"
#define TAG_JOINED_LEAGUE "joined_league"
#define TAG_PROPERTY "property"
#define TAG_NEW_TABLE "new_table"
#define TAG_PROM_REL "prom_rel"
#define TAG_PROM_GAMES "prom_games"
@ -92,6 +86,7 @@ enum XmlLeagueStates
STATE_LAYER,
STATE_FIRST_WEEK,
STATE_WEEK_GAP,
STATE_WEEK_BREAK,
STATE_ROUND_ROBINS,
STATE_YELLOW_RED,
STATE_AVERAGE_TALENT,
@ -155,29 +150,40 @@ xml_league_read_start_element (GMarkupParseContext *context,
Team new_team;
JoinedLeague new_joined_league;
NewTable new_table;
WeekBreak new_week_break;
if(strcmp(element_name, TAG_LEAGUE) == 0)
{
new_league = league_new(TRUE);
state = STATE_LEAGUE;
}
else if(strcmp(element_name, TAG_NAME) == 0)
else if(strcmp(element_name, TAG_DEF_NAME) == 0)
state = STATE_NAME;
else if(strcmp(element_name, TAG_SHORT_NAME) == 0)
else if(strcmp(element_name, TAG_DEF_SHORT_NAME) == 0)
state = STATE_SHORT_NAME;
else if(strcmp(element_name, TAG_SID) == 0)
else if(strcmp(element_name, TAG_DEF_SID) == 0)
state = STATE_SID;
else if(strcmp(element_name, TAG_SYMBOL) == 0)
else if(strcmp(element_name, TAG_DEF_SYMBOL) == 0)
state = STATE_SYMBOL;
else if(strcmp(element_name, TAG_FIRST_WEEK) == 0)
state = STATE_FIRST_WEEK;
else if(strcmp(element_name, TAG_LAYER) == 0)
state = STATE_LAYER;
else if(strcmp(element_name, TAG_WEEK_GAP) == 0)
else if(strcmp(element_name, TAG_DEF_WEEK_GAP) == 0)
state = STATE_WEEK_GAP;
else if(strcmp(element_name, TAG_DEF_WEEK_BREAK) == 0)
{
state = STATE_WEEK_BREAK;
if(attribute_names[0] != NULL && strcmp(attribute_names[0], ATT_DEF_NAME_WEEK_BREAK_LENGTH) == 0)
new_week_break.length = (gint)g_ascii_strtod(attribute_values[0], NULL);
else
new_week_break.length = -1;
g_array_append_val(new_league.week_breaks, new_week_break);
}
else if(strcmp(element_name, TAG_ROUND_ROBINS) == 0)
state = STATE_ROUND_ROBINS;
else if(strcmp(element_name, TAG_YELLOW_RED) == 0)
else if(strcmp(element_name, TAG_DEF_YELLOW_RED) == 0)
state = STATE_YELLOW_RED;
else if(strcmp(element_name, TAG_AVERAGE_TALENT) == 0)
state = STATE_AVERAGE_TALENT;
@ -185,7 +191,7 @@ xml_league_read_start_element (GMarkupParseContext *context,
state = STATE_NAMES_FILE;
else if(strcmp(element_name, TAG_BREAK) == 0)
state = STATE_BREAK;
else if(strcmp(element_name, TAG_PROPERTY) == 0)
else if(strcmp(element_name, TAG_DEF_PROPERTY) == 0)
state = STATE_PROPERTY;
else if(strcmp(element_name, TAG_JOINED_LEAGUE) == 0)
{
@ -286,20 +292,21 @@ xml_league_read_end_element (GMarkupParseContext *context,
printf("xml_league_read_end_element\n");
#endif
if(strcmp(element_name, TAG_NAME) == 0 ||
strcmp(element_name, TAG_SHORT_NAME) == 0 ||
strcmp(element_name, TAG_SID) == 0 ||
strcmp(element_name, TAG_SYMBOL) == 0 ||
if(strcmp(element_name, TAG_DEF_NAME) == 0 ||
strcmp(element_name, TAG_DEF_SHORT_NAME) == 0 ||
strcmp(element_name, TAG_DEF_SID) == 0 ||
strcmp(element_name, TAG_DEF_SYMBOL) == 0 ||
strcmp(element_name, TAG_LAYER) == 0 ||
strcmp(element_name, TAG_FIRST_WEEK) == 0 ||
strcmp(element_name, TAG_WEEK_GAP) == 0 ||
strcmp(element_name, TAG_DEF_WEEK_GAP) == 0 ||
strcmp(element_name, TAG_DEF_WEEK_BREAK) == 0 ||
strcmp(element_name, TAG_ROUND_ROBINS) == 0 ||
strcmp(element_name, TAG_YELLOW_RED) == 0 ||
strcmp(element_name, TAG_DEF_YELLOW_RED) == 0 ||
strcmp(element_name, TAG_AVERAGE_TALENT) == 0 ||
strcmp(element_name, TAG_NAMES_FILE) == 0 ||
strcmp(element_name, TAG_BREAK) == 0 ||
strcmp(element_name, TAG_JOINED_LEAGUE) == 0 ||
strcmp(element_name, TAG_PROPERTY) == 0 ||
strcmp(element_name, TAG_DEF_PROPERTY) == 0 ||
strcmp(element_name, TAG_NEW_TABLE) == 0 ||
strcmp(element_name, TAG_TWO_MATCH_WEEK_START) == 0 ||
strcmp(element_name, TAG_TWO_MATCH_WEEK_END) == 0 ||
@ -374,6 +381,9 @@ xml_league_read_text (GMarkupParseContext *context,
new_league.first_week = int_value;
else if(state == STATE_WEEK_GAP)
new_league.week_gap = int_value;
else if(state == STATE_WEEK_BREAK)
g_array_index(new_league.week_breaks, WeekBreak,
new_league.week_breaks->len - 1).week_number = int_value;
else if(state == STATE_ROUND_ROBINS)
new_league.round_robins = int_value;
else if(state == STATE_YELLOW_RED)
@ -508,6 +518,7 @@ xml_league_read(const gchar *league_name, GArray *leagues)
g_free(file_contents);
league_cup_adjust_rr_breaks(new_league.rr_breaks, new_league.round_robins, new_league.week_gap);
league_cup_adjust_week_breaks(new_league.week_breaks, new_league.week_gap);
g_array_append_val(leagues, new_league);
}
else

View File

@ -81,6 +81,7 @@ Cup *new_cup;
CupChooseTeam new_choose_team;
CupRound new_round;
gchar *dirname;
WeekBreak new_week_break;
void
xml_loadsave_cup_start_element (GMarkupParseContext *context,
@ -141,6 +142,8 @@ xml_loadsave_cup_end_element (GMarkupParseContext *context,
tag == TAG_ID ||
tag == TAG_YELLOW_RED ||
tag == TAG_WEEK_GAP ||
tag == TAG_WEEK_BREAK ||
tag == TAG_WEEK_BREAK_LENGTH ||
tag == TAG_PROPERTY ||
tag == TAG_CUP_LAST_WEEK ||
tag == TAG_CUP_ADD_WEEK ||
@ -229,6 +232,13 @@ xml_loadsave_cup_text (GMarkupParseContext *context,
new_cup->id = int_value;
else if(state == TAG_WEEK_GAP)
new_cup->week_gap = int_value;
else if(state == TAG_WEEK_BREAK)
new_week_break.week_number = int_value;
else if(state == TAG_WEEK_BREAK_LENGTH)
{
new_week_break.length = int_value;
g_array_append_val(new_cup->week_breaks, new_week_break);
}
else if(state == TAG_YELLOW_RED)
new_cup->yellow_red = int_value;
else if(state == TAG_PROPERTY)
@ -401,6 +411,12 @@ xml_loadsave_cup_write(const gchar *prefix, const Cup *cup)
for(i=0;i<cup->rounds->len;i++)
xml_loadsave_cup_write_round(fil, prefix, cup, i);
for(i = 0; i < cup->week_breaks->len; i++)
{
xml_write_int(fil, g_array_index(cup->week_breaks, WeekBreak, i).week_number, TAG_WEEK_BREAK, I0);
xml_write_int(fil, g_array_index(cup->week_breaks, WeekBreak, i).length, TAG_WEEK_BREAK_LENGTH, I0);
}
if(cup->bye != NULL)
for(i=0;i<cup->bye->len;i++)

View File

@ -70,6 +70,7 @@ enum
gint promrankidx, state;
PromRelElement new_element;
PromGames new_prom_games;
WeekBreak new_week_break;
League *new_league;
gchar *dirname;
@ -161,6 +162,8 @@ xml_loadsave_league_end_element (GMarkupParseContext *context,
tag == TAG_SID ||
tag == TAG_ID ||
tag == TAG_WEEK_GAP ||
tag == TAG_WEEK_BREAK ||
tag == TAG_WEEK_BREAK_LENGTH ||
tag == TAG_YELLOW_RED ||
tag == TAG_LEAGUE_PROM_REL)
state = TAG_LEAGUE;
@ -239,6 +242,13 @@ xml_loadsave_league_text (GMarkupParseContext *context,
new_league->round_robins = int_value;
else if(state == TAG_WEEK_GAP)
new_league->week_gap = int_value;
else if(state == TAG_WEEK_BREAK)
new_week_break.week_number = int_value;
else if(state == TAG_WEEK_BREAK_LENGTH)
{
new_week_break.length = int_value;
g_array_append_val(new_league->week_breaks, new_week_break);
}
else if(state == TAG_YELLOW_RED)
new_league->yellow_red = int_value;
else if(state == TAG_LEAGUE_BREAK)
@ -381,6 +391,12 @@ xml_loadsave_league_write(const gchar *prefix, const League *league)
for(i = 0; i < league->rr_breaks->len; i++)
xml_write_int(fil, g_array_index(league->rr_breaks, gint, i), TAG_LEAGUE_BREAK, I0);
for(i = 0; i < league->week_breaks->len; i++)
{
xml_write_int(fil, g_array_index(league->week_breaks, WeekBreak, i).week_number, TAG_WEEK_BREAK, I0);
xml_write_int(fil, g_array_index(league->week_breaks, WeekBreak, i).length, TAG_WEEK_BREAK_LENGTH, I0);
}
for(i=0;i<league->tables->len;i++)
{
sprintf(buf, "%s___league_%d_table_%02d.xml", basename, league->id, i);

View File

@ -45,6 +45,7 @@ enum
TAG_NEWS_PAPER_ARTICLE_SUBTITLE,
TAG_NEWS_PAPER_ARTICLE_USER_IDX,
TAG_NEWS_PAPER_ARTICLE_CLID,
TAG_NEWS_PAPER_ARTICLE_CUP_ROUND,
TAG_END
};
@ -107,6 +108,7 @@ xml_loadsave_newspaper_end_element (GMarkupParseContext *context,
tag == TAG_NEWS_PAPER_ARTICLE_SUBTITLE ||
tag == TAG_NEWS_PAPER_ARTICLE_USER_IDX ||
tag == TAG_NEWS_PAPER_ARTICLE_CLID ||
tag == TAG_NEWS_PAPER_ARTICLE_CUP_ROUND ||
tag == TAG_NEWS_PAPER_ARTICLE_SUBTITLE_ID)
{
state = TAG_NEWS_PAPER_ARTICLE;
@ -155,6 +157,8 @@ xml_loadsave_newspaper_text (GMarkupParseContext *context,
new_article.user_idx = int_value;
else if(state == TAG_NEWS_PAPER_ARTICLE_CLID)
new_article.clid = int_value;
else if(state == TAG_NEWS_PAPER_ARTICLE_CUP_ROUND)
new_article.cup_round = int_value;
}
void
@ -240,6 +244,8 @@ xml_loadsave_newspaper_write(const gchar *prefix)
TAG_NEWS_PAPER_ARTICLE_USER_IDX, I1);
xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).clid,
TAG_NEWS_PAPER_ARTICLE_CLID, I1);
xml_write_int(fil, g_array_index(newspaper.articles, NewsPaperArticle, i).cup_round,
TAG_NEWS_PAPER_ARTICLE_CUP_ROUND, I1);
fprintf(fil, "%s</_%d>\n", I0, TAG_NEWS_PAPER_ARTICLE);
}

View File

@ -3,7 +3,7 @@
<type>match</type>
<condition>_TLAYERDIFF_ = 0 and _GD_ G 3</condition>
<title priority="20" condition="_CUPET_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat das besser Ende für sich nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat nach Verlängerung das besser Ende für sich</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ behält die Nerven im Elfmeterschießen gegen _TL_</title>
<title condition="_TWN_ = 0">_TL_ ohne Chance bei _TW_</title>
@ -37,7 +37,7 @@
<type>match</type>
<condition>_TLAYERDIFF_ = 0 and _GD_ G 2</condition>
<title priority="20" condition="_CUPET_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat das besser Ende für sich nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat nach Verlängerung das besser Ende für sich</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ behält die Nerven im Elfmeterschießen gegen _TL_</title>
<title>_TL_ chancenlos gegen _TW_</title>
@ -74,7 +74,7 @@
<title>_TW_ besiegt _TL_ mit _REW_</title>
<title>_TL_ unterliegt _TW_ _REL_</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat das besser Ende für sich nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat nach Verlängerung das besser Ende für sich</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ behält die Nerven im Elfmeterschießen gegen _TL_</title>
<title condition="_CUPNEUTRAL_ = 0">_T0_ gegen _T1_ endet _RE_</title>
@ -128,9 +128,9 @@
<news_article>
<type>match</type>
<condition>_TLAYERDIFF_ = 0 and _GD_ = 0</condition>
<condition>_TLAYERDIFF_ = 0 and _GDAGG_ = 0</condition>
<title priority="20" condition="_CUPET_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat das besser Ende für sich nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat nach Verlängerung das besser Ende für sich</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ behält die Nerven im Elfmeterschießen gegen _TL_</title>
<title condition="_CUPNEUTRAL = 0">_T1_ holt Unentschieden bei _T0_</title>
@ -173,7 +173,7 @@
<type>match</type>
<condition>_TLAYERDIFF_ = 0 and _GD_ = 1</condition>
<title priority="20" condition="_CUPET_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat das besser Ende für sich nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat nach Verlängerung das besser Ende für sich</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ behält die Nerven im Elfmeterschießen gegen _TL_</title>
<title>Knappes _REW_ für _TW_</title>
@ -201,7 +201,7 @@
<type>match</type>
<condition>_TLAYERDIFF_ = 0 and _GD_ != 0 and _TAVSKILLDIFF_ > 7</condition>
<title priority="20" condition="_CUPET_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat das besser Ende für sich nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat nach Verlängerung das besser Ende für sich</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ behält die Nerven im Elfmeterschießen gegen _TL_</title>
<title condition="_TAVSKILL_TWN__ > _TAVSKILL_TLN__">_TW_ [besiegt|gewinnt gegen|bezwingt|schlägt] _TL_</title>
@ -225,7 +225,7 @@
<type>match</type>
<condition>_TLAYERDIFF_ > 0</condition>
<title priority="20" condition="_CUPET_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat das besser Ende für sich nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat nach Verlängerung das besser Ende für sich</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ behält die Nerven im Elfmeterschießen gegen _TL_</title>
<title condition="_GD_ = 0">_T[_TLAYER0_ L _TLAYER1_]_ schafft überraschendes Unentschieden</title>
@ -253,10 +253,10 @@
<type>match</type>
<priority>25</priority>
<condition>_CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 1 and _GDAGG_ != 0</condition>
<title priority="20" condition="_CUPET_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_TW_ hat das besser Ende für sich nach Verlängerung</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_TW_ behält die Nerven im Elfmeterschießen gegen _TL_</title>
<title priority="20" condition="_CUPET_ = 1">_CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_CUPMATCHWINNER_ hat nach Verlängerung das besser Ende für sich</title>
<title priority="20" condition="_CUPPEN_ = 1">_CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_CUPMATCHWINNER_ behält die Nerven im Elfmeterschießen gegen _CUPMATCHLOSER_</title>
<title condition="_CUPFIRSTLEG_ = 1">_TW_ [gewinnt|siegt im|siegreich im] Hinspiel im _LEAGUECUPNAME_-Finale</title>
<title condition="_CUPFIRSTLEG_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ im Hinspiel des _LEAGUECUPNAME_-Endspiels</title>
<title condition="_CUPFIRSTLEG_ = 1">_TL_ unterliegt _RE_ im Hinspiel des _LEAGUECUPNAME_-Endspiels</title>
@ -266,24 +266,24 @@
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ gewinnt _LEAGUECUPNAME_-Finale</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ besiegt _CUPMATCHLOSER_ in _LEAGUECUPNAME_-Finale</title>
<title condition="_GDAGG_ <= 1 and (_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1)">Spannendes _LEAGUECUPNAME_-Finale zwischen _T0_ und _T1_</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ hat das Nachsehen im _LEAGUECUPNAME_-Finale.</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ unterliegt _REL_ im _LEAGUECUPNAME_-Finale.</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ hat das Nachsehen im _LEAGUECUPNAME_-Finale</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ unterliegt _REL_ im _LEAGUECUPNAME_-Finale</title>
<subtitle condition="_CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ ist nach dem _REW_ im Final-Rückspiel erfolgreich.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1">_TL_ hofft, das _RE_ im Rückspiel wettmachen zu können.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">_TL_ steckt nach der Heimniederlage tief in der Patsche.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">_TW_ hat sich eine ausgezeichnete Ausgangsposition für das Rückspiel geschaffen.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">_TW_ ist der Titel so kaum noch zu nehmen.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 0 and _GD_ > 1">_TW_ hat nach dem überzeugenden Vorstellung vor heimischem Publikum nun allerbeste Chancen auf den Titel.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 0 and _GD_ > 1">_TW_ hat nach der überzeugenden Vorstellung vor heimischem Publikum nun allerbeste Chancen auf den Titel.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 0 and _GD_ = 1">_TW_ geht mit einem mageren Tor Vorsprung ins Rückspiel.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">Nur noch wenige Experten geben _TL_ jetzt noch eine Chance auf den _LEAGUECUPNAME_-Titel.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _GD_ < 2">_TL_ hat immer noch alle Chancen, den Pokal zu holen.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _GD_ < 2">_TL_ immer noch zuversichtlich, mit einer guten Leistung im Rückspiel das _RE_ wieder wettzumachen.</subtitle>
<subtitle condition="_CUPSECONDLEG_ = 1 and _GOALS_CUPMATCHWINNERN__ <= _GOALS_CUPMATCHLOSERN__">Das _RE_ im Rückspiel reicht _CUPMATCHWINNER_, um den Titel zu holen.</subtitle>
<subtitle condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">Anhänger von _CUPMATCHLOSER_ ziehen randalierend durch die Innenstadt nach dem enttäuschenden _RE_.</subtitle>
<subtitle condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">Anhänger von _CUPMATCHLOSER_ ziehen nach dem enttäuschenden _RE_ randalierend durch die Innenstadt.</subtitle>
<subtitle condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ endlich am Ziel, nachdem auch _CUPMATCHLOSER_ bezwungen ist.</subtitle>
<subtitle condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ ist auch von _CUPMATCHLOSER_ nicht aufzuhalten und gewinnt den Titel mit einem _REW_.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ <= 1 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1">_SCORERS_CUPMATCHWINNERN__ verhelfen vor _AT_ Zusehern in einer Partie voller Spannung zum Titel.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ or _CUPSECONDLEG_ = 1) = 0 and_GDAGG_ <= 1 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 0 and _GOALS_CUPMATCHWINNERN__ > 0">_SCORERS_CUPMATCHWINNERN__ wird zum Matchwinner gegen _CUPMATCHLOSER_ beim _REW_.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ <= 1 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1">_SCORERS_CUPMATCHWINNERN__ verhelfen ihrem Team vor _AT_ Zusehern in einer Partie voller Spannung zum Titel.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and_GDAGG_ <= 1 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 0 and _GOALS_CUPMATCHWINNERN__ > 0">_SCORERS_CUPMATCHWINNERN__ wird zum Matchwinner gegen _CUPMATCHLOSER_ beim _REW_.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ <= 1 and _GOALS_CUPMATCHWINNERN__ = 1">_SCORERS_CUPMATCHWINNERN__ entscheidet mit seinem Treffer die Partie gegen _CUPMATCHLOSER_ und bringt die Fans von _CUPMATCHWINNER_ zum Ausrasten.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ = 2 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1">_CUPMATCHWINNER_ kontrolliert die Finalbegegnung und gewinnt mit _REW_ den Titel.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ = 2 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 0">_SCORERS_CUPMATCHWINNERN__ trifft gegen _CUPMATCHLOSER_ und darf den Pokal auf der Ehrenrunde tragen.</subtitle>
@ -293,5 +293,172 @@
<subtitle condition="_GDAGG_ > 2 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1 and _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ wird in einem letztlich einseitigen Finale bezwungen und muss bei der Siegerehrung zuschauen.</subtitle>
</news_article>
<news_article>
<type>match</type>
<priority>25</priority>
<condition>_CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 2 and _GDAGG_ != 0</condition>
<title priority="20" condition="_CUPET_ = 1">_CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_CUPMATCHWINNER_ hat nach Verlängerung das besser Ende für sich</title>
<title priority="20" condition="_CUPPEN_ = 1">_CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_CUPMATCHWINNER_ behält die Nerven im Elfmeterschießen gegen _CUPMATCHLOSER_</title>
<title condition="_CUPFIRSTLEG_ = 1">_TW_ [gewinnt|siegt im|siegreich im] Hinspiel im _LEAGUECUPNAME_-Halbfinale</title>
<title condition="_CUPFIRSTLEG_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ im Hinspiel des _LEAGUECUPNAME_-Halbfinals</title>
<title condition="_CUPFIRSTLEG_ = 1">_TL_ unterliegt _RE_ im Hinspiel des _LEAGUECUPNAME_-Halbfinals</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ scheidet im _LEAGUECUPNAME_-Halbfinale aus</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ kommt weiter in _LEAGUECUPNAME_</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ ist im _LEAGUECUPNAME_-Finale</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ kommt ins _LEAGUECUPNAME_-Finale</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ besiegt _CUPMATCHLOSER_ im _LEAGUECUPNAME_-Halbfinale</title>
<title condition="_GDAGG_ <= 1 and (_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1)">Spannendes _LEAGUECUPNAME_-Halbfinale zwischen _T0_ und _T1_</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ hat das Nachsehen im _LEAGUECUPNAME_-Halbfinale</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ unterliegt _REL_ im _LEAGUECUPNAME_-Halbfinale</title>
<subtitle condition="_CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ ist nach dem _REW_ im Halbfinal-Rückspiel erfolgreich.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1">_TL_ hofft, das _RE_ im Rückspiel wettmachen zu können.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">_TL_ steckt nach der Heimniederlage tief in der Patsche.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">_TW_ hat sich eine ausgezeichnete Ausgangsposition für das Rückspiel geschaffen.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">_TW_ ist mit einem Bein im Finale.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 0 and _GD_ > 1">_TW_ hat nach der überzeugenden Vorstellung vor heimischem Publikum nun allerbeste Chancen aufs Weiterkommen.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 0 and _GD_ = 1">_TW_ geht mit einem mageren Tor Vorsprung ins Rückspiel.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">Nur noch wenige Experten geben _TL_ jetzt noch eine Chance auf das Finale.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _GD_ < 2">_TL_ hat immer noch alle Chancen, weiterzukommen.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _GD_ < 2">_TL_ immer noch zuversichtlich, mit einer guten Leistung im Rückspiel das _RE_ wieder wettzumachen.</subtitle>
<subtitle condition="_CUPSECONDLEG_ = 1 and _GOALS_CUPMATCHWINNERN__ <= _GOALS_CUPMATCHLOSERN__">Das _RE_ im Rückspiel reicht _CUPMATCHWINNER_, um weiterzukommen.</subtitle>
<subtitle condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">Anhänger von _CUPMATCHLOSER_ ziehen nach dem enttäuschenden _RE_ randalierend durch die Innenstadt.</subtitle>
<subtitle condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ erreicht das Endspiel, nachdem _CUPMATCHLOSER_ bezwungen ist.</subtitle>
<subtitle condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ ist auch von _CUPMATCHLOSER_ nicht aufzuhalten und zieht mit _REW_ ins Finale ein.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ <= 1 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1">_SCORERS_CUPMATCHWINNERN__ verhelfen ihrem Team vor _AT_ Zusehern in einer Partie voller Spannung zur Endspielteilnahme.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ or _CUPSECONDLEG_ = 1) = 0 and_GDAGG_ <= 1 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 0 and _GOALS_CUPMATCHWINNERN__ > 0">_SCORERS_CUPMATCHWINNERN__ wird zum Matchwinner gegen _CUPMATCHLOSER_ beim _REW_.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ <= 1 and _GOALS_CUPMATCHWINNERN__ = 1">_SCORERS_CUPMATCHWINNERN__ entscheidet mit seinem Treffer die Partie gegen _CUPMATCHLOSER_ und bringt die Fans von _CUPMATCHWINNER_ zum Ausrasten.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ = 2 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1">_CUPMATCHWINNER_ kontrolliert die Begegnung und zieht ins Finale ein.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ = 2 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 0">_SCORERS_CUPMATCHWINNERN__ trifft gegen _CUPMATCHLOSER_ und zieht mit _CUPMATCHWINNER_ ins Endspiel ein.</subtitle>
<subtitle condition="_GDAGG_ > 2 and _CUPHOMEAWAY_ = 0">_CUPMATCHWINNER_ beherrscht _CUPMATCHLOSER_ in allen Belangen und kommt verdient ins Finale.</subtitle>
<subtitle priority="10" condition="_GDAGG_ > 2 and _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ dominierte in den beiden Halbfinalbegegnungen und zieht verdient ins Endspiel ein.</subtitle>
<subtitle condition="_GDAGG_ > 2 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1 and _CUPHOMEAWAY_ = 0">_CUPMATCHLOSER_ wird in einer einseitigen Begegnung durch Tore von _SCORERS_CUPMATCHWINNERN__ zerlegt und scheidet aus.</subtitle>
<subtitle condition="_GDAGG_ > 2 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1 and _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ wird in einer letztlich einseitigen Begegnung bezwungen und scheidet aus.</subtitle>
</news_article>
<news_article>
<type>match</type>
<priority>25</priority>
<condition>_CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ = 3 and _GDAGG_ != 0</condition>
<title priority="20" condition="_CUPET_ = 1">_CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_CUPMATCHWINNER_ hat nach Verlängerung das besser Ende für sich</title>
<title priority="20" condition="_CUPPEN_ = 1">_CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_CUPMATCHWINNER_ behält die Nerven im Elfmeterschießen gegen _CUPMATCHLOSER_</title>
<title condition="_CUPFIRSTLEG_ = 1">_TW_ [gewinnt|siegt im|siegreich im] Hinspiel im _LEAGUECUPNAME_-Viertelfinale</title>
<title condition="_CUPFIRSTLEG_ = 1">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ im Hinspiel des _LEAGUECUPNAME_-Viertelfinals</title>
<title condition="_CUPFIRSTLEG_ = 1">_TL_ unterliegt _RE_ im Hinspiel des _LEAGUECUPNAME_-Viertelfinals</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ scheidet im _LEAGUECUPNAME_-Viertelfinale aus</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ kommt weiter in _LEAGUECUPNAME_</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ erreicht _LEAGUECUPNAME_-Vorschlussrunde</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ kommt ins _LEAGUECUPNAME_-Halbfinale</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ besiegt _CUPMATCHLOSER_ im _LEAGUECUPNAME_-Viertelfinale</title>
<title condition="_GDAGG_ <= 1 and (_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1)">Spannendes _LEAGUECUPNAME_-Viertelfinale zwischen _T0_ und _T1_</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ hat das Nachsehen im _LEAGUECUPNAME_-Viertelfinale</title>
<title condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ unterliegt _REL_ im _LEAGUECUPNAME_-Viertelfinale</title>
<subtitle condition="_CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ ist nach dem _REW_ im Rückspiel des _LEAGUECUPNAME_-Viertelfinals erfolgreich.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1">_TL_ hofft, das _RE_ im Rückspiel wettmachen zu können.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">_TL_ steckt nach der Heimniederlage tief in der Patsche.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">_TW_ hat sich eine ausgezeichnete Ausgangsposition für das Rückspiel geschaffen.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">_TW_ ist jetzt mit einem Bein im Halbfinale.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 0 and _GD_ > 1">_TW_ hat nach der überzeugenden Vorstellung vor heimischem Publikum nun allerbeste Chancen aufs Weiterkommen.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 0 and _GD_ = 1">_TW_ geht mit einem mageren Tor Vorsprung ins Rückspiel.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _TWN_ = 1">Nur noch wenige Experten geben _TL_ jetzt noch eine Chance auf das Finale.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _GD_ < 2">_TL_ hat immer noch alle Chancen, weiterzukommen.</subtitle>
<subtitle condition="_CUPFIRSTLEG_ = 1 and _GD_ < 2">_TL_ immer noch zuversichtlich, mit einer guten Leistung im Rückspiel das _RE_ wieder wettzumachen.</subtitle>
<subtitle condition="_CUPSECONDLEG_ = 1 and _GOALS_CUPMATCHWINNERN__ <= _GOALS_CUPMATCHLOSERN__">Das _RE_ im Rückspiel reicht _CUPMATCHWINNER_, um weiterzukommen.</subtitle>
<subtitle condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">Anhänger von _CUPMATCHLOSER_ ziehen nach dem enttäuschenden _RE_ randalierend durch die Innenstadt.</subtitle>
<subtitle condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ erreicht das Halbfinale, nachdem _CUPMATCHLOSER_ bezwungen ist.</subtitle>
<subtitle condition="_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ ist auch von _CUPMATCHLOSER_ nicht aufzuhalten und zieht mit _REW_ ins Halbfinale ein.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ <= 1 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1">_SCORERS_CUPMATCHWINNERN__ verhelfen ihrem Team vor _AT_ Zusehern in einer Partie voller Spannung zur Halbfinalteilnahme.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ or _CUPSECONDLEG_ = 1) = 0 and_GDAGG_ <= 1 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 0 and _GOALS_CUPMATCHWINNERN__ > 0">_SCORERS_CUPMATCHWINNERN__ wird zum Matchwinner gegen _CUPMATCHLOSER_ beim _REW_.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ <= 1 and _GOALS_CUPMATCHWINNERN__ = 1">_SCORERS_CUPMATCHWINNERN__ entscheidet mit seinem Treffer die Partie gegen _CUPMATCHLOSER_ und bringt die Fans von _CUPMATCHWINNER_ zum Ausrasten.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ = 2 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1">_CUPMATCHWINNER_ kontrolliert die Begegnung und zieht in die Vorschlussrunde ein.</subtitle>
<subtitle condition="(_CUPHOMEAWAY_ = 0 or _CUPSECONDLEG_ = 1) and _GDAGG_ = 2 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 0">_SCORERS_CUPMATCHWINNERN__ trifft gegen _CUPMATCHLOSER_ und zieht mit _CUPMATCHWINNER_ ins Halbfinale ein.</subtitle>
<subtitle condition="_GDAGG_ > 2 and _CUPHOMEAWAY_ = 0">_CUPMATCHWINNER_ beherrscht _CUPMATCHLOSER_ in allen Belangen und kommt verdient eine Runde weiter.</subtitle>
<subtitle priority="10" condition="_GDAGG_ > 2 and _CUPSECONDLEG_ = 1">_CUPMATCHWINNER_ dominierte in den beiden Viertelfinalbegegnungen und zieht verdient in die Vorschlussrunde ein.</subtitle>
<subtitle condition="_GDAGG_ > 2 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1 and _CUPHOMEAWAY_ = 0">_CUPMATCHLOSER_ wird in einer einseitigen Begegnung durch Tore von _SCORERS_CUPMATCHWINNERN__ zerlegt und scheidet aus.</subtitle>
<subtitle condition="_GDAGG_ > 2 and _MULTIPLESCORERS_CUPMATCHWINNERN__ = 1 and _CUPSECONDLEG_ = 1">_CUPMATCHLOSER_ wird in einer letztlich einseitigen Begegnung bezwungen und scheidet aus.</subtitle>
</news_article>
<news_article>
<type>match</type>
<priority>25</priority>
<condition>_CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPFIRSTLEG_ = 1</condition>
<title condition="_GD_ = 0">_T1_ schafft Unentschieden bei _T0_</title>
<title condition="_GD_ = 0">Hinspiel zwischen _T0_ und _T1_ endet unentschieden</title>
<title condition="_GD_ = 0">_T1_ zufrieden nach Unentschieden</title>
<title>_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_ im Hinspiel</title>
<title>_TL_ hat das Nachsehen im Hinspiel gegen _TW_</title>
<title condition="_GD_ > 1">Überzeugender Sieg für _TW_ im Hinspiel</title>
<title condition="_GD_ > 1">_TL_ unterliegt [klar|deutlich] in Hinspiel</title>
<title condition="_GD_ = 1">Knapper Sieg für _TW_ im Hinspiel</title>
<title condition="_GD_ = 1">_TL_ unterliegt nur knapp in Hinspiel</title>
<subtitle condition="_GD_ > 2">_TW_ ist kaum mehr aufzuhalten nach dem klaren _REW_-Sieg.</subtitle>
<subtitle condition="_GD_ > 2">_TL_ steckt jetzt tief in der Krise und kann das Weiterkommen wohl schon abschreiben.</subtitle>
<subtitle condition="_GD_ > 2">_TW_ darf nach dem _REW_ vor _AT_ Zuschauern fast schon aufs Weiterkommen anstoßen.</subtitle>
<subtitle condition="_GD_ > 1 and _TWN_ = 1">_TW_ ist nach dem Auswärtserfolg mit einem Bein in der nächsten Runde.</subtitle>
<subtitle condition="_GD_ > 1 and _TWN_ = 1">_TL_ kann seine Hoffnungen auf die nächste Runde nach der Heimpleite fast schon begraben.</subtitle>
<subtitle condition="_GD_ > 1 and _TWN_ = 1">Hervorragende Voraussetzungen für _TW_ nach dem überzeugenden Auswärtssieg.</subtitle>
<subtitle condition="_GD_ = 1 and _TWN_ = 1">_TW_ schafft mit dem _REW_-Auswärtssieg ein bequemes Polster fürs Rückspiel.</subtitle>
<subtitle condition="_GD_ = 1 and _TWN_ = 1">_TW_ hat jetzt die besseren Karten und kann schon mit einem Unentschieden zuhause weiterkommen.</subtitle>
<subtitle condition="_GD_ > 1 and _TLN_ = 1">_TW_ ist nach dem klaren Heimsieg mit einem Bein in der nächsten Runde.</subtitle>
<subtitle condition="_GD_ > 1 and _TLN_ = 1">_TL_ muss nun versuchen, das _REL_ vor heimischem Publikum wettzumachen.</subtitle>
<subtitle condition="_GD_ > 1 and _TLN_ = 1">Hervorragende Voraussetzungen für _TW_ nach dem überzeugenden Heimsieg.</subtitle>
<subtitle condition="_GD_ = 1 and _TLN_ = 1">Nach dem mageren _REW_-Heimsieg für _TW_ ist noch alles offen in dieser Paarung.</subtitle>
<subtitle condition="_GD_ = 1 and _TLN_ = 1">_TL_ muss mit zwei Toren Vorsprung zuhause gewinnen, um weiterzukommen.</subtitle>
<subtitle condition="_GD_ = 1 and _TLN_ = 1 and _GOALS1_ > 1">_TL_ erzielt wichtige Auswärtstore und hat nun gute Karten für das Rückspiel.</subtitle>
<subtitle condition="_GD_ = 1 and _TLN_ = 1 and _GOALS1_ > 1">_TW_ gewinnt, ärgert sich aber, hier _GOALS1_ Gegentore zugelassen zu haben.</subtitle>
<subtitle condition="_GD_ = 0">_T1_ ist mit einem Heimerfolg im Rückspiel weiter.</subtitle>
<subtitle condition="_GD_ = 0">_AT_ Zuschauer sehen ein mageres Unentschieden ihrer Mannschaft.</subtitle>
<subtitle condition="_GD_ = 0">_T0_ muss sich im Rückspiel steigern, sonst droht das Ausscheiden.</subtitle>
<subtitle condition="_GD_ = 0 and _GOALS0_ > 1">_T1_ reicht jetzt ein 0 : 0 im Rückspiel, um eine Runde weiterzukommen.</subtitle>
</news_article>
<news_article>
<type>match</type>
<priority>25</priority>
<condition>_CUP_ = 1 and _CUPKO_ = 1 and _CUPPROMREL_ = 0 and _CUPAUX_ = 0 and _CUPSTAGE_ > 3 and _CUPSECONDLEG_ = 1</condition>
<title>_CUPMATCHWINNER_ ist in der nächsten Runde</title>
<title>_CUPMATCHWINNER_ [ist|kommt] weiter</title>
<title>_CUPMATCHLOSER_ scheidet aus</title>
<title>_CUPMATCHLOSER_ draussen</title>
<title priority="20" condition="_CUPET_ = 1">_CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ nach Verlängerung</title>
<title priority="20" condition="_CUPET_ = 1">_CUPMATCHWINNER_ hat nach Verlängerung das besser Ende für sich</title>
<title priority="20" condition="_CUPPEN_ = 1">_CUPMATCHWINNER_ [besiegt|schlägt|bezwingt|gewinnt gegen] _CUPMATCHLOSER_ _REW_ nach Elfmeterschießen</title>
<title priority="20" condition="_CUPPEN_ = 1">_CUPMATCHWINNER_ behält die Nerven im Elfmeterschießen gegen _CUPMATCHLOSER_</title>
<title condition="_GD_ = 0">Unentschieden reicht _CUPMATCHWINNER_</title>
<title condition="_GD_ = 0">_CUPMATCHWINNER_ kommt mit Unentschieden weiter</title>
<title condition="_GD_ = 0">_CUPMATCHLOSER_ scheidet nach _RE_ im Rückspiel aus</title>
<title condition="_TWN_ != _CUPMATCHWINNERN_">_TW_ [besiegt|schlägt|bezwingt|gewinnt gegen] _TL_, scheidet aus</title>
<title condition="_TWN_ != _CUPMATCHWINNERN_">_REW_ reicht nicht für _TW_ im Rückspiel</title>
<title condition="_TWN_ != _CUPMATCHWINNERN_">_TW_ draussen trotz _REW_</title>
<title condition="_TWN_ != _CUPMATCHWINNERN_">_CUPMATCHWINNER_ kommt trotz Niederlage weiter</title>
<title condition="_GDAGG_ = 0 and _CUPET_ = 0 and _CUPPEN_ = 0">_CUPMATCHWINNER_ kommt dank Auswärtstorregelung weiter</title>
<title condition="_GDAGG_ = 0 and _CUPET_ = 0 and _CUPPEN_ = 0">_CUPMATCHWINNER_ weiter nach _RE_</title>
<title condition="_GDAGG_ = 0 and _CUPET_ = 0 and _CUPPEN_ = 0">Knappes Gesamtergebnis zwischen _T0_ und _T1_</title>
<title condition="_GDAGG_ = 1">_CUPMATCHWINNER_ mit einem Tor Vorsprung weiter</title>
<title condition="_GDAGG_ = 1">_CUPMATCHLOSER_ scheidet knapp aus</title>
<title condition="_GDAGG_ = 1">_CUPMATCHLOSER_ nach knappem Gesamtergebnis draussen</title>
<title condition="_GDAGG_ > 1">_CUPMATCHWINNER_ locker weiter</title>
<title condition="_GDAGG_ > 1">_CUPMATCHWINNER_ ohne Probleme weiter</title>
<title condition="_GDAGG_ > 1">_CUPMATCHWINNER_ kommt locker in die nächste Runde</title>
<subtitle condition="_MULTIPLESCORERS_CUPMATCHWINNERN__ = 1 and _CUPET_ = 0 and _CUPPEN_ = 0">_SCORERS_CUPMATCHWINNERN__ machen die Sache klar für _CUPMATCHWINNER_.</subtitle>
<subtitle condition="_MULTIPLESCORERS_CUPMATCHWINNERN__ = 1 and _CUPET_ = 0 and _CUPPEN_ = 0">_CUPMATCHWINNER_ kommt dank der Tore von _SCORERS_CUPMATCHWINNERN__ weiter.</subtitle>
<subtitle condition="_MULTIPLESCORERS_CUPMATCHWINNERN__ = 0 and _CUPET_ = 0 and _CUPPEN_ = 0">_SCORERS_CUPMATCHWINNERN__ schießt _CUPMATCHWINNER_ eine Runde weiter.</subtitle>
<subtitle condition="_MULTIPLESCORERS_CUPMATCHWINNERN__ = 0 and _CUPET_ = 0 and _CUPPEN_ = 0">_CUPMATCHWINNER_ kommt dank _SCORERS_CUPMATCHWINNERN__ weiter.</subtitle>
<subtitle condition="_GDAGG_ = 0 and _CUPET_ = 0 and _CUPPEN_ = 0">_AT_ Zuschauer halten den Atem an beim spannenden _RE_ im Rückspiel.</subtitle>
<subtitle condition="_GDAGG_ = 0 and _CUPET_ = 0 and _CUPPEN_ = 0">Die beiden Teams schenkten sich nichts in diesen Begegnungen, doch _CUPMATCHWINNER_ hat das bessere Ende für sich.</subtitle>
<subtitle condition="_GDAGG_ = 0 and _CUPET_ = 0 and _CUPPEN_ = 0">_CUPMATCHLOSER_ fehlt ein einziges Tor, um weiterzukommen.</subtitle>
<subtitle condition="_GDAGG_ = 1">Diese Paarung hatte es in sich, doch nach dem _RE_ muss sich _CUPMATCHLOSER_ mit dem Ausscheiden abfinden.</subtitle>
<subtitle condition="_GDAGG_ = 1">_CUPMATCHWINNER_ hält durch gegen _CUPMATCHLOSER_ und kommt denkbar knapp in dei nächste Runde.</subtitle>
<subtitle condition="_CUPET_ = 0 and _CUPPEN_ = 0 and _GDAGG_ < 2">_CUPMATCHWINNER_ kann sich bei _SCORERS_CUPMATCHWINNERN__ fürs Weiterkommen bedanken.</subtitle>
<subtitle condition="_MULTIPLESCORERS_CUPMATCHWINNERN__ = 1 and _CUPET_ = 0 and _CUPPEN_ = 0 and _GDAGG_ < 2">_SCORERS_CUPMATCHWINNERN__ treffen beim knappen Sieg für _CUPMATCHWINNER_.</subtitle>
<subtitle condition="_GDAGG_ > 2">_CUPMATCHWINNER_ war letztlich ungefährdet in diesen Begegnungen und kommt verdient eine Runde weiter.</subtitle>
<subtitle condition="_GDAGG_ > 2">_CUPMATCHLOSER_ ist im Gesamtergebnis chancenlos und fliegt raus.</subtitle>
<subtitle condition="_GDAGG_ > 2">_CUPMATCHLOSER_ hätte das Weiterkommen nicht verdient nach dem _RE_.</subtitle>
<subtitle condition="_GDAGG_ > 2">_CUPMATCHWINNER_ dominierte die beiden Begegnungen und kann weiter auf den Titel hoffen.</subtitle>
</news_article>
</news>