Changeset - r9241:4fad6d9f7a34
[Not reviewed]
master
0 3 0
glx - 17 years ago 2008-05-15 19:24:15
glx@openttd.org
(svn r13107) -Codechange: make NetworkCompanyPasswordWindow and SelectPlayerFaceWindow children of PlayerCompanyWindow.
3 files changed with 23 insertions and 24 deletions:
0 comments (0 inline, 0 general)
src/network/network_gui.cpp
Show inline comments
 
@@ -1929,14 +1929,15 @@ enum NetworkCompanyPasswordWindowWidgets
 
	NCPWW_SAVE_AS_DEFAULT_PASSWORD, ///< Toggle 'button' for saving the current password as default password
 
	NCPWW_CANCEL,                   ///< Close the window without changing anything
 
	NCPWW_OK,                       ///< Safe the password etc.
 
};
 

	
 
struct NetworkCompanyPasswordWindow : public QueryStringBaseWindow {
 
	NetworkCompanyPasswordWindow(const WindowDesc *desc) : QueryStringBaseWindow(desc)
 
	NetworkCompanyPasswordWindow(const WindowDesc *desc, Window *parent) : QueryStringBaseWindow(desc)
 
	{
 
		this->parent = parent;
 
		this->afilter = CS_ALPHANUMERAL;
 
		InitializeTextBuffer(&this->text, this->edit_str_buf, min(lengthof(_network_default_company_pass), lengthof(this->edit_str_buf)), 0);
 

	
 
		this->FindWindowPlacementAndResize(desc);
 
	}
 

	
 
@@ -2018,14 +2019,14 @@ static const WindowDesc _ncp_window_desc
 
	WC_COMPANY_PASSWORD_WINDOW, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON,
 
	_ncp_window_widgets,
 
	NULL
 
};
 

	
 
void ShowNetworkCompanyPasswordWindow()
 
void ShowNetworkCompanyPasswordWindow(Window *parent)
 
{
 
	DeleteWindowById(WC_COMPANY_PASSWORD_WINDOW, 0);
 

	
 
	new NetworkCompanyPasswordWindow(&_ncp_window_desc);
 
	new NetworkCompanyPasswordWindow(&_ncp_window_desc, parent);
 
}
 

	
 
#endif /* ENABLE_NETWORK */
src/network/network_gui.h
Show inline comments
 
@@ -2,29 +2,31 @@
 

	
 
/** @file network_gui.h GUIs related to networking. */
 

	
 
#ifndef NETWORK_GUI_H
 
#define NETWORK_GUI_H
 

	
 
#include "../window_type.h"
 

	
 
#ifdef ENABLE_NETWORK
 

	
 
#include "network_data.h"
 

	
 
void ShowNetworkNeedPassword(NetworkPasswordType npt);
 
void ShowNetworkGiveMoneyWindow(PlayerID player); // PlayerID
 
void ShowNetworkChatQueryWindow(DestType type, int dest);
 
void ShowJoinStatusWindow();
 
void ShowNetworkGameWindow();
 
void ShowClientList();
 
void ShowNetworkCompanyPasswordWindow();
 
void ShowNetworkCompanyPasswordWindow(Window *parent);
 

	
 
#else /* ENABLE_NETWORK */
 
/* Network function stubs when networking is disabled */
 

	
 
static inline void ShowNetworkChatQueryWindow(byte desttype, int dest) {}
 
static inline void ShowClientList() {}
 
static inline void ShowNetworkGameWindow() {}
 
static inline void ShowNetworkCompanyPasswordWindow() {}
 
static inline void ShowNetworkCompanyPasswordWindow(Window *parent) {}
 

	
 
#endif /* ENABLE_NETWORK */
 

	
 
#endif /* NETWORK_GUI_H */
src/player_gui.cpp
Show inline comments
 
