News | Forum | People | FAQ | Links | Search | Register | Log in
Coding Help
This is a counterpart to the "Mapping Help" thread. If you need help with QuakeC coding, or questions about how to do some engine modification, this is the place for you! We've got a few coders here on the forum and hopefully someone knows the answer.
First | Previous | Next | Last
 
Does anyone know how the movement code is delt with? There's nothing obvious where "forward moves the player" anywhere in the Alkaline mod code base 🤔 I've heard it's supposed to be in pmove.qc but there isn't one. Is that somewhere else in the engine or something? I feel like I'm missing something 
Correct Suspicions 
Your guess is correct. There really is a file called pmove.c in the QuakeWorld source:
https://github.com/id-Software/Quake/blob/master/QW/client/pmove.c

The equivalent in the regular Quake engine is here:
https://github.com/id-Software/Quake/blob/master/WinQuake/sv_phys.c

This means that if you want to change how the player moves from within QuakeC, you have to work around what the engine is automatically doing on the player's behalf. 
Hooking Up To Run Key 
what exactly do i need to do to make the game execute an action when cl_movespeedkey/+speed is pressed? 
 
for example, while running it will spawn particles behind the player for 5sec 
See Above 
The previous post about player movement physics is immediately relevant again. The engine does nearly all the work of turning the player inputs into movement. The only part that's delegated to the QuakeC is how to respond to a jump command. And like the directional keys, +speed is not communicated to the QuakeC because it isn't necessary to make the movement work.

The same advice applies, you need to try and work around what the engine does on your behalf. Consider whether you can infer whether the player is running based on things that QuakeC can observe e.g. velocity, on-ground status, position. The PlayerPostThink function is the earliest opportunity as it runs right after engine physics.

You might find in practice checking the velocity is preferable. If the player is holding the run key but their attempted movement is blocked by a wall, should the particles spawn? Probably not! 
No Spawn Function For Custom Trigger 
I created my own trigger called "trigger_allplayers", aded it to the FGD file

@SolidClass base(Targetname) = trigger_allplayers : "All Players Trigger"
[
map(string) : "Next map to load when all players are inside"
]

...and added in a test map.

Then I wrote code for it in triggers.qc, compiled progs.dat and ran in Quake. When I start the map I get this error:

No spawn function for:
EDICT 7:
classname trigger_allplayers
model *1

I double-checked the function name. Everything seems correct. What am I missing? 
 
Is triggers.qc inside progs.src? What was the name of your fuction?

Should be something like this: void() trigger_allplayers = { // ... }; 
 
Yes, triggers.qc is in progs.src. It's compiled. I renamed it to xxx_triggers_allplayers and then opened the compiled progs.dat and found the new name inside.

The source code for the function:

void() trigger_allplayers =
{
InitTrigger();
self.think = trigger_allplayers_think;
self.nextthink = time + 0.5;
}; 
 
Is it possible that quake isn’t loading the progs.dat you expect? For example, a progs.dat ouside a pak file won’t override a progs.dat inside a pak file in the same mod folder. 
Mod 
Are you sure the map is being launched with your mod being selected via -game your_mod_name? Can you make some other change in the mod that will be really obvious, like setting starting health to 200?

If the command line for the mod is correct but the mod still isn't loading, run the checklist to be sure is that your progs.dat file is being used. Make sure that it's in the root directory of your mod, and that there are no .pak files in the mod directory which also have progs.dat in them (files in a pak will take priority over unpacked files). 
SNIPED BY METL 
 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2026 John Fitzgibbons. All posts are copyright their respective authors.