void Init(Heroes* ptr) { hero = ptr; Clear(); armyBar = new ArmyBar(&hero->GetArmy(), true, false); armyBar->SetBackground(41, 53, 0x82); armyBar->SetColRows(5, 1); armyBar->SetHSpace(-1); artifactsBar = new ArtifactsBar(hero, true, false); artifactsBar->SetColRows(7, 2); artifactsBar->SetHSpace(1); artifactsBar->SetVSpace(8); artifactsBar->SetContent(hero->GetBagArtifacts()); secskillsBar = new SecondarySkillsBar(); secskillsBar->SetColRows(4, 2); secskillsBar->SetHSpace(-1); secskillsBar->SetVSpace(8); secskillsBar->SetContent(hero->GetSecondarySkills()); primskillsBar = new PrimarySkillsBar(ptr, true); primskillsBar->SetColRows(4, 1); primskillsBar->SetHSpace(2); primskillsBar->SetTextOff(20, -13); }
void Heroes::MeetingDialog(Heroes & heroes2) { if(Settings::Get().QVGA()) return PocketPC::HeroesMeeting(*this, heroes2); Display & display = Display::Get(); // cursor Cursor & cursor = Cursor::Get(); cursor.Hide(); cursor.SetThemes(cursor.POINTER); const Sprite &backSprite = AGG::GetICN(ICN::SWAPWIN, 0); const Point cur_pt((display.w() - backSprite.w()) / 2, (display.h() - backSprite.h()) / 2); SpriteBack background(Rect(cur_pt, backSprite.w(), backSprite.h())); Point dst_pt(cur_pt); std::string message; Rect src_rt(0, 0, 640, 480); // background dst_pt.x = cur_pt.x; dst_pt.y = cur_pt.y; backSprite.Blit(src_rt, dst_pt); // header message = _("%{name1} meets %{name2}"); StringReplace(message, "%{name1}", GetName()); StringReplace(message, "%{name2}", heroes2.GetName()); Text text(message, Font::BIG); text.Blit(cur_pt.x + 320 - text.w() / 2, cur_pt.y + 26); // portrait dst_pt.x = cur_pt.x + 93; dst_pt.y = cur_pt.y + 72; PortraitRedraw(dst_pt.x, dst_pt.y, PORT_BIG, display); dst_pt.x = cur_pt.x + 445; dst_pt.y = cur_pt.y + 72; heroes2.PortraitRedraw(dst_pt.x, dst_pt.y, PORT_BIG, display); dst_pt.x = cur_pt.x + 34; dst_pt.y = cur_pt.y + 75; MoraleIndicator moraleIndicator1(*this); moraleIndicator1.SetPos(dst_pt); moraleIndicator1.Redraw(); dst_pt.x = cur_pt.x + 34; dst_pt.y = cur_pt.y + 115; LuckIndicator luckIndicator1(*this); luckIndicator1.SetPos(dst_pt); luckIndicator1.Redraw(); dst_pt.x = cur_pt.x + 566; dst_pt.y = cur_pt.y + 75; MoraleIndicator moraleIndicator2(heroes2); moraleIndicator2.SetPos(dst_pt); moraleIndicator2.Redraw(); dst_pt.x = cur_pt.x + 566; dst_pt.y = cur_pt.y + 115; LuckIndicator luckIndicator2(heroes2); luckIndicator2.SetPos(dst_pt); luckIndicator2.Redraw(); // primary skill SpriteBack backPrimary(Rect(cur_pt.x + 255, cur_pt.y + 50, 130, 135)); PrimarySkillsBar primskill_bar1(this, true); primskill_bar1.SetColRows(1, 4); primskill_bar1.SetVSpace(-1); primskill_bar1.SetTextOff(70, -25); primskill_bar1.SetPos(cur_pt.x + 216, cur_pt.y + 51); PrimarySkillsBar primskill_bar2(&heroes2, true); primskill_bar2.SetColRows(1, 4); primskill_bar2.SetVSpace(-1); primskill_bar2.SetTextOff(-70, -25); primskill_bar2.SetPos(cur_pt.x + 389, cur_pt.y + 51); RedrawPrimarySkillInfo(cur_pt, &primskill_bar1, &primskill_bar2); // secondary skill SecondarySkillsBar secskill_bar1; secskill_bar1.SetColRows(8, 1); secskill_bar1.SetHSpace(-1); secskill_bar1.SetContent(secondary_skills); secskill_bar1.SetPos(cur_pt.x + 22, cur_pt.y + 199); secskill_bar1.Redraw(); SecondarySkillsBar secskill_bar2; secskill_bar2.SetColRows(8, 1); secskill_bar2.SetHSpace(-1); secskill_bar2.SetContent(heroes2.GetSecondarySkills()); secskill_bar2.SetPos(cur_pt.x + 353, cur_pt.y + 199); secskill_bar2.Redraw(); // army dst_pt.x = cur_pt.x + 36; dst_pt.y = cur_pt.y + 267; ArmyBar selectArmy1(&GetArmy(), true, false); selectArmy1.SetColRows(5, 1); selectArmy1.SetPos(dst_pt.x, dst_pt.y); selectArmy1.SetHSpace(2); selectArmy1.Redraw(); dst_pt.x = cur_pt.x + 381; dst_pt.y = cur_pt.y + 267; ArmyBar selectArmy2(&heroes2.GetArmy(), true, false); selectArmy2.SetColRows(5, 1); selectArmy2.SetPos(dst_pt.x, dst_pt.y); selectArmy2.SetHSpace(2); selectArmy2.Redraw(); // artifact dst_pt.x = cur_pt.x + 23; dst_pt.y = cur_pt.y + 347; ArtifactsBar selectArtifacts1(this, true, false); selectArtifacts1.SetColRows(7, 2); selectArtifacts1.SetHSpace(2); selectArtifacts1.SetVSpace(2); selectArtifacts1.SetContent(GetBagArtifacts()); selectArtifacts1.SetPos(dst_pt.x, dst_pt.y); selectArtifacts1.Redraw(); dst_pt.x = cur_pt.x + 367; dst_pt.y = cur_pt.y + 347; ArtifactsBar selectArtifacts2(&heroes2, true, false); selectArtifacts2.SetColRows(7, 2); selectArtifacts2.SetHSpace(2); selectArtifacts2.SetVSpace(2); selectArtifacts2.SetContent(heroes2.GetBagArtifacts()); selectArtifacts2.SetPos(dst_pt.x, dst_pt.y); selectArtifacts2.Redraw(); // button exit dst_pt.x = cur_pt.x + 280; dst_pt.y = cur_pt.y + 428; Button buttonExit(dst_pt.x, dst_pt.y, ICN::SWAPBTN, 0, 1); buttonExit.Draw(); cursor.Show(); display.Flip(); MovePointsScaleFixed(); heroes2.MovePointsScaleFixed(); // scholar action if(Settings::Get().ExtWorldEyeEagleAsScholar()) Heroes::ScholarAction(*this, heroes2); LocalEvent & le = LocalEvent::Get(); // message loop while(le.HandleEvents()) { le.MousePressLeft(buttonExit) ? buttonExit.PressDraw() : buttonExit.ReleaseDraw(); if(le.MouseClickLeft(buttonExit) || HotKeyCloseWindow) break; // selector troops event if((le.MouseCursor(selectArmy1.GetArea()) && selectArmy1.QueueEventProcessing(selectArmy2)) || (le.MouseCursor(selectArmy2.GetArea()) && selectArmy2.QueueEventProcessing(selectArmy1))) { cursor.Hide(); if(selectArtifacts1.isSelected()) selectArtifacts1.ResetSelected(); else if(selectArtifacts2.isSelected()) selectArtifacts2.ResetSelected(); selectArmy1.Redraw(); selectArmy2.Redraw(); moraleIndicator1.Redraw(); moraleIndicator2.Redraw(); luckIndicator1.Redraw(); luckIndicator2.Redraw(); cursor.Show(); display.Flip(); } // selector artifacts event if((le.MouseCursor(selectArtifacts1.GetArea()) && selectArtifacts1.QueueEventProcessing(selectArtifacts2)) || (le.MouseCursor(selectArtifacts2.GetArea()) && selectArtifacts2.QueueEventProcessing(selectArtifacts1))) { cursor.Hide(); if(selectArmy1.isSelected()) selectArmy1.ResetSelected(); else if(selectArmy2.isSelected()) selectArmy2.ResetSelected(); selectArtifacts1.Redraw(); selectArtifacts2.Redraw(); backPrimary.Restore(); RedrawPrimarySkillInfo(cur_pt, &primskill_bar1, &primskill_bar2); moraleIndicator1.Redraw(); moraleIndicator2.Redraw(); luckIndicator1.Redraw(); luckIndicator2.Redraw(); cursor.Show(); display.Flip(); } if((le.MouseCursor(primskill_bar1.GetArea()) && primskill_bar1.QueueEventProcessing()) || (le.MouseCursor(primskill_bar2.GetArea()) && primskill_bar2.QueueEventProcessing()) || (le.MouseCursor(secskill_bar1.GetArea()) && secskill_bar1.QueueEventProcessing()) || (le.MouseCursor(secskill_bar2.GetArea()) && secskill_bar2.QueueEventProcessing())) { cursor.Show(); display.Flip(); } if(le.MouseCursor(moraleIndicator1.GetArea())) MoraleIndicator::QueueEventProcessing(moraleIndicator1); else if(le.MouseCursor(moraleIndicator2.GetArea())) MoraleIndicator::QueueEventProcessing(moraleIndicator2); else if(le.MouseCursor(luckIndicator1.GetArea())) LuckIndicator::QueueEventProcessing(luckIndicator1); else if(le.MouseCursor(luckIndicator2.GetArea())) LuckIndicator::QueueEventProcessing(luckIndicator2); } if(Settings::Get().ExtHeroRecalculateMovement()) { RecalculateMovePoints(); heroes2.RecalculateMovePoints(); } cursor.Hide(); background.Restore(); cursor.Show(); display.Flip(); }