//----------------------------------------------------------------- void game_cl_TeamDeathmatch::SetCurrentBuyMenu () { if (!local_player) return; if (!local_player->team || local_player->skin == -1) return; if (!pCurBuyMenu) { if (local_player->team == 1) { pCurBuyMenu = InitBuyMenu(GetBaseCostSect(), 1); LoadTeamDefaultPresetItems(GetTeamMenu(1), pCurBuyMenu, &PresetItemsTeam1); pCurPresetItems = &PresetItemsTeam1; } else { pCurBuyMenu = InitBuyMenu(GetBaseCostSect(), 2); LoadTeamDefaultPresetItems(GetTeamMenu(2), pCurBuyMenu, &PresetItemsTeam2); pCurPresetItems = &PresetItemsTeam2; }; LoadDefItemsForRank(pCurBuyMenu); }; // if (pCurBuyMenu) pCurBuyMenu->SetSkin(local_player->skin); if (!pCurBuyMenu) return; //----------------------------------- if (m_cl_dwWarmUp_Time != 0) pCurBuyMenu->IgnoreMoneyAndRank(true); else pCurBuyMenu->IgnoreMoneyAndRank(false); //----------------------------------- };
void game_cl_Deathmatch::OnGameRoundStarted () { inherited::OnGameRoundStarted(); if (pCurBuyMenu && pCurBuyMenu->IsShown()) pCurBuyMenu->HideDialog(); if (local_player) { if (pCurBuyMenu) { pCurBuyMenu->IgnoreMoneyAndRank(false); pCurBuyMenu->SetRank(local_player->rank); } ClearBuyMenu(); LoadDefItemsForRank(pCurBuyMenu); ChangeItemsCosts(pCurBuyMenu); if (pCurBuyMenu && pCurPresetItems) { LoadTeamDefaultPresetItems(GetTeamMenu(local_player->team), pCurBuyMenu, pCurPresetItems); ReInitRewardGenerator(local_player); } } if (pCurBuyMenu) pCurBuyMenu->ClearPreset(_preset_idx_last); //----------------------------------------------------------------- if ( m_game_ui && m_game_ui->ActorMenu().IsShown() ) { m_game_ui->HideActorMenu(); } }
void game_cl_Deathmatch::SetCurrentBuyMenu () { if (!pCurBuyMenu) { pCurBuyMenu = InitBuyMenu(GetBaseCostSect(), 0); LoadTeamDefaultPresetItems(GetTeamMenu(0), pCurBuyMenu, &PresetItemsTeam0); pCurPresetItems = &PresetItemsTeam0; LoadDefItemsForRank(pCurBuyMenu); } //----------------------------------- if (m_cl_dwWarmUp_Time != 0) pCurBuyMenu->IgnoreMoneyAndRank(true); else pCurBuyMenu->IgnoreMoneyAndRank(false); //----------------------------------- if (!local_player) return; };
void CUIGameCTA::LoadDefItemsForRank() { R_ASSERT(m_pCurBuyMenu); R_ASSERT(m_game); R_ASSERT(m_game->local_player); //--------------------------------------------------- game_PlayerState* local_player = m_game->local_player; LoadTeamDefaultPresetItems(m_game->getTeamSection(local_player->team)); //--------------------------------------------------- string16 RankStr; string256 ItemStr; string256 NewItemStr; char tmp[5]; for (int i=1; i<=local_player->rank; i++) { strconcat(sizeof(RankStr),RankStr,"rank_",itoa(i,tmp,10)); if (!pSettings->section_exist(RankStr)) continue; for (u32 it=0; it<PlayerDefItems.size(); it++) { // s16* pItemID = &(PlayerDefItems[it]); // char* ItemName = pBuyMenu->GetWeaponNameByIndex(u8(((*pItemID)&0xff00)>>0x08), u8((*pItemID)&0x00ff)); PresetItem *pDefItem = &(PlayerDefItems[it]); const shared_str& ItemName = m_pCurBuyMenu->GetWeaponNameByIndex(pDefItem->SlotID, pDefItem->ItemID); if (!ItemName.size()) continue; strconcat(sizeof(ItemStr),ItemStr, "def_item_repl_", ItemName.c_str() ); if (!pSettings->line_exist(RankStr, ItemStr)) continue; xr_strcpy(NewItemStr,sizeof(NewItemStr),pSettings->r_string(RankStr, ItemStr)); u8 SlotID, ItemID; m_pCurBuyMenu->GetWeaponIndexByName(NewItemStr, SlotID, ItemID); if (SlotID == 0xff || ItemID == 0xff) continue; // s16 ID = GetBuyMenuItemIndex(SlotID, ItemID); s16 ID = GetBuyMenuItemIndex(0, ItemID); // *pItemID = ID; pDefItem->set(ID); } } //--------------------------------------------------------- for (u32 it=0; it<PlayerDefItems.size(); it++) { // s16* pItemID = &(PlayerDefItems[it]); // char* ItemName = pBuyMenu->GetWeaponNameByIndex(u8(((*pItemID)&0xff00)>>0x08), u8((*pItemID)&0x00ff)); PresetItem *pDefItem = &(PlayerDefItems[it]); const shared_str& ItemName = m_pCurBuyMenu->GetWeaponNameByIndex(pDefItem->SlotID, pDefItem->ItemID); if ( !ItemName.size() ) continue; if (!xr_strcmp(*ItemName, "mp_wpn_knife")) continue; if (!pSettings->line_exist(ItemName, "ammo_class")) continue; string1024 wpnAmmos, BaseAmmoName; xr_strcpy(wpnAmmos, pSettings->r_string(ItemName, "ammo_class")); _GetItem(wpnAmmos, 0, BaseAmmoName); u8 SlotID, ItemID; m_pCurBuyMenu->GetWeaponIndexByName(BaseAmmoName, SlotID, ItemID); if (SlotID == 0xff || ItemID == 0xff) continue; // s16 ID = GetBuyMenuItemIndex(SlotID, ItemID); s16 ID = GetBuyMenuItemIndex(0, ItemID); PlayerDefItems.push_back(ID); PlayerDefItems.push_back(ID); }; };
void game_cl_Deathmatch::LoadPlayerDefItems(char* TeamName, IBuyWnd* pBuyMenu) { if (!local_player) return; LoadTeamDefaultPresetItems (TeamName, pBuyMenu, &PlayerDefItems); };
void game_cl_Deathmatch::OnSwitchPhase_InProgress() { HideBuyMenu(); LoadTeamDefaultPresetItems(GetTeamMenu(0), pCurBuyMenu, &PresetItemsTeam0); };