51
iwBaseWarehouse::iwBaseWarehouse(GameWorldViewer * const gwv,const char *const title,
52
unsigned char page_count,
54
: iwWares(wh->CreateGUIID(),0xFFFE, 0xFFFE, 167, 416, title, page_count, true, NormalFont, wh->GetInventory()), gwv(gwv), wh(wh)
51
iwBaseWarehouse::iwBaseWarehouse(GameWorldViewer* const gwv, const char* const title,
52
unsigned char page_count,
54
: iwWares(wh->CreateGUIID(), 0xFFFE, 0xFFFE, 167, 416, title, page_count, true, NormalFont, wh->GetInventory()), gwv(gwv), wh(wh)
56
// Basisinitialisierungs�nderungen
57
background = LOADER.GetImageN("resource", 41);
59
// Auswahl f�r Auslagern/Einlagern Verbieten-Kn�pfe
60
ctrlOptionGroup *group = AddOptionGroup(10, ctrlOptionGroup::CHECK);
62
group->AddImageButton(0, 16, 335, 32, 32, TC_GREY, LOADER.GetImageN("io_new", 4), _("Collect"));
64
group->AddImageButton(1, 52, 335, 32, 32, TC_GREY, LOADER.GetImageN("io", 211), _("Take out of store"));
65
// Einlagern verbieten
66
group->AddImageButton(2, 86, 335, 32, 32, TC_GREY, LOADER.GetImageN("io", 212), _("Stop storage"));
68
group->SetSelection(0);
70
// Alle ausw�hlen bzw setzen!
71
AddImageButton(11, 122, 335, 32, 32,TC_GREY, LOADER.GetImageN("io", 223), _("Select all"));
73
AddImageButton(13, 122, 369, 32, 32,TC_GREY, LOADER.GetImageN("io", 107), _("Go to place"));
75
// Ein/Auslager Overlays entsprechend setzen
76
// bei Replays die reellen Einstellungen nehmen, weils die visuellen da logischweise nich gibt!
78
for(unsigned char category = 0;category<2;++category)
80
unsigned count = (category == 0)?35:32;
81
for(unsigned i = 0;i<count;++i)
83
// Einlagern verbieten-Bild (de)aktivieren
84
image = GetCtrl<ctrlGroup>(100+category)->GetCtrl<ctrlImage>(400+i);
86
image->SetVisible(GAMECLIENT.IsReplayModeOn()?wh->CheckRealInventorySettings(category,2,i):
87
wh->CheckVisualInventorySettings(category,2,i));
89
// Auslagern-Bild (de)aktivieren
90
image = GetCtrl<ctrlGroup>(100+category)->GetCtrl<ctrlImage>(500+i);
92
image->SetVisible(GAMECLIENT.IsReplayModeOn()?wh->CheckRealInventorySettings(category,4,i):
93
wh->CheckVisualInventorySettings(category,4,i));
95
// Einlagern-Bild (de)aktivieren
96
image = GetCtrl<ctrlGroup>(100+category)->GetCtrl<ctrlImage>(700+i);
98
image->SetVisible(GAMECLIENT.IsReplayModeOn()?wh->CheckRealInventorySettings(category,8,i):
99
wh->CheckVisualInventorySettings(category,8,i));
103
// Lagerhaus oder Hafengeb�ude?
104
if(wh->GetGOT() == GOT_NOB_STOREHOUSE || wh->GetGOT() == GOT_NOB_HARBORBUILDING)
107
// Abbrennbutton hinzuf�gen
108
// "Bl�ttern" in Bretter stauchen und verschieben
109
GetCtrl<ctrlButton>(0)->SetWidth(32);
110
GetCtrl<ctrlButton>(0)->Move(86,369,true);
112
AddImageButton(1, 52, 369, 32, 32, TC_GREY, LOADER.GetImageN("io", 23), _("Demolish house"));
56
// Basisinitialisierungs�nderungen
57
background = LOADER.GetImageN("resource", 41);
59
// Auswahl f�r Auslagern/Einlagern Verbieten-Kn�pfe
60
ctrlOptionGroup* group = AddOptionGroup(10, ctrlOptionGroup::CHECK);
62
group->AddImageButton(0, 16, 335, 32, 32, TC_GREY, LOADER.GetImageN("io_new", 4), _("Collect"));
64
group->AddImageButton(1, 52, 335, 32, 32, TC_GREY, LOADER.GetImageN("io", 211), _("Take out of store"));
65
// Einlagern verbieten
66
group->AddImageButton(2, 86, 335, 32, 32, TC_GREY, LOADER.GetImageN("io", 212), _("Stop storage"));
68
group->SetSelection(0);
70
// Alle ausw�hlen bzw setzen!
71
AddImageButton(11, 122, 335, 32, 32, TC_GREY, LOADER.GetImageN("io", 223), _("Select all"));
73
AddImageButton(13, 122, 369, 32, 32, TC_GREY, LOADER.GetImageN("io", 107), _("Go to place"));
75
// Ein/Auslager Overlays entsprechend setzen
76
// bei Replays die reellen Einstellungen nehmen, weils die visuellen da logischweise nich gibt!
78
for(unsigned char category = 0; category < 2; ++category)
80
unsigned count = (category == 0) ? 35 : 32;
81
for(unsigned i = 0; i < count; ++i)
83
// Einlagern verbieten-Bild (de)aktivieren
84
image = GetCtrl<ctrlGroup>(100 + category)->GetCtrl<ctrlImage>(400 + i);
86
image->SetVisible(GAMECLIENT.IsReplayModeOn() ? wh->CheckRealInventorySettings(category, 2, i) :
87
wh->CheckVisualInventorySettings(category, 2, i));
89
// Auslagern-Bild (de)aktivieren
90
image = GetCtrl<ctrlGroup>(100 + category)->GetCtrl<ctrlImage>(500 + i);
92
image->SetVisible(GAMECLIENT.IsReplayModeOn() ? wh->CheckRealInventorySettings(category, 4, i) :
93
wh->CheckVisualInventorySettings(category, 4, i));
95
// Einlagern-Bild (de)aktivieren
96
image = GetCtrl<ctrlGroup>(100 + category)->GetCtrl<ctrlImage>(700 + i);
98
image->SetVisible(GAMECLIENT.IsReplayModeOn() ? wh->CheckRealInventorySettings(category, 8, i) :
99
wh->CheckVisualInventorySettings(category, 8, i));
103
// Lagerhaus oder Hafengeb�ude?
104
if(wh->GetGOT() == GOT_NOB_STOREHOUSE || wh->GetGOT() == GOT_NOB_HARBORBUILDING)
107
// Abbrennbutton hinzuf�gen
108
// "Bl�ttern" in Bretter stauchen und verschieben
109
GetCtrl<ctrlButton>(0)->SetWidth(32);
110
GetCtrl<ctrlButton>(0)->Move(86, 369, true);
112
AddImageButton(1, 52, 369, 32, 32, TC_GREY, LOADER.GetImageN("io", 23), _("Demolish house"));
117
117
void iwBaseWarehouse::Msg_Group_ButtonClick(const unsigned int group_id, const unsigned int ctrl_id)
121
default: // an Basis weiterleiten
123
iwWares::Msg_Group_ButtonClick(group_id,ctrl_id);
128
ctrlOptionGroup *optiongroup = GetCtrl<ctrlOptionGroup>(10);
121
default: // an Basis weiterleiten
123
iwWares::Msg_Group_ButtonClick(group_id, ctrl_id);
128
ctrlOptionGroup* optiongroup = GetCtrl<ctrlOptionGroup>(10);
130
unsigned int data = 0;
131
switch(optiongroup->GetSelection())
133
case 0: data = 8; break;
134
case 1: data = 4; break;
135
case 2: data = 2; break;
139
// Nicht bei Replays setzen
140
if(GAMECLIENT.AddGC(new gc::ChangeInventorySetting(wh->GetX(),wh->GetY(),page,data,ctrl_id - 100)))
141
// optisch schonmal setzen
142
ChangeOverlay(ctrl_id - 100, data);;
130
unsigned int data = 0;
131
switch(optiongroup->GetSelection())
133
case 0: data = 8; break;
134
case 1: data = 4; break;
135
case 2: data = 2; break;
139
// Nicht bei Replays setzen
140
if(GAMECLIENT.AddGC(new gc::ChangeInventorySetting(wh->GetX(), wh->GetY(), page, data, ctrl_id - 100)))
141
// optisch schonmal setzen
142
ChangeOverlay(ctrl_id - 100, data);;
148
148
void iwBaseWarehouse::Msg_ButtonClick(const unsigned int ctrl_id)
152
case 1: // Geb�ude abrei�en
156
WindowManager::inst().Show(new iwDemolishBuilding(gwv, wh));
158
case 11: // "Alle ausw�hlen"
162
ctrlOptionGroup *optiongroup = GetCtrl<ctrlOptionGroup>(10);
163
unsigned int data = 0;
164
switch(optiongroup->GetSelection())
166
case 0: data = 8; break;
167
case 1: data = 4; break;
168
case 2: data = 2; break;
172
// Nicht bei Replays setzen
173
if(GAMECLIENT.AddGC(new gc::ChangeAllInventorySettings(wh->GetX(),wh->GetY(),page,data)))
176
unsigned short count = ((page == 0)?WARE_TYPES_COUNT:JOB_TYPES_COUNT);
177
for(unsigned char i = 0; i < count; ++i)
178
ChangeOverlay(i, data);
152
case 1: // Geb�ude abrei�en
156
WindowManager::inst().Show(new iwDemolishBuilding(gwv, wh));
158
case 11: // "Alle ausw�hlen"
162
ctrlOptionGroup* optiongroup = GetCtrl<ctrlOptionGroup>(10);
163
unsigned int data = 0;
164
switch(optiongroup->GetSelection())
166
case 0: data = 8; break;
167
case 1: data = 4; break;
168
case 2: data = 2; break;
172
// Nicht bei Replays setzen
173
if(GAMECLIENT.AddGC(new gc::ChangeAllInventorySettings(wh->GetX(), wh->GetY(), page, data)))
176
unsigned short count = ((page == 0) ? WARE_TYPES_COUNT : JOB_TYPES_COUNT);
177
for(unsigned char i = 0; i < count; ++i)
178
ChangeOverlay(i, data);
186
WindowManager::inst().Show(new iwHelp(GUI_ID(CGI_HELPBUILDING+wh->GetBuildingType()),_(BUILDING_NAMES[wh->GetBuildingType()]),
187
_(BUILDING_HELP_STRINGS[wh->GetBuildingType()])));
189
case 13: // "Gehe Zu Ort"
191
gwv->MoveToMapObject(wh->GetX(), wh->GetY());
193
default: // an Basis weiterleiten
195
iwWares::Msg_ButtonClick(ctrl_id);
186
WindowManager::inst().Show(new iwHelp(GUI_ID(CGI_HELPBUILDING + wh->GetBuildingType()), _(BUILDING_NAMES[wh->GetBuildingType()]),
187
_(BUILDING_HELP_STRINGS[wh->GetBuildingType()])));
189
case 13: // "Gehe Zu Ort"
191
gwv->MoveToMapObject(wh->GetX(), wh->GetY());
193
default: // an Basis weiterleiten
195
iwWares::Msg_ButtonClick(ctrl_id);