(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 server-running? ()
+ (if socket t nil))
- (defun eval-from-gui ()
- (cond ((and socket (listen socket)) (eval (read socket))))))
+ (defun start-server (port)
+ (setq socket (si::socket port :server #'eval-from-client)))
+
+ (defun check-server-connections ()
+ (when (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)
+ (refresh-running-mobs)
(process-events)
(do () ((quit?))
(glClear (+ GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT))
+ (logic-mobs)
+ (render-mobs)
(glLoadIdentity)
,@code
(SDL_GL_SwapBuffers)
(delay-frame)
(init-frame-time)
+ (refresh-running-mobs)
(process-events)
(setq running nil))))
(free-all-resources)
; (quit-audio)
(quit-video-mode)
-; (quit-all-procs)
+ (quit-all-mobs)
; (clear-events)
; (quit-events)
(quit-sdl))