mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2025-04-16 06:52:01 +00:00
Added helper entityDefs for TrenchBroom
This commit is contained in:
parent
958bd1a1cf
commit
87e2004634
11 changed files with 2668 additions and 61 deletions
|
@ -1,4 +1,4 @@
|
|||
// DOOM 3 BFG game definition file (.fgd) generated by RBDOOM 3 BFG 1.5.0
|
||||
// DOOM 3 BFG game definition file (.fgd) generated by RBDOOM 3 BFG 1.5.1
|
||||
|
||||
@PointClass base(cin_base) model({ "path": "_tb/models/md5/cinematics/admin/overhearcaseontable.obj" }) = admin_bfgcase : "No description"
|
||||
[
|
||||
|
@ -5804,6 +5804,17 @@ trigger will toggle the activator on and off. Activator will disable itself whe
|
|||
snd_opened(string) : "looping sound for it's opened state."
|
||||
]
|
||||
|
||||
@PointClass base(func_bobbing) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_bobbing_model : "Inherits from a func_bobbing but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
model(string) : "Model Selection (ex mapobjects/model.obj)"
|
||||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) size(-16 -16 0, 16 16 32) model({ "path": "_tb/model to use.obj" }) = func_camera_anim : "Camera controlled by animation.
|
||||
"
|
||||
[
|
||||
|
@ -5837,7 +5848,7 @@ trigger will toggle the activator on and off. Activator will disable itself whe
|
|||
spawnfunc(string) : "" : "func_clipmodel"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) = func_damagable : "Breakable object. Fires targets and changes shader parms and model when damaged.
|
||||
@SolidClass color(0 127 204) = func_damagable : "Breakable object. Fires targets and changes shader parms and model when damaged.
|
||||
When damaged, shader parm 3 is set to the current time, and shader parm 7 is set
|
||||
to either a random number from 1 to 'numstates', or to the value in 'forcestate' if
|
||||
it is non-zero. If you want an invisible texture, use common/collision. Make sure
|
||||
|
@ -5937,6 +5948,15 @@ Repeat floor1_ height and door info with floor2_ etc.. for as many floors as you
|
|||
statusgui(string) : "entity name to update floor info, can use statusgui2..3..4..etc. for multiple updates. if appended with _num it will target an optional specific gui number on the entity this is handy for models with multiple guis."
|
||||
]
|
||||
|
||||
@PointClass base(func_elevator) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_elevator_model : "Inherits from a func_elevator but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
]
|
||||
|
||||
@PointClass base(func_static) color(0 127 204) size(-12 -12 -12, 12 12 12) model({ "path": "sprites/bonfire.png", "scale": 0.03125 }) = func_emitter : "Inherits from a func_static but is fixed size and shows a rotation arrow.
|
||||
Use it to orient particle models
|
||||
Trigger it to fade it in and/or out
|
||||
|
@ -6064,7 +6084,18 @@ Trigger it to fade it in and/or out
|
|||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) = func_pendulum : "Pendulums always swing north / south on unrotated models. Add an angles field to the model to allow rotation in other directions.
|
||||
@PointClass base(func_mover) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_mover_model : "Inherits from a func_mover but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
model(string) : "Model Selection (ex mapobjects/model.obj)"
|
||||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@SolidClass color(0 127 204) = func_pendulum : "Pendulums always swing north / south on unrotated models. Add an angles field to the model to allow rotation in other directions.
|
||||
Pendulum frequency is a physical constant based on the length of the beam and gravity.
|
||||
"
|
||||
[
|
||||
|
@ -12665,7 +12696,10 @@ PDA's contain vidoes, audio, e-mail, and security clearances.
|
|||
snd_acquire(string) : "" : "videocd_pickup"
|
||||
]
|
||||
|
||||
@PointClass color(0 255 0) size(-8 -8 -8, 8 8 8) model({ "path": "sprites/light-bulb.png", "scale": 0.03125 }) = light : "Light source. If health is set, light becomes breakable and turns off when shot.
|
||||
@PointClass color(0 255 0) size(-8 -8 -8, 8 8 8) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": "sprites/light-bulb.png", "scale": 0.03125 }
|
||||
}})= light : "Light source. If health is set, light becomes breakable and turns off when shot.
|
||||
"
|
||||
[
|
||||
style(Choices) : "Appearance" : 0 =
|
||||
|
@ -18097,7 +18131,7 @@ Use it to place all kinds of models
|
|||
damageWhenActive(string) : "" : "1"
|
||||
]
|
||||
|
||||
@SolidClass color(0 127 204) = moveable_base : "Moveable object. Will drop to the floor and rest untill activated.
|
||||
@PointClass color(0 127 204) = moveable_base : "Moveable object. Will drop to the floor and rest untill activated.
|
||||
The visual model set with the 'model' key can also be used for
|
||||
collision detection. However the model may not be too complex.
|
||||
max vertices = 32
|
||||
|
@ -18138,7 +18172,7 @@ model for collision detection. Such a collision model is specified with the
|
|||
broken(string) : "Visual model to be used when the health drops down to or below zero."
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_barrel : "Moveable barrel. Works just like a moveable_base. However the barrel
|
||||
@PointClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_barrel : "Moveable barrel. Works just like a moveable_base. However the barrel
|
||||
has special handling to make it appear more round.
|
||||
"
|
||||
[
|
||||
|
@ -18149,7 +18183,7 @@ has special handling to make it appear more round.
|
|||
snd_bounce(string) : "" : "barrel_impact"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) = moveable_base_boulder : "No description"
|
||||
@PointClass base(moveable_base) = moveable_base_boulder : "No description"
|
||||
[
|
||||
density(string) : "" : "0.05"
|
||||
friction(string) : "" : "0.2"
|
||||
|
@ -18165,14 +18199,14 @@ has special handling to make it appear more round.
|
|||
snd_bounce(string) : "" : "stone_impact"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) = moveable_base_domino : "No description"
|
||||
@PointClass base(moveable_base) = moveable_base_domino : "No description"
|
||||
[
|
||||
density(string) : "" : "0.005"
|
||||
friction(string) : "" : "0.6"
|
||||
bouncyness(string) : "" : "0.2"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_fixed : "No description"
|
||||
@PointClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_fixed : "No description"
|
||||
[
|
||||
]
|
||||
|
||||
|
@ -18862,7 +18896,7 @@ Only add model, model_detonate or model_burn or health to override defaults
|
|||
damageWhenActive(string) : "" : "1"
|
||||
]
|
||||
|
||||
@PointClass base(moveable_base_brick) = moveable_guardian_brick : "No description"
|
||||
@SolidClass base(moveable_base_brick) = moveable_guardian_brick : "No description"
|
||||
[
|
||||
density(string) : "" : "0.001"
|
||||
friction(string) : "" : "0.2"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// DOOM 3 BFG game definition file (.fgd) generated by RBDOOM 3 BFG 1.5.0
|
||||
// DOOM 3 BFG game definition file (.fgd) generated by RBDOOM 3 BFG 1.5.1
|
||||
|
||||
@PointClass base(cin_base) model({ "path": "_tb/models/md5/cinematics/admin/overhearcaseontable.obj" }) = admin_bfgcase : "No description"
|
||||
[
|
||||
|
@ -5804,6 +5804,17 @@ trigger will toggle the activator on and off. Activator will disable itself whe
|
|||
snd_opened(string) : "looping sound for it's opened state."
|
||||
]
|
||||
|
||||
@PointClass base(func_bobbing) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_bobbing_model : "Inherits from a func_bobbing but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
model(string) : "Model Selection (ex mapobjects/model.obj)"
|
||||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) size(-16 -16 0, 16 16 32) model({ "path": "_tb/model to use.obj" }) = func_camera_anim : "Camera controlled by animation.
|
||||
"
|
||||
[
|
||||
|
@ -5837,7 +5848,7 @@ trigger will toggle the activator on and off. Activator will disable itself whe
|
|||
spawnfunc(string) : "" : "func_clipmodel"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) = func_damagable : "Breakable object. Fires targets and changes shader parms and model when damaged.
|
||||
@SolidClass color(0 127 204) = func_damagable : "Breakable object. Fires targets and changes shader parms and model when damaged.
|
||||
When damaged, shader parm 3 is set to the current time, and shader parm 7 is set
|
||||
to either a random number from 1 to 'numstates', or to the value in 'forcestate' if
|
||||
it is non-zero. If you want an invisible texture, use common/collision. Make sure
|
||||
|
@ -5937,6 +5948,15 @@ Repeat floor1_ height and door info with floor2_ etc.. for as many floors as you
|
|||
statusgui(string) : "entity name to update floor info, can use statusgui2..3..4..etc. for multiple updates. if appended with _num it will target an optional specific gui number on the entity this is handy for models with multiple guis."
|
||||
]
|
||||
|
||||
@PointClass base(func_elevator) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_elevator_model : "Inherits from a func_elevator but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
]
|
||||
|
||||
@PointClass base(func_static) color(0 127 204) size(-12 -12 -12, 12 12 12) model({ "path": "sprites/bonfire.png", "scale": 0.03125 }) = func_emitter : "Inherits from a func_static but is fixed size and shows a rotation arrow.
|
||||
Use it to orient particle models
|
||||
Trigger it to fade it in and/or out
|
||||
|
@ -6064,7 +6084,18 @@ Trigger it to fade it in and/or out
|
|||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) = func_pendulum : "Pendulums always swing north / south on unrotated models. Add an angles field to the model to allow rotation in other directions.
|
||||
@PointClass base(func_mover) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_mover_model : "Inherits from a func_mover but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
model(string) : "Model Selection (ex mapobjects/model.obj)"
|
||||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@SolidClass color(0 127 204) = func_pendulum : "Pendulums always swing north / south on unrotated models. Add an angles field to the model to allow rotation in other directions.
|
||||
Pendulum frequency is a physical constant based on the length of the beam and gravity.
|
||||
"
|
||||
[
|
||||
|
@ -7181,7 +7212,10 @@ PDA's contain vidoes, audio, e-mail, and security clearances.
|
|||
snd_acquire(string) : "" : "videocd_pickup"
|
||||
]
|
||||
|
||||
@PointClass color(0 255 0) size(-8 -8 -8, 8 8 8) model({ "path": "sprites/light-bulb.png", "scale": 0.03125 }) = light : "Light source. If health is set, light becomes breakable and turns off when shot.
|
||||
@PointClass color(0 255 0) size(-8 -8 -8, 8 8 8) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": "sprites/light-bulb.png", "scale": 0.03125 }
|
||||
}})= light : "Light source. If health is set, light becomes breakable and turns off when shot.
|
||||
"
|
||||
[
|
||||
style(Choices) : "Appearance" : 0 =
|
||||
|
@ -12613,7 +12647,7 @@ Use it to place all kinds of models
|
|||
damageWhenActive(string) : "" : "1"
|
||||
]
|
||||
|
||||
@SolidClass color(0 127 204) = moveable_base : "Moveable object. Will drop to the floor and rest untill activated.
|
||||
@PointClass color(0 127 204) = moveable_base : "Moveable object. Will drop to the floor and rest untill activated.
|
||||
The visual model set with the 'model' key can also be used for
|
||||
collision detection. However the model may not be too complex.
|
||||
max vertices = 32
|
||||
|
@ -12654,7 +12688,7 @@ model for collision detection. Such a collision model is specified with the
|
|||
broken(string) : "Visual model to be used when the health drops down to or below zero."
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_barrel : "Moveable barrel. Works just like a moveable_base. However the barrel
|
||||
@PointClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_barrel : "Moveable barrel. Works just like a moveable_base. However the barrel
|
||||
has special handling to make it appear more round.
|
||||
"
|
||||
[
|
||||
|
@ -12665,7 +12699,7 @@ has special handling to make it appear more round.
|
|||
snd_bounce(string) : "" : "barrel_impact"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) = moveable_base_boulder : "No description"
|
||||
@PointClass base(moveable_base) = moveable_base_boulder : "No description"
|
||||
[
|
||||
density(string) : "" : "0.05"
|
||||
friction(string) : "" : "0.2"
|
||||
|
@ -12681,14 +12715,14 @@ has special handling to make it appear more round.
|
|||
snd_bounce(string) : "" : "stone_impact"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) = moveable_base_domino : "No description"
|
||||
@PointClass base(moveable_base) = moveable_base_domino : "No description"
|
||||
[
|
||||
density(string) : "" : "0.005"
|
||||
friction(string) : "" : "0.6"
|
||||
bouncyness(string) : "" : "0.2"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_fixed : "No description"
|
||||
@PointClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_fixed : "No description"
|
||||
[
|
||||
]
|
||||
|
||||
|
@ -13378,7 +13412,7 @@ Only add model, model_detonate or model_burn or health to override defaults
|
|||
damageWhenActive(string) : "" : "1"
|
||||
]
|
||||
|
||||
@PointClass base(moveable_base_brick) = moveable_guardian_brick : "No description"
|
||||
@SolidClass base(moveable_base_brick) = moveable_guardian_brick : "No description"
|
||||
[
|
||||
density(string) : "" : "0.001"
|
||||
friction(string) : "" : "0.2"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// DOOM 3 BFG game definition file (.fgd) generated by RBDOOM 3 BFG 1.5.0
|
||||
// DOOM 3 BFG game definition file (.fgd) generated by RBDOOM 3 BFG 1.5.1
|
||||
|
||||
@PointClass base(ammo_belt_small) = ammo_belt_small_mp : "No description"
|
||||
[
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// DOOM 3 BFG game definition file (.fgd) generated by RBDOOM 3 BFG 1.5.0
|
||||
// DOOM 3 BFG game definition file (.fgd) generated by RBDOOM 3 BFG 1.5.1
|
||||
|
||||
@PointClass color(127 76 0) size(-24 -24 0, 24 24 82) model({ "path": "sprites/ai.png", "scale": 0.03125 }) = ai_attackcone : "
|
||||
"
|
||||
|
@ -2396,6 +2396,17 @@ trigger will toggle the activator on and off. Activator will disable itself whe
|
|||
snd_opened(string) : "looping sound for it's opened state."
|
||||
]
|
||||
|
||||
@PointClass base(func_bobbing) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_bobbing_model : "Inherits from a func_bobbing but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
model(string) : "Model Selection (ex mapobjects/model.obj)"
|
||||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) size(-16 -16 0, 16 16 32) model({ "path": "_tb/model to use.obj" }) = func_camera_anim : "Camera controlled by animation.
|
||||
"
|
||||
[
|
||||
|
@ -2429,7 +2440,7 @@ trigger will toggle the activator on and off. Activator will disable itself whe
|
|||
spawnfunc(string) : "" : "func_clipmodel"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) = func_damagable : "Breakable object. Fires targets and changes shader parms and model when damaged.
|
||||
@SolidClass color(0 127 204) = func_damagable : "Breakable object. Fires targets and changes shader parms and model when damaged.
|
||||
When damaged, shader parm 3 is set to the current time, and shader parm 7 is set
|
||||
to either a random number from 1 to 'numstates', or to the value in 'forcestate' if
|
||||
it is non-zero. If you want an invisible texture, use common/collision. Make sure
|
||||
|
@ -2529,6 +2540,15 @@ Repeat floor1_ height and door info with floor2_ etc.. for as many floors as you
|
|||
statusgui(string) : "entity name to update floor info, can use statusgui2..3..4..etc. for multiple updates. if appended with _num it will target an optional specific gui number on the entity this is handy for models with multiple guis."
|
||||
]
|
||||
|
||||
@PointClass base(func_elevator) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_elevator_model : "Inherits from a func_elevator but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
]
|
||||
|
||||
@PointClass base(func_static) color(0 127 204) size(-12 -12 -12, 12 12 12) model({ "path": "sprites/bonfire.png", "scale": 0.03125 }) = func_emitter : "Inherits from a func_static but is fixed size and shows a rotation arrow.
|
||||
Use it to orient particle models
|
||||
Trigger it to fade it in and/or out
|
||||
|
@ -2656,7 +2676,18 @@ Trigger it to fade it in and/or out
|
|||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) = func_pendulum : "Pendulums always swing north / south on unrotated models. Add an angles field to the model to allow rotation in other directions.
|
||||
@PointClass base(func_mover) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_mover_model : "Inherits from a func_mover but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
model(string) : "Model Selection (ex mapobjects/model.obj)"
|
||||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@SolidClass color(0 127 204) = func_pendulum : "Pendulums always swing north / south on unrotated models. Add an angles field to the model to allow rotation in other directions.
|
||||
Pendulum frequency is a physical constant based on the length of the beam and gravity.
|
||||
"
|
||||
[
|
||||
|
@ -8828,7 +8859,10 @@ PDA's contain vidoes, audio, e-mail, and security clearances.
|
|||
snd_acquire(string) : "" : "videocd_pickup"
|
||||
]
|
||||
|
||||
@PointClass color(0 255 0) size(-8 -8 -8, 8 8 8) model({ "path": "sprites/light-bulb.png", "scale": 0.03125 }) = light : "Light source. If health is set, light becomes breakable and turns off when shot.
|
||||
@PointClass color(0 255 0) size(-8 -8 -8, 8 8 8) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": "sprites/light-bulb.png", "scale": 0.03125 }
|
||||
}})= light : "Light source. If health is set, light becomes breakable and turns off when shot.
|
||||
"
|
||||
[
|
||||
style(Choices) : "Appearance" : 0 =
|
||||
|
@ -12231,7 +12265,7 @@ Use it to place all kinds of models
|
|||
damageWhenActive(string) : "" : "1"
|
||||
]
|
||||
|
||||
@SolidClass color(0 127 204) = moveable_base : "Moveable object. Will drop to the floor and rest untill activated.
|
||||
@PointClass color(0 127 204) = moveable_base : "Moveable object. Will drop to the floor and rest untill activated.
|
||||
The visual model set with the 'model' key can also be used for
|
||||
collision detection. However the model may not be too complex.
|
||||
max vertices = 32
|
||||
|
@ -12272,7 +12306,7 @@ model for collision detection. Such a collision model is specified with the
|
|||
broken(string) : "Visual model to be used when the health drops down to or below zero."
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_barrel : "Moveable barrel. Works just like a moveable_base. However the barrel
|
||||
@PointClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_barrel : "Moveable barrel. Works just like a moveable_base. However the barrel
|
||||
has special handling to make it appear more round.
|
||||
"
|
||||
[
|
||||
|
@ -12283,7 +12317,7 @@ has special handling to make it appear more round.
|
|||
snd_bounce(string) : "" : "barrel_impact"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) = moveable_base_boulder : "No description"
|
||||
@PointClass base(moveable_base) = moveable_base_boulder : "No description"
|
||||
[
|
||||
density(string) : "" : "0.05"
|
||||
friction(string) : "" : "0.2"
|
||||
|
@ -12299,14 +12333,14 @@ has special handling to make it appear more round.
|
|||
snd_bounce(string) : "" : "stone_impact"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) = moveable_base_domino : "No description"
|
||||
@PointClass base(moveable_base) = moveable_base_domino : "No description"
|
||||
[
|
||||
density(string) : "" : "0.005"
|
||||
friction(string) : "" : "0.6"
|
||||
bouncyness(string) : "" : "0.2"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_fixed : "No description"
|
||||
@PointClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_fixed : "No description"
|
||||
[
|
||||
]
|
||||
|
||||
|
@ -12996,7 +13030,7 @@ Only add model, model_detonate or model_burn or health to override defaults
|
|||
damageWhenActive(string) : "" : "1"
|
||||
]
|
||||
|
||||
@PointClass base(moveable_base_brick) = moveable_guardian_brick : "No description"
|
||||
@SolidClass base(moveable_base_brick) = moveable_guardian_brick : "No description"
|
||||
[
|
||||
density(string) : "" : "0.001"
|
||||
friction(string) : "" : "0.2"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// DOOM 3 BFG game definition file (.fgd) generated by RBDOOM 3 BFG 1.5.0
|
||||
// DOOM 3 BFG game definition file (.fgd) generated by RBDOOM 3 BFG 1.5.1
|
||||
|
||||
@PointClass color(127 76 0) size(-24 -24 0, 24 24 82) model({ "path": "sprites/ai.png", "scale": 0.03125 }) = ai_attackcone : "
|
||||
"
|
||||
|
@ -2396,6 +2396,17 @@ trigger will toggle the activator on and off. Activator will disable itself whe
|
|||
snd_opened(string) : "looping sound for it's opened state."
|
||||
]
|
||||
|
||||
@PointClass base(func_bobbing) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_bobbing_model : "Inherits from a func_bobbing but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
model(string) : "Model Selection (ex mapobjects/model.obj)"
|
||||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) size(-16 -16 0, 16 16 32) model({ "path": "_tb/model to use.obj" }) = func_camera_anim : "Camera controlled by animation.
|
||||
"
|
||||
[
|
||||
|
@ -2429,7 +2440,7 @@ trigger will toggle the activator on and off. Activator will disable itself whe
|
|||
spawnfunc(string) : "" : "func_clipmodel"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) = func_damagable : "Breakable object. Fires targets and changes shader parms and model when damaged.
|
||||
@SolidClass color(0 127 204) = func_damagable : "Breakable object. Fires targets and changes shader parms and model when damaged.
|
||||
When damaged, shader parm 3 is set to the current time, and shader parm 7 is set
|
||||
to either a random number from 1 to 'numstates', or to the value in 'forcestate' if
|
||||
it is non-zero. If you want an invisible texture, use common/collision. Make sure
|
||||
|
@ -2529,6 +2540,15 @@ Repeat floor1_ height and door info with floor2_ etc.. for as many floors as you
|
|||
statusgui(string) : "entity name to update floor info, can use statusgui2..3..4..etc. for multiple updates. if appended with _num it will target an optional specific gui number on the entity this is handy for models with multiple guis."
|
||||
]
|
||||
|
||||
@PointClass base(func_elevator) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_elevator_model : "Inherits from a func_elevator but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
]
|
||||
|
||||
@PointClass base(func_static) color(0 127 204) size(-12 -12 -12, 12 12 12) model({ "path": "sprites/bonfire.png", "scale": 0.03125 }) = func_emitter : "Inherits from a func_static but is fixed size and shows a rotation arrow.
|
||||
Use it to orient particle models
|
||||
Trigger it to fade it in and/or out
|
||||
|
@ -2656,7 +2676,18 @@ Trigger it to fade it in and/or out
|
|||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@PointClass color(0 127 204) = func_pendulum : "Pendulums always swing north / south on unrotated models. Add an angles field to the model to allow rotation in other directions.
|
||||
@PointClass base(func_mover) size(-8 -8 0, 8 8 16) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": model }
|
||||
}})= func_mover_model : "Inherits from a func_mover but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom.
|
||||
Use it to place all kinds of models
|
||||
"
|
||||
[
|
||||
model(string) : "Model Selection (ex mapobjects/model.obj)"
|
||||
proxymodel(string) : "A proxy model in OBJ file format automatically set by RBDoom so it can be displayed in TrenchBroom"
|
||||
]
|
||||
|
||||
@SolidClass color(0 127 204) = func_pendulum : "Pendulums always swing north / south on unrotated models. Add an angles field to the model to allow rotation in other directions.
|
||||
Pendulum frequency is a physical constant based on the length of the beam and gravity.
|
||||
"
|
||||
[
|
||||
|
@ -3344,7 +3375,10 @@ PDA's contain vidoes, audio, e-mail, and security clearances.
|
|||
snd_acquire(string) : "" : "videocd_pickup"
|
||||
]
|
||||
|
||||
@PointClass color(0 255 0) size(-8 -8 -8, 8 8 8) model({ "path": "sprites/light-bulb.png", "scale": 0.03125 }) = light : "Light source. If health is set, light becomes breakable and turns off when shot.
|
||||
@PointClass color(0 255 0) size(-8 -8 -8, 8 8 8) model({{
|
||||
proxymodel -> { "path": proxymodel },
|
||||
{ "path": "sprites/light-bulb.png", "scale": 0.03125 }
|
||||
}})= light : "Light source. If health is set, light becomes breakable and turns off when shot.
|
||||
"
|
||||
[
|
||||
style(Choices) : "Appearance" : 0 =
|
||||
|
@ -6747,7 +6781,7 @@ Use it to place all kinds of models
|
|||
damageWhenActive(string) : "" : "1"
|
||||
]
|
||||
|
||||
@SolidClass color(0 127 204) = moveable_base : "Moveable object. Will drop to the floor and rest untill activated.
|
||||
@PointClass color(0 127 204) = moveable_base : "Moveable object. Will drop to the floor and rest untill activated.
|
||||
The visual model set with the 'model' key can also be used for
|
||||
collision detection. However the model may not be too complex.
|
||||
max vertices = 32
|
||||
|
@ -6788,7 +6822,7 @@ model for collision detection. Such a collision model is specified with the
|
|||
broken(string) : "Visual model to be used when the health drops down to or below zero."
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_barrel : "Moveable barrel. Works just like a moveable_base. However the barrel
|
||||
@PointClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_barrel : "Moveable barrel. Works just like a moveable_base. However the barrel
|
||||
has special handling to make it appear more round.
|
||||
"
|
||||
[
|
||||
|
@ -6799,7 +6833,7 @@ has special handling to make it appear more round.
|
|||
snd_bounce(string) : "" : "barrel_impact"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) = moveable_base_boulder : "No description"
|
||||
@PointClass base(moveable_base) = moveable_base_boulder : "No description"
|
||||
[
|
||||
density(string) : "" : "0.05"
|
||||
friction(string) : "" : "0.2"
|
||||
|
@ -6815,14 +6849,14 @@ has special handling to make it appear more round.
|
|||
snd_bounce(string) : "" : "stone_impact"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) = moveable_base_domino : "No description"
|
||||
@PointClass base(moveable_base) = moveable_base_domino : "No description"
|
||||
[
|
||||
density(string) : "" : "0.005"
|
||||
friction(string) : "" : "0.6"
|
||||
bouncyness(string) : "" : "0.2"
|
||||
]
|
||||
|
||||
@SolidClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_fixed : "No description"
|
||||
@PointClass base(moveable_base) color(255 127 0) size(-8 -8 -8, 8 8 8) = moveable_base_fixed : "No description"
|
||||
[
|
||||
]
|
||||
|
||||
|
@ -7512,7 +7546,7 @@ Only add model, model_detonate or model_burn or health to override defaults
|
|||
damageWhenActive(string) : "" : "1"
|
||||
]
|
||||
|
||||
@PointClass base(moveable_base_brick) = moveable_guardian_brick : "No description"
|
||||
@SolidClass base(moveable_base_brick) = moveable_guardian_brick : "No description"
|
||||
[
|
||||
density(string) : "" : "0.001"
|
||||
friction(string) : "" : "0.2"
|
||||
|
|
|
@ -10,6 +10,15 @@ entityDef misc_model
|
|||
"editor_usage1" "Use it to place all kinds of models"
|
||||
}
|
||||
|
||||
entityDef func_bobbing_model
|
||||
{
|
||||
"inherit" "func_bobbing"
|
||||
"editor_mins" "-8 -8 0"
|
||||
"editor_maxs" "8 8 16"
|
||||
"editor_usage" "Inherits from a func_bobbing but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom."
|
||||
"editor_usage1" "Use it to place all kinds of models"
|
||||
}
|
||||
|
||||
entityDef func_door_model
|
||||
{
|
||||
"inherit" "func_door"
|
||||
|
@ -19,6 +28,24 @@ entityDef func_door_model
|
|||
"editor_usage1" "Use it to place all kinds of models"
|
||||
}
|
||||
|
||||
entityDef func_elevator_model
|
||||
{
|
||||
"inherit" "func_elevator"
|
||||
"editor_mins" "-8 -8 0"
|
||||
"editor_maxs" "8 8 16"
|
||||
"editor_usage" "Inherits from a func_elevator but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom."
|
||||
"editor_usage1" "Use it to place all kinds of models"
|
||||
}
|
||||
|
||||
entityDef func_mover_model
|
||||
{
|
||||
"inherit" "func_mover"
|
||||
"editor_mins" "-8 -8 0"
|
||||
"editor_maxs" "8 8 16"
|
||||
"editor_usage" "Inherits from a func_mover but uses a model and is a FGD PointClass so it displays correctly in TrenchBroom."
|
||||
"editor_usage1" "Use it to place all kinds of models"
|
||||
}
|
||||
|
||||
entityDef func_rotating_model
|
||||
{
|
||||
"inherit" "func_rotating"
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -739,6 +739,65 @@ CONSOLE_COMMAND( convertMapToValve220, "Convert .map file to the Valve 220 map f
|
|||
common->SetRefreshOnPrint( false );
|
||||
}
|
||||
|
||||
CONSOLE_COMMAND( checkMapsForBrushEntities, "List all brush entities in all .map files", idCmdSystem::ArgCompletion_MapNameNoJson )
|
||||
{
|
||||
//int totalImagesCount = 0;
|
||||
|
||||
idFileList* files = fileSystem->ListFilesTree( "maps/game", ".map", true, true );
|
||||
|
||||
idDict classTypeOverview;
|
||||
|
||||
for( int f = 0; f < files->GetList().Num(); f++ )
|
||||
{
|
||||
idStr mapName = files->GetList()[ f ];
|
||||
|
||||
idMapFile map;
|
||||
if( map.Parse( mapName, true, false ) )
|
||||
{
|
||||
map.ClassifyEntitiesForTrenchBroom( classTypeOverview );
|
||||
}
|
||||
}
|
||||
|
||||
fileSystem->FreeFileList( files );
|
||||
|
||||
int n = classTypeOverview.GetNumKeyVals();
|
||||
|
||||
idLib::Printf( "BrushClasses:\n" );
|
||||
for( int i = 0; i < n; i++ )
|
||||
{
|
||||
const idKeyValue* kv = classTypeOverview.GetKeyVal( i );
|
||||
|
||||
if( kv->GetValue() == "BrushClass" )
|
||||
{
|
||||
idLib::Printf( "'%s'\n", kv->GetKey().c_str() );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
idLib::Printf( "\nPointClasses:\n" );
|
||||
for( int i = 0; i < n; i++ )
|
||||
{
|
||||
const idKeyValue* kv = classTypeOverview.GetKeyVal( i );
|
||||
|
||||
if( kv->GetValue() == "PointClass" )
|
||||
{
|
||||
idLib::Printf( "'%s'\n", kv->GetKey().c_str() );
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
idLib::Printf( "\nMixedClasses:\n" );
|
||||
for( int i = 0; i < n; i++ )
|
||||
{
|
||||
const idKeyValue* kv = classTypeOverview.GetKeyVal( i );
|
||||
|
||||
if( kv->GetValue() == "Mixed" )
|
||||
{
|
||||
idLib::Printf( "'%s'\n", kv->GetKey().c_str() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
CONSOLE_COMMAND( convertMapQuakeToDoom, "Convert Quake .map in Valve 220 map format for Doom 3 BFG", idCmdSystem::ArgCompletion_MapNameNoJson )
|
||||
{
|
||||
|
|
|
@ -2225,21 +2225,31 @@ void idDeclManagerLocal::ExportEntityDefsToTrenchBroom_f( const idCmdArgs& args
|
|||
|
||||
idStrList solidClassNames;
|
||||
solidClassNames.AddUnique( "worldspawn" );
|
||||
|
||||
solidClassNames.AddUnique( "func_aas_obstacle" );
|
||||
solidClassNames.AddUnique( "func_aas_portal" );
|
||||
|
||||
solidClassNames.AddUnique( "func_clipmodel" );
|
||||
solidClassNames.AddUnique( "func_damagable" );
|
||||
solidClassNames.AddUnique( "func_forcefield" );
|
||||
solidClassNames.AddUnique( "func_fracture" );
|
||||
solidClassNames.AddUnique( "func_liquid" );
|
||||
solidClassNames.AddUnique( "func_plat" );
|
||||
solidClassNames.AddUnique( "func_rotating" );
|
||||
solidClassNames.AddUnique( "func_splinemover" );
|
||||
solidClassNames.AddUnique( "func_static" );
|
||||
solidClassNames.AddUnique( "func_mover" );
|
||||
solidClassNames.AddUnique( "func_door" );
|
||||
solidClassNames.AddUnique( "moveable_base" );
|
||||
solidClassNames.AddUnique( "func_pendulum" );
|
||||
solidClassNames.AddUnique( "func_plat" );
|
||||
|
||||
solidClassNames.AddUnique( "moveable_base_brick" );
|
||||
solidClassNames.AddUnique( "moveable_guardian_brick" );
|
||||
|
||||
solidClassNames.AddUnique( "trigger_" );
|
||||
|
||||
// mixed classes that need extra _model pendants
|
||||
solidClassNames.AddUnique( "func_door" );
|
||||
solidClassNames.AddUnique( "func_mover" );
|
||||
solidClassNames.AddUnique( "func_rotating" );
|
||||
|
||||
solidClassNames.AddUnique( "func_static" ); // misc_model
|
||||
|
||||
for( int f = 0; f < filenames.Num(); f++ )
|
||||
{
|
||||
int totalEntitiesCount = 0;
|
||||
|
@ -2515,7 +2525,9 @@ void idDeclManagerLocal::ExportEntityDefsToTrenchBroom_f( const idCmdArgs& args
|
|||
|
||||
if( idStr::Icmp( decl->GetName(), "light" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "misc_model" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_bobbing_model" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_door_model" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_mover_model" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_mover_amodel" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_plat_model" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_rotating_model" ) == 0 )
|
||||
|
@ -2604,7 +2616,10 @@ void idDeclManagerLocal::ExportEntityDefsToTrenchBroom_f( const idCmdArgs& args
|
|||
|
||||
if( idStr::Icmp( decl->GetName(), "light" ) != 0 &&
|
||||
idStr::Icmp( decl->GetName(), "misc_model" ) != 0 &&
|
||||
idStr::Icmp( decl->GetName(), "func_bobbing_model" ) != 0 &&
|
||||
idStr::Icmp( decl->GetName(), "func_door_model" ) != 0 &&
|
||||
idStr::Icmp( decl->GetName(), "func_elevator_model" ) != 0 &&
|
||||
idStr::Icmp( decl->GetName(), "func_mover_model" ) != 0 &&
|
||||
idStr::Icmp( decl->GetName(), "func_mover_amodel" ) != 0 &&
|
||||
idStr::Icmp( decl->GetName(), "func_plat_model" ) != 0 &&
|
||||
idStr::Icmp( decl->GetName(), "func_rotating_model" ) != 0 )
|
||||
|
@ -2649,7 +2664,10 @@ void idDeclManagerLocal::ExportEntityDefsToTrenchBroom_f( const idCmdArgs& args
|
|||
file->Printf( "model({ \"path\": \"%s\" }) ", exportedModelFileName.c_str() );
|
||||
}
|
||||
else if( idStr::Icmp( decl->GetName(), "misc_model" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_bobbing_model" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_door_model" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_elevator_model" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_mover_model" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_mover_amodel" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_plat_model" ) == 0 ||
|
||||
idStr::Icmp( decl->GetName(), "func_rotating_model" ) == 0 )
|
||||
|
@ -2660,7 +2678,9 @@ void idDeclManagerLocal::ExportEntityDefsToTrenchBroom_f( const idCmdArgs& args
|
|||
else if( idStr::Icmp( decl->GetName(), "light" ) == 0 )
|
||||
{
|
||||
// default light sprite for TB editor sprites branch
|
||||
file->Printf( "model({ \"path\": \"sprites/light-bulb.png\", \"scale\": 0.03125 }) " );
|
||||
//file->Printf( "model({ \"path\": \"sprites/light-bulb.png\", \"scale\": 0.03125 }) " );
|
||||
|
||||
file->Printf( "model({{\n\tproxymodel -> { \"path\": proxymodel },\n\t{ \"path\": \"sprites/light-bulb.png\", \"scale\": 0.03125 }\n}})" );
|
||||
}
|
||||
else if( idStr::Icmp( decl->GetName(), "speaker" ) == 0 )
|
||||
{
|
||||
|
@ -3149,7 +3169,7 @@ void idDeclManagerLocal::ExportModelsToTrenchBroom_f( const idCmdArgs& args )
|
|||
// make an OBJ version of the model for TrenchBroom
|
||||
idRenderModel* renderModel = renderModelManager->FindModel( modelName );
|
||||
|
||||
#if 1
|
||||
#if 0
|
||||
if( idStr::Icmpn( modelName, "models/mapobjects", 17 ) != 0 )
|
||||
{
|
||||
continue;
|
||||
|
|
|
@ -2973,13 +2973,17 @@ bool idMapFile::ConvertToValve220Format()
|
|||
ent->epairs.Set( "proxymodel", model );
|
||||
}
|
||||
#endif
|
||||
|
||||
// TODO if light purge flare patches
|
||||
|
||||
bool isBrushModel = ( ent->GetNumPrimitives() > 0 ) && ( idStr::Icmp( model.c_str(), name.c_str() ) == 0 );
|
||||
|
||||
// is this oldschool brushes & patches?
|
||||
if( ent->GetNumPrimitives() > 0 )
|
||||
if( isBrushModel )
|
||||
{
|
||||
bool removedOrigin = false;
|
||||
#if 1
|
||||
if( !transform.IsIdentity() &&
|
||||
idStr::Icmp( classname, "func_static" ) != 0 &&
|
||||
//idStr::Icmp( classname, "func_static" ) != 0 &&
|
||||
idStr::Icmp( classname, "light" ) != 0 )
|
||||
{
|
||||
ent->epairs.Delete( "origin" );
|
||||
|
@ -2989,12 +2993,6 @@ bool idMapFile::ConvertToValve220Format()
|
|||
|
||||
removedOrigin = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
if( idStr::Icmp( classname, "func_static" ) == 0 && idStr::Icmp( model.c_str(), classname.c_str() ) == 0 )
|
||||
{
|
||||
ent->epairs.Delete( "model" );
|
||||
}
|
||||
|
||||
// convert brushes
|
||||
for( int i = 0; i < ent->GetNumPrimitives(); i++ )
|
||||
|
@ -3052,10 +3050,18 @@ bool idMapFile::ConvertToValve220Format()
|
|||
{
|
||||
ent->epairs.Set( "classname", "misc_model" );
|
||||
}
|
||||
else if( idStr::Icmp( classname, "func_bobbing" ) == 0 && idStr::Icmp( model.c_str(), classname.c_str() ) != 0 )
|
||||
{
|
||||
ent->epairs.Set( "classname", "func_bobbing_model" );
|
||||
}
|
||||
else if( idStr::Icmp( classname, "func_door" ) == 0 && idStr::Icmp( model.c_str(), classname.c_str() ) != 0 )
|
||||
{
|
||||
ent->epairs.Set( "classname", "func_door_model" );
|
||||
}
|
||||
else if( idStr::Icmp( classname, "func_elevator" ) == 0 && idStr::Icmp( model.c_str(), classname.c_str() ) != 0 )
|
||||
{
|
||||
ent->epairs.Set( "classname", "func_elevator_model" );
|
||||
}
|
||||
else if( idStr::Icmp( classname, "func_mover" ) == 0 && idStr::Icmp( model.c_str(), classname.c_str() ) != 0 )
|
||||
{
|
||||
ent->epairs.Set( "classname", "func_mover_amodel" );
|
||||
|
@ -3152,6 +3158,57 @@ bool idMapFile::ConvertToValve220Format()
|
|||
return true;
|
||||
}
|
||||
|
||||
void idMapFile::ClassifyEntitiesForTrenchBroom( idDict& classTypeOverview )
|
||||
{
|
||||
int count = GetNumEntities();
|
||||
for( int j = 0; j < count; j++ )
|
||||
{
|
||||
idMapEntity* ent = GetEntity( j );
|
||||
if( ent )
|
||||
{
|
||||
idStr classname = ent->epairs.GetString( "classname" );
|
||||
idStr name = ent->epairs.GetString( "name" );
|
||||
|
||||
const idKeyValue* modelPair = ent->epairs.FindKey( "model" );
|
||||
idStr model = ent->epairs.GetString( "model" );
|
||||
|
||||
bool isBrushModel = ( ent->GetNumPrimitives() > 0 ) && ( idStr::Icmp( model.c_str(), name.c_str() ) == 0 );
|
||||
|
||||
// is this oldschool brushes & patches?
|
||||
if( isBrushModel )
|
||||
{
|
||||
const idKeyValue* kv = classTypeOverview.FindKey( classname );
|
||||
if( kv && kv->GetValue().Length() )
|
||||
{
|
||||
if( idStr::Icmp( kv->GetValue().c_str(), "PointClass" ) == 0 && idStr::Icmp( kv->GetValue().c_str(), "Mixed" ) != 0 )
|
||||
{
|
||||
classTypeOverview.Set( classname, "Mixed" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
classTypeOverview.Set( classname, "BrushClass" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const idKeyValue* kv = classTypeOverview.FindKey( classname );
|
||||
if( kv && kv->GetValue().Length() )
|
||||
{
|
||||
if( idStr::Icmp( kv->GetValue().c_str(), "BrushClass" ) == 0 && idStr::Icmp( kv->GetValue().c_str(), "Mixed" ) != 0 )
|
||||
{
|
||||
classTypeOverview.Set( classname, "Mixed" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
classTypeOverview.Set( classname, "PointClass" );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool idMapFile::ConvertQuakeToDoom()
|
||||
{
|
||||
idDict classTypeOverview;
|
||||
|
@ -3234,8 +3291,11 @@ bool idMapFile::ConvertQuakeToDoom()
|
|||
|
||||
if( ent->GetNumPrimitives() > 0 )
|
||||
{
|
||||
const idKeyValue* namePair = ent->epairs.FindKey( "name" );
|
||||
ent->epairs.Set( "model", namePair->GetValue() );
|
||||
if( j > 0 )
|
||||
{
|
||||
const idKeyValue* namePair = ent->epairs.FindKey( "name" );
|
||||
ent->epairs.Set( "model", namePair->GetValue() );
|
||||
}
|
||||
|
||||
// map Wad brushes names to proper Doom 3 compatible material names
|
||||
for( int i = 0; i < ent->GetNumPrimitives(); i++ )
|
||||
|
|
|
@ -504,6 +504,8 @@ public:
|
|||
bool ConvertToPolygonMeshFormat();
|
||||
bool ConvertToValve220Format();
|
||||
|
||||
void ClassifyEntitiesForTrenchBroom( idDict& classTypeOverview );
|
||||
|
||||
// converts Wad texture names to valid Doom 3 materials and gives every entity a unique name
|
||||
bool ConvertQuakeToDoom();
|
||||
// RB end
|
||||
|
|
Loading…
Reference in a new issue