From 4523e4c0681a5eb2d03d4f89af83c9c1a168749b Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 12 Apr 1995 15:41:15 +0000 Subject: [PATCH] Corretto caricamento immagini git-svn-id: svn://10.65.10.50/trunk@1237 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ba/ba0.cpp | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/ba/ba0.cpp b/ba/ba0.cpp index 59dc142b7..c35593481 100755 --- a/ba/ba0.cpp +++ b/ba/ba0.cpp @@ -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;