Merge branch 'flat_alignment_revamp' into 'master'
Revamps of several dated linedef type effects Felt like being productive so made some things I hate suck less. Linedef type 7 (flat alignment) now works as follows. * Linedef angle (from v1 to v2) is flat angle. * Origin of flat is manipulated to match v1's coordinates - unless ML_NOKNUX is flagged, in which case uses frontside x and y offsets as flat offsets instead. * ML_NOSONIC prevents changing floor. * ML_NOTAILS prevents changing ceiling. * Both of the above flags at once prints a warning. * (THZ and probably a few other maps need updating.) Linedef type 540 (friction) now works as follows. * Controlled by x offset instead of length - offset of -100 is maximum iciness, offset of +483(!!!) is the maximum sludginess BUT things are scaled such that +100 is about the maximum sludginess any reasonable human being would want in a level, 0 is ORIG_FRICTION) * Not reliant on a sector special to function (can be applied solely by tag to in-map sectors or solid FOF control sectors) * Uses less memory, perform less calculations, and not bug out objects which just happen to use movefactor for something * PHYSICS CHANGE: Low friction surfaces actively impede your acceleration (and make your animation speeds faster to give off that Looney Tunes out-of-control effect) * (ACZ and Frozen Hillside needs updating.) Sector types 1 and 3 in section 3 no longer do anything. Linedef type 3 (zoom tube) now works as follows. * Abs of frontside x offset is speed in units of FRACUNIT/8. * Abs of frontside y offset is waypoint sequence number. * Effect 4 flag rotates the player to match the waypoint direction (same as before). * (ERZ needs updating.) Linedef type 11 (rope hang) now works as follows. * Abs of frontside x offset is speed in units of FRACUNIT/8. * Abs of frontside y offset is waypoint sequence number. * Effect 1 flag makes rope transfer one-way. (same as before) * No climb flag makes rope static. (same as before) * (ACZ and maybe ERZ need updating.) Linedef type 258 (laser) is almost the same as before, but has altered functionality. * Its flashing is less obnoxious. (56.25% to 68.75% instead of 100% to 0%, at half the speed) Linedef type 14 (Bustable block parameters) is new, and works as follows. * Tagged to the control sector of a block that is likely to be busted (via executor or collision, doesn't matter) * Concatenation of frontside textures is MT_ object type to spawn, defaults to MT_ROCKCRUMBLE1 if not present * Sound played when being busted is object type's activesound * Frontside x offset is spacing (in fracunits) of spawned particles, defaults to 32<<FRACBITS * Frontside y offset is the fuse of spawned particles in tics, defaults to 3*TICRATE, if set to -1 fuse is not set * Effect 1 flag makes particles "fly out" horizontally and vertically from the center of the FOF Sector types 7 through 15 in section 3 no longer do anything. Linedef type 250 (Mario Block) is almost the same as before, but has new functionality and is slightly different in another way. * No Climb flag turns it into a brick block (set on Custom FOF via presence of FF_SHATTERBOTTOM - busts when hit from the bottom, player hits their head/fist/whatever, no more upwards momentum) * Effect 1 flag makes it an invisible block (set on Custom FOF via absence of (FF_SOLID|FF_RENDERALL|FF_CUTLEVEL) - intangible from every side except the bottom. Becomes visible and tangible when it's hit once) * Only updates side textures when moving down or stationary, not whilst moving up - more fidelity to the source material, less processing on the CPU, everyone wins. * If FOF master linedef has a backside, then: [If there's items in it the FOF's flats are set to that of the backside sector's ceiling, otherwise the floor.] Otherwise, no flat change. Linedef type 4 (Speed Pad parameters) now works as follows. * Frontside x offset is speed in fracunits. * Effect 4 flag doesn't center the player. (same as before) * Effect 5 flag sends them off in rolling frames. * Frontside upper texture is sound to play on launch, defaults to sfx_spdpad when not given Sector type 6 in section 3 no longer does anything. Object type 757 is changed as follows, and no longer works on its own - see Linedef type 15 for more details. * Tag via its angle field * Number of objects to spawn per tic around it via its z field, if zero then just spawn at center * Is flipped if given MTF_OBJECTFLIP. * (ERZ and Seraphic Skylands - if we use that map - needs updating) Linedef type 15 (Fan particle spawner parameters) is new, and works as follows. * Tag is tag of object(s!) * Object type set via concatenation of frontside textures, MT_PARTICLE is default * The length of the linedef is the radius the particle is spawned out (zeroed if z field is 0) * Frontside x offset is speed upwards * Frontside y offset is number of degrees to turn each tic (zeroed if z field is 0) * Frontside floor and ceiling heights are the heights in which the particle is bound through some fun mathematics A_ParticleSpawn is changed, too. * Object type is now changed through actor->threshold instead of var1 to support Linedef type 15. Test executable uploaded at /toaster/srb2win_branch_flatalignment.exe on the ftp. Test file uploaded at /toaster/flatalignment.wad on the ftp. Breaks compatibility with 2.1 so put in internal. See merge request !29
Showing
- src/info.c 16 additions, 16 deletionssrc/info.c
- src/p_enemy.c 28 additions, 20 deletionssrc/p_enemy.c
- src/p_floor.c 94 additions, 24 deletionssrc/p_floor.c
- src/p_mobj.c 97 additions, 12 deletionssrc/p_mobj.c
- src/p_saveg.c 2 additions, 2 deletionssrc/p_saveg.c
- src/p_setup.c 4 additions, 0 deletionssrc/p_setup.c
- src/p_spec.c 156 additions, 137 deletionssrc/p_spec.c
- src/p_spec.h 2 additions, 2 deletionssrc/p_spec.h
- src/p_user.c 8 additions, 1 deletionsrc/p_user.c
Loading
Please register or sign in to comment