Corretto caricamento immagini

git-svn-id: svn://10.65.10.50/trunk@1237 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1995-04-12 15:41:15 +00:00
parent 5f0cd593f2
commit 4523e4c068

View File

@ -29,28 +29,23 @@
class TPicture_mask : public TMask
{
TImage _image;
TImage & _image;
protected:
virtual void handler(WINDOW win, EVENT* ep);
public:
TPicture_mask(const char* name, int dx, int dy, short id);
TPicture_mask(const char* name, int dx, int dy, TImage & image, bool remap);
virtual ~TPicture_mask() {}
};
TPicture_mask::TPicture_mask(const char* name, int dx, int dy, short id)
: TMask(name, 1, dx, dy), _image("")
{
char* n = format("ba%02d.bmp", id);
if (id > 0 && !fexist(n))
n = format("ba%02d.bmp", id = 0);
_image.load(n);
TPicture_mask::TPicture_mask(const char* name, int dx, int dy, TImage & image, bool remap)
: TMask(name, 1, dx, dy), _image(image)
{
if (_image.ok())
{
if (id == 0 && MASK_BACK_COLOR != COLOR_DKCYAN)
if (!remap && MASK_BACK_COLOR != COLOR_DKCYAN)
_image.set_clut(6, MASK_BACK_COLOR);
else
_image.set_palette(win());
@ -100,7 +95,7 @@ class TMenu_application : public TApplication
int _first[MAXLEVEL];
TArray _menu; // TAG|DESCRIPTION|ACTION
TBit_array _enabled;
TArray _modules;
TArray _modules, _images;
int _level, _max;
bool _ditta_asked;
@ -143,7 +138,7 @@ bool TMenu_application::build_firm_data(long codditta, bool flagcom)
if (!exist)
{
s = s.path(); s << ntrc;
s = s.path(); s.rtrim(1); s << ntrc;
exist = fexist(s);
}
if (exist)
@ -151,7 +146,7 @@ bool TMenu_application::build_firm_data(long codditta, bool flagcom)
if (!yesno_box("Gli archivi della ditta %ld non esistono: si desidera generarli?", codditta))
return FALSE;
set_autoload_new_files(yesno_box("Si desidera precaricare gli archivi standard"));
s = s.path();
s = s.path(); s.rtrim(1);
if (!fexist(s))
{
@ -382,8 +377,19 @@ int TMenu_application::do_level()
const int height = 18;
const int bwidth = 20;
const int x = width-bwidth-12;
const short pic = (short)row.get_int();
TPicture_mask menu(head, width, height, pic);
short id = (short)row.get_int();
if (_images.objptr(id) == NULL)
{
char* n = format("ba%02d.bmp", id);
if (id > 0 && !fexist(n))
n = format("ba%02d.bmp", id = 0);
TImage * image = new TImage(n);
_images.add(image, id);
}
TPicture_mask menu(head, width, height, (TImage &) _images[id], id != 0);
int y = 1;