Hello. I found quite interesting page about Quake III Arena BSP file format specification: http://www.mralligator.com/q3/
According to this specification, Quake 3 has 17 different lumps.
Quake Live adds an 18th lump for advertisements. Google seems to be unable to find any informations about advertisements lump (or more generally Quake Live BSP file format). I've opened a testing map, which includes one advertisement billboard, in hexeditor. Knowing advertisements lump direntry being last (index 17, counting from 0), I've found offset value 113,588 and length value 128. When I looked up to the lump itself by accessing file address from the offset value (it's the very last lump in the file), I've found something that looks like bunch of integer values (32 integer numbers) for a single advertisement cell. First I've thought of a single integer being a cellId, identifying number for group of advertisements, but that implies 32 different advertisement billboards in the map. And there is just one.
Does anybody please know the advertisement lump cell specification? Could you please tell? It would help me at least partially understand the way advertisement boards work in Quake Live (and therefore specify best unique cellId values for each group of advertisement boards). I know that now when Quake Live migrated to Steam, the advertisement boards are obsolete, but it's kind of something I'm used to from Quake Live maps. And since I want to map for Quake 3 and Quake Live continuously, I need to identify Quake Live version from the original Quake 3 version of each map by these advertisement boards. All my maps will be in both Quake 3 and Quake Live version.
Quake Live advertisement lump format specification
Re: Quake Live advertisement lump format specification
Also, the effects lump cell contains, according to specification page, and unknown integer value, like defined here:
What does the unknown value do? Are there any other values than 5 or -1?
Code: Select all
typedef struct {
char[64] name; // Effect shader
int brush; // Brush that generated this effect
int unknown; // Always 5, except in q3dm8, which has one effect with -1
} effect_t;
Re: Quake Live advertisement lump format specification
So I've look into q3map2 source code and I've got this information:
However, I can't figure out where is the vec3_t structure defined, so I can figure out the defined lump size from complete data. It is definitely not in q3map2.h file. But I may actually figured it out from previous definition based on the linked page. vector structures are probably defined like this:
Code: Select all
// Advertisements lump
typedef struct {
// Single advertisements lump cell (a single advertisement data)
int cellId; // The cellId key/value pair defined in Radiant
vec3_t normal; // Normal vector to the advertisement plane
vec3_t[4] rect; // Advertisement plane boundaries
char[64] model; // Advertisement display model
} advertisement_t;
Code: Select all
typedef struct {
float s, t;
} vec_t;
typedef struct {
float x, y, z;
} vec3_t;