(svn r17951) -Codechange: simplify making the popup list, remove arbirary limitations and unused code/strings.

pull/155/head
rubidium 15 years ago
parent c2f0845b92
commit 8611df32f2

@ -1620,7 +1620,6 @@ STR_NETWORK_COMPANY_LIST_CLIENT_LIST :{WHITE}Klient L
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nuwe Maatskapy
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(geen)
STR_NETWORK_CLIENTLIST_KICK :Skop
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Gee geld
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Praat met almal

@ -1647,7 +1647,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE} شاه
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE} شركة جديدة
# Network client list
STR_NETWORK_CLIENTLIST_NONE :بدون
STR_NETWORK_CLIENTLIST_KICK :اطرد
STR_NETWORK_CLIENTLIST_GIVE_MONEY :اعط اموال
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :تحدث مع الكل

@ -1650,7 +1650,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Assistir
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nova Companhia
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Nenhum -
STR_NETWORK_CLIENTLIST_KICK :Banir
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Dar dinheiro
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Falar com todos

@ -1634,7 +1634,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Набл
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Нова фирма
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(никой)
STR_NETWORK_CLIENTLIST_KICK :Изгони
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Дай пари
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Кажи на всички

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Espectad
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nova companyia
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Cap -
STR_NETWORK_CLIENTLIST_KICK :Breu
STR_NETWORK_CLIENTLIST_BAN :Prohibit
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Entrega diners

@ -1705,7 +1705,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Promatra
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nova tvrtka
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(nitko)
STR_NETWORK_CLIENTLIST_KICK :Izbaci
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Daj novac
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Razgovaraj sa svima

@ -1712,7 +1712,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Pozorova
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nová společnost
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(nikdo)
STR_NETWORK_CLIENTLIST_KICK :Vyhodit
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Darovat peníze
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Napsat všem

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Tilslut
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nyt firma
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Ingen -
STR_NETWORK_CLIENTLIST_KICK :Smid ud
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Giv penge
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Tal til alle

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Kijk toe
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nieuw bedrijf
# Network client list
STR_NETWORK_CLIENTLIST_NONE :Geen
STR_NETWORK_CLIENTLIST_KICK :Schop uit het spel
STR_NETWORK_CLIENTLIST_BAN :Bannen
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Geef geld

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Spectate
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}New company
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- None -
STR_NETWORK_CLIENTLIST_KICK :Kick
STR_NETWORK_CLIENTLIST_BAN :Ban
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Give money

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Spectate
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}New company
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- None -
STR_NETWORK_CLIENTLIST_KICK :Kick
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Give money
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Speak to all

@ -1599,7 +1599,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Spekti
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nova Kompanio
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(neniu)
STR_NETWORK_CLIENTLIST_KICK :Forbatu
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Donu monon
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Parolu al ĉiuj

@ -1704,7 +1704,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Jälgi
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Uus Ettevõte
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(pole)
STR_NETWORK_CLIENTLIST_KICK :Viska välja
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Anna raha
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Räägi kõigiga

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Katsele
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Uusi Yhtiö
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Ei mitään -
STR_NETWORK_CLIENTLIST_KICK :Potkaise
STR_NETWORK_CLIENTLIST_BAN :Kiellä
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Anna rahaa

@ -1650,7 +1650,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Spectate
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nouvelle compagnie
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Aucun -
STR_NETWORK_CLIENTLIST_KICK :Exclure
STR_NETWORK_CLIENTLIST_BAN :Bannir
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Donner de l'argent

@ -1621,7 +1621,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Observar
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nova Compañía
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(ningún)
STR_NETWORK_CLIENTLIST_KICK :Patear
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Dar diñeiro
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Falar a todos

@ -1650,7 +1650,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Zuschaue
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Neue Firma
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Keine -
STR_NETWORK_CLIENTLIST_KICK :Hinauswerfen
STR_NETWORK_CLIENTLIST_BAN :Sperren
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Geld schenken

@ -1650,7 +1650,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Παρα
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Νεα εταιρία
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Κανείς -
STR_NETWORK_CLIENTLIST_KICK :Εκδίωξη
STR_NETWORK_CLIENTLIST_BAN :Εκδίωξη
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Δώστε χρήματα

