_mess_replace_texture
.mtl_trigger_switch
, which can trigger different targets when it's turned on or off.q1_brush_text
, which generates text using Makkon's techdc font textures.cs_trigger_roundstart
.macro_insert
entities can now create instances with an absolute position and scale._mess_merge_entity_master
property now only marks an entity as master if its value is true (not empty or 0)._mess_allow_rewrite_rules
and _mess_deny_rewrite_rules
properties now use commas to separate multiple paths.@MESS;
directives without a matching @MESS
opening directive are now ignored.first
and last
functions for taking the first or last item from an array.incglobal
convenience function, for incrementing a global counter.hasflag
and setflag
functions now available in rewrite rules.trunc
function for truncating numbers.ted_dirs
and ted_path
functions, for accessing files from other template entity directories.trace
function is now also available in .ted files.upper
and lower
functions for strings._mess_attached_template_map
and _mess_attached_template_name
).cs_trigger_roundstart
would cause MESS to fail.mtl_trigger_random
without targets would cause MESS to fail.mtl_trigger_periodic
didn't support target patterns._mess_merge_entity_master
properties weren't removed from entities that didn't also have a _mess_merge_entity_id
property.macro_brush
could select the wrong texture if the first brush of a template brush entity had the ORIGIN texture.macro_template
without anchor
and selection_weight
properties didn't use the documented default values.mtl_env_model
didn't take dynamically set flags into account.C:\HL\Tools\remec\remec.exe $bspdir/$file.remec.$ext jack E:\STEAM\steamapps\common\Half-LifeChange
$bspdir
to $path
, and add double quotes around the map path to ensure that any space characters in directory names won't cause any trouble:
C:\HL\Tools\remec\remec.exe "$path/$file.remec.$ext" jack "E:\STEAM\steamapps\common\Half-Life"REMEC should do some logging so next time you can also check your compile log for errors.
CPushable::KeyValue()
method. So, the following code never gets to run:
switch (bbox)
{
case 0: // Point
UTIL_SetSize(pev, Vector(-8, -8, -8), Vector(8, 8, 8));
break;
case 2: // Big Hull!?!? !!!BUGBUG Figure out what this hull really is
UTIL_SetSize(pev, VEC_DUCK_HULL_MIN * 2, VEC_DUCK_HULL_MAX * 2);
break;
case 3: // Player duck
UTIL_SetSize(pev, VEC_DUCK_HULL_MIN, VEC_DUCK_HULL_MAX);
break;
default:
case 1: // Player
UTIL_SetSize(pev, VEC_HULL_MIN, VEC_HULL_MAX);
break;
}
Perhaps size is one of those special properties, like friction, that are handled automatically by the engine?SET_MODEL()
inside the CPushable::Spawn()
method, which is run later, sets the size also, so pev->mins
and pev->maxs
would be overwritten (not 100% sure of this). This must be why the func_pushable ends up with an accurate bounding box, same size as the brush.
Erty said:Do you mean implementing my own collision system inside the entity code, using tracelines or something?
Maybe you could force it to use the pointhull, and do your own collision checks using its bounding box. The performance won't be as good as with cliphull-based collisions, of course.
pev->movetype
to MOVETYPE_STEP won't help, and monsters uses the cliphulls as well for entity-to-world collisions.// edict->movetype values
#define MOVETYPE_NONE 0 // never moves
//#define MOVETYPE_ANGLENOCLIP 1
//#define MOVETYPE_ANGLECLIP 2
#define MOVETYPE_WALK 3 // Player only - moving on the ground
#define MOVETYPE_STEP 4 // gravity, special edge handling -- monsters use this
#define MOVETYPE_FLY 5 // No gravity, but still collides with stuff
#define MOVETYPE_TOSS 6 // gravity/collisions
#define MOVETYPE_PUSH 7 // no clip to world, push and crush
#define MOVETYPE_NOCLIP 8 // No gravity, no collisions, still do velocity/avelocity
#define MOVETYPE_FLYMISSILE 9 // extra size to monsters
#define MOVETYPE_BOUNCE 10 // Just like Toss, but reflect velocity when contacting surfaces
#define MOVETYPE_BOUNCEMISSILE 11 // bounce w/o gravity
#define MOVETYPE_FOLLOW 12 // track movement of aiment
#define MOVETYPE_PUSHSTEP 13 // BSP model that needs physics/world collisions (uses nearest hull for world collision)
// edict->solid values
// NOTE: Some movetypes will cause collisions independent of SOLID_NOT/SOLID_TRIGGER when the entity moves
// SOLID only effects OTHER entities colliding with this one when they move - UGH!
#define SOLID_NOT 0 // no interaction with other objects
#define SOLID_TRIGGER 1 // touch on edge, but not blocking
#define SOLID_BBOX 2 // touch on edge, block
#define SOLID_SLIDEBOX 3 // touch on edge, but not an onground
#define SOLID_BSP 4 // bsp clip, touch on edge, block
I've tried several combinations (some like TOSS and BOUNCE are very funny to watch), but it seems HL will always use hull-based collisions when it comes to entity vs. world. The code that decides this must be probably in that one part we can't touch (the engine).speaker
entities are used together to make the sounds play more often. An example would be c2a5c, where four speaker
entities set to play the FAR_WAR sentence group to add an ambiance of distant combat.pev->movetype
to MOVETYPE_STEP should get it to use similar collisions as monsters, though it's not guaranteed to be better..../Steam/steamapps/common/Half-Life/<your_mod>
..../Steam/steamapps/common/Half-Life/<your_mod>/models
.