/* Autor: Leandro Bernsmuller
Gerencia o dialogo que pergunta qual serah o personagem: pescador,...
pede dados para inicio da partida */



#include <windows.h>
#include <windowsx.h>
#include "..\princip\defs.h"
#include "dlgconpa.h"



// faz comunicacao entre caixa de dialogo e programa:
// qual personagem
DWORD
   dwPERSONAGEM;
char
   szARQFASE [ 300 ];  // nome do arquivo de fase



/* Escreve na caixa de texto qual o personagem escolhido
(chamado por ProcDlgPers)
**********************************************************/
void DefineEscolhido ( HWND hWnd )
{
   switch ( dwPERSONAGEM ) {

      case ID_PERS_MAE_NATUREZA:
         SetDlgItemText ( hWnd, IDC_PERSONAGEMESCOLHIDO, STR_PERS_MAE_NATUREZA );
         break;

      case ID_PERS_PESCADOR:
         SetDlgItemText ( hWnd, IDC_PERSONAGEMESCOLHIDO, STR_PERS_PESCADOR );
         break;

      case ID_PERS_PREFEITO:
         SetDlgItemText ( hWnd, IDC_PERSONAGEMESCOLHIDO, STR_PERS_PREFEITO );
         break;

      case ID_PERS_TURISTA:
         SetDlgItemText ( hWnd, IDC_PERSONAGEMESCOLHIDO, STR_PERS_TURISTA );
         break;
   }
}



/* Usado para tratar mensagens na caixa de dialogo
**********************************************************/
BOOL FAR PASCAL ProcDlgPers ( HWND hWnd, UINT uMsg, 
                              WPARAM wParam, LPARAM lParam )
{
  switch ( uMsg ) {

    // botao clicado
    case WM_COMMAND:
      {

         // qual botao
         switch ( LOWORD ( wParam ) ) {

            case IDCANCEL:
               ::EndDialog ( hWnd, FALSE );
               break;

            case IDOK:
               ::EndDialog ( hWnd, TRUE );
               break;

            case IDC_BUTTON1:
               dwPERSONAGEM = ID_PERS_MAE_NATUREZA;
               break;

            case IDC_BUTTON2:
               dwPERSONAGEM = ID_PERS_PESCADOR;
               break;

            case IDC_BUTTON3:
               dwPERSONAGEM = ID_PERS_PREFEITO;
               break;

            case IDC_BUTTON4:
               dwPERSONAGEM = ID_PERS_TURISTA;
               break;
         }

         // qual o personagem selecionado
         DefineEscolhido ( hWnd );

         // pega qual o arquivo editado no controle
         GetDlgItemText ( hWnd, IDC_EDIT4, szARQFASE, 299 );
      }
      break;

    case WM_INITDIALOG:
      {
         // define qual o personagem selecionado
         DefineEscolhido ( hWnd );

         // poe nome do arquivo no controle
         SetDlgItemText ( hWnd, IDC_EDIT4, szARQFASE );
         return TRUE;
      }
      break;
  }

  return FALSE;
}
         


/* Faz o dialogo
hWnd - janela pai
dwPersonagem - qual o personagem atual, eh alterado conforme
szArqFase - arquivo de default
retorna: TRUE - dados atualizados / FALSE - nao
**********************************************************/
BOOL FazDialogo_ConfiguraPartida ( HWND hWnd, DWORD& dwPersonagem, char* szArqFase )
{
   dwPERSONAGEM = dwPersonagem;
   strcpy ( szARQFASE, szArqFase );

   if ( ::DialogBox ( (HINSTANCE) GetWindowLong ( hWnd, GWL_HINSTANCE ),
                       MAKEINTRESOURCE ( IDD_DIALOG1 ), hWnd,
                      (DLGPROC) ProcDlgPers ) ) {
      dwPersonagem = dwPERSONAGEM;
      strcpy ( szArqFase, szARQFASE );
      return TRUE;
   }

   return FALSE;
}
