+(define-class <reference-counted> (<irrlicht-base>)
+ (irr-class #:init-value "IReferenceCounted"))
+
+(define-method (drop! (obj <reference-counted>))
+ (let ((drop (get-irrlicht-proc "drop" obj)))
+ (drop obj)))
+
+(export <reference-counted> drop!)
+
+
+;; SEvent
+(define-class <event> (<irrlicht-base>)
+ (irr-class #:init-value "SEvent"))
+
+(define-method (get-event-key (event <event>))
+ (let ((SEvent_SKeyInput_Key (get-irrlicht-proc "SKeyInput_Key" event)))
+ (SEvent_SKeyInput_Key event)))
+
+(define-method (get-event-key-pressed (event <event>))
+ (let ((SEvent_SKeyInput_PressedDown (get-irrlicht-proc "SKeyInput_PressedDown" event)))
+ (SEvent_SKeyInput_PressedDown event)))
+
+(define-method (get-event-type (event <event>))
+ (let ((SEvent_EventType (get-irrlicht-proc "EventType" event)))
+ (SEvent_EventType event)))
+
+(export <event> get-event-key get-event-key-pressed get-event-type)