Announcement

Collapse
No announcement yet.

Ability to Hide Completed Level Screen Info

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ability to Hide Completed Level Screen Info

    Hello everyone! I've gotten back into Quake lately, and I'm really loving the visuals and architecture in some of the modern custom maps I've been playing.

    I've been taking screenshots here and there (Even setup a little alias to go into a photo mode of sorts), and realized some of the static camera shots during the level completion screen would make for great level summary screenshots. Something like this for example. https://i.imgur.com/olvjtsR.jpg

    I was just curious if there was either a modern client/engine that had an option to disable the on screen HUD/stats and "Completed" elements during that section, or another non client specific way I could go about disabling that temporarily? (I'm primarily using QuakeSpasm, if that makes much of a difference) Alternatively, could I maybe somehow get the "camera" coordinates for those static view points, then just move my character there?

    I've tried looking through all of the QuakeSpasm/Fitzquake command line/console command options, and tried out a few that seemed remotely related to what I want to do (scr_alpha, scr_menuscale, display scale, etc.), but without any luck. Any help would be greatly appreciated!

    EDIT: Added some clarification of what I wanted to hide.
    Last edited by COLBudManstrong; 12-09-2019, 08:52 AM.

  • #2
    Hello COLBudManstrong,

    Originally posted by COLBudManstrong View Post
    Hello everyone! I've gotten back into Quake lately, and I'm really loving the visuals and architecture in some of the modern custom maps I've been playing.
    Yes, most of them coming back sooner or later


    Originally posted by COLBudManstrong View Post
    I've been taking screenshots here and there (Even setup a little alias to go into a photo mode of sorts)
    Its like taking pictures of a beautiful woman, isnt it ?


    Originally posted by COLBudManstrong View Post
    , and realized some of the static camera shots during the level completion screen would make for great level summary screenshots. Something like this for example. https://i.imgur.com/olvjtsR.jpg
    Those are the intermission positions


    Originally posted by COLBudManstrong View Post
    I was just curious if there was either a modern client/engine that had an option to disable the on screen HUD/stats and "Completed" elements during that section, or another non client specific way I could go about disabling that temporarily? (I'm primarily using QuakeSpasm, if that makes much of a difference)
    All Quake engines support what you are looking for:
    - Disable HUD
    - Disable weapon model


    Originally posted by COLBudManstrong View Post
    Alternatively, could I maybe somehow get the "camera" coordinates for those static view points, then just move my character there?
    Yes, you can see all the intermission positions by opening the map file --> mapname.bsp


    Originally posted by COLBudManstrong View Post
    I've tried looking through all of the QuakeSpasm/Fitzquake command line/console command options, and tried out a few that seemed remotely related to what I want to do (scr_alpha, scr_menuscale, display scale, etc.), but without any luck. Any help would be greatly appreciated!
    You have 2 options here:

    1.) Look into the map file to find the intermission positions. Then use an engine that supports displaying coordinates and move there.
    To open up a map file, you have to first find the map file itself.
    Look either inside the .pak file, or the map file is already directly inside the maps folder of your fan-made mod/map.
    Open the mapname.bsp file with wordpad or notepad (depends wich OS you are using).
    Then scroll far way down in notepad until you can see normal text (it usualy starts with "worldtype").
    Use the search function of notepad and type in: info_intermission
    You will find usually more than one intermission point. It is used randomly after you completed a map.
    Now you see the coordinates.
    Use an engine that supports coordinates (I am aware of FTE and Darkplaces) and find the position.
    Then follow point 2.)


    2.) If you are using en engine without coordinate display support, you will have to find the place by searching or playing the map yourself.
    Once you found the place, you have to get rid of the HUD and weapon model.
    Do this by typing into console:
    r_drawviewmodel 0
    viewsize 120

    Then you most probably have to fly up in the air, because those intermission points are mostly up up above.
    Do this the usual way via cheating:
    noclip
    notarget
    (if some monsters are still alive and disturb you)

    Take your screenshot and be happy


    This is how it could look like for a map you might recognize:
    left is the original intermission screenshot
    right is the screenshot I made ingame



    I am sure one could write this with a lot less words, but I hope you understand me anyway.

    Have fun while photographing

    Best wishes,
    Seven

    Comment


    • #3
      Thanks for the reply Seven!

      Originally posted by Seven View Post
      All Quake engines support what you are looking for:
      - Disable HUD
      - Disable weapon model
      Sorry, maybe I wasn't as clear as I hoped. I'm aware that I can disable the status bar and weapon model. I have both of those setup as an alias called photo-mode along with a few other things, which I can use during regular gameplay (When I have control of the character). Those don't seem to disable/hide the actual "Completed", "Time", "Secrets", or "Kills" graphics/text that shows up during the Intermission screen. That's what I was hoping to disable someway. Would save me having to open map files, find coordinates, try to replicate camera angles, etc.

      Based on your explanation of finding those coordinates in the map files though, I'm assuming there is no easy way. If not, then I will take the info you suggested and try it out later this evening. Thanks!

      Comment


      • #4
        It sounds to me like you need to modify info_intermission() in qc or whatever function which is called by it that has the print data for level completion. I highly doubt there is a cvar that will suppreas that data.
        http://www.nextgenquake.com

        Comment


        • #5
          Sorry for the late reply.

          Originally posted by MadGypsy View Post
          It sounds to me like you need to modify info_intermission() in qc or whatever function which is called by it that has the print data for level completion. I highly doubt there is a cvar that will suppreas that data.
          That is more or less what I ended up doing. This is probably going to be one of the biggest leaps from "Is there an option in the game" to "I just built my own custom engine build from the QuakeSpasm source", because that's what I did.

          In `gl_screen.c` (https://i.imgur.com/nX3ROAd.png), I just commented out the `Sbar_IntermissionOverlay ();` function call and created a new build. Now I can get nice clean map screenshots based on views the map authors already chose.
          Last edited by COLBudManstrong; 12-29-2019, 07:58 PM. Reason: Forum didn't like my image upload for some reason.

          Comment


          • #6
            You could take it a step further and instead of commenting it out you could mask it with your own cvar. I haven't programmed in QC for so long that I would not be the one to give you a complete example on how to do this. It can't be all that hard though. Half of it is probably just wrapping the guts of the function in a condition ...

            PHP Code:
            void() Sbar_IntermissionOverlay  = {
                if(!
            /*cvar condition*/) {
                    
            //guts...
                
            }
            }; 
            I used a NOT so it will work as people expect unless they specifically set it. However, cvars may not be something that can be compared with a NOT. Consider it a gist.

            I guess you could also do it the below way in the function that calls it. The only thing to really consider here is whether or not Sbar_IntermissionOverlay is called in more than one spot, and if so, whether you want to suppress them all.

            PHP Code:
            if(!/*cvar condition*/Sbar_IntermissionOverlay(); 
            The below link might help you for creating a cvar. I know the link says server variables, but the code on the page seems to be making console variables. You can just cherry-pick the parts you need.

            https://www.moddb.com/games/quake/tu...rver-variables
            Last edited by MadGypsy; 12-29-2019, 11:00 PM.
            http://www.nextgenquake.com

            Comment


            • #7
              Thanks for the explanation and resource links MadGypsy! I don't know if I'll get around to that anytime soon, but I'll at least have a good starting point for when I do want to look at implementing hiding and showing that intermission info with a console variable.

              Comment


              • #8
                Wait a minute ... you modified the ENGINE source. I was talking about modifying the QC source. I thought Sbar_IntermissionOverlay sounded like something completely alien to QC. I just rolled with it cause you said it exists and works, and I haven't programmed in QC for a long long time so, I didn't bother to question it.

                Disregard my last post if you are going to go the engine way. It is theoretically correct until you get to the link that is showing you how to edit QC.

                You have to excuse my shitty comprehension skills. My brain is full of completely different stuff right now and whereas I try to be helpful here from time-to-time, I honestly lack the focus to read any of these questions with diligence. I've been working on my own language that compiles to assembly and I am doing it from scratch (as opposed to YACC). What makes my language different is you define the instruction sets (a compile config essentially) based on whatever processor/micro-controller the language will be compiled for. My point being that it is taking every brain-cell I have to keep instruction sets (and equivalents) for 6502, Atmel and ARM chips organized in my head, and the couple/few free brain-cells are always considering the most efficient assembly combinations for things like functions, classes, etc among these different chips.

                In short: My brain is at max capacity and I'm trying to answer question on the side.

                The end result should be a language that can be compiled to assembly FOR anything ... FROM anything with no need for emulators, WINE, multiple OS's or even the target chip for that matter. Choose the proper instruction set configuration and click compile, done. Technically, with just a few tweaks I could have it compile straight to machine code. If all that wasn't complicated enough, my ultimate goal is for there to be no actual language. In other words, every syntactical possibility from any existing scripting language will be legit syntax. This way ANY language can be compiled to assembly for ANY chip/processor from ANY chip/processor and all you need is the proper instruction set descriptor/config/whatever you want to call it. All of that while I slow roast a giant sirloin
                Last edited by MadGypsy; 12-30-2019, 04:45 PM.
                http://www.nextgenquake.com

                Comment

                Working...
                X