[Open Assets] Classic.wad - Classic Momentum and Gameplay (mostly) In SRB2!

This content may be freely modified and/or maintained by anyone.
Hey there everyone! It's been some time since the last major update to the script and while that is coming, it might be a little while (read: a long while, we'll see if 2.2 is done first.) before that happens. In the meantime, I would like to give an update as to the direction I want to take this WAD

Now some of you might be aware that a certain someone used my code for a compilation WAD of sorts and I know most of you familiar with the WAD of which I speak would like at least some of the features utilized in that mod.
Concerning the usage of my code in the aforementioned mod, I had very little involvement with the direction of the mod although the creator of that mod and I had some very similar ideas for the direction of our respective mods. The most interaction the creator and I had was a conversation where he asked if he could use my code in his mod even though, to my understanding, he had put my code in his mod (several unnecessary times, might I add) long before that. I did have some plans to renovate that mod's code and possibly merge it with my own but those plans have completely fallen through and I am most definitely NOT interested in following through with that AT ALL.

Now for the fun bit, before I was even made aware of the mod's existance I had several ideas for renovating my own mod from about the time of this WAD's release and I will list them out here, some of them may sound familiar but please know I already had plans for these close to the start of the project and I have yet to begin implementing them.
-Add an admin-accessable menu for manipulating various options and tweaks that Classic.WAD implements ala the Sonic 1/2 remasters and Sonic 3 Complete

--Among these options would be things like options to change the spindash behavior from SRB2/CD's to Sonic 2 onwards.

--An option to switch shields from pity shields only, S3K shields, SRB2's shield pool, or all 3. This will take more time since I will now have to replicate the Sonic 3K shields on my own.

