Mój problem jest dość złożony, i nie wiem czy uda mi się go sensownie przedstawić, ale:
Mam plik system.cpp, w którym jest funkcję install która włącza tryb graficzny, tworzy bimapy i ładuje pliki graficzne, oraz funkcję draw_game która wyświetla "wszystko" na ekran.
W pliku interface.cpp mam taką klasę:
class Twindow {
public:
int x,y;
int w,h;
int wcount,hcount;
BITMAP *face;
Twindow (int gx, int gy, int gw, int gh);
~Twindow ();
void make ();
void draw ();
};
/* konstruktor okna */
Twindow::Twindow (int gx, int gy, int gw, int gh)
{
x = gx;
y = gy;
w = gw;
h = gh;
/* to przez tą linikę program sie wywala */
if(!(face = create_bitmap(w,h)))
error(E_MEMORY);
make ();
}
/* destruktor okna */
Twindow::~Twindow ()
{
destroy_bitmap (face);
}
/* rysuje okno */
void Twindow::make ()
{
/* CIAH! Mniejsza o szczegóły, w tej funkcji tworze bitmapę ?face? */
}
void Twindow::draw ()
{
blit(face,buffer,0,0,x,y,w,h);
}
Wszystko jest napisane poprawnie, aby stworzyć okno muszę użyć kodu
Twindow MainPanel (0,396,SCR_W,SCR_H - 396);
Problem polega na tym, że bitmapa ?face? z klasy Twindow jest tworzona zanim zostanie włączony tryb graficzny w funkcji install z pliku system.cpp, przez co program kompiluje się poprawnie, ale przy próbie uruchomienia ?krzaczy się?. Jeżeli stworze obiekt w funkcji install, to błędu nie będzie, ale nie będę mógł go użyć w funkcji draw_game.... jak z tego wybrnąć? :|