Description |
Introduction |
EFMap is a q3map.exe suitable for compiling EF
maps under the latest releases of GtkRadiant (1.2.x). However, it still keeps
a full compatibility with Q3A & RTCW. The core engine is based on a stable
release of Ydnar's q3map2 that I have heavily customised (Windows look & feel now, but
console mode still available) & somewhat optimized (variable & memory
optimizations + some stuff here & there) in addition to have powered it
with complete EF support. Q3A is the default game supported by this compiler,
so you will be noticed every time you use it which configuration is actived:
Installation instructions |
This is quite easy:
..... Put q3map.exe + the dlls where is efradiant.exe;
it will replace the existing one
..... Edit your EF.qe4 project file and add this
entry: "bsp EFMap Console" "!__QERPATH\q3map -con"
For your convenience, I have included a default .qe4 file with this entry in the zip.
..... Put q3map.exe + the dlls where is GtkRadiant-1.2.7-update.exe (or any other for an other version). This is important in order to EFMap to use suitably its various auto-setting files (i.e. EFMap.cmd, EFMap.fld, EFMap.mpf, EFMap.ofn). Normally, with GtkRadiant, q3map.exe is not in the same directory as its executable file. Because of this, you will have to edit your UserX.qe4 project file so GtkRadiant will know where is this q3map2.
..... Edit your UserX.qe4 project file and add this entry:
"bsp_EFMap Console" "!__QERPATH\q3map
-con" (do not forget the '_' after 'bsp')
For your convenience, I have included my own project file in the zip.
Switch documentation |
No bla bla, just visuals...
1/. EFMap main screen
2/. BSP
help screen
Known problems |
1/. When using the "EFMap Console", you may encounter from time to time - especially if you own a low end system - this error message: "Not enough memory to run q3map.exe" between the console relaunches. Actually, this is because of the way I have implemented the console in the existing code: I did not want to alter this one that much and this is the side effect... But that does happen that often.
2/. Normally, the "EFMap Console" automatically
adds "-game ef" to your command-line (except if you have already typed it
in). I have forgotten to make it add when "-fs_game" was used. So, if you
use this general switch, you will be required to add yourself "-game ef"
in your command-line; if not, this q3map2 will compile your map for Q3A,
and you will get "WARNING: Missin shader texture...". Add it like in this
pic:
Some useful references |
You may have already encountered some errors related to variables beginning with "MAX_". These happen when you have too many of something in your map. This is below the values associated to those global variables & that are supported by this q3map2:
The bottom line |
I did my best for this program. Some bugs may have escaped to my attention, but I got so much headaches worrying about them that they are likely not numerous now :) The most tricky part for me was to program the code behind the edit box control; I think I eventually succeeded in this task.
Just 1 statistic:
Compilation of "borg1.map" (3.44Mb) on a PIII-450/224Mb
RAM (but tiny HDD):
- BSP: about 4'30 (and 2'30 with -nopatchfix -notjunc
-nosubdivide)
- VIS -fast -merge -nopassage -nosort: about 4'30
- LIGHT -fast -cheap -cheapgrid: almost 10'
-----------------------------------------------------------------------
So about 19' in all; not so bad for such a big map :)
And it looks good
in the game.
Advice: if you know that you will be short of
memory for compiling a map, be sure to make use of performance switches over
quality ones. For instance, I tried to VIS compile the above map with no
switch. I saw on the screen that 94Mb were required for passage memory. At
the end, I got a safe_malloc error (memory allocation) and my computer suddenly
crashed. At this moment, RAMpage (see below) displayed 0Mb available... So,
beware because this error did occur only after 5' of VIS!
PS: The memory problem - I tried out many configurations
to optimize it. Well, I eventually made a flushing function for BSP &
an other for VIS which are explicitly called at the end of BSP & VIS
processes. Ydnar's q3map2 did not free the memory allocated for VIS; there
was one for BSP but apparently it remained uncalled.