-
Notifications
You must be signed in to change notification settings - Fork 230
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Valve BSP, WAD, and external texture support #753
Conversation
Thanks @Toodles2You for your PR ! I'll look into it in more detail later. For now, I don't think we really need
That way you could get rid of that conditinal compilation you used in ELIM5 questions and remarks :
In order to preserve Git history please just add commits to this PR instead of amending it, that would be better. |
Thanks for responding @vsonnier ! I'll make those changes you requested. Responses:
Really, the Also, I have the original separate commits in my local branch I used for development. Would it be preferable if I pushed those? |
Hello @Toodles2You, Thanks for your answers.
I don't think we need to trouble ourselves with this For now, keep #ifndef BSP29_VALVE_SUPPORT
#define BSP29_VALVE_SUPPORT 1
#endif put into And for the WAD support enable it unconditionaly. I've toyed a little bit with I think that would be complicated to make a After comparing the both "materials": {
"root": "textures",
"extensions": [".C", ".D"], #note the .C addition, from the Half-life profile. Don't ask me what it means, Trenchbroom src is not clearer in that regard.
"palette": "gfx/palette.lmp",
"attribute": "wad"
},
No no don't trouble yourself, I was speaking of commits on top of that current one within that PR. Thank you for this evolution for vk !. Now to be honest, these additions are only going to be used by artists if the whole QS familly supports this, not only vkQuake. So I think adding that PR for Quakespasm as well is somewhat inevitable... (QSS and Ironwail will get that eventually by rebasing on top of QS as they do regularly) I could try to do it myself for @sezero in order to free you of that if you prefer. |
Valve BSP support is conditionally enabled via "BSP29_VALVE".
@vsonnier Alright, I've made the changes you requested! The BSP support is enabled via It's great to see that both WAD types can be loaded from a single TrenchBroom profile! I didn't try that, myself.
I'm guessing the character extensions correlate with WAD
Yes, having this in the entire QS family would be awesome! I'll attempt to do that myself; I appreciate you offering help, though. I imagine it's mostly a matter of adjusting the code to use |
Thanks ! I think
Thank you :) I think Hunk_* are for speeding up allocations "at runtime" (while playing) but for loading level phase with 'immutable' allocation during the level play, scoped allocations like |
Annnd I would like the same fixes you got from the other side :) (if applicable) For lack of time I didn't have time to review precisly the code, but I wouldn't have the insight @sezero have anyway. |
Thanks. This is good for me, so let's wait if @sezero and others has anything more to add, and I'll merge the PR. |
Done ! Thanks for your contribution ! |
Cool change |
Awesome! Happy to contribute. @vsonnier Thank you for your time. |
Nice job! Looks fantastic in vkQuake. A couple notes in case anyone stumbles upon this PR:
That's not how licenses work :) |
Thanks ! IMHO this is all the more a reason not to do
What is left is a way to make |
Just wanted to share that ericwa tools with -notex and trenchroom with the .C texture format is really great... WAD3 with independent palettes per texture and easy bright pixel palettes is very nice. Note these shots use a bit extra bounce over the originals in the PR, though that is all adjustable. Great work :) |
Half-Life map support!
This is actually two features in one: Valve format support and external wad texture support. The former relies on the latter; Half-Life maps don't usually embed textures since the wads are shipped with the game.
Test maps
External WAD textures
Textures are now loaded from wads if they aren't embedded within the map itself.
Upon loading a map, all wads listed in the "wad" field of the world are "mounted" (if present) for searching during texture loading. Wads are looked for in the game dir and
gfx
subdir.This actually isn't tied to the Valve formats. It's been implemented to work with Quake bsps and wads, too. To showcase this, I provided e1m1 compiled using the ericw tools
-notex
option. The game loadsgfx/base.wad
for all of the textures.The
external_textures
cvar disables this feature entirely.WAD3 textures
Each texture has its own color palette, allowing for full color textures!
Textures prefixed with
!
are treated as liquids.Bright textures
These didn't work in Half-Life; Presumably for the same reason they didn't work in GLQuake. They do here, though!
Textures prefixed with
~
or+[0-9/A-Z]~
work under the same rules as Quake: Palette indices >=224 are fullbright.BSP version 30
Lighting is stored as 24-bit RGB.
Embedded textures are assumed to be WAD3 textures.
Note: By default, Half-Life maps use different hull sizes than Quake; This implementation is for modders more-so than using existing maps.