@@ -43,13 +43,13 @@ assert_compile(WINDOW_CUSTOM_SIZE >= siz
 

	
 
enum {
 
	FIRST_GUI_CALL = INT_MAX,  ///< default value to specify thuis is the first call of the resizable gui
 
};
 

	
 
static void DoShowPlayerFinances(PlayerID player, bool show_small, bool show_stickied, int top = FIRST_GUI_CALL, int left = FIRST_GUI_CALL);
 
static void DoSelectPlayerFace(PlayerID player, bool show_big, int top =  FIRST_GUI_CALL, int left = FIRST_GUI_CALL);
 
static void DoSelectPlayerFace(Window *parent, bool show_big, int top =  FIRST_GUI_CALL, int left = FIRST_GUI_CALL);
 

	
 
static void DrawPlayerEconomyStats(const Player *p, byte mode)
 
{
 
	int x, y, i, j, year;
 
	const Money (*tbl)[EXPENSES_END];
 
	Money sum, cost;
 
@@ -756,17 +756,18 @@ class SelectPlayerFaceWindow : public Wi
 
		this->ge = (GenderEthnicity)GB(this->face, _pf_info[PFV_GEN_ETHN].offset, _pf_info[PFV_GEN_ETHN].length); // get the gender and ethnicity
 
		this->is_female = HasBit(this->ge, GENDER_FEMALE); // get the gender: 0 == male and 1 == female
 
		this->is_moust_male = !is_female && GetPlayerFaceBits(this->face, PFV_HAS_MOUSTACHE, this->ge) != 0; // is a male face with moustache
 
	}
 

	
 
public:
 
	SelectPlayerFaceWindow(const WindowDesc *desc, PlayerID player, bool advanced) : Window(desc, player)
 
	SelectPlayerFaceWindow(const WindowDesc *desc, Window *parent, bool advanced) : Window(desc, parent->window_number)
 
	{
 
		this->parent = parent;
 
		this->FindWindowPlacementAndResize(desc);
 
		this->caption_color = this->window_number;
 
		this->face = GetPlayer(player)->face;
 
		this->face = GetPlayer((PlayerID)this->window_number)->face;
 
		this->advanced = advanced;
 

	
 
		this->UpdateData();
 

	
 
		/* Check if repositioning from default is required */
 
		if (top != FIRST_GUI_CALL && left != FIRST_GUI_CALL) {
 
@@ -873,23 +874,24 @@ public:
 
	virtual void OnClick(Point pt, int widget)
 
	{
 
		switch (widget) {
 
			/* Toggle size, advanced/simple face selection */
 
			case PFW_WIDGET_TOGGLE_LARGE_SMALL:
 
			case PFW_WIDGET_TOGGLE_LARGE_SMALL_BUTTON: {
 
				DoCommandP(0, 0, this->face, NULL, CMD_SET_PLAYER_FACE);
 

	
 
				/* Backup some data before deletion */
 
				int oldtop = this->top;     ///< current top position of the window before closing it
 
				int oldleft = this->left;   ///< current top position of the window before closing it
 
				PlayerID player = (PlayerID)this->window_number;
 
				bool adv = !this->advanced;
 

	
 
				DoCommandP(0, 0, this->face, NULL, CMD_SET_PLAYER_FACE);
 
				Window *parent = this->parent;
 

	
 
				delete this;
 

	
 
				/* Open up the (toggled size) Face selection window at the same position as the previous */
 
				DoSelectPlayerFace(player, adv, oldtop, oldleft);
 
				DoSelectPlayerFace(parent, adv, oldtop, oldleft);
 
			} break;
 

	
 

	
 
			/* OK button */
 
			case PFW_WIDGET_ACCEPT:
 
				DoCommandP(0, 0, this->face, NULL, CMD_SET_PLAYER_FACE);
 
@@ -1028,18 +1030,18 @@ static const WindowDesc _select_player_f
 
 * @param adv    simple or advanced player face selection window
 
 * @param top    previous top position of the window
 
 * @param left   previous left position of the window
 
 *
 
 * @pre is player a valid player
 
 */
 
static void DoSelectPlayerFace(PlayerID player, bool adv, int top, int left)
 
static void DoSelectPlayerFace(Window *parent, bool adv, int top, int left)
 
{
 
	if (!IsValidPlayer(player)) return;
 
	if (!IsValidPlayer((PlayerID)parent->window_number)) return;
 

	
 
	if (BringWindowToFrontById(WC_PLAYER_FACE, player)) return;
 
	new SelectPlayerFaceWindow(adv ? &_select_player_face_adv_desc : &_select_player_face_desc, player, adv); // simple or advanced window
 
	if (BringWindowToFrontById(WC_PLAYER_FACE, parent->window_number)) return;
 
	new SelectPlayerFaceWindow(adv ? &_select_player_face_adv_desc : &_select_player_face_desc, parent, adv); // simple or advanced window
 
}
 

	
 

	
 
/* Names of the widgets. Keep them in the same order as in the widget array */
 
enum PlayerCompanyWindowWidgets {
 
	PCW_WIDGET_CLOSEBOX = 0,
 
@@ -1170,18 +1172,12 @@ struct PlayerCompanyWindow : Window
 

	
 
	PlayerCompanyWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
 
	{
 
		this->caption_color = this->window_number;
 
	}
 

	
 
	~PlayerCompanyWindow()
 
	{
 
		DeleteWindowById(WC_PLAYER_FACE, this->window_number);
 
		if (this->window_number == _local_player) DeleteWindowById(WC_COMPANY_PASSWORD_WINDOW, 0);
 
	}
 

	
 
	virtual void OnPaint()
 
	{
 
		const Player *p = GetPlayer((PlayerID)this->window_number);
 
		bool local = this->window_number == _local_player;
 

	
 
		this->SetWidgetHiddenState(PCW_WIDGET_NEW_FACE,       !local);
 
@@ -1247,13 +1243,13 @@ struct PlayerCompanyWindow : Window
 
		DrawCompanyOwnerText(p);
 
	}
 

	
 
	virtual void OnClick(Point pt, int widget)
 
	{
 
		switch (widget) {
 
			case PCW_WIDGET_NEW_FACE: DoSelectPlayerFace((PlayerID)this->window_number, false); break;
 
			case PCW_WIDGET_NEW_FACE: DoSelectPlayerFace(this, false); break;
 

	
 
			case PCW_WIDGET_COLOR_SCHEME:
 
				if (BringWindowToFrontById(WC_PLAYER_COLOR, this->window_number)) break;
 
				new SelectPlayerLiveryWindow(&_select_player_livery_desc, (PlayerID)this->window_number);
 
				break;
 

	
 
@@ -1301,13 +1297,13 @@ struct PlayerCompanyWindow : Window
 
			case PCW_WIDGET_SELL_SHARE:
 
				DoCommandP(0, this->window_number, 0, NULL, CMD_SELL_SHARE_IN_COMPANY | CMD_MSG(STR_707C_CAN_T_SELL_25_SHARE_IN));
 
				break;
 

	
 
#ifdef ENABLE_NETWORK
 
			case PCW_WIDGET_COMPANY_PASSWORD:
 
				if (this->window_number == _local_player) ShowNetworkCompanyPasswordWindow();
 
				if (this->window_number == _local_player) ShowNetworkCompanyPasswordWindow(this);
 
				break;
 
#endif /* ENABLE_NETWORK */
 
		}
 
	}
 

	
 
	virtual void OnTick()
0 comments (0 inline, 0 general)