Beispiel #1
0
void GuildGotShields(list_type shields)
{
	iNumPatterns = list_length(shields);

	listShieldIDs = shields;
	iChosenPattern = (iNumPatterns > 0)? (rand() % iNumPatterns)+1 : 1;
	GuildShieldDraw();
}
Beispiel #2
0
void GuildGotShield(ID idGuild, char* pszGuildName, BYTE color1, BYTE color2, BYTE pattern)
{
   if (hwndShieldPage)
   {
      if (idMyGuild && idGuild == idMyGuild && legalShield(color1,color2,pattern))
      {
	 // if i'm getting my claimed guild shield colors, i can't claim other colors
	 EnableWindow(GetDlgItem(hwndShieldPage, IDC_ACCEPT), FALSE);
      }
      if (!legalShield(color1,color2,pattern))
      {
	 // claimant guild gets "can't use those colors"
	 GetDlgItemText(hwndShieldPage, IDC_RENOUNCE, szClaimBuffer, sizeof(szClaimBuffer));
	 SetDlgItemText(hwndShieldPage, IDC_STATIC_GUILD, szClaimBuffer);
      }
      else if (!idGuild)
      {
	 // claimant guild is blank
	 SetDlgItemText(hwndShieldPage, IDC_STATIC_GUILD, "");
      }
      else
      {
	 // claimant guild's name appears
	 sprintf(szClaimBuffer, szClaimFormat, pszGuildName);
	 SetDlgItemText(hwndShieldPage, IDC_STATIC_GUILD, szClaimBuffer);
      }
#if 0
      {
      char buffer[256];
      wsprintf(buffer,"Color1=%d, Color2=%d, Pattern=%d",(int)color1,(int)color2,(int)pattern);
      SetDlgItemText(hwndShieldPage, IDC_STATIC_GUILD, buffer);
      }
#endif
   }

   iChosenColor1 = (int)color1;
   iChosenColor2 = (int)color2;
   iChosenPattern = (int)pattern;
   GuildShieldDraw();

   if (!idMyGuild && idGuild)
      idMyGuild = idGuild;
}
Beispiel #3
0
/*
 * GuildShieldDialogProc:  Dialog procedure for guild shield dialog.
 */
BOOL CALLBACK GuildShieldDialogProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
{
	switch (message)
	{
	case WM_INITDIALOG:

		hwndShieldPage = hDlg;
		GuildShieldControl(GetDlgItem(hDlg, IDC_SHIELD));

		RequestGuildShieldSamples();
		RequestGuildShield();

		// claimant guild control holds format ("claimed by %s")
		SetWindowFont(GetDlgItem(hDlg, IDC_STATIC_GUILD), GetFont(FONT_LIST), FALSE);
		GetDlgItemText(hDlg, IDC_STATIC_GUILD, szClaimFormat, sizeof(szClaimFormat));

		// claimant guild control starts with "can't use those colors" since it's grey+grey
		GetDlgItemText(hDlg, IDC_RENOUNCE, szClaimBuffer, sizeof(szClaimBuffer));
		SetDlgItemText(hDlg, IDC_STATIC_GUILD, szClaimBuffer);

		CenterWindow(hDlg, GetParent(hDlg));
		return TRUE;

	case WM_COMMAND:
		switch(GET_WM_COMMAND_ID(wParam, lParam))
		{

		// in range [1,iNumPatterns]
		case IDC_PATTERN_PREV:
			iChosenPattern--;
			if(iChosenPattern < 1)
				iChosenPattern = iNumPatterns;
			break;
		case IDC_PATTERN_NEXT:
			iChosenPattern++;
			if(iChosenPattern > iNumPatterns)
				iChosenPattern = 1;
			break;

		// in range [0,iNumColors-1]
		case IDC_COLOR1_PREV:
			iChosenColor1--;
			if(iChosenColor1 < 0)
				iChosenColor1 = iNumColors - 1;
			break;
		case IDC_COLOR1_NEXT:
			iChosenColor1++;
			if(iChosenColor1 >= iNumColors)
				iChosenColor1 = 0;
			break;
		case IDC_COLOR2_PREV:
			iChosenColor2--;
			if(iChosenColor2 < 0)
				iChosenColor2 = iNumColors - 1;
			break;
		case IDC_COLOR2_NEXT:
			iChosenColor2++;
			if(iChosenColor2 >= iNumColors)
				iChosenColor2 = 0;
			break;

		case IDC_ACCEPT:
			if (legalShield(iChosenColor1,iChosenColor2,iChosenPattern))
			{
				RequestClaimGuildShield(iChosenColor1, iChosenColor2, iChosenPattern);
			}
			break;
		}
		RequestFindGuildShield(iChosenColor1, iChosenColor2, iChosenPattern);
		GuildShieldDraw();
		return FALSE;

	case WM_SHOWWINDOW:
		if (!(BOOL)wParam)
			RequestGuildShield();
		break;

	case WM_DRAWITEM:
		GuildShieldControl(GetDlgItem(hDlg, IDC_SHIELD));
		GuildShieldDraw();
		return TRUE;

	case WM_DESTROY:
		hwndShieldPage = NULL;
		return FALSE;
	}
	return FALSE;
}
Beispiel #4
0
/*
 * GuildMemberDialogProc:  Dialog procedure for guild membership dialog.
 */
