X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=irrlicht%2Fscene.scm;h=9626f4b33cdabe64723d1463852fd9a016492327;hp=425d01ec026bd8c08fa666beb6d764518deab0f8;hb=384a8fb56d8500dc3551085191a39c9da70e221c;hpb=6726ec63b405a33dfb68e00c59a0c1210412d05a diff --git a/irrlicht/scene.scm b/irrlicht/scene.scm index 425d01e..9626f4b 100644 --- a/irrlicht/scene.scm +++ b/irrlicht/scene.scm @@ -63,17 +63,15 @@ (rotation '(0 0 0)) (scale '(1 1 1)) (also-add-if-mesh-pointer-zero #f)) - (make - #:irr-pointer - ((get-irrlicht-proc "addAnimatedMeshSceneNode" scene-manager parent) - scene-manager - mesh - parent - id - position - rotation - scale - also-add-if-mesh-pointer-zero)))) + (let* ((addAnimatedMeshSceneNode (get-irrlicht-proc "addAnimatedMeshSceneNode" + scene-manager + parent)) + (node-pointer (addAnimatedMeshSceneNode scene-manager mesh parent id position + rotation scale also-add-if-mesh-pointer-zero))) + (cond ((null-pointer? node-pointer) + (error "In procedure add-animated-mesh-scene-node!: Scene node cannot be created")) + (else + (make #:irr-pointer node-pointer)))))) (define-method (add-camera-scene-node! (scene-manager ) . rest) (let-keywords rest #f @@ -169,11 +167,12 @@ scene-manager)) (define-method (get-mesh (scene-manager ) filename) - (make - #:irr-pointer - ((get-irrlicht-proc "getMesh" scene-manager) - scene-manager - filename))) + (let* ((getMesh (get-irrlicht-proc "getMesh" scene-manager)) + (mesh-pointer (getMesh scene-manager filename))) + (cond ((null-pointer? mesh-pointer) + (error "In procedure get-mesh: Mesh cannot be created")) + (else + (make #:irr-pointer mesh-pointer))))) (define-method (get-root-scene-node (scene-manager )) (let ((getRootSceneNode (get-irrlicht-proc "getRootSceneNode" scene-manager)))