I can't figure out how to read multiple bytes. I'm trying to read a 32-bit integer so that I can store it to be used by a class.
My (truncated) code:
(let ((version-buffer (byte 4 0)))
(read-sequence version-buffer input-stream)
((> version-buffer 10) (read-sequence minor-version-buffer input-stream)) (t t))
(setf (navigation-mesh-version temp-mesh) `(,(version-buffer)) )
EDIT: Truncated the code further.
I'm trying to read a string and verify it's magic number (0xFEEDFACE); but I don't know how to insert an ascii character (as a number) into strings.
Here is my code:
;; Parser library for the Source Engine Nav mesh format.
(defun parse-nav-string (input-string) "Parses string as Nav file."
;; Test for magic string 0xFEEDFACE.
(string= (subseq input-string 0 3)
(concatenate (code-char #xCE) (code-char #xFA) (code-char #xED) (code-char #xFE))
(t (format *error-output* "Magic string not found!") )