The MASkinG FAQ

A short and most definatelly not a comprehensive list of questions that seem to be asked more often than others and of course their respective answers:

Q: The library won't compile because a file called alfont.h is missing!

A: In order to compile and use MASkinG you need to properly install two other libraries first. The first is Allegro, which I trust you already have, and the other is Allegro Font by Javier Gonzalez. If you don't have it you can get it here. First install Allegro Font and then try compiling MASkinG again.

Q: How do I install Allegro Font? It compiled fine but what do I do now?

A: You have to install it in your compiler's directory. Most libraries are compiled and installed by typing 'make' and 'make install' but Allegro Font doesn't come with a 'make install' command so you must install it manually. Just copy the headers to your compiler's include directory and the library (either the .a or the .lib files) to your compiler's lib directory.

Q: When trying to compile the library a get a ton of errors!

A: Make sure you have installed and configured your compiler and all the necessary libraries, including AllegroFont and AllegroGL if you choose to use it. If you're using the MinGW compiler or the Dev-C++ IDE you must set the environment variable named MINGDIR to point to the location of your compiler installation and add the compilers bin directory to the path. You do this by typing "set MINGDIR=c:\mingw" or "set MINGDIR=c:\dev-cpp" and "set PATH=c:\mingw\bin;%PATH%" or "set PATH=c:\dev-cpp\bin;%PATH%". Replace "c:\" with the actual path to where you installed MinGW or Dev-C++ if you didn't install it in C:\.

Q: MASkinG compiled fine but when I type 'make install' I get erors. What's wrong?

A: If 'make install' fails on your system (it should work on every system with a working instalation of the GCC compiler and file utils) you will have to install manually. Just copy all the header files (the entire directory) to your compiler's include directory and the library (either the .a or the .lib files) to your compiler's lib directory.

Q: I'm using the MSVC compiler and when I build my project it compiles fine but I get linker errors about symbols already being defined.

A: You need to setup your project to use the multithreaded DLL runtime library (by default MSVC will use the single threaded version). To do this open the project settings dialog, click the "C/C++" tab (the third tab), in the category drop down list select "Code Generation" and in the user run-time library drop down list select either "Multithreaded DLL" or "Debug Multithreaded DLL".

Q: Can I use MASkinG to make a game or is it only good to make utility programs?

A: MASkinG was originally meant for making "normal" programs but it can just as easily be used to make games. In fact recently most of my efforts have been targeted at making it a game GUI library rather than a general purpose GUI. MASkinG is now very well suited for making GUI intensive games such as strategies, role playing games, adventure games, etc.

Q: Can I use MASkinG to just popup a few windows here and there and use my own engine to do everything else?

A: Unfortunately no. MASkinG is really not just a library of functions that can be called, it is an entire engine with its own main loop. You can of course use it for your game's menus and options dialogs and then use your own game engine to do the actual game but you can't have for example your engine and some MASkinG dialogs on the screen running simultaneously. If you want to use MASkinG in-game you will need to design your entire game around it.

Q: How can I use MASkinG without having to call InstallMASkinG() which wants to install and initialize everything by itself?

A: If you don't want to call InstallMASkinG() for some reason, you have to do everything that function does manually. Look for "masking.cpp" in the source directory of MASkinG to see exactly what it does.


Send your questions, comments, ideas, bug reports, feature requests or anything else in connection with MASkinG to miranamon@users.sourceforge.net or at the Allegro.cc forums.


Back