home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 51 / PCGamer51_17Demos.iso / games / CM / CyclingManagerDemoCangas.exe / CyclingManagerDemo / scripts / common / config / page_config.cnc < prev    next >
Text File  |  2001-07-05  |  16KB  |  499 lines

  1. //----------------------------------------------------------------------------------------------------------------//
  2. //----------------------------------------------------------------------------------------------------------------//
  3. //Dialbox configuration
  4. //----------------------------------------------------------------------------------------------------------------//
  5. //----------------------------------------------------------------------------------------------------------------//
  6. func void Dialog_Configuration_Create ()
  7. {
  8.     var i32x id;
  9.  
  10.     // Get page component pointer
  11.     oDialog_Configuration.pThis = GetParserComponent();
  12.  
  13.  
  14.     // Dialog component number
  15.     SetComponentNumber(41);    
  16.  
  17.  
  18.     // Don't need to save
  19.     oDialog_Configuration.m_iNeedSave = false;
  20.  
  21.     // No change on settings yet
  22.     oDialog_Configuration.m_bChangeLanguage = false;
  23.     oDialog_Configuration.m_bChangeVideo = false;
  24.     oDialog_Configuration.m_bChangeAudio = false;
  25.  
  26.     // No error dialbox
  27.     oDialog_Configuration.m_cErrorDialbox = ID_NOT_CREATED;
  28.  
  29.     //Dialog background
  30.     oDialog_Configuration.m_cBackground = Init_LibObject_FilledCadre(tCadreDialbox,700,530);
  31.  
  32.     // Dialog Title
  33.     oDialog_Configuration.m_cTitle = InitContainer(tFnt_20);
  34.     SetComponentPosition(oDialog_Configuration.m_cTitle, 10, 35);
  35.     SetContainerText(oDialog_Configuration.m_cTitle, GetLocalizedFromGMKey(286));
  36.  
  37.     // Game version
  38.     id = InitContainer(tFontArialItalique);
  39.  
  40.     SetContainerText(id,G_szVersion);
  41.     ResizeComponent(id);
  42.     SetComponentPosition(id,650-GetComponentWidth(id),42);
  43.  
  44.     // Valid button
  45.     oDialog_Configuration.m_cOk = InitLibMultiSpriteButtonWithText(tButton32Multi,9,GetLocalizedFromGMKey(121),tFontArial,0);
  46.     SetTextButtonStateFunc(oDialog_Configuration.m_cOk,CheckBoxMultiState,MultiRadioButtonWithText_TextState);
  47.     SetComponentPosition(oDialog_Configuration.m_cOk, 325-GetComponentWidth(oDialog_Configuration.m_cOk)/2, 440);
  48.  
  49.     // Close button
  50.     oDialog_Configuration.m_cClose = InitButton(tBtnClose);
  51.     SetContainerSize(oDialog_Configuration.m_cClose,25,25);
  52.     SetContainerStateFunc(oDialog_Configuration.m_cClose, ThreeStateButtonState);
  53.     SetComponentPosition(oDialog_Configuration.m_cClose,635,5);
  54.     
  55.  
  56.     // *** Create onglet selection radio button ***
  57.     oDialog_Configuration.m_cGeneral=Init_LibObject_MultiRadioButtonWithText(tButton32Multi,7,GetLocalizedFromKey(1311),tFontArial,0);
  58.     SetComponentPosition(oDialog_Configuration.m_cGeneral, 50, 70);
  59.     SetTextButtonStateFunc(oDialog_Configuration.m_cGeneral,CheckBoxMultiState,MultiRadioButtonWithText_TextState);
  60.     ResizeComponent(oDialog_Configuration.m_cGeneral);
  61.  
  62.     oDialog_Configuration.m_cVideo=Init_LibObject_MultiRadioButtonWithText(tButton32Multi,7,GetLocalizedFromKey(1312),tFontArial,0);
  63.     SetComponentPosition(oDialog_Configuration.m_cVideo, 227, 70);
  64.     SetTextButtonStateFunc(oDialog_Configuration.m_cVideo,CheckBoxMultiState,MultiRadioButtonWithText_TextState);
  65.     ResizeComponent(oDialog_Configuration.m_cVideo);
  66.  
  67.     oDialog_Configuration.m_cAudio=Init_LibObject_MultiRadioButtonWithText(tButton32Multi,7,GetLocalizedFromKey(1310),tFontArial,0);
  68.     SetComponentPosition(oDialog_Configuration.m_cAudio, 404, 70);
  69.     SetTextButtonStateFunc(oDialog_Configuration.m_cAudio,CheckBoxMultiState,MultiRadioButtonWithText_TextState);
  70.     ResizeComponent(oDialog_Configuration.m_cAudio);
  71.  
  72.     id = InitContainer(tCommonTableBorder);
  73.     SetContainerSize(id,650,1);
  74.     SetComponentPosition(id,8,120);
  75.  
  76.     // Init onglets
  77.     Onglet_general_InitMembers ();
  78.     Onglet_audio_InitMembers();
  79.     Onglet_video_InitMembers();
  80.  
  81.     // *** Create onglet***
  82.     oDialog_Configuration.m_cGeneralOnglet = InitObject(
  83.         "Onglet General",
  84.         oOnglet_general.oFunc.pcreate,
  85.         oOnglet_general.oFunc.pevent
  86.     );
  87.     oDialog_Configuration.m_cVideoOnglet = InitObject(
  88.         "Onglet Video",
  89.         oOnglet_video.oFunc.pcreate,
  90.         oOnglet_video.oFunc.pevent
  91.     );
  92.     oDialog_Configuration.m_cAudioOnglet = InitObject(
  93.         "Onglet Audio",
  94.         oOnglet_audio.oFunc.pcreate,
  95.         oOnglet_audio.oFunc.pevent
  96.     );
  97.  
  98.     // Select general onglet by default
  99.     SetTextRadioButtonCheckBox(oDialog_Configuration.m_cGeneral,1);
  100.  
  101.     // Hide video and audio configuration
  102.     SetComponentVisibleStatus(oDialog_Configuration.m_cVideoOnglet,0);    
  103.     SetComponentVisibleStatus(oDialog_Configuration.m_cAudioOnglet,0);
  104.  
  105.     SetComponentPosition(oDialog_Configuration.m_cGeneralOnglet,10,130);
  106.     SetComponentPosition(oDialog_Configuration.m_cVideoOnglet,10,130);
  107.     SetComponentPosition(oDialog_Configuration.m_cAudioOnglet,10,130);
  108.  
  109.     // Resize dialog
  110.     SetObjectSize(700,550);
  111. }
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118. //Dialog_Configuration Event func
  119. //----------------------------------------------------------------------------------------------------------------//
  120. func i32x Dialog_Configuration_Event (i32x _iComponentID, i32x _iEvent)
  121. {
  122.     if(_iComponentID == oDialog_Configuration.m_cClose)
  123.     {
  124.         if(_iEvent == GUI_BUTTON_PRESSED )
  125.         {
  126.             PlaySound(0,sbClickSound[0]);
  127.  
  128.             PushEvent(GUI_DESTROY_ME);
  129.         }
  130.     }
  131.  
  132.     if(_iEvent == GUI_RADIOBUTTON_CHANGED)
  133.     {
  134.         PlaySound(0,sbClickSound[0]);
  135.  
  136.         if(_iComponentID == oDialog_Configuration.m_cGeneral)
  137.         {
  138.             // UnSelect video and audio onglet
  139.             SetTextRadioButtonCheckBox(oDialog_Configuration.m_cVideo,0);
  140.             SetTextRadioButtonCheckBox(oDialog_Configuration.m_cAudio,0);
  141.             // Hide video and audio
  142.             SetComponentVisibleStatus(oDialog_Configuration.m_cVideoOnglet,0);
  143.             SetComponentVisibleStatus(oDialog_Configuration.m_cAudioOnglet,0);
  144.             // Show general
  145.             SetComponentVisibleStatus(oDialog_Configuration.m_cGeneralOnglet,1);
  146.         }
  147.         if(_iComponentID == oDialog_Configuration.m_cVideo)
  148.         {
  149.             // UnSelect general and audio onglet
  150.             SetTextRadioButtonCheckBox(oDialog_Configuration.m_cGeneral,0);
  151.             SetTextRadioButtonCheckBox(oDialog_Configuration.m_cAudio,0);
  152.             // Hide general and audio
  153.             SetComponentVisibleStatus(oDialog_Configuration.m_cGeneralOnglet,0);
  154.             SetComponentVisibleStatus(oDialog_Configuration.m_cAudioOnglet,0);
  155.             // Show video
  156.             SetComponentVisibleStatus(oDialog_Configuration.m_cVideoOnglet,1);
  157.         }
  158.         if(_iComponentID == oDialog_Configuration.m_cAudio)
  159.         {
  160.             // UnSelect video and general onglet
  161.             SetTextRadioButtonCheckBox(oDialog_Configuration.m_cVideo,0);
  162.             SetTextRadioButtonCheckBox(oDialog_Configuration.m_cGeneral,0);
  163.             // Hide video and general
  164.             SetComponentVisibleStatus(oDialog_Configuration.m_cVideoOnglet,0);
  165.             SetComponentVisibleStatus(oDialog_Configuration.m_cGeneralOnglet,0);
  166.             // Show audio
  167.             SetComponentVisibleStatus(oDialog_Configuration.m_cAudioOnglet,1);
  168.         }
  169.     }
  170.  
  171.     if(_iComponentID == oDialog_Configuration.m_cOk)
  172.     {
  173.     //    if(_iEvent == GUI_COMPONENT_MOUSE_LDOWN )
  174.     //        PlaySound(0,sbClickSound[0]);
  175.         if(_iEvent == GUI_BUTTON_PRESSED )
  176.         {
  177.             var szx szLogin;
  178.             var component pComponent;
  179.  
  180.             PlaySound(0,sbClickSound[0]);
  181.  
  182.             // retrieve login from edit box
  183.             pComponent=GetParserComponent();
  184.             SetParserComponent(oOnglet_general.pComponent);
  185.             szLogin = GetContainerText(oOnglet_general.c_login);
  186.             SetParserComponent(pComponent);
  187.  
  188.             // update login if needed
  189.             if (strcmp(g_oUser.m_szLogin,szLogin) != 0)
  190.             {
  191.                 g_oUser.m_szLogin = szLogin;
  192.                 Join_SetStringFromIndex(g_oLocalJoins.m_iUser_szName,0,g_oUser.m_szLogin);
  193.                 Update_Title_Bar_Text();
  194.             }
  195.             
  196.  
  197.             if(oDialog_Configuration.m_iNeedSave)
  198.             {
  199.                 // Save config into Config.cfg
  200.                 SaveConfig();
  201.             }
  202.             else
  203.             {
  204.                 PushEvent(GUI_DESTROY_ME);
  205.             }
  206.         }
  207.     }
  208.     if(oDialog_Configuration.m_cErrorDialbox != ID_NOT_CREATED)
  209.     {
  210.         if(_iComponentID == oDialog_Configuration.m_cErrorDialbox)
  211.         {
  212.             if(_iEvent == GUI_DESTROY_ME )
  213.             {
  214.                 PushEvent(GUI_DESTROY_ME);
  215.             }
  216.         }
  217.     }
  218.  
  219.  
  220.     return 1;
  221. }
  222. func void FileError_MessageBoxCallback(i32x _iResult)
  223. {
  224.     // Error dialbox return
  225.     // Destroy the dialbox
  226.     PushEvent(GUI_DESTROY_ME);
  227. }
  228.  
  229. // Must be called in Dialbox EventFunc !
  230. //Dialog configuration save config func
  231. //----------------------------------------------------------------------------------------------------------------//
  232. func void SaveConfig()
  233. {
  234.     /*
  235.         HERE IS THE MODEL 
  236.         func void LoadVideoMode()
  237.         {
  238.             SetTripleBuffering(1);
  239.             SetVideoMode(8);
  240.             SetTexBitDepth(32);
  241.             SetDevice(0);
  242.         }
  243.     */
  244.     var FILE    savefile;
  245.     var szx        szLine;
  246.     var i32x    iTriple,iMode,iTextureBitDepth,iDevice,iResult,iLanguage,iX,iY,iMuteFX,iMuteCyclistsFX,iMuteMusic;
  247.     var f32x    fFX,fCyclistsFX,fMusic;
  248.     var i32x    iCyclistLOD,iTextureLOD;
  249.  
  250.     savefile=fopen("scripts/cfg/Config.cfg",1,1);
  251.  
  252.     iLanguage = oOnglet_general.m_iLanguage;
  253.  
  254.     if(savefile)
  255.     {
  256.         szLine="func void LoadVideoMode()\n";
  257.         iResult=fwriteline(savefile,szLine);
  258.         szLine="{\n";
  259.         iResult=fwriteline(savefile,szLine);
  260.  
  261.         iTriple = oOnglet_video.m_bTripleBuffer;
  262.         szLine=strcat("\tSetTripleBuffering(",itoa(iTriple));
  263.         szLine=strcat(szLine,");\n");
  264.         iResult=fwriteline(savefile,szLine);
  265.  
  266.         iMode = oVideoModes.iVideoMode[oObject_VideoModeListbox.m_iSelectedVideoMode];
  267.         szLine=strcat("\tSetVideoMode(",itoa(iMode));
  268.         szLine=strcat(szLine,");\n");
  269.         iResult=fwriteline(savefile,szLine);
  270.  
  271.         iTextureBitDepth = oOnglet_video.m_iTextureBitDepth;
  272.         szLine=strcat("\tSetTexBitDepth(",itoa(iTextureBitDepth));
  273.         szLine=strcat(szLine,");\n");
  274.         iResult=fwriteline(savefile,szLine);
  275.  
  276.         iDevice = oObject_DeviceListbox.m_iSelectedDevice;
  277.         szLine=strcat("\tSetDevice(",itoa(iDevice));
  278.         szLine=strcat(szLine,");\n");
  279.         iResult=fwriteline(savefile,szLine);
  280.  
  281.         iCyclistLOD = oOnglet_video.m_iCyclistLOD;
  282.         szLine=strcat("\tSetCyclistLOD(",itoa(iCyclistLOD));
  283.         szLine=strcat(szLine,");\n");
  284.         iResult=fwriteline(savefile,szLine);
  285.  
  286.         iTextureLOD = oOnglet_video.m_iTextureLOD;
  287.         szLine=strcat("\tSetTextureLOD(",itoa(iTextureLOD));
  288.         szLine=strcat(szLine,");\n");
  289.         iResult=fwriteline(savefile,szLine);
  290.  
  291.         szLine="}\n";
  292.         iResult=fwriteline(savefile,szLine);
  293.  
  294.         szLine="func void LoadLanguage()\n";
  295.         iResult=fwriteline(savefile,szLine);
  296.         szLine="{\n";
  297.         iResult=fwriteline(savefile,szLine);
  298.  
  299.         szLine=strcat("\tSetLanguage(",itoa(iLanguage));
  300.         szLine=strcat(szLine,");\n");
  301.         iResult=fwriteline(savefile,szLine);
  302.  
  303.         szLine="}\n";
  304.         iResult=fwriteline(savefile,szLine);
  305.  
  306.         szLine="func void LoadAudio()\n";
  307.         iResult=fwriteline(savefile,szLine);
  308.         szLine="{\n";
  309.         iResult=fwriteline(savefile,szLine);
  310.  
  311.         fFX = GetLineVol(Sound_eLine_Interface);
  312.         szLine=strcat("\tSetLineVol(Sound_eLine_Interface,",ftoa(fFX));
  313.         szLine=strcat(szLine,");\n");
  314.         iResult=fwriteline(savefile,szLine);
  315.  
  316.         fCyclistsFX = GetLineVol(Sound_eLine_Cyclists);
  317.         szLine=strcat("\tSetLineVol(Sound_eLine_Cyclists,",ftoa(fCyclistsFX));
  318.         szLine=strcat(szLine,");\n");
  319.         iResult=fwriteline(savefile,szLine);
  320.  
  321.         fMusic = g_oUser.m_fMp3Volume;
  322.         szLine=strcat("\tg_oUser.m_fMp3Volume = ",ftoa(fMusic));
  323.         szLine=strcat(szLine,";\n");
  324.         iResult=fwriteline(savefile,szLine);
  325.  
  326.         iMuteFX = GetLineOnOff(Sound_eLine_Interface);
  327.         szLine=strcat("\tSetLineOnOff(Sound_eLine_Interface,",itoa(iMuteFX));
  328.         szLine=strcat(szLine,");\n");
  329.         iResult=fwriteline(savefile,szLine);
  330.  
  331.         iMuteCyclistsFX = GetLineOnOff(Sound_eLine_Cyclists);
  332.         szLine=strcat("\tSetLineOnOff(Sound_eLine_Cyclists,",itoa(iMuteCyclistsFX));
  333.         szLine=strcat(szLine,");\n");
  334.         iResult=fwriteline(savefile,szLine);
  335.  
  336.         iMuteMusic = GetLineOnOff(Sound_eLine_Music);
  337.         szLine=strcat("\tSetLineOnOff(Sound_eLine_Music,",itoa(iMuteMusic));
  338.         szLine=strcat(szLine,");\n");
  339.         iResult=fwriteline(savefile,szLine);
  340.  
  341.         szLine="}\n";
  342.         iResult=fwriteline(savefile,szLine);
  343.         
  344.         
  345.         iResult=fclose(savefile);
  346.         //Destroy dialbox
  347.         PushEvent(GUI_DESTROY_ME);
  348.     }
  349.     else
  350.     {
  351.         InitMessageBox(GetLocalizedFromGMKey(260), g_iTypeOkDialog, FileError_MessageBoxCallback);
  352.         oDialog_Configuration.m_cErrorDialbox = Message_Box_Constructor();
  353.         //Center dialbox
  354.         ResizeComponent(oDialog_Configuration.m_cErrorDialbox);
  355.         iX = GetComponentWidth(oDialog_Configuration.m_cBackground) - GetComponentWidth(oDialog_Configuration.m_cErrorDialbox);
  356.         iX = iX / 2;
  357.         iY = GetComponentHeight(oDialog_Configuration.m_cBackground) - GetComponentHeight(oDialog_Configuration.m_cErrorDialbox);
  358.         iY = iY / 2;
  359.         SetComponentPosition(oDialog_Configuration.m_cErrorDialbox,iX,iY);
  360.     }
  361.  
  362.     if(oDialog_Configuration.m_bChangeLanguage == true)
  363.     {
  364.         // Set new language
  365.         SetLanguage(iLanguage);
  366.         // Update Main menu
  367.         HideMenuPrincipal ();
  368.         DisplayMenuPrincipal ();
  369.  
  370.         // reload page
  371.         ReloadPage();
  372.     }
  373.  
  374.     if(oDialog_Configuration.m_bChangeVideo == true)
  375.     {
  376.         // Set new Video Mode
  377.         SetTripleBuffering(iTriple);
  378.         SetVideoMode(iMode);
  379.         SetTexBitDepth(iTextureBitDepth);
  380.         SetDevice(iDevice);
  381.         SetCyclistLOD(iCyclistLOD);
  382.         SetTextureLOD(iTextureLOD);
  383.     }
  384. }
  385.  
  386. //Raz video mode config to keep API choice
  387. //----------------------------------------------------------------------------------------------------------------//
  388. func void ResetVideoModeConfig()
  389. {
  390.     var FILE    savefile;
  391.     var szx        szLine;
  392.     var i32x    iResult,iLanguage;
  393.     var f32x    fFX,fMusic,fCyclistsFX;
  394.     var i32x    iX,iY,iMuteFX,iMuteCyclistsFX,iMuteMusic;
  395.  
  396.     savefile=fopen("scripts/cfg/Config.cfg",1,1);
  397.  
  398.     if(savefile)
  399.     {
  400.         szLine="func void LoadVideoMode()\n";
  401.         iResult=fwriteline(savefile,szLine);
  402.         szLine="{\n";
  403.         iResult=fwriteline(savefile,szLine);
  404.  
  405.         // No video config
  406.         // ***************
  407.  
  408.         szLine="}\n";
  409.         iResult=fwriteline(savefile,szLine);
  410.  
  411.         szLine="func void LoadLanguage()\n";
  412.         iResult=fwriteline(savefile,szLine);
  413.         szLine="{\n";
  414.         iResult=fwriteline(savefile,szLine);
  415.  
  416.         szLine=strcat("\tSetLanguage(",itoa(GetLanguage()));
  417.         szLine=strcat(szLine,");\n");
  418.         iResult=fwriteline(savefile,szLine);
  419.  
  420.         szLine="}\n";
  421.         iResult=fwriteline(savefile,szLine);
  422.  
  423.         szLine="func void LoadAudio()\n";
  424.         iResult=fwriteline(savefile,szLine);
  425.         szLine="{\n";
  426.         iResult=fwriteline(savefile,szLine);
  427.  
  428.         fFX = GetLineVol(0);
  429.         szLine=strcat("\tSetLineVol(Sound_eLine_Interface,",ftoa(fFX));
  430.         szLine=strcat(szLine,");\n");
  431.         iResult=fwriteline(savefile,szLine);
  432.  
  433.         fCyclistsFX = GetLineVol(Sound_eLine_Cyclists);
  434.         szLine=strcat("\tSetLineVol(Sound_eLine_Cyclists,",ftoa(fCyclistsFX));
  435.         szLine=strcat(szLine,");\n");
  436.         iResult=fwriteline(savefile,szLine);
  437.  
  438.         fMusic = g_oUser.m_fMp3Volume;
  439.         szLine=strcat("\tg_oUser.m_fMp3Volume = ",ftoa(fMusic));
  440.         szLine=strcat(szLine,";\n");
  441.         iResult=fwriteline(savefile,szLine);
  442.  
  443.         iMuteFX = GetLineOnOff(Sound_eLine_Interface);
  444.         szLine=strcat("\tSetLineOnOff(Sound_eLine_Interface,",itoa(iMuteFX));
  445.         szLine=strcat(szLine,");\n");
  446.         iResult=fwriteline(savefile,szLine);
  447.  
  448.         iMuteCyclistsFX = GetLineOnOff(Sound_eLine_Cyclists);
  449.         szLine=strcat("\tSetLineOnOff(Sound_eLine_Cyclists,",itoa(iMuteCyclistsFX));
  450.         szLine=strcat(szLine,");\n");
  451.         iResult=fwriteline(savefile,szLine);
  452.  
  453.         iMuteMusic = GetLineOnOff(Sound_eLine_Music);
  454.         szLine=strcat("\tSetLineOnOff(Sound_eLine_Music,",itoa(iMuteMusic));
  455.         szLine=strcat(szLine,");\n");
  456.         iResult=fwriteline(savefile,szLine);
  457.  
  458.         szLine="}\n";
  459.         iResult=fwriteline(savefile,szLine);
  460.         
  461.         
  462.         iResult=fclose(savefile);
  463.     }
  464. }
  465.  
  466. //Dialog_Configuration Constructor
  467. //----------------------------------------------------------------------------------------------------------------//
  468. func i32x Dialog_Configuration_Constructor ()
  469. {
  470.     oDialog_Configuration.iWindowID = InitObject(
  471.         "Configuration", 
  472.         oDialog_Configuration.oFunc.pcreate, 
  473.         oDialog_Configuration.oFunc.pevent);
  474.  
  475.     SetStackEvents(oDialog_Configuration.iWindowID, 0);
  476.  
  477.     // create waiting dialog    
  478.     CreateDialog(DIALOG_LOADING_DATA);
  479.     
  480.     return oDialog_Configuration.iWindowID;
  481. }
  482.  
  483. //Dialog_Configuration Destructor
  484. //----------------------------------------------------------------------------------------------------------------//
  485. func void Dialog_Configuration_Destructor ()
  486. {
  487.     // Destroy all page
  488.     DeleteComponent(oDialog_Configuration.iWindowID);
  489.  
  490. }
  491.  
  492. //Dialog_Configuration Init member
  493. //----------------------------------------------------------------------------------------------------------------//
  494. func void Dialog_Configuration_InitMembers ()
  495. {
  496.     oDialog_Configuration.oFunc.pcreate    = Dialog_Configuration_Create;
  497.     oDialog_Configuration.oFunc.pevent    = Dialog_Configuration_Event;
  498. }
  499.