--Moveset options including
---Sonic 1 (no spindash, no double jump action)
---Sonic 2 (the current design choice which will also stay as the default)
---Sonic 3K (Insta-Shield added to Sonic 2's moveset, might require me to make my own code)
---Sonic Mania (my DropDash script, tweaked slightly to be a bit more accurate, needs frames)
---S3C's full control (Sonic 2 spindash, Peelout, Instashield)
---Sonic CD (Peelout and spindash)
---Sonic Megamix (Homing attack, spindash, lightdash)
---Vanilla (Thok and spindash, Thok will not retain momentum when landing)

--Running animation options
---Vanilla, Sonic CD and Mania (the latter two need frames)

-Improved Tails AI (already implemented in WIP)
--Takes cues from Sonic 2 where whatever inputs Sonic makes, Tails mimics 15 frames later, ensures that Tails is much more capable of keeping up.
---There are plans to implement the bot being able to fly the player by having the player hold down C1 and double jumping, but this will need its own custom code.

-Better slope detection (thanks to Jameds)
--Thanks to this addition, camadjust will be on by default

-While on the topic of Jameds, I would like to point out that he has done a complete rewrite of my code which I need to figure out how to use. Thank you Jameds!
--He's also done all of the work so far on the menu.

I'm sorry if I got your hopes up with this post but I'm afraid the next update will definitely take a while as I have to basically re-learn coding. I wanted to put this information out there though while the more relevant topics are still somewhat fresh in everyone's minds.

Release date: When it's done™
 
Last edited:
--Takes cues from Sonic 2 where whatever inputs Sonic makes, Tails mimics 15 frames later, ensures that Tails is much more capable of keeping up.

I'd just like to point out that if you plan on using a BotCmd Hook, losing frames WILL desynch this as for some reason this is NOT taken into account (Hook execution will be skipped)??? I had this ruin one idea I had a while ago so I thought I'd let you know as well.
 
Uh oh! Did someone say character specific update time?
... No? Just me?

Well here it is, it's a character specific update for POINTY this time!
Thanks Chrispy!





--------W H A T ' S N E W--------​
-Spring animation disabled for Pointy, this is because I don't think it fits for Pointy and he has a different falling animation anyway.
 
As much as I would love to fix that, I don't believe it is actually possible since the spindash revving sounds are all different sounds. If it were somehow the same sound then it would be fine since I could slap a SOC in there that simply makes it so the sound can't overlap. If I am wrong, I would love for someone to tell me otherwise but I have little experience with SOC and this is the conclusion I came to from getting to this page.
 
I believe there's a function with a name that either is or is very similar to S_StopSoundByID in Lua if it'd help. :D
 
S_StopSoundByID is not exposed in 2.1. S_StopSound is, but based on my experience it only stops the least recent sound the mobj is playing, and there is no way to tell how many sounds it is playing or in what order they were started, which makes it pretty much useless.

EDIT: If you really want better control over sounds, there is a hacky method: spawn a dummy object and play a sound from it, and then remove it when you want the sound to stop.
 
Last edited:
How do you add "SF_SUPER" to Tails and Knuckles' S_SKINs? I want not only the granted Super transformation, but the super message that comes with it in Special Stages that says "X" can now be Super "X" (X = player).
 
Code:
// Everybody's Super Sonic, even outside of match
addHook("ThinkFrame", do
	for player in players.iterate
		if not (player.charflags & SF_SUPER)
		and not (player.isclassic == false)
		and not (player.mo.skin == "tsonic") //Toei breaks counter: 6
			player.charflags = $1|SF_SUPER
		end
	end
end)
currently this is how I do it.
 
Code:
// Everybody's Super Sonic, even outside of match
addHook("ThinkFrame", do
	for player in players.iterate
		if not (player.charflags & SF_SUPER)
		and not (player.isclassic == false)
		and not (player.mo.skin == "tsonic") //Toei breaks counter: 6
			player.charflags = $1|SF_SUPER
		end
	end
end)
currently this is how I do it.

It didn't work. Sure, Tails & Knuckles could go Super, but a Super transformation meesage did not appear at the end of Special Stage 7. Do you know where Tails'/Knuckles' "S_SKIN"s are?
 
How does one edit S_SKINs without crashing the game? I've tried copying the files to a separate .wad and tried modifying them there.
 
How does one edit S_SKINs -
You don't edit an S_SKIN lump. If an S_SKIN lump exists in an added file, the next lump must be either a character sprite or a "sprite start" marker, followed by character sprites. Sonic Robo Blast 2 then loads all of the subsequent sprites of the same sprite name for that character (an S_SKIN lump tells the game to create a new character/skin), with neither the information in S_SKIN nor the sprites for the character ever being editable again. After all, if they were editable, every custom character would have to use unique S_SKIN lump names and/or sprite names in order to be loaded simultaneously, which would get very troublesome very quickly when dealing with more than 2 or 3 custom characters from different authors.

The closest that you'd get to what you want is probably to just make a new Tails skin and a new Knuckles skin, using the same sprites as from vanilla Sonic Robo Blast 2, with just something minor changed in their S_SKIN lumps, and then using Lua coding to force players using the vanilla Tails skin to be switched to the custom Tails skin, and likewise for Knuckles. That's not worth the trouble at all, in my personal opinion.
 
Last edited:
If you're wondering how I modified all the character stats, it's all in the lua, commented using //.
 
If you're wondering how I modified all the character stats, it's all in the lua, commented using //.
They're not wondering how you modified that. They're asking about how to modify that for certain skins, not just players that are using those skins; The special stage results screen tells you that you can go Super if your skin has the SF_SUPER flag when you collect all Chaos Emeralds.

As the results screen is not really an in-game thing and/or that the results screen reads from the skin's data rather than the player's data, the results screen doesn't care whether or not you've added or removed the SF_SUPER flag for the player through Lua code like that, as Lua stuff can do that for a player, but not for a skin.
 
Last edited:
How do make a command where I transform into Super Sonic with a shield? (For example, with the Super Transformation button mod.)
 
I'm really not the person to be asking this as I'm not really that experienced in coding and haven't done anything major in about 2 years. I don't wish for this to come off as backseat moderating but I would suggest perhaps creating a thread in the Editing Help section since you have a lot of these questions? I'm sure people who are much more qualified than I would be able to better help you with this stuff.
 
I would suggest perhaps creating a thread in the Editing Help section since you have a lot of these questions? I'm sure people who are much more qualified than I would be able to better help you with this stuff.
Ok. I'll do that. Sorry if I've been coming off as annoying these days.

---------- Post added at 12:06 PM ---------- Previous post was at 11:20 AM ----------

I would suggest perhaps creating a thread in the Editing Help section since you have a lot of these questions? I'm sure people who are much more qualified than I would be able to better help you with this stuff.
Ok. I'll do that. Sorry if I've been coming off as annoying these days.
 

Who is viewing this thread (Total: 2, Members: 0, Guests: 2)

Back
Top