Code:
$ g++ main.cpp -o asciiportal -lncurses
main.cpp: In function 'XY rotchar(int, XY, XY, XY)':
main.cpp:75: warning: converting to 'int' from 'double'
main.cpp:76: warning: converting to 'int' from 'double'
main.cpp: In function 'int hitswall(double, double)':
main.cpp:149: warning: passing 'double' for argument 1 to 'typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::reference std::vector<_Tp, _Alloc>::operator[](size_t) [with _Tp = std::vector<int, std::allocator<int> >, _Alloc = std::allocator<std::vector<int, std::allocator<int> > >]'
main.cpp:149: warning: passing 'double' for argument 1 to 'typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::reference std::vector<_Tp, _Alloc>::operator[](size_t) [with _Tp = int, _Alloc = std::allocator<int>]'
main.cpp:157: warning: passing 'double' for argument 1 to 'typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::reference std::vector<_Tp, _Alloc>::operator[](size_t) [with _Tp = std::vector<int, std::allocator<int> >, _Alloc = std::allocator<std::vector<int, std::allocator<int> > >]'
main.cpp:157: warning: passing 'double' for argument 1 to 'typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::reference std::vector<_Tp, _Alloc>::operator[](size_t) [with _Tp = int, _Alloc = std::allocator<int>]'
main.cpp: In function 'void play()':
main.cpp:505: warning: passing 'double' for argument 1 to 'int napms(int)'
dwk@cypress:~/c$ g++ -W -Wall -ansi -pedantic main.cpp -o asciiportal -lncurses
main.cpp: In function 'XY rotchar(int, XY, XY, XY)':
main.cpp:75: warning: converting to 'int' from 'double'
main.cpp:76: warning: converting to 'int' from 'double'
main.cpp: In function 'int hitswall(double, double)':
main.cpp:149: warning: passing 'double' for argument 1 to 'typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::reference std::vector<_Tp, _Alloc>::operator[](size_t) [with _Tp = std::vector<int, std::allocator<int> >, _Alloc = std::allocator<std::vector<int, std::allocator<int> > >]'
main.cpp:149: warning: passing 'double' for argument 1 to 'typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::reference std::vector<_Tp, _Alloc>::operator[](size_t) [with _Tp = int, _Alloc = std::allocator<int>]'
main.cpp:157: warning: passing 'double' for argument 1 to 'typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::reference std::vector<_Tp, _Alloc>::operator[](size_t) [with _Tp = std::vector<int, std::allocator<int> >, _Alloc = std::allocator<std::vector<int, std::allocator<int> > >]'
main.cpp:157: warning: passing 'double' for argument 1 to 'typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::reference std::vector<_Tp, _Alloc>::operator[](size_t) [with _Tp = int, _Alloc = std::allocator<int>]'
main.cpp: In function 'int hitsobj(int, double, double)':
main.cpp:163: warning: comparison between signed and unsigned integer expressions
main.cpp: In function 'int still_alive(int)':
main.cpp:172: warning: comparison between signed and unsigned integer expressions
main.cpp: In function 'void draw_screen(int)':
main.cpp:193: warning: comparison between signed and unsigned integer expressions
main.cpp:194: warning: comparison between signed and unsigned integer expressions
main.cpp: In function 'void fireportal(int, int)':
main.cpp:233: warning: comparison between signed and unsigned integer expressions
main.cpp: In function 'int move_objects()':
main.cpp:334: warning: comparison between signed and unsigned integer expressions
main.cpp:335: warning: comparison between signed and unsigned integer expressions
main.cpp:337: warning: comparison between signed and unsigned integer expressions
main.cpp: In function 'void play()':
main.cpp:505: warning: passing 'double' for argument 1 to 'int napms(int)'
$
In case you're interested.