Structure of Quake:
1. Quake engine (glquake.exe) - source file is q1source and compiles with MSVC6. Skip that and use FitzQuake 0.85 and compile with modern Visual Studio. FitzQuake 0.85 -
http://www.celephais.net/fitzquake/ (binary and source code). FitzQuake 0.85 has the assembly language stuff stripped out and compiles without modification with modern Visual Studio so ... you load up the FitzQuake .dsw file in modern Visual Studio and click Build and it will compile as-is without trying to find stuff like ml.exe (the ASM compiler) on the net.
The game engine is written in C. Not C++. And QuakeC and .qc have nothing to do with the engine (see #3 below).
2. Quake game data. You'll need this. You should buy it, but shareware as linked above will suffice. The Quake engine, except for the DarkPlaces engines, is very oriented towards the Quake game data and actually has hardcoded stuff in it.
The Quake game data consists of pak0.pak (shareware Quake) found in the quake\id1 folder and pak1.pak (registered Quake). Pakscape can open these pak files which are largely just like .zip files except uncompressed.
3. progs.dat - This is the game logic of Quake gameplay. It is essentially bytecode and controls how gameplay is handled like weapon behavior, monster behavior, weapon damage. These are the QuakeC files with .qc extensions. You compile them with a QuakeC compiler, generally FTEQCC or FrikQCC are the modern choices for the Quake compiler. A compiled .qc source generates a progs.dat. The progs.dat for standard Quake is located in pak0.pak
4. The maps and models are in the pak files, with .bsp extensions being maps, with .mdl extensions being models. .spr are sprites (particles). The .wav files are the sounds obviously. There are miscellanous fun little files like .lmp and .wad files in there too, those are largely the 2D menu graphics and status bar graphics in the 256-palette format except with no palette header. Well, .wad is sort of like a collection of them in a primitive .pak file and you open .wad files with TexMex or Wally.
Helpful links:
http://quakeone.com/navigator