Difference between revisions of "Libfov"

From RogueBasin
Jump to navigation Jump to search
Line 1: Line 1:
A field of view library - can be found here:
== A field of view library ==
It can be found here:
http://members.optusnet.com.au/puyo/libfov.html
http://members.optusnet.com.au/puyo/libfov.html


Some help from Radomir 'The Sheep' Dopieralski can be found on this rgrd thread:
Some help from Radomir 'The Sheep' Dopieralski can be found on this rgrd thread:
Line 9: Line 9:




The API:
== The API ==
http://members.optusnet.com.au/puyo/dev/libfov/html/index.html
http://members.optusnet.com.au/puyo/dev/libfov/html/index.html


Annoyances: although libfov is a c library, for some reason compiling a file that contains #include <fov/fov.h> need to be compiled as a c++ program and not as a c program.
 
== Bugs ==
in order to be able to "#include <fov/fov.h>" and compile as a c program rather then a c++ one, you need to add the following lines before including fov.h:
 
<pre><nowiki>
#define bool int
#include <math.h>
</nowiki></pre>
 
 
''
''
For instance:''
For instance:''
A file containing the following:
<pre><nowiki>
<pre><nowiki>
#define bool int
#include <math.h>
#include <fov/fov.h>
#include <fov/fov.h>


int
int
main(){
main(){
    /*do stuff*/
     return 0;
     return 0;
}
}
</nowiki></pre>
</nowiki></pre>


will compile as libfov-test.cpp but if named libfov-test.c (and therefor compiled as a c file), gcc will produce the following error:
<pre><nowiki>
In file included from libfov-test.c:1:
/usr/local/include/fov/fov.h:68: error: syntax error before ‘bool’
/usr/local/include/fov/fov.h:83: error: syntax error before ‘}’ token
/usr/local/include/fov/fov.h:102: error: syntax error before ‘*’ token
/usr/local/include/fov/fov.h:123: error: syntax error before ‘*’ token
/usr/local/include/fov/fov.h:150: error: syntax error before ‘*’ token
/usr/local/include/fov/fov.h:161: error: syntax error before ‘*’ token
/usr/local/include/fov/fov.h:169: error: syntax error before ‘*’ token
/usr/local/include/fov/fov.h:169: error: syntax error before ‘)’ token
/usr/local/include/fov/fov.h:177: error: syntax error before ‘*’ token
/usr/local/include/fov/fov.h:177: error: syntax error before ‘)’ token
/usr/local/include/fov/fov.h:185: error: syntax error before ‘*’ token
/usr/local/include/fov/fov.h:197: error: syntax error before ‘*’ token
/usr/local/include/fov/fov.h:218: error: syntax error before ‘*’ token
make: *** [libfov-test.o] Error 1
</nowiki></pre>
I don't know why, but would be glad if someone could find out the reason and propose a solution.


--this page needs to be expanded!
--this page needs to be expanded!

Revision as of 16:43, 7 April 2006

A field of view library

It can be found here: http://members.optusnet.com.au/puyo/libfov.html

Some help from Radomir 'The Sheep' Dopieralski can be found on this rgrd thread: http://groups.google.com/group/rec.games.roguelike.development/browse_thread/thread/986eee039aa6e279/719361fe8fc96645?hl=en

Read it if you don't understand what the map & light source data structures are all about.


The API

http://members.optusnet.com.au/puyo/dev/libfov/html/index.html


Bugs

in order to be able to "#include <fov/fov.h>" and compile as a c program rather then a c++ one, you need to add the following lines before including fov.h:
#define bool int 
#include <math.h>


For instance:

#define bool int 
#include <math.h>
#include <fov/fov.h>

int
main(){
    /*do stuff*/
    return 0;
}


--this page needs to be expanded!