;;; <http://www.gnu.org/licenses/>.
-;;; Irrlicht 01.HelloWorld example
-;;; http://irrlicht.sourceforge.net/docu/example001.html
+;;; Irrlicht 02.Quake3Map example
+;;; http://irrlicht.sourceforge.net/docu/example002.html
(use-modules (irrlicht)
;; instances for doing things
(define driver (get-video-driver device))
(define scene-manager (get-scene-manager device))
-(define driver-name (get-video-driver-name driver))
+(define driver-name (get-name driver))
;; load Quake3 map
(add-file-archive! (get-file-system device) "media/map-20kdm2.pk3")
(define mesh (get-mesh scene-manager "20kdm2.bsp"))
-(define node (add-octree-scene-node-am
+(define node (add-octree-scene-node!
scene-manager mesh
#:minimal-polys-per-node 1024))
(set-position! node '(-1300 -144 -1249))
;; FPS camera
(add-camera-scene-node-fps! scene-manager)
-(set-visible-cursor! (get-cursor-control device) #f)
+(set-visible! (get-cursor-control device) #f)
;; loop
(define last-fps -1)
-(while (device-run? device)
+(while (run device)
(cond ((is-window-active? device)
(begin-scene driver #:color '(255 200 200 200))
- (scene-draw-all scene-manager)
+ (draw-all scene-manager)
(end-scene driver)
(let ((fps (get-fps driver)))
(set-window-caption! device caption))
(set! last-fps fps))))
(else
- (yield device))))
+ ((@ (irrlicht) yield) device))))
;; delete device
-(device-drop! device)
+(drop! device)
(exit #t)