Im not sure what your asking… but ill take a shot:
This is the format for Halflife .map files(forgive the length of this, i kept the level simple):
{
"classname" "worldspawn"
"sounds" "1"
"MaxRange" "4096"
"mapversion" "220"
"wad" "\zoners3\zhlt.wad;\sierra\half-life\valve\asylum.wad"
{
( -384 -256 0 ) ( 384 -256 0 ) ( 384 -256 -16 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -384 256 -16 ) ( 384 256 -16 ) ( 384 256 0 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -384 -256 0 ) ( -384 -256 -16 ) ( -384 256 -16 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 384 256 0 ) ( 384 256 -16 ) ( 384 -256 -16 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 384 -256 0 ) ( -384 -256 0 ) ( -384 256 0 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 384 256 -16 ) ( -384 256 -16 ) ( -384 -256 -16 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
}
{
( -384 -256 272 ) ( 384 -256 272 ) ( 384 -256 256 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -384 256 256 ) ( 384 256 256 ) ( 384 256 272 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -384 -256 272 ) ( -384 -256 256 ) ( -384 256 256 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 384 256 272 ) ( 384 256 256 ) ( 384 -256 256 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 384 -256 272 ) ( -384 -256 272 ) ( -384 256 272 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 384 256 256 ) ( -384 256 256 ) ( -384 -256 256 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
}
{
( 384 -256 256 ) ( 400 -256 256 ) ( 400 -256 0 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 384 256 0 ) ( 400 256 0 ) ( 400 256 256 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 384 -256 256 ) ( 384 -256 0 ) ( 384 256 0 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 400 256 256 ) ( 400 256 0 ) ( 400 -256 0 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 400 -256 256 ) ( 384 -256 256 ) ( 384 256 256 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 400 256 0 ) ( 384 256 0 ) ( 384 -256 0 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
}
{
( -400 -256 256 ) ( -384 -256 256 ) ( -384 -256 0 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -400 256 0 ) ( -384 256 0 ) ( -384 256 256 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -400 -256 256 ) ( -400 -256 0 ) ( -400 256 0 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -384 256 256 ) ( -384 256 0 ) ( -384 -256 0 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -384 -256 256 ) ( -400 -256 256 ) ( -400 256 256 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( -384 256 0 ) ( -400 256 0 ) ( -400 -256 0 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
}
{
( -384 256 256 ) ( 384 256 256 ) ( 384 256 0 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -384 272 0 ) ( 384 272 0 ) ( 384 272 256 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -384 256 256 ) ( -384 256 0 ) ( -384 272 0 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 384 272 256 ) ( 384 272 0 ) ( 384 256 0 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 384 256 256 ) ( -384 256 256 ) ( -384 272 256 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 384 272 0 ) ( -384 272 0 ) ( -384 256 0 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
}
{
( -384 -272 256 ) ( 384 -272 256 ) ( 384 -272 0 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -384 -256 0 ) ( 384 -256 0 ) ( 384 -256 256 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( -384 -272 256 ) ( -384 -272 0 ) ( -384 -256 0 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 384 -256 256 ) ( 384 -256 0 ) ( 384 -272 0 ) CONCRETE [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 384 -272 256 ) ( -384 -272 256 ) ( -384 -256 256 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 384 -256 0 ) ( -384 -256 0 ) ( -384 -272 0 ) CONCRETE [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
}
}
{
"classname" "info_player_start"
"angles" "0 0 0"
"origin" "-256 1 48"
}
{
"classname" "light"
"_light" "255 255 255 200"
"_fade" "1.0"
"origin" "0 0 128"
}
The above map is a simple box map w/ a info_player_start and a light entity.
You should notice some things when dealing w/ solid brushes… take the line:
( -384 -256 0 ) ( 384 -256 0 ) ( 384 -256 -16 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
This line is defining a point in 3D space. Err before i go any further… ill point out this link here explaining what the .map file format specs are for HL. Ill attempt to explain it a bit more simple:
The world geometry IS considered an entity, and much like the other entities in HL, they cant be converted easily over to Q3. They may have similarities,… but they are different. With that said, the World geometry is placed inside the worldspawn entity (which would be Entity 0, if you were to number it). Back to the line:
( -384 -256 0 ) ( 384 -256 0 ) ( 384 -256 -16 ) CONCRETE [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
it can be written like this:
( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 ) TEXTURE_NAME [ tx1 ty1 tz1 toffs1 ] [ tx2 ty2 tz2 toffs2 ] rotation scaleX scaleY
When Defining a point on a 2D plane, it is written ( x , y ). But in 3D space, you need another point the Z point => ( x , y , z ). Now to define a plane, you need 3 points, Why not 4? Well thats a good question, first answer that I would reason being that one additional line of code w/in a .map file will increase that file size by 1/4,… when you map file gets to have a large ammount of brushes (up in the 120000 range) you can see that the file size will increase quite a bit. Anyway… im getting OT,… you only need 3 points to define a plane (a 2D triangle), so inorder to get a 3D cube you would need 6 lines of points.
Think of it this way:
A Cube has 6 sides, A square has 4 sides but can be split into a minimum of 2 triangles, now a cube has 6 squares that define its sides, each of those sides can be split into 2 triangles… now doing the math thats [6 sides] * [a minimum of 2 triangles] = [12 triangles] just for a cube. But as I said previously, you only need 3 points to define a plane, instead of the 6 needed for a square [2 triangles make up a square, each triangle has 3 points = 6 points for a square].
So you see
( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 )
6 lines of this will represent a cube.
All the other stuff that follows after this bit of information is required for Texture orientation:
TEXTURE_NAME [ tx1 ty1 tz1 toffs1 ] [ tx2 ty2 tz2 toffs2 ] rotation scaleX scaleY
If you read that link i sent you to, it will attempt to explain this to you (its not important in the sence of what im attempting to explain.
Now on to Q3’s file format
// entity 0
{
"classname" "worldspawn"
// brush 0
{
( 256 192 -8 ) ( -192 192 -8 ) ( -192 -192 -8 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -192 -192 0 ) ( -192 192 0 ) ( 256 192 0 ) base_floor/concrete 0 0 0 0.500000 0.500000 0 0 0
( -192 -192 0 ) ( 256 -192 0 ) ( 256 -192 -8 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( 256 -192 0 ) ( 256 192 0 ) ( 256 192 -8 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( 256 192 0 ) ( -192 192 0 ) ( -192 192 -8 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -192 192 0 ) ( -192 -192 0 ) ( -192 -192 -8 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
}
// brush 1
{
( -192 192 136 ) ( -192 -192 136 ) ( -192 -192 128 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( 256 192 136 ) ( -192 192 136 ) ( -192 192 128 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( 256 -192 136 ) ( 256 192 136 ) ( 256 192 128 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -192 -192 136 ) ( 256 -192 136 ) ( 256 -192 128 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -192 -192 136 ) ( -192 192 136 ) ( 256 192 136 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( 256 192 128 ) ( -192 192 128 ) ( -192 -192 128 ) base_floor/concrete 0 0 0 0.500000 0.500000 0 0 0
}
// brush 2
{
( 272 192 0 ) ( -176 192 0 ) ( -176 -192 0 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -184 -192 128 ) ( -184 192 128 ) ( 264 192 128 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -184 -192 128 ) ( 264 -192 128 ) ( 264 -192 120 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( 264 -192 128 ) ( 264 192 128 ) ( 264 192 120 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( 264 192 128 ) ( -184 192 128 ) ( -184 192 120 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( 256 192 104 ) ( 256 -192 104 ) ( 256 -192 96 ) base_floor/concrete 0 0 0 0.500000 0.500000 0 0 0
}
// brush 3
{
( -200 192 104 ) ( -200 -192 104 ) ( -200 -192 96 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -192 192 128 ) ( -640 192 128 ) ( -640 192 120 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -192 -192 128 ) ( -192 192 128 ) ( -192 192 120 ) base_floor/concrete 0 0 0 0.500000 0.500000 0 0 0
( -640 -192 128 ) ( -192 -192 128 ) ( -192 -192 120 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -640 -192 128 ) ( -640 192 128 ) ( -192 192 128 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -184 192 0 ) ( -632 192 0 ) ( -632 -192 0 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
}
// brush 4
{
( -176 184 0 ) ( -624 184 0 ) ( -624 -200 0 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -632 -200 128 ) ( -632 184 128 ) ( -184 184 128 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -192 -200 128 ) ( 256 -200 128 ) ( 256 -200 120 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( 256 -576 128 ) ( 256 -192 128 ) ( 256 -192 120 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -184 -192 128 ) ( -632 -192 128 ) ( -632 -192 120 ) base_floor/concrete 0 0 0 0.500000 0.500000 0 0 0
( -192 184 104 ) ( -192 -200 104 ) ( -192 -200 96 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
}
// brush 5
{
( -192 576 104 ) ( -192 192 104 ) ( -192 192 96 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -184 200 128 ) ( -632 200 128 ) ( -632 200 120 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( 256 -184 128 ) ( 256 200 128 ) ( 256 200 120 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -192 192 128 ) ( 256 192 128 ) ( 256 192 120 ) base_floor/concrete 0 0 0 0.500000 0.500000 0 0 0
( -632 192 128 ) ( -632 576 128 ) ( -184 576 128 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
( -176 576 0 ) ( -624 576 0 ) ( -624 192 0 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0
}
}
// entity 1
{
"light" "300"
"origin" "0 0 64"
"classname" "light"
}
// entity 2
{
"origin" "-128 0 24"
"classname" "info_player_deathmatch"
}
Right away you should see some similarities, such that there is a worldspawn entity and there are 6 lines defining a Cube.
But there are also slight differences, if you notice how a texture is projected onto a brush in Q3, it is a bit different. Now here is where Im a bit sketchy, as i forgot to study for this exam… i cant remember exactly what it means:
common/caulk 0 0 0 0.500000 0.500000 0 4 0
Im guessing that the first 3 numbers, in this case 0 0 0, is the texture orientation relative to the brush, the 0.500000 number is its offset, and the 0 4 0 is its rotation x scale y scale relative to the face of the brush. You can see though that the numbers arent exactly the same, such as the floating point decimal that would (im assuming) define its offset.
Also another difference you will notice is the commented out
// entity #
&
// brush #
Im not sure if these are truely necessary, though it may be necessary for the Editor to function properly.
This concludes our breif explination in my own words of how the file types are different
To point out to you about q3map2 having a -hl tab… iv been under the impression that this was part of an April Fools joke which I believe I fell for as seen in this thread… if you notice the date of April 1 april fools day… Now I could very well be mistaken about this, but I believe it was a Joke. As you can see, i believe I was the first to get Duped by this post. :blah: EDIT: it seems that ydnar has edited that post to remove the malicious lines… but its quite possible that he forgot to edit the readme.
Now on to winBSPc:
Take a peek at this website… it has a fairly good tutorial on how to use winBSPc, although i havent personally followed this tut, its been way too long since iv used winBSPc to decompile Halflife’s Boot_Camp level (which brought my computer to a screaming hault -> crash) when i attempted to open the file in WC2.1… when i finally got it to work… it was horribly mishapen much like a badly put together Frakenstein…
I believe off the top of my head that there is a Convert to HL.map tick-button and a Convert to Q1 2 &3 tick-button in winBSPc… but i cant remember that far back. It may be possible that you have ticked the Q3 button instead of the HL button (if such a button exists).
Well hopefully I at least enlightened you w/ some knowlege… if not then I atleast Confuzed the POOP out of you! (hehe… i like to type POOP!) Maybe you could refraze your initial question if it wasnt answered in this post… hell… maybe you didnt even bother to get down to this point in reading it… who knows…
END
V^2
EDIT#2: upon further examination of your last post, am I correct to assume that you want to decompile de_aztec into a HL map format, then convert that .map format to Q3’s map format? Please correct me if im wrong.