widgets/pict.hpp: add a class cPictNum to store a picture number and its type,

game[legacy]: only prevent walking on portail in combat mode
Scenario Editor: begin to use cPictNum to avoid crashing when displaying some
  terrain animations, to be continued...
This commit is contained in:
ALONSO Laurent
2021-10-16 12:43:23 +02:00
committed by Celtic Minstrel
parent fdb2b0e0d8
commit 7e189847ee
5 changed files with 56 additions and 27 deletions

View File

@@ -368,12 +368,7 @@ void edit_sign(sign_loc_t& which_sign,short num,short picture) {
cDialog sign_dlg("edit-sign");
sign_dlg["cancel"].attachClickHandler(std::bind(&cDialog::toast, &sign_dlg, false));
sign_dlg["okay"].attachClickHandler(std::bind(edit_sign_event_filter, _1, std::ref(which_sign)));
cPict& icon = dynamic_cast<cPict&>(sign_dlg["pic"]);
if(picture >= 960 && picture < 1000)
icon.setPict(picture, PIC_TER_ANIM);
else if(picture >= 2000)
icon.setPict(picture - 2000, PIC_CUSTOM_TER_ANIM);
else icon.setPict(picture, PIC_TER); // automatically adjusts for custom graphics
dynamic_cast<cPict&>(sign_dlg["pic"]).setPict(cPictNum::getPN_for_terrain(picture));
sign_dlg["num"].setTextToNum(num);
sign_dlg["text"].setText(which_sign.text);