So. Some themes have objects that seem to be large natural extensions of the landscape. Masks allow maintaining that. Lemme know if it doesn't look good. If it doesn't, can still use for ice/bounce/indestructible. Indestructible bunker object for example.
{-# LANGUAGE ScopedTypeVariables, OverloadedStrings #-}
module NetRoutines where
import Network.Socket
import Control.Concurrent.Chan
import Data.Time
import Control.Monad
import Data.Unique
-----------------------------
import CoreTypes
import Utils
import RoomsAndClients
acceptLoop :: Socket -> Chan CoreMessage -> IO ()
acceptLoop servSock chan = forever $
do
(sock, sockAddr) <- Network.Socket.accept servSock
clientHost <- sockAddr2String sockAddr
currentTime <- getCurrentTime
sendChan' <- newChan
uid <- newUnique
let newClient =
(ClientInfo
uid
sendChan'
sock
clientHost
currentTime
""
""
False
False
0
lobbyId
0
False
False
False
False
False
False
Nothing
Nothing
0
[]
)
writeChan chan $ Accept newClient
return ()