@ -1650,7 +1650,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}צפה
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}חברה חדשה
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- כלום -
STR_NETWORK_CLIENTLIST_KICK :בעט
STR_NETWORK_CLIENTLIST_GIVE_MONEY :נתן כסף
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :דבר לכולם

@ -1683,7 +1683,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Megfigye
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Új vállalat
# Network client list
STR_NETWORK_CLIENTLIST_NONE :---
STR_NETWORK_CLIENTLIST_KICK :Kirúgás
STR_NETWORK_CLIENTLIST_BAN :Kitiltás
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Pénz adományozása

@ -1641,7 +1641,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Fylgjast
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nýtt fyrirtæki
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(ekkert)
STR_NETWORK_CLIENTLIST_KICK :Sparka
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Gefa pening
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Tala við alla

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Menonton
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Buat Perusahaan
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- tidak ada -
STR_NETWORK_CLIENTLIST_KICK :Usir
STR_NETWORK_CLIENTLIST_BAN :Larangan
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Kirim uang

@ -1651,7 +1651,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Diventa
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nuova compagnia
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Nessuno -
STR_NETWORK_CLIENTLIST_KICK :Espelli
STR_NETWORK_CLIENTLIST_BAN :Bandisci
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Dona denaro

@ -1610,7 +1610,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}傍観
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}新会社
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(なし)
STR_NETWORK_CLIENTLIST_KICK :蹴る
STR_NETWORK_CLIENTLIST_GIVE_MONEY :送金
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :全員へ発言

@ -1650,7 +1650,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}관전
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}새 회사
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(없음)
STR_NETWORK_CLIENTLIST_KICK :추방
STR_NETWORK_CLIENTLIST_GIVE_MONEY :돈 보내기
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :모두에게 말하기

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Skatīt
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Jauna kompānija
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(neviens)
STR_NETWORK_CLIENTLIST_KICK :Izmest
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Iedot naudu
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Runāt ar visiem

@ -1669,7 +1669,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Stebėti
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nauja kompanija
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(nėra)
STR_NETWORK_CLIENTLIST_KICK :Išmesti (Kick)
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Duoti pinigų
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Sakyti visiems

@ -1637,7 +1637,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Nokucken
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nei Firma
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(keng)
STR_NETWORK_CLIENTLIST_KICK :Kick
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Suen ginn
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Jidderengem soen

@ -1646,7 +1646,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Vær til
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nytt firma
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(ingen)
STR_NETWORK_CLIENTLIST_KICK :Kast ut
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Gi penger
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Snakk til alle

@ -1621,7 +1621,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Vær til
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nytt firma
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(ingen)
STR_NETWORK_CLIENTLIST_KICK :Kast ut
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Gje pengar
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Snakk til alle

@ -2029,7 +2029,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Obserwuj
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nowe przedsiębiorstwo
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(brak)
STR_NETWORK_CLIENTLIST_KICK :Wyrzuć
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Przekazanie pieniędzy
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Mów do wszystkich

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Assistir
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nova empresa
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Nenhum -
STR_NETWORK_CLIENTLIST_KICK :Banir
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Dar dinheiro
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Falar com todos

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Observă
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Companie nouă
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Nici unul -
STR_NETWORK_CLIENTLIST_KICK :Kick
STR_NETWORK_CLIENTLIST_BAN :Interzice acces
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Donează bani

@ -1803,7 +1803,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Набл
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Новая компания
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Нет -
STR_NETWORK_CLIENTLIST_KICK :Выкинуть
STR_NETWORK_CLIENTLIST_BAN :Бан
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Передать денег

@ -1834,7 +1834,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Praćenj
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Novo preduzeće
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Prazno -
STR_NETWORK_CLIENTLIST_KICK :Izbaci
STR_NETWORK_CLIENTLIST_BAN :Zabrani pristup
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Daj novac

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}旁观
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}新公司
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(没有)
STR_NETWORK_CLIENTLIST_KICK :踢出
STR_NETWORK_CLIENTLIST_GIVE_MONEY :送钱
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :向全体人广播

@ -1716,7 +1716,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Pozorova
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nová spoločnosť
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(nikto)
STR_NETWORK_CLIENTLIST_KICK :Vyhodit
STR_NETWORK_CLIENTLIST_BAN :Ban
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Previest peniaze

@ -1682,7 +1682,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Opazuj
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Novo podjetje
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(brez)
STR_NETWORK_CLIENTLIST_KICK :Brcni
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Daj denar
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Pogovor vsem

