.:: Bots United ::.

.:: Bots United ::. (http://forums.bots-united.com/index.php)
-   Half-Life 1 SDK (http://forums.bots-united.com/forumdisplay.php?f=33)
-   -   Blue Shift BSP format (http://forums.bots-united.com/showthread.php?t=2437)

Whistler 10-08-2004 02:29

Blue Shift BSP format
 
The Blue Shift BSP Format is slightly different from the ordinary HL engine BSP format:

This is the "original" one:

Code:

#define        LUMP_ENTITIES        0
#define        LUMP_PLANES                1
#define        LUMP_TEXTURES        2
#define        LUMP_VERTEXES        3
#define        LUMP_VISIBILITY        4
#define        LUMP_NODES                5
#define        LUMP_TEXINFO        6
#define        LUMP_FACES                7
#define        LUMP_LIGHTING        8
#define        LUMP_CLIPNODES        9
#define        LUMP_LEAFS                10
#define        LUMP_MARKSURFACES 11
#define        LUMP_EDGES                12
#define        LUMP_SURFEDGES        13
#define        LUMP_MODELS                14

But the Blue Shift is:
Code:

#define        LUMP_PLANES                0
#define        LUMP_ENTITIES        1

If you don't get what I'm saying above - You just need to use a hex editor and cut'n'paste the 5th-12th byte (note it's CUT'n'paste, not COPY'n'paste) after the 20th byte in Blue Shift maps and you'll get them read correctly in the ordinary HL engine.

sfx1999 11-08-2004 16:32

Re: Blue Shift BSP format
 
Well that's silly. Why did they change the format?

Did you use your l33t h4x0r skillz to figure that out?

I've looked at the Half-life BSP format and I've found out that is pretty much identical to the Quake one, but someone told me that the lightmaps are different. I looked through the code and I could have sworn that the lightmaps were identical. Can someone explain this to me?

botman 12-08-2004 16:10

Re: Blue Shift BSP format
 
The lightmaps are identical to Quake I.

The dynamic lights are different (Quake didn't support colored dynamic lights and Half-Life does).

botman

sfx1999 13-08-2004 18:07

Re: Blue Shift BSP format
 
I don't get it. If the lightmaps are greyscale, then how does texture lighting work? It accepts 24-bit color values.

sfx1999 20-08-2004 06:48

Re: Blue Shift BSP format
 
Does anyone know? Please tell me.

Pierre-Marie Baty 23-08-2004 03:54

Re: Blue Shift BSP format
 
Many thanks for the info Whistler, now I finally succeeded in porting Blue Shift to Steam.

For those who are interested you need to use Half-Life's game DLL and client DLL, replace monster_rosenberg with monster_scientist (all that the Dr Rosenberg does is scripted, and the skin of the guy is in the scientists model, so I wonder why the heck they needed a monster_rosenberg ?), and in order to get the armor and helmet replace all the item_armorhelmets with item_batteries - all you need then is to change the w_battery model with the kevlar+helmet one :)

You can then change the value for the batteries and the color of the HUD to blue and voilą, Blue Shift runs as a HL mod with the Steam engine !

sfx1999 23-08-2004 05:56

Re: Blue Shift BSP format
 
There are six new or modified entities in Blue-Shift:

http://collective.valve-erc.com/inde...lue&expand=all

monster_generic was modified so the head would follow the player with a flag.

as for the Doc:

monster_rosenberg

description

The monster_rosenberg entity is a custom entity for the Dr. Rosenberg character in Half-Life: Blue Shift.

usage

The entity is based on the monster_scientist code with the following modifications:

  • More health than a normal monster_scientist
  • If the player accidentally or intentionally shoots the monster_rosenberg it does not get angry/scared and refuse to follow the player.
  • Uses custom dialogue set up in the sentences.txt
  • Uses a custom unique head for its model (default body 3). This head replaces the "Slick" scientist character head.
The monster_rosenberg entity uses all the common monster properties and spawn flags with special note to the properties below.

  • Body (body) - The default body uses the unique Dr. Rosenberg head which replaces the "Slick" scientist character head (3). Note that other bodies/heads can be implemented in the same manner in which the monster_scientist entity does.
These would not be difficult to implement, now would they?

Pierre-Marie Baty 23-08-2004 08:53

Re: Blue Shift BSP format
 
not at all :)

In fact the Blue Shift code is rigorously identical to the HLSDK's game DLL one, except these microscopic additions. It's a bit of shame the Gearbox guys sold this game that expensive regarding the amount of work that's been put in. It's half shorter than most of the third party single player mods, and it's the HL physics, HL weapons, HL DLL, everything. They did nothing at all but to change the order of these 2 lumps in the BSP files in order to fool people into thinking they've made significant changes to the engine. In fact they made none at all. Opposing Force was a good game with some original content, but clearly, Blue Shift is a joke :)

*edit* oh and FYI I finished the game under Steam for testing, and everything works perfectly :D

sfx1999 23-08-2004 18:39

Re: Blue Shift BSP format
 
Basically for the scientist, you have to change this:

Code:

int CScientist :: TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType)
 {
 
        if ( pevInflictor && pevInflictor->flags & FL_CLIENT )
        {
                Remember( bits_MEMORY_PROVOKED );
                StopFollowing( TRUE );
        }
 
        // make sure friends talk about it if player hurts scientist...
        return CTalkMonster::TakeDamage(pevInflictor, pevAttacker, flDamage, bitsDamageType);
 }

To this:

Code:

int CScientist :: TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType)
 {
 
        //if ( pevInflictor && pevInflictor->flags & FL_CLIENT )
        //{
        //    Remember( bits_MEMORY_PROVOKED );
        //    StopFollowing( TRUE );
        //}
 
        // make sure friends talk about it if player hurts scientist...
        return CTalkMonster::TakeDamage(pevInflictor, pevAttacker, flDamage, bitsDamageType);
 }

And fix the head spawning code. You also need to modify the generic monster or you might get some nasty problems.

Pierre-Marie Baty 23-08-2004 20:13

Re: Blue Shift BSP format
 
I get no problems at all. The head spawning for the Dr Rosenburg works as is because it's recorded in the entity key/values in the BSP file. Everything works perfectly, I didn't need to change anything but the HUD colors in the client DLL. You wouldn't tell the difference with the original Blue Shift DLLs. :)


All times are GMT +2. The time now is 12:37.

Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.