/*
* 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 : OTALKENG.CPP
//Description : English version of the talk messages
#if( !defined(GERMAN) && !defined(FRENCH) && !defined(SPANISH) )
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//-------- define static vars --------//
static String str; // these vars don't have to be saved as their are only used by msg_str() for passing vars to other functions
static short viewing_nation_recno;
static char should_disp_reply;
static char disp_second_line;
//------- Begin of function TalkMsg::msg_str --------//
//
// Return the text of this message.
//
// viewingNationRecno = the recno of the nation viewing this message
// [int] dispReply = whether display the reply if there is one
// (default: 1)
// [int] dispSecondLine = whether should display the second line of the
// message (default: 0)
//
char* TalkMsg::msg_str(int viewingNationRecno, int dispReply, int dispSecondLine)
{
viewing_nation_recno = viewingNationRecno;
should_disp_reply = dispReply;
disp_second_line = dispSecondLine;
//-------- compose the message str -------//
switch(talk_id)
{
case TALK_PROPOSE_TRADE_TREATY:
propose_treaty("trade");
break;
case TALK_PROPOSE_FRIENDLY_TREATY:
propose_treaty("friendly");
break;
case TALK_PROPOSE_ALLIANCE_TREATY:
propose_treaty("alliance");
break;
case TALK_END_TRADE_TREATY:
end_treaty("trade");
break;
case TALK_END_FRIENDLY_TREATY:
end_treaty("friendly");
break;
case TALK_END_ALLIANCE_TREATY:
end_treaty("alliance");
break;
case TALK_REQUEST_MILITARY_AID:
request_military_aid();
break;
case TALK_REQUEST_TRADE_EMBARGO:
request_trade_embargo();
break;
case TALK_REQUEST_CEASE_WAR:
request_cease_war();
break;
case TALK_REQUEST_DECLARE_WAR:
request_declare_war();
break;
case TALK_REQUEST_BUY_FOOD:
request_buy_food();
break;
case TALK_DECLARE_WAR:
declare_war();
break;
case TALK_GIVE_TRIBUTE:
give_tribute("tribute");
break;
case TALK_DEMAND_TRIBUTE:
demand_tribute(0); // 1-is tribute, not aid
break;
case TALK_GIVE_AID:
give_tribute("aid");
break;
case TALK_DEMAND_AID:
demand_tribute(1); // 1-is aid, not tribute
break;
case TALK_GIVE_TECH:
give_tech();
break;
case TALK_DEMAND_TECH:
demand_tech();
break;
case TALK_REQUEST_SURRENDER:
request_surrender();
break;
case TALK_SURRENDER:
surrender();
break;
default:
err_here();
}
return str;
}
//-------- End of function TalkMsg::msg_str ---------//
//----- Begin of function TalkMsg::propose_treaty ------//
//
// talk_para1 - duration of the treaty (no. of years).
//
void TalkMsg::propose_treaty(char* treatyTypeStr)
{
//---------------------------------------------//
//
// Send:
//
// 's Kingdom proposes a/an friendly/alliance treaty to you.
// You propose a/an friendly/alliance treaty to 's Kingdom.
//
// Reply:
//
// 's Kingdom accepts/rejects your proposed
// friendly/alliance treaty.
//
// You accept/reject the friendly/alliance treaty
// proposed by 's Kingdom.
//
//---------------------------------------------//
String treatyStr;
char* articleStr;
if( treatyTypeStr[0] == 'a' )
articleStr = "an ";
else
articleStr = "a ";
treatyStr = treatyTypeStr;
treatyStr += " treaty ";
//--------------------------------------//
if( reply_type == REPLY_WAITING || !should_disp_reply )
{
if( viewing_nation_recno == from_nation_recno )
{
str = "You propose ";
str += articleStr;
str += treatyStr;
str += " to ";
str += to_nation_name();
str += ".";
}
else
{
str = from_nation_name();
str += " proposes ";
str += articleStr;
str += treatyStr;
str += " to you.";
}
}
else
{
if( viewing_nation_recno == from_nation_recno )
{
str = to_nation_name();
if( reply_type == REPLY_ACCEPT )
str += " accepts your proposed ";
else
str += " rejects your proposed ";
str += treatyStr;
str += ".";
}
else
{
if( reply_type == REPLY_ACCEPT )
str = "You accept the ";
else
str = "You reject the ";
str += treatyStr;
str += " proposed by ";
str += from_nation_name();
str += ".";
}
}
}
//------- End of function TalkMsg::propose_treaty ------//
//----- Begin of function TalkMsg::end_treaty ------//
//
// talk_para1 - treaty type, NATION_FRIENDLY or NATION_ALLIANCE.
//
void TalkMsg::end_treaty(char* treatyTypeStr)
{
//---------------------------------------------//
//
// Send:
// 's Kingdom terminates its friendly/alliance treaty with you.
// You terminate your friendly/alliance treaty with 's Kingdom.
//
//---------------------------------------------//
if( viewing_nation_recno == from_nation_recno )
{
str = "You terminate your ";
str += treatyTypeStr;
str += " treaty with ";
str += to_nation_name();
str += ".";
}
else
{
str = from_nation_name();
str += " terminates its ";
str += treatyTypeStr;
str += " treaty with you.";
}
}
//------- End of function TalkMsg::end_treaty ------//
//----- Begin of function TalkMsg::request_cease_war ------//
//
void TalkMsg::request_cease_war()
{
//---------------------------------------------//
//
// Send:
// 's Kingdom requests a cease-fire.
// You request a cease-fire with 's Kingdom.
//
// Reply:
// 's Kingdom agrees to a cease-fire.
// 's Kingdom refuses a cease-fire.
// You agree to a cease-fire with 's Kingdom.
// You refuse a cease-fire with 's Kingdom.
//
//---------------------------------------------//
if( reply_type == REPLY_WAITING || !should_disp_reply )
{
if( viewing_nation_recno == from_nation_recno )
{
str = "You request a cease-fire with ";
str += to_nation_name();
str += ".";
}
else
{
str = from_nation_name();
str += " requests a cease-fire.";
}
}
else
{
if( viewing_nation_recno == from_nation_recno )
{
str = to_nation_name();
if( reply_type == REPLY_ACCEPT )
str += " agrees to";
else
str += " refuses";
str += " a cease-fire.";
}
else
{
if( reply_type == REPLY_ACCEPT )
str = "You agree to";
else
str = "You refuse";
str += " a cease-fire with ";
str += from_nation_name();
}
}
}
//------- End of function TalkMsg::request_cease_war ------//
//----- Begin of function TalkMsg::request_declare_war ------//
//
// talk_para1 - the recno of the nation to declare war with.
//
void TalkMsg::request_declare_war()
{
//---------------------------------------------//
//
// Send:
// 's Kingdom requests that you declare war on 's Kingdom.
// You request 's Kingdom to declare war on 's Kingdom.
//
// Reply:
// 's Kingdom agrees/refuses to declare war on 's Kingdom.
// You agree/refuse to declare war on 's Kingdom.
//
//---------------------------------------------//
if( reply_type == REPLY_WAITING || !should_disp_reply )
{
if( viewing_nation_recno == from_nation_recno )
{
str = "You request ";
str += to_nation_name();
str += " to";
}
else
{
str = from_nation_name();
str += " requests that you";
}
str += " declare war on ";
str += nation_array[talk_para1]->nation_name();
str += nation_color_code_str(talk_para1);
str += ".";
}
else
{
if( viewing_nation_recno == from_nation_recno )
{
str = to_nation_name();
if( reply_type == REPLY_ACCEPT )
str += " agrees";
else
str += " refuses";
}
else
{
if( reply_type == REPLY_ACCEPT )
str = "You agree";
else
str = "You refuse";
}
str += " to declare war on ";
str += nation_array[talk_para1]->nation_name();
str += nation_color_code_str(talk_para1);
str += ".";
}
}
//------- End of function TalkMsg::request_declare_war ------//
//----- Begin of function TalkMsg::request_buy_food ------//
//
// talk_para1 - the qty of food the nation wants to buy.
// talk_para2 - price offered for 10 qty of food.
//
void TalkMsg::request_buy_food()
{
//---- display the second line in the reply question ----//
//
// 's Kingdom offers $10 for 10 units of food.
//
//-------------------------------------------------------//
if( disp_second_line )
{
str = from_nation_name();
str += " offers ";
str += m.format(talk_para2,2);
str += " for 10 units of food.";
return;
}
//---------------------------------------------//
//
// Send:
// 's Kingdom requests to purchase
// units of food from you.
//
// You request to purchase units of food
// from 's Kingdom.
//
// Reply:
// 's Kingdom agrees/refuses to sell units
// of food to you.
//
// You agree/refuse to sell units of food to
// 's Kingdom.
//
//---------------------------------------------//
if( reply_type == REPLY_WAITING || !should_disp_reply )
{
if( viewing_nation_recno == from_nation_recno )
{
str = "You request to purchase ";
str += talk_para1;
str += " units of food from ";
str += to_nation_name();
str += ".";
}
else
{
str = from_nation_name();
str += " requests to purchase ";
str += talk_para1;
str += " units of food from you.";
}
}
else
{
if( viewing_nation_recno == from_nation_recno )
{
str = to_nation_name();
if( reply_type == REPLY_ACCEPT )
str += " agrees";
else
str += " refuses";
str += " to sell ";
str += talk_para1;
str += " units of food to you.";
}
else
{
if( reply_type == REPLY_ACCEPT )
str = "You agree";
else
str = "You refuse";
str += " to sell ";
str += talk_para1;
str += " units of food to ";
str += from_nation_name();
str += ".";
}
}
}
//------- End of function TalkMsg::request_buy_food ------//
//----- Begin of function TalkMsg::declare_war ------//
//
void TalkMsg::declare_war()
{
//---------------------------------------------//
//
// Send:
// 's Kingdom declares war on you.
// You declare war on 's Kingdom.
//
//---------------------------------------------//
if( viewing_nation_recno == from_nation_recno )
{
str = "You declare war on ";
str += to_nation_name();
str += ".";
}
else
{
str = from_nation_name();
str += " declares war on you.";
}
}
//------- End of function TalkMsg::declare_war ------//
//----- Begin of function TalkMsg::give_tribute ------//
//
// tributeStr - either "tribute" or "aid".
//
// talk_para1 - amount of the tribute.
//
void TalkMsg::give_tribute(char* tributeStr)
{
//---------------------------------------------//
//
// Send:
// 's Kingdom offers you <$999> in aid/tribute.
// You offer 's Kingdom <$999> in aid/tribute.
//
// Reply:
// 's Kingdom accepts/rejects your aid/tribute of <$999>.
// You accept/reject the <$999> in aid/tribute from 's Kingdom.
//
//---------------------------------------------//
if( reply_type == REPLY_WAITING || !should_disp_reply )
{
if( viewing_nation_recno == from_nation_recno )
{
str = "You offer ";
str += to_nation_name();
str += " ";
str += m.format(talk_para1, 2);
str += " in ";
str += tributeStr;
str += ".";
}
else
{
str = from_nation_name();
str += " offers you ";
str += m.format(talk_para1, 2);
str += " in ";
str += tributeStr;
str += ".";
}
}
else
{
if( viewing_nation_recno == from_nation_recno )
{
str = to_nation_name();
if( reply_type == REPLY_ACCEPT )
str += " accepts your ";
else
str += " rejects your ";
str += tributeStr;
str += " of ";
str += m.format(talk_para1, 2);
str += ".";
}
else
{
if( reply_type == REPLY_ACCEPT )
str = "You accept the ";
else
str = "You reject the ";
str += m.format(talk_para1, 2);
str += " in ";
str += tributeStr;
str += " from ";
str += from_nation_name();
str += ".";
}
}
}
//------- End of function TalkMsg::give_tribute ------//
//----- Begin of function TalkMsg::demand_tribute ------//
//
// isAid - 1 if it's a aid, 0 if it's a tribute.
//
// talk_para1 - the amount of the tribute.
//
void TalkMsg::demand_tribute(int isAid)
{
//---------------------------------------------//
//
// Send:
// 's Kingdom requests/demands in aid/tribute
// from you.
//
// You request/demand in aid/tribute from
// 's Kingdom.
//
// Reply:
// 's Kingdom agrees/refuses to give/pay you
// in aid/tribute.
//
// You agree/refuse to give/pay 's Kingdom
// in aid/tribute.
//
//---------------------------------------------//
char* aidStr;
if( isAid )
aidStr = "aid";
else
aidStr = "tribute";
if( reply_type == REPLY_WAITING || !should_disp_reply )
{
if( viewing_nation_recno == from_nation_recno )
{
if( isAid )
str = "You request ";
else
str = "You demand ";
str += m.format(talk_para1,2);
str += " in ";
str += aidStr;
str += " from ";
str += to_nation_name();
str += ".";
}
else
{
str = from_nation_name();
if( isAid )
str += " requests ";
else
str += " demands ";
str += m.format(talk_para1,2);
str += " in ";
str += aidStr;
str += " from you.";
}
}
else
{
if( viewing_nation_recno == from_nation_recno )
{
str = to_nation_name();
if( reply_type == REPLY_ACCEPT )
str += " agrees";
else
str += " refuses";
if( isAid )
str += " to give you ";
else
str += " to pay you ";
}
else
{
if( reply_type == REPLY_ACCEPT )
str = "You agree";
else
str = "You refuse";
if( isAid )
str += " to give ";
else
str += " to pay ";
str += from_nation_name();
str += " ";
}
str += m.format(talk_para1,2);
str += " in ";
str += aidStr;
str += ".";
}
}
//------- End of function TalkMsg::demand_tribute ------//
//----- Begin of function TalkMsg::give_tech ------//
//
// talk_para1 - id. of the tech given.
// talk_para2 - version of the tech.
//
void TalkMsg::give_tech()
{
//---------------------------------------------//
//
// Send:
// 's Kingdom offers technology to you.
//
// You offer technology to 's Kingdom.
//
// Reply:
// 's Kingdom accepts/rejects your gift of
// technology.
//
// You accept/reject the gift of technology
// from 's Kingdom.
//
//---------------------------------------------//
if( reply_type == REPLY_WAITING || !should_disp_reply )
{
if( viewing_nation_recno == from_nation_recno )
{
str = "You offer ";
str += tech_res[talk_para1]->tech_des();
if( talk_para2 ) // Ships do not have different versions
{
str += " ";
str += m.roman_number(talk_para2);
}
str += " technology to ";
str += to_nation_name();
str += ".";
}
else
{
str = from_nation_name();
str += " offers ";
str += tech_res[talk_para1]->tech_des();
if( talk_para2 ) // Ships do not have different versions
{
str += " ";
str += m.roman_number(talk_para2);
}
str += " technology to you.";
}
}
else
{
if( viewing_nation_recno == from_nation_recno )
{
str = to_nation_name();
if( reply_type == REPLY_ACCEPT )
str += " accepts your gift of ";
else
str += " rejects your gift of ";
str += tech_res[talk_para1]->tech_des();
if( talk_para2 ) // Ships do not have different versions
{
str += " ";
str += m.roman_number(talk_para2);
}
str += " technology.";
}
else
{
if( reply_type == REPLY_ACCEPT )
str = "You accept the gift of ";
else
str = "You reject the gift of ";
str += tech_res[talk_para1]->tech_des();
if( talk_para2 ) // Ships do not have different versions
{
str += " ";
str += m.roman_number(talk_para2);
}
str += " technology from ";
str += from_nation_name();
str += ".";
}
}
}
//------- End of function TalkMsg::give_tech ------//
//----- Begin of function TalkMsg::demand_tech ------//
//
// Demand for the latest version of the technology.
//
// talk_para1 - id. of the tech demanded.
// talk_para2 - version of the tech if the nation agrees to transfer
// technology.
//
void TalkMsg::demand_tech()
{
//---------------------------------------------//
//
// Send:
// 's Kingdom demands/requests the latest
// technology from you.
//
// You demand/request the latest technology from
// 's Kingdom.
//
// Reply:
// 's Kingdom agrees/refuses to transfer its latest
// technology to you.
//
// You agree/refuse to transfer your technology to
// 's Kingdom.
//
//---------------------------------------------//
char* requestStr;
if( nation_array[from_nation_recno]->get_relation_status(to_nation_recno)
>= NATION_FRIENDLY )
{
requestStr = "request";
}
else
{
requestStr = "demand";
}
//------------------------------------------//
if( reply_type == REPLY_WAITING || !should_disp_reply )
{
if( viewing_nation_recno == from_nation_recno )
{
str = "You ";
str += requestStr;
str += " the latest ";
str += tech_res[talk_para1]->tech_des();
str += " technology from ";
str += to_nation_name();
str += ".";
}
else
{
str = from_nation_name();
str += " ";
str += requestStr;
str += "s the latest ";
str += tech_res[talk_para1]->tech_des();
str += " technology from you.";
}
}
else
{
if( viewing_nation_recno == from_nation_recno )
{
str = to_nation_name();
if( reply_type == REPLY_ACCEPT )
str += " agrees";
else
str += " refuses";
str += " to transfer its latest ";
str += tech_res[talk_para1]->tech_des();
str += " technology to you.";
}
else
{
if( reply_type == REPLY_ACCEPT )
str = "You agree";
else
str = "You refuse";
str += " to transfer your latest ";
str += tech_res[talk_para1]->tech_des();
str += " technology to ";
str += from_nation_name();
str += ".";
}
}
}
//------- End of function TalkMsg::demand_tech ------//
//----- Begin of function TalkMsg::request_military_aid ------//
//
void TalkMsg::request_military_aid()
{
//---------------------------------------------//
//
// Send:
// 's Kingdom requests immediate military aid from you.
// You request immediate military aid from 's Kingdom.
//
// Reply:
// 's Kingdom agrees to immediately send your requested
// military aid.
// 's Kingdom denies you your requested military aid.
//
// You agree to immediately send military aid to 's Kingdom.
// You refuse to send military aid to 's Kingdom.
//
//---------------------------------------------//
if( reply_type == REPLY_WAITING || !should_disp_reply )
{
if( viewing_nation_recno == from_nation_recno )
{
str = "You request immediate military aid from ";
str += to_nation_name();
str += ".";
}
else
{
str = from_nation_name();
str += " requests immediate military aid from you.";
}
}
else
{
if( viewing_nation_recno == from_nation_recno )
{
str = to_nation_name();
if( reply_type == REPLY_ACCEPT )
str += " agrees to immediately send your requested military aid.";
else
str += " denies you your requested military aid.";
}
else
{
if( reply_type == REPLY_ACCEPT )
str = "You agree to immediately send military aid to ";
else
str = "You refuse to send military aid to ";
str += from_nation_name();
str += ".";
}
}
}
//------- End of function TalkMsg::request_military_aid ------//
//----- Begin of function TalkMsg::request_trade_embargo ------//
//
// talk_para1 - the nation to have a trade embargo on.
//
void TalkMsg::request_trade_embargo()
{
//---------------------------------------------//
//
// Send:
// 's Kingdom requests you to join an embargo on trade with
// 's Kingdom.
//
// You request 's Kingdom to join an embargo on trade with
// 's Kingdom.
//
// Reply:
// 's Kingdom agrees/refuses to join an embargo on trade
// with 's Kingdom.
//
// You agree/refuse to join an embargo on trade with 's Kingdom
// as requested by 's Kingdom.
//
//---------------------------------------------//
if( reply_type == REPLY_WAITING || !should_disp_reply )
{
if( viewing_nation_recno == from_nation_recno )
{
str = "You request ";
str += to_nation_name();
}
else
{
str = from_nation_name();
str += " requests you";
}
str += " to join an embargo on trade with ";
str += nation_array[talk_para1]->nation_name();
str += nation_color_code_str(talk_para1);
str += ".";
}
else
{
if( viewing_nation_recno == from_nation_recno )
{
str = to_nation_name();
if( reply_type == REPLY_ACCEPT )
str += " agrees";
else
str += " refuses";
str += " to join an embargo on trade with ";
str += nation_array[talk_para1]->nation_name();
str += nation_color_code_str(talk_para1);
str += ".";
}
else
{
if( reply_type == REPLY_ACCEPT )
str = "You agree";
else
str = "You refuse";
str += " to join an embargo on trade with ";
str += nation_array[talk_para1]->nation_name();
str += nation_color_code_str(talk_para1);
str += " as requested by ";
str += from_nation_name();
str += ".";
}
}
}
//------- End of function TalkMsg::request_trade_embargo ------//
//----- Begin of function TalkMsg::request_surrender ------//
//
void TalkMsg::request_surrender()
{
//---------------------------------------------//
//
// Send:
//
// To unite our two Kingdoms under his rule, King
// offers for your throne.
//
// You offer for the throne of 's
// Kingdom.
//
// Reply:
//
// King refuses to dishonor himself by
// selling his throne!
//
// King agrees to take your money in
// exchange for his throne.
//
// You refuse to dishonor yourself by selling your
// throne to 's kingdom.
//
//---------------------------------------------//
if( reply_type == REPLY_WAITING || !should_disp_reply )
{
if( viewing_nation_recno == from_nation_recno )
{
str = "You offer ";
str += talk_para1*10; // *10 to restore its original value.
str += " for the throne of ";
str += to_nation_name();
str += ".";
}
else
{
str = "To unite our two Kingdoms under his rule, ";
str += from_king_name();
str += " offers ";
str += talk_para1*10; // *10 to restore its original value.
str += " for your throne.";
}
}
else
{
if( viewing_nation_recno == from_nation_recno )
{
str = to_king_name();
if( reply_type == REPLY_ACCEPT )
str += " agrees to take your money in exchange for his throne.";
else
str += " refuses to dishonor himself by selling his throne!";
}
else
{
if( reply_type == REPLY_ACCEPT )
{
str = "You agree to take the money in exchange for your throne.";
}
else
{
str = "You refuse to dishonor yourself by selling your throne to ";
str += from_nation_name();
str += ".";
}
}
}
}
//------- End of function TalkMsg::request_surrender ------//
//----- Begin of function TalkMsg::surrender ------//
//
void TalkMsg::surrender()
{
//---------------------------------------------//
//
// Send:
// 's Kingdom offerrrendered to you.
// You have surrendered to 's Kingdom.
//
//---------------------------------------------//
if( viewing_nation_recno == from_nation_recno )
{
str = "You have surrendered to ";
str += to_nation_name();
str += ".";
}
else
{
str = from_nation_name();
str += " has surrendered to you.";
}
}
//------- End of function TalkMsg::surrender ------//
#endif