Windows the Computer

Windows the Computer Platform Update (1.7)

Been a while, huh? This originally was meant to be released on the day Windows 7 ESU and 8.1 lost support (not counting Embedded versions) as a sort of send-off, but, life got the best of me.
  • Gifting, top speed values and Hyper-like form conditions were hardcoded for the longest time. This update reworks these three things to use tables that are exposed to external scripts via the global WindowsTheComputer variable.
    • You can add custom support for Windows to try and not interfere with top speeds if you loaded the addon prior to loading Windows. Mind you that the script that adds the support should be executed after.
      • See Lua/faststartup.lua for more information.
    • Same applies to Hyper-like form conditions - coded up a custom Hyper form? If you add support, you'll reach closer to CrossMomentum's version of Hyper for Windows. This does not include the map wipe with Hyper eXPerience Blasts.
      • See Lua/faststartup.lua for more information.
    • Gifting is now more modular - you can add your own gifts that Windows should give out to specific characters by adding functions to the gifting table.
      • See Lua/plus.lua for how the out-of-the-box support is provided.
      • The fallback gift is still present.
    • You can view all the loaded additional support for either one of these by using the WinPlugins console command.
  • That sound you often hear in Kart servers? It's been disabled by default, as some might have found it annoying.
    • To enable it again, use the kartcallbacksound console variable.
  • Minor reworks of how Growth is tracked. Respawning on checkpoints should(?) be less jank.
  • The [Shrink] and [Grow] spam on everyone is no longer present. Didn't find that useful, really.
Thank you for the continued support. Please report any oddities/bugs you may find, like usual.

The sun may be setting upon this high effort shitpost unit... :blink:
This is a one week(-ish) patch for 1.6b.
  • Fixed the screen fade not occuring related to MRCE additions.
  • Gifting for Extra Life (Classic)'s latest version is fixed - the upcoming Extra Life Revived will also be supported out of the box, assuming no further changes to its' own skin name will happen.
  • Of course, introduction graphic changed to mention 1.6b1 as well.
I am not handling it well...
Note: the latest version of Extra Life (Classic) changed its' internal skin name and will not trigger the special gift for it. 1.6b1 will be released to address that as I've caught a bug with a HUD hook when playing with MRCE.
Nothing new has been specifically added for the average gameplay, but there's still some things to be mentioned:
  • MRCE shenanigans:
    • Screen fade should no longer kick in if you're playing with the MRCE hud.
    • Additionally, the MRCE hud now has custom life icons to display for Windows.
    • If playing with CrossMomentum in Dimension Warp, there's musical intercepts that should keep the regular stage music playing.
    • Aerial Garden Zone 3 feels... odd. Be careful when deploying the Chaos Emeralds.
    • Known bug: MRCE can sometimes trigger faster top speed on its' own when defeating badniks by jumping on them or rolling.
    • This has been tested on v0.3!
  • Cleared out some unused lumps.
  • Now using init.lua to initialize the addon.
    • Following this, BattleMod and Ringslinger NEO compatibility have been moved to their own script file.
  • XPerience Blasts now check if a damaged object is an actual boss (MF_BOSS) to calculate how much damage is done.
    • This applies to the miniature versions of them being performed when Hyper as well.
    • You can also use windbg to see what object (listed as a number constant, though) is detected as a boss.
    • Previously, only a handful of objects were already predefined for that.
  • Title screen text in the top left slightly changed.
    • If a version OLDC is loaded, it will mention the year and round of the loaded mappack if the addon provides both variables.
    • If specific functions from MRCE are detected, it assumes you have loaded MRCE and displays additional text for it. Can always trick it into displaying that too - just Windows things, hah.
  • wintimer displays detailed timers by default.
  • And, of course, didn't forget to update the intro graphic this time!
    • Oddly enough, the file size of it has shrunk down... oh well, works for me and you.
As always, let me know if there are other bugs cropping up in this release. I don't exactly have playtesters, but I at least hope I didn't screw things up too badly. :worry:
  • Cool!
Reactions: RubyTheMii
I guess the stress had gotten to me and, well, I deleted some functions that are called during DXBoosts when Hyper. That should be fixed here! :devastation:

Aside from this fix, this is still 1.6.
With the chaos happening all around, especially as of late, I had to rush this one out before I'd lose the ability to work on this further. Not much new here, the main things added are:
  • Gifting! Thanks to Metalwario64 & Golden Shine for allowing me to implement a version of it for Windows - like Adventure Sonic, Windows can now gift!
    • The character check may slightly differ from Adventure Sonic, but there's also a bunch more added. Should a custom interaction not be defined, a fallback activates, being a 50/50 chance of getting a shield (if you don't have one already) or a bunch of rings.
      • What does not differ is the player variable - meaning if you have gifted as Adventure Sonic, you aren't likely to be able to gift again even if you switch to Windows until a map is (re)loaded.
    • After 3 seconds have passed in a map after loading, standing still and pressing both Custom3 and Spin, those in range will receive gifts!
      • Some of the added characters to the check list are:
      • After one player as Windows performs the gifting, all Windows players will no longer be able to do it in the currently loaded map.
        • wingift controls whether Windows can gift.
          • 0 = disabled.
          • 1 = one Windows player per map.
          • 2 = all Windows players per map.
          • Default is 1.
          • Admin/host only.
        • A random icon from older Windows versions will also appear in the middle of the player for a few moments before fading out.
  • Cooperating DirectX Boosting. One more thing I've thought about and finally managed to get something working.
    • dxcoop controls whether it is on or off. Disabled by default.
      • dxcooprangeh and dxcooprangev can be used to alter the radius that will be checked for having other players in it.
      • All these variables are admin/host only.
    • Even if you enable it, players have to opt-in with dxcoopeffect to allow themselves be affected.
    • Depending on DirectX Boost used, players will either be thrusted vertically or horizontally (the affected players' angle is used).
      • If windbg is on, both the booster and boosted players will receive messages in console.
    • I was not able to get some serious testing with this, but that's why this is something that has to be enabled and opted-in for.
  • Vaporwave--Vibing. Honestly, amidst all the processing, you should often let your computers rest.
    • Standing still, pressing Toss Flag and NOT being Super (or in Sol form), the continue sprites will show up as the custom credits theme for Windows plays.
    • After 19-ish seconds, if you allow screen flashes with winflash, a screen flash will happen, then randomly colored thoks will appear around Windows.
      • Max limit is 3 players per map doing this.
    • Any movement cancels this and resets your current state.
    • Yes, inspired by Skip.
  • Few other stuff:
    • canyon.mid has an additional setting.
      • 0 - most, if not all custom music is disabled.
      • 1 - a few basic music changes will occur.
      • 2 - all custom music kicks in. (Custom hyper theme is locked behind here.)
    • Automatic I/O now is controlled by msconfig.
      • Enabling this will allow auto-save and auto-load to work on game exit and addon being loaded respectively.
    • Killing bosses as Hyper Windows with the XPerience Blasts should cause every player to start exiting the map.
    • winflash is back on by default.
    • A speed shoes monitor from Skip is now taken into account properly, now it should properly stack the timer - and as it is made by him, 20 seconds are given instead of 12. Cooperate!
    • One or two changes for sound captions.
    • Once this addon is loaded, icons are replaced that are used in the addons menu.
    • This time, didn't forget to change the version number in the splash screen!
    • If windbg is on, a few extra variables are shown, particularly for the vibing mentioned above.
At this point... I do not know if there's gonna be anything more. Please do report potential bugs or mistakes if you find them. Hope y'all stay safe and, well, I also hope you still enjoy Windows - as much as I still consider it a joke/meme character... I do not think it qualifies anymore with everything I've put in. :worry:
  • Cool!
Reactions: Hyper Mario
Fixed introduction graphic to match version. Pardon the duplicate entry name!
Major oversight fixed with automatic braking being toggled off - that broke the check for grabbable chains.
  • Aforementioned check replaced by a check on the conditions that the chains set the player up with.
    • Use windbg to see when the top speed increase triggers.
  • Detransformation after using Sol Emeralds no longer spits to console without having windbg enabled.
The wacky custom jumping code had bothered me... so it was one of the things I rolled back. Oh, and I tweaked a bunch of things too while I was at it.
  • Custom jump code is now gone, reverting to how it used to be - while, yes, you still may accidentally transform when trying to dash downwards with DirectX Boost... I guess it's a deterrent to getting all the emeralds so quickly?
    • Eh, better than mangling jumping state and ability to go super constantly.
  • A bunch of music had been either rolled back or changed.
    • Hyper jingle has been swapped out with an another module tracker file.
    • mariomode Invincibility also had been changed to a Windows-edited module tracker song.
    • Fixed the music changing back and forth when getting more Invincibility applied to Windows.
    • Did you listen to the SSDUSA MIDI song yet?
  • Windows now has an achievable runspeed that can be checked against, which matches the speed requirement to bust spikes when not Super, Invincible, etc.
    • This does allow Dash Mode to exist on Windows, which tweaks the gameplay slightly, as well as how you use DirectX Boost.
    • DirectX Boost itself will help you get dashmode easier, but after that, you're on your own - overclock safely!
  • The logo flashing during intermissions has been slightly optimized to utilize a table similiar to the one used to animate the Dawn of a New Era skincolor.
  • Moved out some DirectX Boost related code related to damaging everything in an area when Hyper.
  • If using XPerience Blast as Hyper... Windows now removes a bunch of items from the map as well. Springs, spikes and etc are left intact, but the level might feel emptier.
  • Edit: Minor, but forgot to set a console print command behind a console variable when detransforming if Sol Emeralds are used.
This is no longer a beta... as I do not think I can include much else.
The jumping rework will be reverted.​
Feeling more like I should eventually rewrite from scratch, but I don't know when and if I'll actually pull it off.
  • This minor update brings forth a rework of the jumping to prevent accidental transformations when using DirectX Boost by taking away the PF_JUMPED flag.
    • As it is a hacky solution(!), there may be unplanned bugs that may occur because of it.
      • Not being able to control the height of the jump is a result, not a bug.
      • Edit: You cannot jump out of a roll when Super...
    • This does imply having to use Custom3 + Jump to transform/detransform.
      • Applies to using Sol/Chaos Emeralds.
  • Aside from that, other minor changes/additions include:
    • MRCE shenanigans.
    • Windows resists Bumblebore's damage, but not the knockback.
    • Intro graphic updated to include the a.
  • A leftover print function has been left for MP Special Stages when playing Single Player. Oops.
Note: there's some things that I will revert or remove outright at some point if I will feel any better. Some of these still bug the hell outta me.​
May 10th, 2022 Edit: an updated build might be released that actually handles accidental Super transformations whilst attempting to DirectX Boost down.​
Holy moly, it's been a while. To be honest, I haven't been particularly well whilst developing this and, as the world events develop, I might as well release what I have done so far out here not just for allowing a public preview of 1.5, but to also have a public beta testing period and, in case things go bad on my end... well, at least there's gonna be a latest build that I could manage to handle out there.

There's a lot of stuff here... so--
  • This update requires SRB2 2.2.10 or higher.
  • The custom character art has been done by XG5#4941, being used both as CSS and in the intro.
  • Windows now has I/O capability - using registry, you can save/load client/server settings, although for the server settings, you need to be the host of the server.
    • This also happens automatically whenever you load the addon or exit the game with it loaded.
  • A lot of custom skincolors have been added, themed around Windows itself, as well as an animated one inspired by a Windows 95 remix.
  • Upon spawn, depending on the gamemode, File Toss will be disabled. This includes some custom gamemodes.
  • Interactivity with Speed Shoes, Invincibility and Super Ring monitors has been reworked from using A_SuperSneakers, A_Invincibility and A_RingBox function into a hook instead - indirectly being a buff as the effects of those now apply instantly!
    • The Growth mechanic now accounts the size for players being smaller whenever they spawn or hit the Speed Shoes if not under the effects of Growth.
  • XPerience Blasts now affect all damagable objects in the radius, be it enemies, monitors, bosses; latter may have some custom interactions.
    • If you're Hyper, though... all of them will go boom.
    • Comparing to 1.41b, the base radius is nerfed slightly for Super.
  • CrossMomentum integration with custom top speeds has been updated to work with the 1.3.x version, being able to work if it's loaded before or after Windows.
  • BattleMod and Ringslinger NEO have been given custom (albeit basic) integrations too.
  • Players can disable the forcing of a skincolor for Super while playing as Windows with xpsuper.
    • If you load CrossMomentum after Windows, this will not work when Hyper.
  • If you have RushChars v1.1 or higher loaded, you can use xpsol as an administrator or in single-player to allow Windows to utilize Sol Emeralds. Be careful, though, you will lose rings faster in this transformation.
    • You may experience some bugs if you spam transformations too fast - this includes the Custom3 use mentioned lower. Or if you load RushChars after Windows.
    • Windows can utilize the Jetski too.
  • Super/Hyper transformation requires the use of Custom3 together with Jump whilst jumping, but not having used the double jump or shield yet by default. This is done to prevent accidental transformations when using File Toss legacy bind or the downward thrust of DirectX Boost.
    • xpsuper is also responsible for this with different arguments.
    • This also implies Windows lacks the flag to go Super by default.
    • Edit: this does not work as intended sometimes when detransforming. Whoops...
  • Detransforming also requries using Custom3 and Jump at the same time, but this can be used at any point instead of needing to be jumping.
    • Works with both Super/Hyper or Blazing (Sol Emerald) forms - being in the latter will force the former transformation if you have all Chaos Emeralds and have 50 rings or more when used.
    • A second of delay is set before an another detransformation can take place.
    • Detransforming in stages that use Super forms will most likely end up in losing a life - don't do that...
  • The custom reward for collecting everything in the MP Special Stages has been removed.
  • windbg also is now a thing, being a bit more descriptive with the player variables used.
    • If it's enabled, it will list I/O activity in the log.
    • Does not require the player using it to have administrator rights.
  • Music has been added/changed compared to 1.41b.
  • Forgot to add this, but wintimer will show more detailed timers on cooldowns.
  • dxhud will let you shift the timers up a bit. Useful for the level packs that modify the hud, like MRCE.
    • Mentioning MRCE - because it has it's own physics, it will not play nicely with Windows's custom top speeds. Use this script to have Windows not be affected by the custom physics!
Whilst I plan to rework Windows from scratch at some point as of writing this post, I am not sure how things will develop IRL. Not sure if and when I will iron out everything but do reach out to me if you find a bug I didn't mention or comment in the Lua - you're free to scour the .pk3 to see if I have made a comment in there about it.

Least I can do is try to stay safe and lessen the burden on myself by releasing this out now as-is - as a Russian, I don't exactly feel too safe.:dramahog:
  • Cool!
Reactions: Pikden