@ -1650,7 +1650,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Presenci
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nueva compañía
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Ninguno -
STR_NETWORK_CLIENTLIST_KICK :Expulsar
STR_NETWORK_CLIENTLIST_BAN :Banear
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Dar dinero

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Åskåda
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Nytt företag
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- Inga -
STR_NETWORK_CLIENTLIST_KICK :Kasta ut
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Ge pengar
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Prata med alla

@ -1649,7 +1649,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}旁觀
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}新公司
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- 無 -
STR_NETWORK_CLIENTLIST_KICK :踢除
STR_NETWORK_CLIENTLIST_BAN :封鎖
STR_NETWORK_CLIENTLIST_GIVE_MONEY :給錢

@ -1650,7 +1650,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Gözleml
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Yeni Şirket
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(yok)
STR_NETWORK_CLIENTLIST_KICK :At
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Para ver
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Herkesle konuş

@ -1774,7 +1774,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Спос
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Нова компанія
# Network client list
STR_NETWORK_CLIENTLIST_NONE :- немає -
STR_NETWORK_CLIENTLIST_KICK :Відключити гравця
STR_NETWORK_CLIENTLIST_BAN :Бан
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Дати грошей

@ -1640,7 +1640,6 @@ STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Gwylio
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Cwmni Newydd
# Network client list
STR_NETWORK_CLIENTLIST_NONE :(dim)
STR_NETWORK_CLIENTLIST_KICK :Cicio
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Rhoi arian
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Siarad â phawb

