/*
* Seven Kingdoms: Ancient Adversaries
*
* Copyright 1997,1998 Enlight Software Ltd.
*
* 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 2 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 .
*
*/
//Filename : ONEWS3.CPP
//Description : Object news msg generating routines
#ifdef GERMAN
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//--------- Define variable type ----------//
typedef void (News::*NewsFP)();
//-------- Define struct NewsInfo -------//
struct NewsInfo
{
NewsFP news_function_ptr;
char is_major; // whether this is a major news or not
};
//------ Define function pointers array ------//
static NewsInfo news_info_array[] =
{
{ &News::diplomacy, 1 },
{ &News::town_rebel, 1 },
{ &News::migrate, 0 },
{ &News::new_nation, 1 },
{ &News::nation_destroyed, 1 },
{ &News::nation_surrender, 1 },
{ &News::king_die, 1 },
{ &News::new_king, 1 },
{ &News::firm_destroyed, 0 },
{ &News::firm_captured, 0 },
{ &News::town_destroyed, 0 },
{ &News::town_abandoned, 0 },
{ &News::town_surrendered, 0 },
{ &News::monster_king_killed, 0 },
{ &News::monster_firm_destroyed, 0 },
{ &News::scroll_acquired, 1 },
{ &News::monster_gold_acquired, 0 },
{ &News::your_spy_killed, 1 },
{ &News::enemy_spy_killed, 1 },
{ &News::unit_betray, 1 },
{ &News::unit_assassinated, 1 },
{ &News::assassinator_caught, 1 },
{ &News::general_die, 1 },
{ &News::raw_exhaust, 1 },
{ &News::tech_researched, 1 },
{ &News::lightning_damage, 1 },
{ &News::earthquake_damage, 1 },
{ &News::goal_deadline, 1 },
{ &News::weapon_ship_worn_out, 0 },
{ &News::firm_worn_out, 0 },
{ &News::chat_msg, 1 },
{ &News::multi_retire, 1 },
{ &News::multi_quit_game, 1 },
{ &News::multi_save_game, 1 },
{ &News::multi_connection_lost, 1 },
};
//------- Define static variables --------//
static String str;
static char firm_gender(short firmId)
{
switch(firmId)
{
case FIRM_FACTORY:
case FIRM_CAMP:
case FIRM_MINE:
case FIRM_WAR_FACTORY:
return 1;
}
return 0;
}
//------ Begin of function News::msg -----//
//
// Return the msg string of current news.
//
char* News::msg()
{
NewsFP newsFP = news_info_array[id-1].news_function_ptr;
(this->*newsFP)(); // call the corrsponding function to return the news msg
return str;
}
//------- End of function News::msg -----//
//------ Begin of function News::is_major -----//
//
// Whether this is a major news or not.
//
int News::is_major()
{
if( id==NEWS_TOWN_REBEL )
{
//-- only rebellions happening in the player's village are considered as major news --//
return nation_array.player_recno &&
nation_name_id1 == (~nation_array)->nation_name_id;
}
else
{
return news_info_array[id-1].is_major;
}
}
//------- End of function News::is_major -----//
//------ Begin of function News::diplomacy -----//
//
// Diplomatic messages from other nations.
//
// short_para1 = the recno of TalkMsg in talk_res.talk_msg_array.
//
void News::diplomacy()
{
err_when( talk_res.is_talk_msg_deleted(short_para1) );
TalkMsg* talkMsgPtr = talk_res.get_talk_msg(short_para1);
str = talkMsgPtr->msg_str(nation_array.player_recno);
}
//------- End of function News::diplomacy -----//
//------ Begin of function News::town_rebel -----//
//
// Generate a news that a firm is built
//
// nation_name1() - the name of the nation the rebel took place.
//
// short_para1 = the town name id.
// short_para2 = no. of rebels
//
void News::town_rebel()
{
//---------------- Text Format -----------------//
//
// Peasants in in
// is/are rebelling.
//
//----------------------------------------------//
//
// Bauern aus in
// rebellieren. // No more 'is/are', just only: 'rebellieren'.
//
//----------------------------------------------//
err_when( short_para2 < 1 );
str = short_para2;
str += " Bauern aus ";
str += town_res.get_name(short_para1);
str += " in ";
str += nation_name1();
str += " rebellieren.";
}
//------- End of function News::town_rebel -----//
//------ Begin of function News::migrate -------//
//
// nation_name1() - from nation
// nation_name2() - to nation
//
// short_para1 = the town name id. that the worker migrates from
// short_para2 = the town name id. that the worker migrates to
// short_para3 = race id. of the migrated worker/peasant
// short_para4 = no. of people migrated
// short_para5 = the firm id. that the worker works for
//
void News::migrate()
{
//---------------- Text Format -----------------//
//
// A /Peasant has emigrated from your
// village of to in .
//
// A /Peasant has immigrated from
// in to your village of .
//
//----------------------------------------------//
//
// Der /Bauer übersiedelte aus Ihrem
// Dorf nach in .
//
// Der /Bauer übersiedelte aus
// in in Ihr Dorf .
//
//----------------------------------------------//
// BUGHERE : Is correct?
if( short_para4 == 1 )
str = "Der";
else
str = m.format(short_para4);
str += " ";
str += race_res[short_para3]->name;
str += " ";
if( short_para5 )
str += firm_res[short_para5]->worker_title;
else
str += "Bauer";
str += " übersiedelte aus ";
//------------------------------------//
if( nation_array.player_recno && nation_name_id1 == (~nation_array)->nation_name_id ) // from player nation to another nation
{
str += "Ihrem Dorf ";
str += town_res.get_name(short_para1);
str += " nach ";
str += town_res.get_name(short_para2);
if( nation_name_id2 ) // only if it is not an independent town
{
str += " in ";
str += nation_name2();
}
str += ".";
}
else
{
str += town_res.get_name(short_para1);
if( nation_name_id1 )
{
str += " in ";
str += nation_name1();
}
str += " in Ihr Dorf ";
str += town_res.get_name(short_para2);
str += ".";
}
}
//------- End of function News::migrate --------//
//------ Begin of function News::new_nation -----//
//
// king_name1() - name of the king of the new kingdom.
//
void News::new_nation()
{
//---------------- Text Format -----------------//
//
// A new Kingdom has emerged under the leadership of .
//
//----------------------------------------------//
//
// Ein neues Königreich unter der Führung von
// wurde ausgerufen.
//
//----------------------------------------------//
str = "Ein neues Königreich unter der Führung von ";
str += king_name1(1);
str += " wurde ausgerufen.";
}
//------- End of function News::new_nation -----//
//------ Begin of function News::nation_destroyed -----//
//
// nation_name1() - name of the destroyed nation.
//
void News::nation_destroyed()
{
//---------------- Text Format -----------------//
//
// 's Kingdom has been destroyed.
//
//----------------------------------------------//
//
// 's Königreich wurde vernichtet.
//
//----------------------------------------------//
str = nation_name1();
str += " wurde vernichtet.";
}
//------- End of function News::nation_destroyed -----//
//------ Begin of function News::nation_surrender -----//
//
// nation_name1() - name of the surrendering nation.
// nation_name2() - name of the nation to surrender.
//
void News::nation_surrender()
{
//---------------- Text Format -----------------//
//
// 's Kingdom has surrendered to 's Kingdom.
//
// 's Kingdom has surrendered to you.
//
//----------------------------------------------//
//
// 's Königreich kapitulierte vor 's Königreich.
//
// 's Königreich kapitulierte vor Ihnen.
//
//----------------------------------------------//
str = nation_name1();
str += " kapitulierte vor ";
if( nation_array.player_recno && nation_name_id2 == (~nation_array)->nation_name_id )
{
str += "Ihnen.";
}
else
{
str += nation_name2();
str += ".";
}
}
//------- End of function News::nation_surrender -----//
//------ Begin of function News::king_die -----//
//
// king_name1() - the nation whose king has died.
//
void News::king_die()
{
//---------------- Text Format -----------------//
//
// Your King, , has been slain.
//
// OR
//
// King of has been slain.
//
//----------------------------------------------//
//
// Ihr König wurde getötet.
//
// OR
//
// König von wurde getötet.
//
//----------------------------------------------//
if( nation_array.player_recno && nation_name_id1 == (~nation_array)->nation_name_id )
{
str = "Ihr König ";
str += king_name1();
str += " wurde getötet.";
}
else
{
str = "König ";
str += king_name1();
str += " von ";
str += nation_name1();
str += " wurde getötet.";
}
}
//------- End of function News::king_die -----//
//------ Begin of function News::new_king -----//
//
// nation_name1() - name of the nation where there is a new king.
//
// short_para1 - race id. of the new king.
// short_para2 - name id. of the new king.
//
void News::new_king()
{
//---------------- Text Format -----------------//
//
// has ascended the throne as your new King.
//
// OR
//
// has ascended the throne as the new King of
// .
//
//----------------------------------------------//
//
// bestieg als Ihr neuer König den Thron.
//
// OR
//
// bestieg als neuer König von
// den Thron.
//
//----------------------------------------------//
str = race_res[short_para1]->get_name(short_para2);
if( nation_array.player_recno && nation_name_id1 == (~nation_array)->nation_name_id )
{
str += " bestieg als Ihr neuer König den Thron.";
}
else
{
str += " bestieg als neuer König von ";
str += nation_name1();
str += " den Thron.";
}
}
//------- End of function News::new_king -----//
//------ Begin of function News::firm_destroyed -----//
//
// short_para1 - name id. of the firm destroyed.
// short_para2 - id of the town where the firm is located.
// short_para3 - destroyer type: 1 - a nation, 2 - rebels, 3 - Fryhtans.
//
void News::firm_destroyed()
{
//---------------- Text Format -----------------//
//
// Your near has been destroyed by .
// Your near has been destroyed by Rebels.
// Your near has been destroyed by Fryhtans.
//
//----------------------------------------------//
//
// Ihr(e) nahe wurde von zerstört.
// Ihr(e) nahe wurde von Rebellen zerstört.
// Ihr(e) nahe wurde von Morghouls zerstört.
//
//----------------------------------------------//
str = firm_gender(short_para1) ? (char*)"Ihre " : (char*)"Ihr ";
str += firm_res[short_para1]->name;
str += " nahe ";
str += town_res.get_name(short_para2);
str += " wurde";
switch( short_para2 )
{
case DESTROYER_NATION:
str += " von ";
str += nation_name2();
break;
case DESTROYER_REBEL:
str += " von Rebellen";
break;
case DESTROYER_MONSTER:
str += " von Morghouls";
break;
case DESTROYER_UNKNOWN:
break;
}
str += " zerstört.";
}
//------- End of function News::firm_destroyed -----//
//------ Begin of function News::firm_captured -----//
//
// nation_name2() - name of the nation that took over your firm.
//
// short_para1 - id. of the firm took over
// short_para2 - id of the town where the firm is located.
// short_para3 - whether the capturer of the firm is a spy.
//
void News::firm_captured()
{
//---------------- Text Format -----------------//
//
// Your near has been
// captured by .
//
// If the capturer is a spy:
//
// Your near has been
// captured by a spy from .
//
//----------------------------------------------//
//
// Ihr/e nahe wurde von
// erobert.
//
// If the capturer is a spy: // Falls der Eroberer ein Spion ist: (need to be translated?)
//
// Ihr/e nahe wurde von
// einem Spion aus übernommen.
//
//----------------------------------------------//
str = firm_gender(short_para1) ? (char*)"Ihre " : (char*)"Ihr ";
str += firm_res[short_para1]->name;
str += " nahe ";
str += town_res.get_name(short_para2);
str += " wurde von ";
if( short_para3 )
{
str += "einem Spion aus ";
str += nation_name2();
str += " übernommen.";
}
else
{
str += nation_name2();
str += " erobert.";
}
}
//------- End of function News::firm_captured -----//
//------ Begin of function News::town_destroyed -----//
//
// short_para1 - name id. of the town
// short_para2 - destroyer type
//
void News::town_destroyed()
{
//---------------- Text Format -----------------//
//
// Your village of has been destroyed by .
// Your village of has been destroyed by Rebels.
// Your village of has been destroyed by Fryhtans.
//
//----------------------------------------------//
//
// Ihr Dorf wurde von zerstört.
// Ihr Dorf wurde von Rebellen zerstört.
// Ihr Dorf wurde von Morghouls zerstört.
//
//----------------------------------------------//
str = "Ihr Dorf ";
str += town_res.get_name(short_para1);
str += " wurde";
switch( short_para2 )
{
case DESTROYER_NATION:
str += " von ";
str += nation_name2();
break;
case DESTROYER_REBEL:
str += " von Rebellen";
break;
case DESTROYER_MONSTER:
str += " von Morghouls";
break;
case DESTROYER_UNKNOWN:
break;
}
str += " zerstört.";
}
//------- End of function News::town_destroyed -----//
//------ Begin of function News::town_abandoned -----//
//
// short_para1 - name id of the town
//
void News::town_abandoned()
{
//---------------- Text Format -----------------//
//
// Your village of has been abandoned by
// its people.
//
//----------------------------------------------//
//
// Ihr Dorf wurde von seinen Bewohnern
// verlassen.
//
//----------------------------------------------//
str = "Ihr Dort ";
str += town_res.get_name(short_para1);
str += " wurde von seinen Bewohnern verlassen.";
}
//------- End of function News::town_abandoned -----//
//------ Begin of function News::town_surrendered -----//
//
// short_para1 - name id. of the surrendering town.
//
// nation_name1() - name of the nation the town surrenders to.
// nation_name2() - name of the nation of the surrendering town.
//
void News::town_surrendered()
{
//---------------- Text Format -----------------//
//
// The village of in has
// surrendered to you.
//
// The independent village of has
// surrendered to you.
//
// Your village of has surrendered
// to .
//
//----------------------------------------------//
//
// Das Dorf in hat
// vor Ihnen kapituliert.
//
// Das unabhängige Dorf hat vor Ihnen
// kapituliert.
//
// Ihr Dorf hat vor
// kapituliert.
//
//----------------------------------------------//
if( nation_array.player_recno && nation_name_id2 == (~nation_array)->nation_name_id )
{
str = "Ihr Dorf ";
str += town_res.get_name(short_para1);
str += " hat vor ";
str += nation_name1();
str += " kapituliert.";
}
else if( nation_name_id2 )
{
str = "Das Dorf ";
str += town_res.get_name(short_para1);
str += " in ";
str += nation_name2();
str += " hat vor Ihnen kapituliert.";
}
else // nation_name_id2 == 0, it's an independent town
{
str = "Das unabhängige Dorf ";
str += town_res.get_name(short_para1);
str += " hat vor Ihnen kapituliert.";
}
}
//------- End of function News::town_surrendered -----//
//------ Begin of function News::monster_king_killed -----//
//
// short_para1 - monster id.
//
void News::monster_king_killed()
{
//---------------- Text Format -----------------//
//
// An All High has been slain.
//
//----------------------------------------------//
//
// Der König wurde getötet.
//
//----------------------------------------------//
str = "Der ";
str += monster_res[short_para1]->name;
str += " König wurde getötet.";
}
//------- End of function News::monster_king_killed -----//
//------ Begin of function News::monster_firm_destroyed -----//
//
// short_para1 - monster id.
//
void News::monster_firm_destroyed()
{
//---------------- Text Format -----------------//
//
// A Lair has been destroyed.
//
//----------------------------------------------//
//
// Ein Nest wurde zerstört.
//
//----------------------------------------------//
char* nameStr = monster_res[short_para1]->name;
str = "Ein ";
str += nameStr;
str += " Nest wurde zerstört.";
}
//------- End of function News::monster_firm_destroyed -----//
//------ Begin of function News::scroll_acquired -----//
//
// nation_name1() - the nation that has acquired the scroll.
//
// short_para1 = the race id. of the scroll.
//
void News::scroll_acquired()
{
//---------------- Text Format -----------------//
//
// You have acquired the Scroll of Power.
// has acquired the Scroll of Power.
//
//----------------------------------------------//
//
// Sie haben die Schriftrolle der Macht erlangt.
// hat die Schriftrolle der Macht erlangt.
//
//----------------------------------------------//
if( nation_array.player_recno && nation_name_id1 == (~nation_array)->nation_name_id )
{
str = "Sie haben die ";
}
else
{
str = nation_name1();
str += " hat die ";
}
str += race_res[short_para1]->adjective;
str += " Schriftrolle der Macht erlangt.";
}
//------- End of function News::scroll_acquired -----//
//------ Begin of function News::monster_gold_acquired -----//
//
// nation_name1() - the nation that has acquired the monster treasure.
//
// short_para1 = amount of gold.
//
void News::monster_gold_acquired()
{
//---------------- Text Format -----------------//
//
// Your have recovered worth of treasure from the Fryhtans.
//
//----------------------------------------------//
//
// Sie haben einen Schatz in Höhe von von den Morghouls erobert.
//
//----------------------------------------------//
str = "Sie haben einen Schatz in Höhe von ";
str += m.format(short_para1,2);
str += " von den Morghouls erobert.";
}
//------- End of function News::monster_gold_acquired -----//
//------ Begin of function News::your_spy_killed -----//
//
// nation_name1() - your nation.
// nation_name2() - the nation that killed your spy.
//
// short_para1 - firm id. if it's a firm
// 0 if it's a town
// race id if spy place == SPY_MOBILE
// short_para2 - the town id.
// name id if spy place == SPY_MOBILE
// short_para3 - spy place
//
void News::your_spy_killed()
{
//---------------- Text Format -----------------//
//
// Your spy has been exposed and executed on his mission to
// [ in ]. (no nation name for independent town.)
//
// Your spy has been exposed and executed on his mission to
// a near in .
//
// Your spy has been exposed and executed on his mission to
// .
//
//----------------------------------------------//
//
// Ihr Spion wurde in [ in ].
// ertappt und hingerichtet. (no nation name for independent town.) // <<< ... your own remark!
//
// Ihr Spion wurde in nahe in
// ertappt und hingerichtet.
//
// Ihr Spion wurde auf seiner Mission in
// ertappt und hingerichtet.
//
//----------------------------------------------//
if( short_para3 == SPY_FIRM )
{
str = "Ihr Spion wurde in ";
str += firm_res[short_para1]->name;
str += " nahe ";
str += town_res.get_name(short_para2);
if( nation_name_id2 ) // not for independent town.
{
str += " in ";
str += nation_name2();
}
}
else if( short_para3 == SPY_TOWN )
{
str = "Ihr Spion wurde in ";
str += town_res.get_name(short_para2);
if( nation_name_id2 ) // not for independent town.
{
str += " in ";
str += nation_name2();
}
}
else if( short_para3 == SPY_MOBILE )
{
str = "Ihr Spion ";
str += race_res[short_para1]->get_name(short_para2);
str += " wurde auf seiner Mission";
if( nation_name_id2 ) // not for independent town.
{
str += " to ";
str += nation_name2();
}
}
str += " ertappt und hingerichtet.";
}
//------- End of function News::your_spy_killed -----//
//------ Begin of function News::enemy_spy_killed -----//
//
// nation_name1() - your nation.
// nation_name2() - the nation that the spy belongs to.
//
// short_para1 - firm id. if it's a firm
// 0 if it's a town
// short_para2 - town name id. if it's a town
// 0 if it's a firm
// short_para3 - id of the town where the firm is located.
//
void News::enemy_spy_killed()
{
//---------------- Text Format -----------------//
//
// A spy from has been uncovered and executed in your
// near .
//
// A spy from has been uncovered and executed in your
// village of .
//
// Spy from has been uncovered and executed.
//
//----------------------------------------------//
//
// Ein Spion aus wurde entlarvt und in
// nahe hingerichtet.
//
// Ein Spion aus wurde in Ihrem Dorf
// entlarvt und hingerichtet. Friede seiner Asche.
//
// Spion aus wurde entlarvt und hingerichtet.
//
//----------------------------------------------//
if( short_para3==SPY_FIRM || short_para3==SPY_TOWN )
{
str = "Ein Spion aus ";
str += nation_name2();
str += " wurde";
if( short_para3==SPY_FIRM )
{
str += " entlarvt und in ";
str += firm_res[short_para1]->name;
str += " nahe ";
str += town_res.get_name(short_para2);
str += " hingerichtet.";
}
else
{
str += " in Ihrem Dorf ";
str += town_res.get_name(short_para2);
str += " entlarvt und hingerichtet. Friede seiner Asche.";
}
}
else
{
err_when( short_para3 != SPY_MOBILE );
str = "Spion ";
str += race_res[short_para1]->get_name(short_para2);
str += " aus ";
str += nation_name2();
str += " wurde entlarvt und hingerichtet.";
}
}
//------- End of function News::enemy_spy_killed -----//
//------ Begin of function News::unit_betray -----//
//
// Only for mobile units or generals in command base.
//
// nation_name1() - the nation that the unit originally belongs to.
// nation_name2() - the nation that the unit has turned towards.
//
// short_para1 - race id. of the unit
// short_para2 - name id. of the unit
// short_para3 - rank id. of the unit
//
void News::unit_betray()
{
//---------------- Text Format -----------------//
//
// [General] has betrayed you and turned towards
// .
//
// [General] has renounced you and become independent.
//
// [General] of has defected to your
// forces.
//
// Independent unit has joined your forces.
//
//----------------------------------------------//
//
// [General] hat Sie verraten und flüchtete nach
// .
//
// [General] hat Sie verlassen und wurde zum
// Freibürger.
//
// [General] aus ist zu Ihrer Armee
// übergelaufen.
//
// Der Freibürger ist Ihrer Armee beigetreten.
//
//----------------------------------------------//
// BUGHERE : General is German?
if( nation_name_id1 == 0 ) // independent unit joining your force
{
str = "Der Freibürger ";
str += race_res[short_para1]->get_name(short_para2);
str += " ist Ihrer Armee beigetreten.";
return;
}
//------------------------------------//
if( short_para3==RANK_GENERAL )
str = "General ";
else
str = "";
str += race_res[short_para1]->get_name(short_para2);
//---------------------------------//
if( nation_name_id2 == 0 ) // became an independent unit
{
str += " hat Sie verlassen und wurde zum Freibürger.";
}
else
{
if( nation_array.player_recno && nation_name_id1 == (~nation_array)->nation_name_id )
{
str += " hat Sie verraten und flüchtete nach ";
str += nation_name2();
str += ".";
}
else
{
str += " aus ";
str += nation_name1();
str += " ist zu Ihrer Armee übergelaufen.";
}
}
}
//------- End of function News::unit_betray -----//
//------ Begin of function News::general_die -----//
//
// short_para1 - race id. of your general
// short_para2 - name id. of your general
//
void News::general_die()
{
//---------------- Text Format -----------------//
//
// Your general, , has been slain.
//
//----------------------------------------------//
//
// Ihr General wurde getötet. Friede seiner Asche.
//
//----------------------------------------------//
str = "Ihr General ";
str += race_res[short_para1]->get_single_name( (WORD)short_para2 );
str += " wurde getötet. Friede seiner Asche.";
}
//------- End of function News::general_die -----//
//------ Begin of function News::unit_assassinated -----//
//
// short_para1 - race id. of assassinated unit
// short_para2 - name id. of assassinated unit
// short_para3 - rank id. of assassinated unit
// short_para4 - whether the enemy spy has been killed or not.
//
void News::unit_assassinated()
{
//---------------- Text Format -----------------//
//
// Your King, , has been assassinated by an enemy spy.
// Your general, , has been assassinated by an enemy spy.
//
// [The enemy spy has been killed.]
//
//----------------------------------------------//
//
// Ihr König wurde von einem feindlichen Spion ermordet.
// Ihr General wurde von einem feindlichen Spion ermordet.
//
// [Der feindliche Spion wurde liquidiert.]
//
//----------------------------------------------//
if( short_para3 == RANK_KING )
{
str = "Ihr König ";
str += race_res[short_para1]->get_single_name( (WORD)short_para2 );
}
else
{
str = "Ihr General ";
str += race_res[short_para1]->get_single_name( (WORD)short_para2 );
}
str += " wurde von einem feindlichen Spion ermordet.";
if( short_para4 )
str += " Der feindliche Spion wurde liquidiert.";
}
//------- End of function News::unit_assassinated -----//
//------ Begin of function News::assassinator_caught -----//
//
// short_para1 - rank id. of the assassinating target.
//
void News::assassinator_caught()
{
//---------------- Text Format -----------------//
//
// An enemy spy has been killed while attempting
// to assassinate your King/General.
//
//----------------------------------------------//
//
// Ein feindlicher Spion wurde beim Attentatsversuch
// auf Ihren König/General getötet.
//
//----------------------------------------------//
str = "Ein feindlicher Spion wurde beim Attentatsversuch auf Ihren ";
if( short_para1 == RANK_KING )
str += "König getötet.";
else
str += "General getötet.";
}
//------- End of function News::assassinator_caught -----//
//------ Begin of function News::raw_exhaust -----//
//
// short_para1 - raw id.
//
void News::raw_exhaust()
{
//---------------- Text Format -----------------//
//
// Your Mine has exhausted its deposit.
//
//----------------------------------------------//
//
// Der -Vorrat Ihrer -Mine ist erschöpft.
//
//----------------------------------------------//
str = "Der ";
str += raw_res[short_para1]->name;
str += "-Vorrat Ihrer ";
str += raw_res[short_para1]->name;
str += "-Mine ist erschöpft.";
}
//------- End of function News::raw_exhaust -----//
//------ Begin of function News::tech_researched -----//
//
// short_para1 - tech id.
// short_para2 - tech version.
//
void News::tech_researched()
{
//---------------- Text Format -----------------//
//
// Your scientists have finished their
// [Mark ] research.
//
//----------------------------------------------//
//
// Ihre Forscher beendeten erfolgreich die
// [Mark ] -Erforschung.
//
//----------------------------------------------//
str = "Ihre Forscher beendeten erfolgreich die ";
str += tech_res[short_para1]->tech_des();
if( tech_res[short_para1]->max_tech_level > 1 ) // if the tech has more than one level
{
str += " Mark ";
str += m.roman_number(short_para2);
}
str += " -Erforschung.";
}
//------- End of function News::tech_researched -----//
//------ Begin of function News::lightning_damage -----//
//
void News::lightning_damage()
{
//---------------- Text Format -----------------//
//
// Your has been struck and injured/killed by lightning.
//
// Your near has been struck/destroyed by lightning.
//
// Your village has been struck/destroyed by lightning.
//
//----------------------------------------------//
//
// Ihre Einheit wurde vom Blitz getroffen und verletzt/getötet.
//
// Ihr(e) nahe wurde vom Blitz getroffen/zerstört.
//
// Ihr Dorf wurde vom Blitz getroffen/zerstört.
//
//----------------------------------------------//
// str = "Your ";
switch( short_para1 )
{
case NEWS_LOC_UNIT:
// BUGHERE : German translation may not take care of General/King case
str = "Ihre Einheit ";
if( short_para4 == RANK_GENERAL )
str += "General ";
else if( short_para4 == RANK_KING )
str += "König ";
else
str += "";
if( short_para2 > 0 )
str += race_res[short_para2]->get_name((WORD) short_para3);
else
str += unit_res[short_para3]->name;
str += "wurde vom Blitz getroffen und ";
if( short_para5 )
str += "getötet.";
else
str += "verletzt";
break;
case NEWS_LOC_FIRM:
str = firm_gender(short_para2) ? (char*)"Ihre " : (char*)"Ihr ";
str += firm_res[short_para2]->name;
if( short_para3 )
{
str += " nahe ";
str += town_res.get_name(short_para3);
}
str += " wurde vom Blitz ";
if( short_para5 )
str += "getroffen.";
else
str += "zerstört.";
break;
case NEWS_LOC_TOWN:
str = "Ihr Dorf ";
str += town_res.get_name(short_para3);
str += " wurde vom Blitz ";
if( short_para5 )
str += "getroffen.";
else
str += "zerstört.";
break;
default:
err_here();
}
}
//------- End of function News::lightning_damage -----//
//------ Begin of function News::earthquake_damage -----//
//
void News::earthquake_damage()
{
//---------------- Text Format -----------------//
//
// of your units has/have been injured and killed
// in an earthquake.
//
// of your villagers has/have been killed in an earthquake.
//
// of your buildings has/have been damaged and destroyed
// in an earthquake.
//
//----------------------------------------------//
//
// Bei einem Erdbeben wurde/wurden Ihrer Einheiten verletzt und
// getötet. // no more 'has/have' in the second time!
//
// Ihrer Dorfbewohner wurde/wurden bei einem Erdbeben getötet.
//
// Bei einem Erdbeben wurde/wurden Ihrer Gebäude beschädigt
// und zerstört.
//
//----------------------------------------------//
int conjunction = 0;
str = "";
if( short_para1 == 1)
{
str += "Bei einem Erdbeben";
if( short_para2 <= 1)
str += " wurde ";
else
str += " wurden ";
str += short_para2;
str += " Ihrer Einheiten verletzt";
if( short_para3 > 0)
{
str += " und ";
str += short_para3;
str += " getötet";
}
str += ".";
}
else if( short_para1 == 2 )
{
if( short_para2 > 0)
{
str += short_para2;
str += " Ihrer Dorfbewohner";
if( short_para2 <= 1)
str += " wurde ";
else
str += " wurden ";
str += "bei einem Erdbeben getötet.";
}
}
else if( short_para1 == 3)
{
str += "Bei einem Erdbeben ";
if( short_para2 == 1)
str += " wurde ";
else
str += " wurden ";
str += short_para2;
str += " Ihrer Gebäude beschädigt";
if( short_para3 > 0)
{
str += " und ";
str += short_para3;
str += " zerstört";
}
str += ".";
}
else
err_here();
}
//------- End of function News::earthquake_damage -----//
//------ Begin of function News::goal_deadline -----//
//
// Display a warning message as the deadline of the goals approaches.
//
// short_para1 - years left before the deadline.
// short_para2 - months left before the deadline.
//
void News::goal_deadline()
{
//---------------- Text Format -----------------//
//
// Make haste! You have only year[s] and month[s]
// left to achieve your goal.
//
//----------------------------------------------//
//
// Sputen Sie sich! Sie haben nur noch Jahr(e) und Monat(e)
// übrig, um Ihr Ziel zu erreichen!
//
//----------------------------------------------//
str = "Sputen Sie sich! Sie haben nur noch ";
if( short_para1 )
{
str += short_para1;
if( short_para1 > 1 )
str += " Jahre";
else
str += " Jahr";
}
if( short_para1 && short_para2 )
str += " und ";
if( short_para2 )
{
str += short_para2;
if( short_para2 > 1 )
str += " Monate";
else
str += " Monat";
}
str += " übrig, um Ihr Ziel zu erreichen!";
}
//------- End of function News::goal_deadline -----//
//------ Begin of function News::weapon_ship_worn_out -----//
//
// Your weapon or ship worn out and destroyed due to lack of money for
// maintenance.
//
// short_para1 - unit id. of the weapon
// short_para2 - level of the weapon
//
void News::weapon_ship_worn_out()
{
//---------------- Text Format -----------------//
//
// A of yours has broken
// down due to the lack of maintenance funds.
//
//----------------------------------------------//
//
// Ihre ist wegen Mangel an
// Instandhaltungs-Budget kaputt gegangen.
//
//----------------------------------------------//
str = "Ihre ";
str += unit_res[short_para1]->name;
if( short_para2 )
{
str += " ";
str += m.roman_number(short_para2);
}
str += " ist wegen Mangel an Instandhaltungs-Budget kaputt gegangen.";
}
//------- End of function News::weapon_ship_worn_out -----//
//------ Begin of function News::firm_worn_out -----//
//
// short_para1 - id. of the firm destroyed.
// short_para2 - id of the town where the firm is located.
//
void News::firm_worn_out()
{
//---------------- Text Format -----------------//
//
// Your near has fallen into
// disrepair due to the lack of maintenance funds.
//
//----------------------------------------------//
//
// Ihr(e) nahe ist wegen Mangel an
// Instandhaltungs-Budget außer Betrieb.
//
//----------------------------------------------//
str = firm_gender(short_para1) ? (char*)"Ihre " : (char*)"Ihr ";
str += firm_res[short_para1]->name;
str += " nahe ";
str += town_res.get_name(short_para2);
str += " ist wegen Mangel an Instandhaltungs-Budget außer Betrieb.";
}
//------- End of function News::firm_worn_out -----//
//------ Begin of function News::chat_msg -----//
//
// short_para1 - id. of the chat msg in Info::remote_chat_str_array[]
//
// nation_name1() - the nation from which this chat message is sent.
//
void News::chat_msg()
{
str = info.remote_chat_array[short_para1-1].chat_str;
}
//------- End of function News::chat_msg -----//
//------ Begin of function News::multi_retire -----//
//
// This function is called when a human player retires.
//
// nation_name1() - the nation that has retired.
//
void News::multi_retire()
{
//---------------- Text Format -----------------//
//
// has retired and quited the game.
//
//----------------------------------------------//
//
// hat aufgegeben und das Spiel verlassen.
//
//----------------------------------------------//
str = nation_name1();
str += " hat aufgegeben und das Spiel verlassen.";
}
//------- End of function News::multi_retire -----//
//------ Begin of function News::multi_quit_game -----//
//
// This function is called when a human player quits the game.
//
void News::multi_quit_game()
{
//---------------- Text Format -----------------//
//
// has quited the game.
//
//----------------------------------------------//
//
// hat das Spiel verlassen.
//
//----------------------------------------------//
str = nation_name1();
str += " hat das Spiel verlassen.";
}
//------- End of function News::multi_quit_game -----//
//------ Begin of function News::multi_save_game -----//
//
// This function is called when a human player calls for saving the game.
//
void News::multi_save_game()
{
//---------------- Text Format -----------------//
//
// The current game has been saved to .
//
//----------------------------------------------//
//
// Das aktuelle Spiel wurde unter gespeichert.
//
//----------------------------------------------//
str = "Das aktuelle Spiel wurde unter ";
str += remote.save_file_name;
str += " gespeichert.";
}
//------- End of function News::multi_save_game -----//
//------ Begin of function News::multi_connection_lost -----//
//
// This function is called when a human player's connection has been lost.
//
void News::multi_connection_lost()
{
//---------------- Text Format -----------------//
//
// The connectino with has been lost.
//
//----------------------------------------------//
//
// Die Verbindung zu ist verlorengegangen.
//
//----------------------------------------------//
str = "Die Verbindung zu ";
str += nation_name1();
str += " ist verlorengegangen.";
}
//------- End of function News::multi_connection_lost -----//
//------ Begin of function News::nation_name1 -----//
//
char* News::nation_name1()
{
static String str;
if( nation_name_id1 < 0 ) // human player - custom name
str = nation_array.get_human_name(nation_name_id1, 1); // 1-first word of the name only
else
str = race_res[nation_race_id1]->get_single_name( (WORD)nation_name_id1 );
str += "'s Königreich";
//------ add color bar -------//
char colorCodeStr[] = " 0";
colorCodeStr[1] = FIRST_NATION_COLOR_CODE_IN_TEXT + nation_color1;
str += colorCodeStr;
return str;
}
//------- End of function News::nation_name1 -----//
//------ Begin of function News::nation_name2 -----//
//
char* News::nation_name2()
{
static String str;
if( nation_name_id2 < 0 ) // human player - custom name
str = nation_array.get_human_name(nation_name_id2, 1); // 1-first word of the name only
else
str = race_res[nation_race_id2]->get_single_name( (WORD)nation_name_id2 );
str += "'s Königreich";
//------ add color bar -------//
char colorCodeStr[] = " 0";
colorCodeStr[1] = FIRST_NATION_COLOR_CODE_IN_TEXT + nation_color2;
str += colorCodeStr;
return str;
}
//------- End of function News::nation_name2 -----//
//------ Begin of function News::king_name1 -----//
//
// [int] addColor - add color bar at the end of the king name
// (default: 0)
//
char* News::king_name1(int addColor)
{
static String str;
if( nation_name_id1 < 0 ) // human player - custom name
str = nation_array.get_human_name(nation_name_id1);
else
str = race_res[nation_race_id1]->get_name( (WORD)nation_name_id1 );
//------ add color bar -------//
if( addColor )
{
char colorCodeStr[] = " 0";
colorCodeStr[1] = FIRST_NATION_COLOR_CODE_IN_TEXT + nation_color1;
str += colorCodeStr;
}
return str;
}
//------- End of function News::king_name1 -----//
//------ Begin of function News::king_name2 -----//
//
// [int] addColor - add color bar at the end of the king name
// (default: 0)
//
char* News::king_name2(int addColor)
{
static String str;
if( nation_name_id2 < 0 ) // human player - custom name
str = nation_array.get_human_name(nation_name_id2);
else
str = race_res[nation_race_id2]->get_name( (WORD)nation_name_id2 );
//------ add color bar -------//
if( addColor )
{
char colorCodeStr[] = " 0";
colorCodeStr[1] = FIRST_NATION_COLOR_CODE_IN_TEXT + nation_color2;
str += colorCodeStr;
}
return str;
}
//------- End of function News::king_name2 -----//
#endif