Merge branch 's_skinprovements' into 'master'
S_SKIN-provements I like setting up merge requests before they're ready so I can do code comparisons. Yes, I know it's possible through looking at the branch itself, but merge requests are nicer. New character abilities: * CA_TWINSPIN - basically the insta shield but without the invincibility. Think rosy.wad. Destroys spikes, enemies and any bustable blocks (even Knuckles ones!) on contact. * CA2_MELEE - dash forwards and upwards at S_SKIN's maxdash and mindash respectively, destroys spikes, enemies and any bustable blocks (even Knuckles ones!) on contact. S_SKIN parameters (all available read-only to Lua): * "availability" - defines the Unlockable number that has to become unlocked in order to play as the character. (Note: if you don't want this unlockable to show up in the unlockables menu, use type SECRET_NONE in hardcode, or None in SOC. Otherwise, the only other reasonable option is SECRET_HEADER.) Defaults to 0 if not given, or given a number over MAXUNLOCKABLES - which means playable on first boot as usual. The name of the unlockable referred to is set to the character's realname once this is read. * "radius" - defines the radius of this player under all circumstances as an int, ignoring scale. Defaults to 16. ("radius = 48" means 48*FRACUNIT) * "height" - defines the height of this player under regular circumstances as an int, ignoring scale. Defaults to 48. ("height = 12" means 12*FRACUNIT) * "spinheight" - defines the height of this player under spinning/gliding/flying/etc circumstances as an int, ignoring scale. Defaults to 32. ("spinheight = 64" means 64*FRACUNIT) * "shieldscale" - defines the scale of the shield sprite relative to the player's, as a float. Defaults to 1. ("shieldscale = 1.5" means 3*FRACUNIT/2) - see http://i.imgur.com/BQ5DhKC.png for justification * "camerascale" - defines the scale of cam_dist and cam_height (the consvars) relative to normal, as a float. Defaults to 1. ("camerascale = 0.5" means FRACUNIT/2) * "prefoppositecolor" - The sign background colour used when you're using the skin's prefcolor. 0 (the default) means use the Color_Opposite array for all colours. * "supercolor" - The base colour you flash when super! Irrelevant if you don't have SF_SUPER. See constants below. * Supports defining sound replacements as both DSNAME and sfx_name formats. * Default revitem is now MT_NULL instead of MT_THOK to match all characters in SRB2 right now. * Thanks to MI, all skin flags can be set via "name = 1" or "name = true" or "name = yes" like in 2.0 and before, AS WELL as the current "flags = SF_NAME" Super colours: * SKINCOLOR_SUPERSILVER1-5 - "Silver" - done for fun, looks a little bit like Nazo maybe if you're into that kind of thing * SKINCOLOR_SUPERRED1-5 - "Red" - I originally neglected to do a proper port of Knuckles' super flash to the Reduced Palette. Here, I've corrected that. * SKINCOLOR_SUPERORANGE1-5 - "Orange" - Ditto, but for Tails. I avoided doing it because Match Super was dying, so why put in the effort? FOR MODDERS! * SKINCOLOR_SUPERGOLD1-5 - "Gold" - Just a renamed Sonic super to fit the new naming pattern. * SKINCOLOR_SUPERPERIDOT1-5 - "Peridot" - Nyeheheheheheh. * SKINCOLOR_SUPERCYAN1-5 - "Cyan" - @Inuyasha wanted me to do enough colours such that you can have a continuous rainbow of super forms. * SKINCOLOR_SUPERPURPLE1-5 - "Purple" - So... I picked some of my favourite skincolours that were wide enough apart, since these take a while to do. * SKINCOLOR_SUPERRUST1-5 - "Rust" - One of the first ones I did, because I liked how S3nK Mecha Sonic's super form wasn't yellow. (For Metal Sonic.) * SKINCOLOR_SUPERTAN1-5 - "Tan" - Geez, I would've loved to call this champagne... [Here's a reference image for the reasoning behind wanting to include this.](http://i.imgur.com/OB18Cls.png) New frame flags: * FF_MIDDLESTARTCHANCE - For SPR2: has a 50% chance of starting the animation halfway in. For FF_ANIMATE: has an equal chance of starting on any frame between the frame number and frame number plus var1. For normal frames: Does nothing. * FF_SPR2ENDSTATE - if var1 == S_NULL and the object is a player, don't loop, just stop incrementing the frames. Otherwise, go to the state represented by var1. Only works for SPR2 animations. New skin flags: * SF_NOJUMPSPIN - Player's height is full whilst jumping, SPR2_JUMP defaults to SPR2_SPNG instead of SPR2_SPIN, and the player goes into fall frames if they start moving downwards or use their ability. * SF_NOJUMPDAMAGE - Ala rosy.wad, don't damage enemies, etc when jumping into them. * SF_STOMPDAMAGE - Just for fun. Ala in Mario, always damage enemies when you land on top of them (your gravity reference, not theirs). * SF_MARIODAMAGE - SF_NOJUMPDAMAGE|SF_STOMPDAMAGE is reasonably accurate to the Mario games, and might as well be surfaced as such. * SF_MACHINE - creates explosions whilst dying, creates sparks whilst drowning, different drowning numbers and sounds. Requires new patch.dta. Character select screen updates: * All disabled characters - through SOC or unlock (via the above availability parameter) - are outright removed (at least visibly). No awkward gap in scrolling - no hint they were ever there in the first place. Character select selections without valid characters are also hidden. * Vertical loop - the character select images are visually continuous. No matter where you are in the chain, you'll always see a hint of the character above or below your current selection. (This is as long as you have more than one character on the select screen - otherwise you'll just see that one only.) * Smooth scrolling - Moto and Prime showed me [a gfy](https://gfycat.com/AshamedEsteemedHammerheadbird) from back during 2.1 development where it was super smooth. I didn't make it as slow as that one, but the smoothness was easy to add and the reason it was removed previously - gaps in the character select leading to varying speeds - is no longer relevant. * [Gfy of example](https://gfycat.com/RealBrightJay) - Metal Sonic is hidden both to show off it's capable of hiding to 'devs, and to make this safe to show off to the public! * Fallback for a zero character select screen: just try to pick the first character, whatever it is! Just like when it's forcecharacter... Character behaviour changes: * CA2_NONE/CA2_MULTIABILITY no longer forces nojumpspin. * PA_JUMP - for jumping (only when going upwards in the case of SF_NOJUMPSPIN, otherwise it's PA_FALL). * Instead of not spawning the revitem if your SPR2_ is SPR2_DASH, don't spawn it if it's set to 0. * Don't get stuck in spindash frames if your maxdash is 0, and don't flash rolling frames if you're on goop. * SPR2_SWIM (and S_PLAY_SWIM) for using CA_FLY/SWIM underwater. * CA_SWIM users no longer forced to run on water. * Drowning characters fall off the screen slower. * CA_DASHMODE users can destroy normal spinbust blocks whilst they're dashing. * CA_DOUBLEJUMP and CA2_MULTIABILITY go together nicer now. Each additional jump (up to the (actionspeed>>fracbits)nd jump) has a jump height closer and closer to zero, much like Kirby games. * Fixed bug where being pushed off a platform whilst charging a spindash would leave you in your charging frames instead of your rolling ones when you hit the ground (http://gfycat.com/MassiveThreadbareItalianbrownbear) * Fixed bug where spindashing on top of a bubble spawnpoint led to you being able to move around in spindash frames (no gif since obvious desired behaviour is obvious) * Spindash animation speeds up the faster you'll shoot off. * The spin charging mechanism is now scale-independent, and only multiplies by scale when shooting off - less FixedMul calls, and potentially deals with weird quirks of changing scale whilst spindashing that nobody's discovered because there's no place to find that in the main game! * Default maxdash is now 70 * SPR2_SMSL renamed to SPR2_SSTN (stun) * player->powers[pw_carry] replaces a bunch of carrying stuff. * PF_ITEMHANG -> CR_GENERIC * PF_CARRIED -> CR_PLAYER * (mo->tracer == MT_TUBEWAYPOINT) -> CR_ZOOMTUBE * PF_ROPEHANG -> CR_ROPEHANG * PF_MACESPIN -> CR_MACESPIN * Rope hangs and zoom tubes are a LOT smoother. http://gfycat.com/BewitchedIcyHuman * PF_CANCARRY replaces all the terrible checks for flying, and is given and removed properly. * Turning "god on" in the console whilst super (and devmode is off) will result in... [Well...](http://gfycat.com/DownrightMemorableDwarfrabbit) ~~(if no fun is allowed let me know and i'll put this behind the #DEVELOP define)~~ Multiplayer consvar changes: * forceskin now takes a string instead of a number, and requires you to have unlocked that skin to set it. A comprehensive list of all the circumstances characters are available under: * If they don't have a respective unlockable. * If they do have a respective unlockable, but you've unlocked it. * If you're watching somebody's record attack footage. * If you're forced to by the map you're playing's level header. * If you're playing multiplayer, and the host or admin (who must have unlocked the character first, or be running a dedicated server) sets the forceskin console variable to that character. Character-related NiGHTS stuff: * Skin-based SPR2_ system instead of Sonic's sprites for everybody. * If you can turn SF_SUPER, flash your skin's supercolor, otherwise be your normal color. * If your skin doesn't have a SPR2_NGT0 (horizontal fly), use Sonic's sprites and colour flashing rules (this will hopefully be replaced by 2.2 with sprites of NiGHTS themselves) * SPR2_NTRN, SPR2_NSTD, SPR2_NFLT, SPR2_NPAN, SPR2_NPUL, SPR2_NATK, SPR2_NGT0-C, SPR2_DRL0-C. (number of flight directions have been upped for EXTRA SMOOTHNESS) Non-character-related NiGHTS stuff: * Rob requested the following link colour sequence at unix time 1470866042, and I had the relevant file open: Emerald, Aqua, Cyan, Blue, Pastel, Purple, Magenta, Rosy, Red, Orange, Gold, Yellow, Peridot * MT_NIGHTSCHAR made irrelevant, everything follows actor->target instead of actor->target->tracer now * Emerald is now player->mo->tracer instead of player->mo->tracer->target * Nightopian helpers flash for the 35 tics before they disappear * Nights capsule makes boss explosions/noises now (I can change it back I just like it this way better) * Drill off into the sky instead of fly up in floating pose (but no noise) See merge request !32
No related branches found
No related tags found
Showing
- src/b_bot.c 7 additions, 5 deletionssrc/b_bot.c
- src/command.c 53 additions, 10 deletionssrc/command.c
- src/d_clisrv.c 8 additions, 2 deletionssrc/d_clisrv.c
- src/d_clisrv.h 4 additions, 1 deletionsrc/d_clisrv.h
- src/d_netcmd.c 8 additions, 15 deletionssrc/d_netcmd.c
- src/d_player.h 46 additions, 27 deletionssrc/d_player.h
- src/dehacked.c 154 additions, 167 deletionssrc/dehacked.c
- src/doomdata.h 1 addition, 1 deletionsrc/doomdata.h
- src/doomdef.h 60 additions, 23 deletionssrc/doomdef.h
- src/g_game.c 34 additions, 4 deletionssrc/g_game.c
- src/hardware/hw_light.c 3 additions, 10 deletionssrc/hardware/hw_light.c
- src/hardware/hw_md2.c 134 additions, 15 deletionssrc/hardware/hw_md2.c
- src/info.c 168 additions, 164 deletionssrc/info.c
- src/info.h 143 additions, 140 deletionssrc/info.h
- src/locale/en.po 0 additions, 5 deletionssrc/locale/en.po
- src/locale/srb2.pot 0 additions, 5 deletionssrc/locale/srb2.pot
- src/lua_hook.h 1 addition, 1 deletionsrc/lua_hook.h
- src/lua_playerlib.c 16 additions, 4 deletionssrc/lua_playerlib.c
- src/lua_skinlib.c 41 additions, 1 deletionsrc/lua_skinlib.c
- src/m_menu.c 169 additions, 124 deletionssrc/m_menu.c
Loading
Please register or sign in to comment