@ -1757,13 +1757,6 @@ extern void DrawCompanyIcon(CompanyID cid, int x, int y);
/* Every action must be of this form */
typedef void ClientList_Action_Proc(byte client_no);
/* Max 10 actions per client */
#define MAX_CLIENTLIST_ACTION 10
enum {
CLNWND_OFFSET = 16,
};
static const Widget _client_list_popup_widgets[] = {
{ WWT_PANEL, RESIZE_NONE, COLOUR_GREY, 0, 99, 0, 0, 0, STR_NULL},
{ WIDGETS_END},
@ -1831,67 +1824,60 @@ static void ClientList_SpeakToAll(byte client_no)
ShowNetworkChatQueryWindow(DESTTYPE_BROADCAST, 0);
}
static void ClientList_None(byte client_no)
{
/* No action ;) */
}
/** Popup selection window to chose an action to perform */
struct NetworkClientListPopupWindow : Window {
int sel_index;
/** Container for actions that can be executed. */
struct ClientListAction {
StringID name; ///< Name of the action to execute
ClientList_Action_Proc *proc; ///< Action to execute
};
uint sel_index;
int client_no;
char action[MAX_CLIENTLIST_ACTION][50];
ClientList_Action_Proc *proc[MAX_CLIENTLIST_ACTION];
SmallVector<ClientListAction, 2> actions; ///< Actions to execute
/**
* Add an action to the list of actions to execute.
* @param name the name of the action
* @param proc the procedure to execute for the action
*/
inline void AddAction(StringID name, ClientList_Action_Proc *proc)
{
ClientListAction *action = this->actions.Append();
action->name = name;
action->proc = proc;
}
NetworkClientListPopupWindow(int x, int y, const Widget *widgets, int client_no) :
Window(x, y, 150, 100, WC_TOOLBAR_MENU, widgets),
sel_index(0), client_no(client_no)
{
/*
* Fill the actions this client has.
* Watch is, max 50 chars long!
*/
const NetworkClientInfo *ci = NetworkFindClientInfo(client_no);
int i = 0;
if (_network_own_client_id != ci->client_id) {
GetString(this->action[i], STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT, lastof(this->action[i]));
this->proc[i++] = &ClientList_SpeakToClient;
this->AddAction(STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT, &ClientList_SpeakToClient);
}
if (Company::IsValidID(ci->client_playas) || ci->client_playas == COMPANY_SPECTATOR) {
GetString(this->action[i], STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY, lastof(this->action[i]));
this->proc[i++] = &ClientList_SpeakToCompany;
this->AddAction(STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY, &ClientList_SpeakToCompany);
}
GetString(this->action[i], STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL, lastof(this->action[i]));
this->proc[i++] = &ClientList_SpeakToAll;
this->AddAction(STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL, &ClientList_SpeakToAll);
if (_network_own_client_id != ci->client_id) {
/* We are no spectator and the company we want to give money to is no spectator and money gifts are allowed */
if (Company::IsValidID(_local_company) && Company::IsValidID(ci->client_playas) && _settings_game.economy.give_money) {
GetString(this->action[i], STR_NETWORK_CLIENTLIST_GIVE_MONEY, lastof(this->action[i]));
this->proc[i++] = &ClientList_GiveMoney;
this->AddAction(STR_NETWORK_CLIENTLIST_GIVE_MONEY, &ClientList_GiveMoney);
}
}
/* A server can kick clients (but not himself) */
if (_network_server && _network_own_client_id != ci->client_id) {
GetString(this->action[i], STR_NETWORK_CLIENTLIST_KICK, lastof(this->action[i]));
this->proc[i++] = &ClientList_Kick;
GetString(this->action[i], STR_NETWORK_CLIENTLIST_BAN, lastof(this->action[i]));
this->proc[i++] = &ClientList_Ban;
}
if (i == 0) {
GetString(this->action[i], STR_NETWORK_CLIENTLIST_NONE, lastof(this->action[i]));
this->proc[i++] = &ClientList_None;
this->AddAction(STR_NETWORK_CLIENTLIST_KICK, &ClientList_Kick);
this->AddAction(STR_NETWORK_CLIENTLIST_BAN, &ClientList_Ban);
}
/* Calculate the height */
int h = ClientListPopupHeight();
int h = this->actions.Length() * FONT_HEIGHT_NORMAL + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
/* Allocate the popup */
this->widget[0].bottom = this->widget[0].top + h;
@ -1902,48 +1888,14 @@ struct NetworkClientListPopupWindow : Window {
this->FindWindowPlacementAndResize(150, h + 1);
}
/**
* An action is clicked! What do we do?
*/
void HandleClientListPopupClick(byte index)
{
/* A click on the Popup of the ClientList.. handle the command */
if (index < MAX_CLIENTLIST_ACTION && this->proc[index] != NULL) {
this->proc[index](this->client_no);
}
}
/**
* Finds the amount of actions in the popup and set the height correct
*/
uint ClientListPopupHeight()
{
int num = 0;
/* Find the amount of actions */
for (int i = 0; i < MAX_CLIENTLIST_ACTION; i++) {
if (this->action[i][0] == '\0') continue;
if (this->proc[i] == NULL) continue;
num++;
}
num *= FONT_HEIGHT_NORMAL;
return num + 1;
}
virtual void OnPaint()
{
this->DrawWidgets();
/* Draw the actions */
int sel = this->sel_index;
int y = 1;
for (int i = 0; i < MAX_CLIENTLIST_ACTION; i++, y += FONT_HEIGHT_NORMAL) {
if (this->action[i][0] == '\0') continue;
if (this->proc[i] == NULL) continue;
int y = WD_FRAMERECT_TOP;
for (const ClientListAction *action = this->actions.Begin(); action != this->actions.End(); action++, y += FONT_HEIGHT_NORMAL) {
TextColour colour;
if (sel-- == 0) { // Selected item, highlight it
GfxFillRect(1, y, 150 - 2, y + FONT_HEIGHT_NORMAL - 1, 0);
@ -1952,23 +1904,23 @@ struct NetworkClientListPopupWindow : Window {
colour = TC_BLACK;
}
DrawString(4, this->width - 4, y, this->action[i], colour);
DrawString(4, this->width - 4, y, action->name, colour);
}
}
virtual void OnMouseLoop()
{
/* We selected an action */
int index = (_cursor.pos.y - this->top) / FONT_HEIGHT_NORMAL;
uint index = (_cursor.pos.y - this->top - WD_FRAMERECT_TOP) / FONT_HEIGHT_NORMAL;
if (_left_button_down) {
if (index == -1 || index == this->sel_index) return;
if (index == this->sel_index || index >= this->actions.Length()) return;
this->sel_index = index;
this->SetDirty();
} else {
if (index >= 0 && _cursor.pos.y >= this->top) {
HandleClientListPopupClick(index);
if (index < this->actions.Length() && _cursor.pos.y >= this->top) {
this->actions[index].proc(this->client_no);
}
DeleteWindowById(WC_TOOLBAR_MENU, 0);

Loading…
Cancel
Save