Jump to content
The Dark Mod Forums

Shaders Plugin Cannot Parse Recursive Addnormals() [closed]


Recommended Posts

The current shader parser is coded to accept addnormals(<imagemap>, <imagemap>), but does not accept addnormals(<mapexpression>, <mapexpression> recursively. This causes a parse failure on tdm_ai_builders.mtr (for example) since there is a shader which contains addnormals(image, heightmap(image)), which means that the build guard textures are not loaded and the builder guard shows up with notex.bmp.

 

I will probably handle this by adding another function to parse the addnormals() expression recursively. I have also added a catch() block in parseShaderFile() to print out the parse exceptions, which for some reason were previously being silently discarded leaving us unaware just how many .mtr files were not properly parsed.

Link to comment
Share on other sites

The problem was that the exceptions were hidden, therefore you would assume that the code was working rather than seeing immediately that there was a problem. I am not entirely sure why this was, but at least they are visible now.

Link to comment
Share on other sites

Very basic parsing functionality is now there -- the addnormals() function is parsed recursively, but the result is probably useless as only the last image map seen will be saved. I need to change this so that a propery tree-based data structure is constructed from the recursive parse, which can be evaluated at a later time in order to produce the correct image.

Link to comment
Share on other sites

I am closing this since the syntax is parsed correctly, although the MapExpression implementation should be improved (for instance, there should be a way of generating the resulting image from a parse tree rather than just searching for any image map to display).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent Status Updates

    • nbohr1more

      Was checking out old translation packs and decided to fire up TDM 1.07. Rightful Property with sub-20 FPS areas yay! ( same areas run at 180FPS with cranked eye candy on 2.12 )
      · 1 reply
    • taffernicus

      i am so euphoric to see new FMs keep coming out and I am keen to try it out in my leisure time, then suddenly my PC is spouting a couple of S.M.A.R.T errors...
      tbf i cannot afford myself to miss my network emulator image file&progress, important ebooks, hyper-v checkpoint & hyper-v export and the precious thief & TDM gamesaves. Don't fall yourself into & lay your hands on crappy SSD
       
      · 3 replies
    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 7 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
×
×
  • Create New...