BOOL CALLBACK GuildMemberDialogProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
{
    HWND hList;
    int i, index, flags;

    switch (message)
    {
    case WM_INITDIALOG:
        hList = GetDlgItem(hDlg, IDC_GUILDLIST);
        SetWindowFont(hList, GetFont(FONT_LIST), FALSE);
        SetWindowFont(GetDlgItem(hDlg, IDC_RANK), GetFont(FONT_LIST), FALSE);

        // Add guild members to list box
        num_rank4 = 0;
        for (i=0; i < guild_info->num_users; i++)
        {
            GuildMember *member = &guild_info->members[i];
            index = ListBox_AddString(hList, member->name);
            ListBox_SetItemData(hList, index, member);

            if (member->id == cinfo->player->id)
                guild_info->rank = member->rank;

            if (member->id == guild_info->current_vote)
                SetWindowText(GetDlgItem(hDlg, IDC_CURRENTVOTE), member->name);

            if (member->rank == 4)
                num_rank4++;
        }

        if (guild_info->current_vote == 0)
            SetWindowText(GetDlgItem(hDlg, IDC_CURRENTVOTE), GetString(hInst, IDS_NOBODY));

        flags = guild_info->flags;

        // Destroy buttons for commands we don't have
        if (!(flags & GC_EXILE))
            DestroyWindow(GetDlgItem(hDlg, IDC_EXILE));

        if (!(flags & GC_RENOUNCE))
            DestroyWindow(GetDlgItem(hDlg, IDC_RENOUNCE));

        if (!(flags & GC_ABDICATE))
        {
            DestroyWindow(GetDlgItem(hDlg, IDC_ABDICATE));
            DestroyWindow(GetDlgItem(hDlg, IDC_ABDICATENAME));
        }

        if (!(flags & GC_VOTE))
        {
            DestroyWindow(GetDlgItem(hDlg, IDC_VOTE));
            DestroyWindow(GetDlgItem(hDlg, IDC_VOTENAME));
        }

        if (!(flags & GC_SET_RANK))
            DestroyWindow(GetDlgItem(hDlg, IDC_RANK));
        else DestroyWindow(GetDlgItem(hDlg, IDC_RANKDISPLAY));

        CenterWindow(hGuildConfigDialog, GetParent(hGuildConfigDialog));
        GuildShieldControl(GetDlgItem(hDlg, IDC_SHIELD));
        RequestGuildShieldSamples();
        RequestGuildShield();
        return TRUE;

        HANDLE_MSG(hDlg, WM_COMMAND, GuildMemberCommand);

    case WM_SHOWWINDOW:
        if (!(BOOL)wParam)
            RequestGuildShield();
        break;

    case WM_DRAWITEM:
        if (wParam == IDC_SHIELD)
        {
            GuildShieldControl(GetDlgItem(hDlg, IDC_SHIELD));
            GuildShieldDraw();
            return TRUE;
        }
        return GuildListDrawItem(hDlg, (const DRAWITEMSTRUCT *)(lParam));
    }
    return FALSE;
}