Xash3D FWGS Engine adaptation
for mods ESHQ and ES: Randomaze
ƒ RD AAOW FDL; 2.08.2024; 21:30
General information
This engine adaptation was created especially for ESHQ mod and ES: Randomaze mod for Half-Life part 1.
It is based on one of the newest versions of Xash3d FWGS engine (v49/0.20).
Main changes:
- We have fixed some known bugs (like non-rotating
func_rotating; crashes on some events triggered byscientistsandbullsquids, etc) for which we had enough mind and time. - We have added the
trigger_soundentity that replaces theenv_sound. It works as well astrigger_multiple(with hardcodedwaitvalue – one second). We cannot understand why there were no brush entities to set sound effect. Sphericalenv_soundhas very weird and unpredictable behavior, and it is difficult to apply it in cases like long narrow building entrances (f. e., partially opened gates). This situation really needs a brush entity with bidirectional processing. - We have returned the green blood to some monsters. This feature was implemented but wasn’t enabled in client library.
Also it has been added to
env_bloodandmonster_genericentities (with an ability to set it up). - Also we have returned human-like gibs and red blood to zombie. We think that zombie is more like a scientist than a bullsquid.
- We have removed the
cycler_spriteentity from our maps and added thenon-solidflag to thecyclerentity. Also ourcyclernow have thematerialfield (crowbar sound depends on it) and two fields that defines collision box endpoints (like thecolorsetup).cyclerandenv_spriteentities can also acceptbody,skinandsequencefields. Alsocyclernow can trigger its target. Finally, ourcyclernow can be breakable (with the specified explosion and health coefficients). - Our doors (
momentary,rotatingandsimple) have different fields for “Just opened” and “Just closed” sounds. Also we’ve fixed some bugs (basically, around thestarts openflag) and expanded the list of sounds. Finally, our doors will not playlockedsounds when they’re opened. - Our
turrets,sentriesandapachescan trigger something on their deaths. Also player cannot stuck in them anymore. Breakablescan spawn crowbars (why it wasn’t so?), gauss gun clips, axes, headcrabs and some other useful things.- Our
ambient_generic(and all entities that can sound) has more accurate sound radius. - We’ve added the
item_keyentity in addition toitem_securityto simplify doors triggering. It can look like a card or like a bunch of keys. - We’ve added the
game_player_set_healthentity that sets absolute value of health and armor. It is applicable when you need to create an effect of immediate but controllable damage. - Our
func_illusionarytriggers its textures when get call (as well asfunc_wallorfunc_button). - Our
grunts,Barneys,scientistsandzombiesgot “burned” state. Now it is possible to add burned corpses to the map. Also zombie got “dead” animation. - Our gman has
killableflag and two skins. - Our
monster_ratcan run and can be smashed (as well asmonster_cockroach, but with red blood, of course). Also rats can trigger anything when die. - Our
.357andcrossbowgot correct reload sounds. - We’ve added
don’t reset view angle / speedflag to thetrigger_teleportentity. It’s useful in case of map space expanding. - Our
weapon_fastswitchmode is now really fast (as it is in HL2). You just need to press slot button again to select the next weapon. - Our
game_endentity now works correctly (it ends the game), andplayer_loadsavedcan “kill” player (so you don’t need thetrigger_hurtor some other “freezing” method). - Wood, glass and snow textures got their own sounds for player steps.
- We have added the
trigger_ramdomentity that can randomly trigger targets from a specified list with specified probabilities. - Our
item_securityanditem_antidoteare collectable . Their counts can be used to trigger events on maps and activate extra abilities. - Our lasers can be turned off correctly. The older version of an engine turned off a sprite, but didn’t turn off the damage field.
- Added support for an achievement script. Our modification generates script with extended player’s abilities
according to count of collected
item_antidoteitems. - Added support of
originbrush forbreakablesandpushableswhen they drop items on break. Now item will be dropped at the center of theoriginbrush or at the center of entity if this brush is not presented. - Range of sounds for
pushableshas been expanded. Now they depend on materials. Sound script forpushableshas been improved (better behavior fitting). - The
scripted_sentenceentity now can play single sound (it should be prefixed with!!). Also you can add text message fromtitles.txtin addition to the sound sentence. - Some speed improvements applied to
shotgun,mp5,hornetgun,.357and other weapons. - Fixed mouse wheel’s behavior and some inconveniences in the keyboard settings interface.
- Fixed the
gagflag’s behavior: now all scientists withgagwill be really silent. - “Credits” section added to the main menu. The map for it can be specified in the game configuration.
- Added the
locked sequenceflag for all monsters. When set, engine will loop the sequence that is specified in monster’s settings before its first damage, death or before the call from thescripted_sequenceentity. This feature works without additionalscripted_sequenceentities. - Behavior of sounds of
momentarydoors has been reviewed: sounds of moving and stop are working properly now. - Fixed bug with stucking weapons that can be dropped by dead human grunts.
Use onlyflag for doors will now work as a lock. Triggering these doors by their names will unlock them without opening. If no name specified, the door will be initially unlocked.- Added replacements for entities from HL: blue shift and Afraid of monsters mods.
- Barnacles can shoot no gibs on death.
- Fixed the too long stuck on automated jumping from the water.
- Switching between walk and run now works as well as in HL2 (run requires
/key holding by default).Always runflag has been added toAdvanced controlsmenu (it disables this behavior). - Fixed the mapping for additive textures: now they are able to be transparent and semitransparent conveyors.
- Breakables now have sounds that depend on their sizes (including the explosion).
- HUD now can display extra abilities (superflashlight, invisibility for enemies, damageproof).
- Pushables are now reacting on explosions, shooting and hitting by a crowbar (they move from the source of damage).
- Implemented the “meat mode”: corpses can now be destroyed by bullets and crowbar in one hit. It requires
the line
meat_mode "1"in fileconfig.cfg. - Our
trainscan have parts of their paths where they will not emit the sound of moving. The corresponding flag has been added topath_cornerentity. - Our
trigger_gravitynow can set the coefficient for all objects on the map and save it for the next game loading. All values greater than80will be treated this way. - Our adaptation is now able to save the current
room type(echo effect) for the next game loading. - Our
monstermakersare now able to emit teleportation sounds and show specified sprites when activated. - Our brush entity
trigger_fogcan smoothly turn on / off the fog effect of the desired color and density. - Our sparks can emit small flashes of light onto nearby surfaces.
Other notes
- The current build is not multiplatform as its mother project (support code has been removed).
- The current build contains renderer based on SDL library.
- The current assembly doesn’t support the voice chat because of absence of required Opus codec.
- This assembly completely adapted for building with Visual Studio 2022.
- This assembly is enough to run Half-Life (WON) and some compatible mods.
- This assembly is a fork of original Xash3D FWGS engine with the same license