(maphash (lambda (key res) (free-resource key)) resources-table)))
-;;; Connection with the GUI
-(let (socket)
- (defun connect-to-gui ()
- (setq socket (si::socket 1984 :host "localhost")))
+;;; Gacela Server for development mode
+(let (socket clients)
+ (defun start-server (port)
+ (when (null socket) (setq socket (si::socket port :server #'eval-from-clients))))
- (defun eval-from-gui ()
- (cond ((and socket (listen socket)) (eval (read socket))))))
+ (defun check-server-connections ()
+ (when (and socket (si::listen socket)) (push (si:accept socket) clients)))
+
+ (defun eval-from-clients ()
+ (dolist (cli clients) (when (si::listen cli) (eval (read cli))))))
;;; GaCeLa Functions
(init-video-mode)
(SDL_WM_SetCaption ,title "")
(init-frame-time)
+ (check-server-connections)
+ (eval-from-clients)
(refresh-running-mobs)
(process-events)
(do () ((quit?))
(SDL_GL_SwapBuffers)
(delay-frame)
(init-frame-time)
+ (check-server-connections)
+ (eval-from-clients)
(refresh-running-mobs)
(process-events)
(setq running nil))))