This Trac instance is not used for development anymore!

We migrated our development workflow to git and Gitea.
To test the future redirection, replace trac by ariadne in the page URL.

Changeset 10102 for ps


Ignore:
Timestamp:
08/27/11 00:58:55 (13 years ago)
Author:
ben
Message:

Fixes bug in Atlas player panel (AtIter definition must be checked before incrementing).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ps/trunk/source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Player/Player.cpp

    r10099 r10102  
    528528
    529529    // Create player pages
    530     AtIter player = m_PlayerDefaults["item"];
    531     ++player;   // Skip gaia
    532     for (size_t i = 0; i < MAX_NUM_PLAYERS; ++i, ++player)
     530    AtIter playerDefs = m_PlayerDefaults["item"];
     531    if (playerDefs.defined())
     532        ++playerDefs;   // Skip gaia
     533   
     534    for (size_t i = 0; i < MAX_NUM_PLAYERS; ++i)
    533535    {
    534536        // Create new player tab and get controls
    535         PlayerPageControls controls = m_Players->AddPlayer(wxString(player["Name"]), i);
     537        wxString name(_("Unknown"));
     538        if (playerDefs["Name"].defined())
     539            name = playerDefs["Name"];
     540       
     541        PlayerPageControls controls = m_Players->AddPlayer(name, i);
    536542        m_PlayerControls.push_back(controls);
    537543
     
    548554            aiChoice->Append(ais[j]->GetName(), new wxStringClientData(ais[j]->GetID()));
    549555        aiChoice->SetSelection(0);
     556
     557        // Only increment AtIters if they are defined
     558        if (playerDefs.defined())
     559            ++playerDefs;
    550560    }
    551561
     
    591601    // To prevent recursion, don't handle GUI events right now
    592602    m_InGUIUpdate = true;
    593    
     603
     604    wxDynamicCast(FindWindow(ID_NumPlayers), wxSpinCtrl)->SetValue(m_NumPlayers);
     605
     606    // Remove / add extra player pages as needed
     607    m_Players->ResizePlayers(m_NumPlayers);
     608
    594609    // Update player controls with player data
    595610    AtIter playerDefs = m_PlayerDefaults["item"];
    596     ++playerDefs;   // skip gaia
    597 
    598     wxDynamicCast(FindWindow(ID_NumPlayers), wxSpinCtrl)->SetValue(m_NumPlayers);
    599 
    600     // Remove / add extra player pages as needed
    601     m_Players->ResizePlayers(m_NumPlayers);
    602 
    603     for (size_t i = 0; i < MAX_NUM_PLAYERS; ++i, ++player, ++playerDefs)
     611    if (playerDefs.defined())
     612        ++playerDefs;   // skip gaia
     613
     614    for (size_t i = 0; i < MAX_NUM_PLAYERS; ++i)
    604615    {
    605616        PlayerPageControls controls = m_PlayerControls[i];
    606617
    607618        // name
    608         wxString name;
     619        wxString name(_("Unknown"));
    609620        if (player["Name"].defined())
    610621            name = wxString(player["Name"]);
    611         else
     622        else if (playerDefs["Name"].defined())
    612623            name = wxString(playerDefs["Name"]);
    613624
     
    726737            controls.page->SetCamera(sCameraInfo(), false);
    727738
     739        // Only increment AtIters if they are defined
     740        if (player.defined())
     741            ++player;
     742        if (playerDefs.defined())
     743            ++playerDefs;
    728744    }
    729745
Note: See TracChangeset for help on using the changeset viewer.