/// Konstruktor von @p iwBuildingProductivities. iwBuildingProductivities::iwBuildingProductivities() : IngameWindow(CGI_BUILDINGSPRODUCTIVITY, 0xFFFE, 0xFFFE, left_x + 2 * percent_width + 2 * image_percent_x + percent_image_x + right_x, top_y + (BUILDINGS_COUNT / 2 + 1) * (distance_y + 1), _("Productivity"), LOADER.GetImageN("resource", 41)), percents(40, 0) { for(unsigned y = 0; y < BUILDINGS_COUNT / 2 + BUILDINGS_COUNT % 2; ++y) { for(unsigned x = 0; x < 2; ++x) { if(y * 2 + x < BUILDINGS_COUNT) { if(bts[y*2+x]!=BLD_CHARBURNER) AddImage((y * 2 + x) * 2, left_x + x * (percent_image_x + percent_width + image_percent_x), top_y + distance_y * y + percent_height / 2,LOADER.GetImageN(NATION_ICON_IDS[GameClient::inst().GetLocalPlayer()->nation], bts[y * 2 + x]), _(BUILDING_NAMES[bts[y * 2 + x]])); else AddImage((y * 2 + x) * 2, left_x + x * (percent_image_x + percent_width + image_percent_x), top_y + distance_y * y + percent_height / 2,LOADER.GetImageN("charburner", GameClient::inst().GetLocalPlayer()->nation * 8 + 8), _(BUILDING_NAMES[bts[y * 2 + x]])); AddPercent((y * 2 + x) * 2 + 1, left_x + image_percent_x + x * (percent_image_x + percent_width + image_percent_x), top_y + distance_y * y, percent_width, percent_height, TC_GREY, COLOR_YELLOW, SmallFont, &percents[bts[y * 2 + x]]); } } } UpdatePercents(); // Hilfe-Button AddImageButton(500, width - 14 - 30, height - 20 - 32, 30, 32, TC_GREY, LOADER.GetImageN("io", 21), _("Help")); }
iwBuilding::iwBuilding(GameWorldView& gwv, GameCommandFactory& gcFactory, nobUsual* const building) : IngameWindow(building->CreateGUIID(), (unsigned short) - 2, (unsigned short) - 2, 226, 194, _(BUILDING_NAMES[building->GetBuildingType()]), LOADER.GetImageN("resource", 41)), gwv(gwv), gcFactory(gcFactory), building(building) { // Arbeitersymbol AddImage(0, 28, 39, LOADER.GetMapImageN(2298)); // Exception: charburner if (building->GetBuildingType() != BLD_CHARBURNER) { AddImage(13, 28, 39, LOADER.GetMapImageN(2300 + USUAL_BUILDING_CONSTS[building->GetBuildingType() - 10].job)); } else { AddImage(13, 28, 39, LOADER.GetImageN("io_new", 5)); } // Gebäudesymbol AddImage(1, 117, 114, building->GetBuildingImage()); // Symbol der produzierten Ware (falls hier was produziert wird) if(USUAL_BUILDING_CONSTS[building->GetBuildingType() - 10].produced_ware != GD_NOTHING) { AddImage(2, 196, 39, LOADER.GetMapImageN(2298)); AddImage(3, 196, 39, LOADER.GetMapImageN(2250 + USUAL_BUILDING_CONSTS[building->GetBuildingType() - 10].produced_ware)); } // Info AddImageButton( 4, 16, 147, 30, 32, TC_GREY, LOADER.GetImageN("io", 225), _("Help")); // Abreißen AddImageButton( 5, 50, 147, 34, 32, TC_GREY, LOADER.GetImageN("io", 23), _("Demolish house")); // Produktivität einstellen (196,197) (bei Spähturm ausblenden) Window* enable_productivity = AddImageButton( 6, 90, 147, 34, 32, TC_GREY, LOADER.GetImageN("io", ((building->IsProductionDisabledVirtual()) ? 197 : 196))); if(building->GetBuildingType() == BLD_LOOKOUTTOWER) enable_productivity->SetVisible(false); // Bei Bootsbauer Button zum Umwählen von Booten und Schiffen if(building->GetBuildingType() == BLD_SHIPYARD) { // Jenachdem Boot oder Schiff anzeigen unsigned io_dat_id = (static_cast<nobShipYard*>(building)->GetMode() == nobShipYard::BOATS) ? IODAT_BOAT_ID : IODAT_SHIP_ID; AddImageButton(11, 130, 147, 43, 32, TC_GREY, LOADER.GetImageN("io", io_dat_id)); } // "Gehe Zum Ort" AddImageButton( 7, 179, 147, 30, 32, TC_GREY, LOADER.GetImageN("io", 107), _("Go to place")); // Gebäudebild und dessen Schatten AddImage( 8, 117, 114, LOADER.GetNationImage(building->GetNation(), 250 + 5 * building->GetBuildingType())); // Produktivitätsanzeige (bei Katapulten und Spähtürmen ausblenden) Window* productivity = AddPercent(9, 59, 31, 106, 16, TC_GREY, 0xFFFFFF00, SmallFont, building->GetProductivityPointer()); if(building->GetBuildingType() == BLD_CATAPULT || building->GetBuildingType() == BLD_LOOKOUTTOWER) productivity->SetVisible(false); AddText(10, 113, 50, _("(House unoccupied)"), COLOR_RED, glArchivItem_Font::DF_CENTER, NormalFont); // "Go to next" (building of same type) AddImageButton( 12, 179, 115, 30, 32, TC_GREY, LOADER.GetImageN("io_new", 11), _("Go to next building of same type")); }