Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
kristus

QuakeC: Looking for help and information on how to compile DPdefs to use in DP.

Recommended Posts

In darkplaces there's a selection of files collectively called dpdefs.

I've managed to compile only dpexstensions.qc and keycodes.qc of these (as well as sv_user.qc) into progs.dat to use in Darkplaces. The others only spit out a bunch of errors and warnings. All different depending on if I choose to compile with QCC, FTEQCC or GMQCC standard.

And I'm very basic in my skills regarding all things coding, so I can't say I know what to do with those errors anyway. But I'm assuming I am doing something wrong, rather than that the files are released in a broken state.

Then there's a couple of files called Source_compare.pl and source_compare.txt that I am just not knowing what their purpose is. Though I've seen .pl files in the resources packs of Xonotic. I've never understood what they do, if anything.

So, anyone who's familiar with this stuff. Please help. Negke? Kaiser? anyone else.

Share this post


Link to post

Sorry, I'm not familiar with this stuff. My only idea would be to ask in the Inside3D forums and maybe in #qc @ AnyNet...

Share this post


Link to post

csprogsdefs.qc is for clientside qc. menudefs.qc is for menu qc. keycodes.qc is probably for both clientside and menu qc.

progsdefs.qc looks to be about the same as defs.qc from Quake's progs qc source. You shouldn't include both files in the progs.src file.

If you're just starting, you might want to stick to the "regular" qc, and then when you know some more, try the clientside qc too. Probably no one knows about menu qc. As far as I know, clientside qc can do menus too. I just started learning clientside qc today myself... So I can't say much about it.

Yea, and dpextensions.qc and sv_user.qc work just fine on the regular qc.

The source_compare files are irrelevant for compiling the progs.dat.

And like negke mentioned inside3d.com and the irc channel are good places for learning qc.

Share this post


Link to post

Ok. Well, I tried commenting out defs.qc and adding progsdefs.qc, But that didn't work either. Eitehr way. Thanks for the help. I am curious about menu qc though, as I would like the functionality to modify the menu.

But that's not really a priority right now.

Jimi, maybe you could shed some light on a new issue I came across. It's rather trivial really. But I can't figure out why some of the models in Quake is rotating on their own axis, while others aren't. They're not animated. And it's not appearing like there is anything in the code that tells them to do it (I've tried with renaming and using the same names for models and it hasn't affected their behavior). Neither could I find any commands for the exporter to make them do it either. So what is the secret?

Share this post


Link to post

The rotating models have a flag in the model file. But you can disable or enable it through DP_SV_MODELFLAGS_AS_EFFECTS feature (found from dpextensions.qc).
If you wanted disable the rotating for some entity (disables all model flags), you'd do something like this:

self.effects = self.effects | EF_NOMODELFLAGS; // doing it this way doesn't disable other EF_ flags


And if you wanted to add/change the modelflags (may need to do the above too):

self.modelflags = self.modelflags | MF_ROTATE; // this would add the rotating to a model


The other modelflags are the various trails in the projectile models.
Rotate flagged models can also bob up/down with cl_itembobheight cvar.

Share this post


Link to post

I had to fix several things in the dpdefs files, here are some commit messages:

dpdefs : fixed 'csprogsdefs.qc' which had several builtin functions defined
    twice, such as getsurfacenumpoints() and asin(),acos(),atan() -- the multiple
    definitions causing compiler errors (with fteqcc).

dpdefs / csprogsdefs.qc : changed argument names of CSQC_InputEvent() to
    what the engine actually calls them, namely: eventtype, x, y

dpdefs/menudefs.qc : added missing 'loadfont()' builtin

dpdefs : fixed wrong values for VF_SIZE_X and VF_SIZE_Y in csprogsdefs.qc
I have used the menu qc stuff, which replaces the built-in (C coded) menu stuff when used. While you can make a menu with CSQC, I am not sure you can disable the default behaviors (like ESCAPE key) without a menu qc. Xonotic uses menu qc, though it has a complex code there and not very useful if you are just trying to understand the basics.

I can recommend GMQCC, it is a very good compiler. I had issues with FTEQCC.

A defunct project of mine using QC, CSQC and menu QC with Darkplaces is here: https://github.com/andwj/dungeon-game

Share this post


Link to post

Thanks Andrew. I'll tinker with that.

I actually started using the Xonotic codebase and tried to figure it out for quite some time. But it was just too complex to make any heads or tails out of for me. And since I never even managed to get it to compile, using FTEQCC or GMQCC I eventually decided to look closer at just using Darkplaces. And I've not regretted that decision since. Finally feels like I am making some progress. :)

Share this post


Link to post

Hmm, why aren't there a itembob flag as well. That would have been awesome. Cause now I got a thing that I want to spin but not bob. And I got a bunch of other things I want to bob and spin.

Or if you could just make another flag perhaps. But does that require me to go and make a new build of Darkplaces?

Share this post


Link to post

Bobbing might be something you could do with CSQC, though I have never messed with the CSQC entity stuff.

Share this post


Link to post

Ok, thanks for the tip. I compiled your menu.dat version btw, but when I tried it it would only start up in Darkplaces if I hit F9. Know why that is?

Share this post


Link to post

It was designed to be like DOOM -- show a title screen at the start, and press ESCAPE to bring up the menu.

Seems to work OK here with standard darkplaces if I run it in the dungeon-game directory with these arguments: -game oga

Don't know why F9 did something, standard binding is quick-load I think.

Share this post


Link to post

For me it only comes to the title screen after I hit F9 when I run it in my project. Then I can hit esc for the menu itself to pop up. Strange. Well, I did have a bug the other day with a cvar that made projectiles not able to move through liquids like water. (So the nades just bounced on the water surface) Maybe something similar is going on here.

EDIT: I tried putting the file in my regular Quake dir and ran it with Darkplaces there. But I had the same result.

EDIT: There's not anything I need to put in progs.dat to kick it into gear?

Share this post


Link to post

At the end of quake.rc in normal Quake the very last line causes the demos to play. Removing that line makes the menu.dat work as expected (for me).

Here is the normal quake.rc :

// load the base configuration
exec default.cfg

// load the last saved configuration
exec config.cfg

// run a user script file if present
exec autoexec.cfg

//
// stuff command line statements
//
stuffcmds

// start demos if not allready running a server
startdemos demo1 demo2 demo3

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
×