1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2024-09-29 13:48:50 +00:00

Final cleanup before PR.

This commit is contained in:
Eric Myllyoja 2022-03-06 03:33:12 -05:00
parent b19478cd1e
commit 6475a49bf4
9 changed files with 106 additions and 222 deletions

4
.vscode/launch.json vendored
View file

@ -2,13 +2,13 @@
"version": "0.2.0",
"configurations": [
{
// Launch in native/CPP
// Launch in native/CPP
"name": "Lime",
"type": "lime",
"request": "launch"
},
{
// Evaluate macros with debugging enabled
// Evaluate macros with debugging enabled
"name": "Haxe Eval",
"type": "haxe-eval",
"request": "launch"

View file

@ -24,14 +24,10 @@
<window if="html5" resizable="true" />
<!--Desktop-specific-->
<window if="desktop" orientation="landscape" fullscreen="false" resizable="true" vsync="false"/>
<window if="desktop" orientation="landscape" fullscreen="false" resizable="true" vsync="false" />
<!--Mobile-specific-->
<window if="mobile" orientation="landscape" fullscreen="true" width="0" height="0" resizable="false"/>
<!-- This macro permanently silences an annoying warning. -->
<option flashStrict="False" />
<haxeflag name="--macro" value="allowPackage('flash')" />
<window if="mobile" orientation="landscape" fullscreen="true" width="0" height="0" resizable="false" />
<!-- _____________________________ Path Settings ____________________________ -->
@ -41,76 +37,76 @@
<classpath name="source" />
<assets path="assets/preload" rename="assets" exclude="*.ogg" if="web"/>
<assets path="assets/preload" rename="assets" exclude="*.mp3" unless="web"/>
<assets path="assets/preload" rename="assets" exclude="*.ogg" if="web" />
<assets path="assets/preload" rename="assets" exclude="*.mp3" unless="web" />
<define name="PRELOAD_ALL" unless="web" />
<define name="NO_PRELOAD_ALL" unless="PRELOAD_ALL"/>
<define name="NO_PRELOAD_ALL" unless="PRELOAD_ALL" />
<section if="PRELOAD_ALL">
<library name="songs" preload="true" />
<library name="shared" preload="true" />
<library name="songs" preload="true" />
<library name="shared" preload="true" />
<library name="tutorial" preload="true" />
<library name="week1" preload="true" />
<library name="week2" preload="true" />
<library name="week3" preload="true" />
<library name="week4" preload="true" />
<library name="week5" preload="true" />
<library name="week6" preload="true" />
<library name="week7" preload="true" />
<library name="week8" preload="true" />
<library name="week1" preload="true" />
<library name="week2" preload="true" />
<library name="week3" preload="true" />
<library name="week4" preload="true" />
<library name="week5" preload="true" />
<library name="week6" preload="true" />
<library name="week7" preload="true" />
<library name="week8" preload="true" />
</section>
<section if="NO_PRELOAD_ALL">
<library name="songs" preload="false" />
<library name="shared" preload="false" />
<library name="songs" preload="false" />
<library name="shared" preload="false" />
<library name="tutorial" preload="false" />
<library name="week1" preload="false" />
<library name="week2" preload="false" />
<library name="week3" preload="false" />
<library name="week4" preload="false" />
<library name="week5" preload="false" />
<library name="week6" preload="false" />
<library name="week7" preload="false" />
<library name="week8" preload="false" />
<library name="week1" preload="false" />
<library name="week2" preload="false" />
<library name="week3" preload="false" />
<library name="week4" preload="false" />
<library name="week5" preload="false" />
<library name="week6" preload="false" />
<library name="week7" preload="false" />
<library name="week8" preload="false" />
</section>
<assets path="assets/songs" library="songs" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/songs" library="songs" exclude="*.fla|*.mp3" unless="web"/>
<assets path="assets/shared" library="shared" exclude="*.fla|*.ogg" if="web"/>
<assets path="assets/shared" library="shared" exclude="*.fla|*.mp3" unless="web"/>
<assets path="assets/tutorial" library="tutorial" exclude="*.fla|*.ogg" if="web"/>
<assets path="assets/tutorial" library="tutorial" exclude="*.fla|*.mp3" unless="web"/>
<assets path="assets/week1" library="week1" exclude="*.fla|*.ogg" if="web"/>
<assets path="assets/week1" library="week1" exclude="*.fla|*.mp3" unless="web"/>
<assets path="assets/week2" library="week2" exclude="*.fla|*.ogg" if="web"/>
<assets path="assets/week2" library="week2" exclude="*.fla|*.mp3" unless="web"/>
<assets path="assets/week3" library="week3" exclude="*.fla|*.ogg" if="web"/>
<assets path="assets/week3" library="week3" exclude="*.fla|*.mp3" unless="web"/>
<assets path="assets/week4" library="week4" exclude="*.fla|*.ogg" if="web"/>
<assets path="assets/week4" library="week4" exclude="*.fla|*.mp3" unless="web"/>
<assets path="assets/week5" library="week5" exclude="*.fla|*.ogg" if="web"/>
<assets path="assets/week5" library="week5" exclude="*.fla|*.mp3" unless="web"/>
<assets path="assets/week6" library="week6" exclude="*.fla|*.ogg" if="web"/>
<assets path="assets/week6" library="week6" exclude="*.fla|*.mp3" unless="web"/>
<assets path="assets/week7" library="week7" exclude="*.fla|*.ogg" if="web"/>
<assets path="assets/week7" library="week7" exclude="*.fla|*.mp3" unless="web"/>
<assets path="assets/week8" library="week8" exclude="*.fla|*.ogg" if="web"/>
<assets path="assets/week8" library="week8" exclude="*.fla|*.mp3" unless="web"/>
<assets path="assets/songs" library="songs" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/songs" library="songs" exclude="*.fla|*.mp3" unless="web" />
<assets path="assets/shared" library="shared" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/shared" library="shared" exclude="*.fla|*.mp3" unless="web" />
<assets path="assets/tutorial" library="tutorial" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/tutorial" library="tutorial" exclude="*.fla|*.mp3" unless="web" />
<assets path="assets/week1" library="week1" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/week1" library="week1" exclude="*.fla|*.mp3" unless="web" />
<assets path="assets/week2" library="week2" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/week2" library="week2" exclude="*.fla|*.mp3" unless="web" />
<assets path="assets/week3" library="week3" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/week3" library="week3" exclude="*.fla|*.mp3" unless="web" />
<assets path="assets/week4" library="week4" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/week4" library="week4" exclude="*.fla|*.mp3" unless="web" />
<assets path="assets/week5" library="week5" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/week5" library="week5" exclude="*.fla|*.mp3" unless="web" />
<assets path="assets/week6" library="week6" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/week6" library="week6" exclude="*.fla|*.mp3" unless="web" />
<assets path="assets/week7" library="week7" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/week7" library="week7" exclude="*.fla|*.mp3" unless="web" />
<assets path="assets/week8" library="week8" exclude="*.fla|*.ogg" if="web" />
<assets path="assets/week8" library="week8" exclude="*.fla|*.mp3" unless="web" />
<!-- <assets path='example_mods' rename='mods' embed='false'/> -->
<assets path='example_mods' rename='mods' embed='false' exclude="*.md"/>
<assets path='example_mods' rename='mods' embed='false' exclude="*.md" />
<assets path='art/readme.txt' rename='do NOT readme.txt' />
<assets path="CHANGELOG.md" rename='changelog.txt'/>
<assets path="CHANGELOG.md" rename='changelog.txt' />
<!-- NOTE FOR FUTURE SELF SINCE FONTS ARE ALWAYS FUCKY
TO FIX ONE OF THEM, I CONVERTED IT TO OTF. DUNNO IF YOU NEED TO
THEN UHHH I USED THE NAME OF THE FONT WITH SETFORMAT() ON THE TEXT!!!
NOT USING A DIRECT THING TO THE ASSET!!!
-->
<assets path="assets/fonts" embed='true'/>
<assets path="assets/fonts" embed='true' />
<!-- _______________________________ Libraries ______________________________ -->
<haxelib name="openfl" />
@ -124,26 +120,27 @@
<!--In case you want to use the ui package-->
<haxelib name="flixel-ui" />
<!--haxelib name="newgrounds" unless="switch"/> -->
<haxelib name="faxe" if='switch'/>
<haxelib name="faxe" if='switch' />
<haxelib name="polymod" />
<haxelib name="firetongue" />
<!-- <haxelib name="colyseus"/> -->
<!-- <haxelib name="colyseus-websocket" /> -->
<!-- <haxelib name="newgrounds"/> -->
<haxelib name="hxcpp-debug-server" if="desktop debug"/>
<haxelib name="hxcpp-debug-server" if="desktop debug" />
<!-- swf stufffff -->
<!-- <haxelib name="swf"/> -->
<!-- <library path="assets/tanky.swf" preload="true"/> -->
<!-- <library path="assets/tankBG.swf" preload="true"/> -->
<!-- <haxelib name="flixel-animate" /> -->
<!-- <haxelib name="spinehaxe" /> -->
<!-- https://github.com/ninjamuffin99/Flixel-Animate-Atlas-Player -->
<!--<haxelib name="discord_rpc" if="cpp"/> --> <!-- foesn't work with neko -->
<!--<haxelib name="discord_rpc" if="cpp"/> -->
<!-- foesn't work with neko -->
<!-- <haxelib name="hxcpp-debug-server" if="desktop"/> -->
<!-- <haxelib name="markdown" /> -->
@ -184,7 +181,7 @@
<!--Enable this for Nape release builds for a serious peformance improvement-->
<haxedef name="NAPE_RELEASE_BUILD" unless="debug" />
<haxeflag name="-no-traces" unless="debug" />
<haxeflag name="-no-traces" unless="debug" />
<!-- HScript relies heavily on Reflection, which means we can't use DCE. -->
<haxeflag name="--dce no" />
<haxedef name="HXCPP_CHECK_POINTER" />
@ -193,10 +190,10 @@
<!-- _________________________________ Custom _______________________________ -->
<!--Place custom nodes like icons here (higher priority to override the HaxeFlixel icon)-->
<icon path="art/icon16.png" size='16'/>
<icon path="art/icon32.png" size='32'/>
<icon path="art/icon64.png" size='64'/>
<icon path="art/icon16.png" size='16' />
<icon path="art/icon32.png" size='32' />
<icon path="art/icon64.png" size='64' />
<icon path="art/iconOG.png" />
<!--
@ -207,31 +204,31 @@
<haxeflag name="--macro" value="include('modding.base')" />
<!-- <haxedef name="SKIP_TO_PLAYSTATE" if="debug" /> -->
<haxedef name="CAN_OPEN_LINKS" unless="switch"/>
<haxedef name="CAN_CHEAT" if="switch debug"/>
<haxedef name="CAN_OPEN_LINKS" unless="switch" />
<haxedef name="CAN_CHEAT" if="switch debug" />
<!-- Skip the Intro -->
<section if="debug">
<!-- Starts the game at the specified week, at the first song -->
<!-- <haxedef name="week" value="1" if="debug"/> -->
<!-- Starts the game at the specified song -->
<!-- <haxedef name="song" value="bopeebo" if="debug"/> -->
<!-- Difficulty, only used for week or song, defaults to 1 -->
<!-- <haxedef name="dif" value="2" if="debug"/> -->
</section>
<!-- <haxedef name="CLEAR_INPUT_SAVE"/> -->
<section if="newgrounds">
<!-- Enables Ng.core.verbose -->
<!-- <haxedef name="NG_VERBOSE" /> -->
<!-- Enables a NG debug session, so medals don't permently unlock -->
<!-- <haxedef name="NG_DEBUG" /> -->
<!-- pretends that the saved session Id was expired, forcing the reconnect prompt -->
<!-- <haxedef name="NG_FORCE_EXPIRED_SESSION" if="debug" /> -->
</section>
@ -239,8 +236,8 @@
<!-- <prebuild haxe="trace('prebuilding');"/> -->
<!-- <postbuild haxe="art/Postbuild.hx"/> -->
<config:ios allow-provisioning-updates="true" team-id=""/>
<config:ios allow-provisioning-updates="true" team-id="" />
<!-- Options for Polymod -->
<section if="polymod">
<!-- Turns on additional debug logging. -->
@ -266,10 +263,10 @@
<section if='TOOLS'>
<!-- Compiles tool for old song conversion shit -->
<!-- Assumes you use it on windows/desktop!!!! -->
<postbuild command='haxe -main art/SongConverter.hx --cs export/songShit'/>
<postbuild command='haxe -main art/SongConverter.hx --cs export/songShit' />
<assets path='export/songShit/bin/SongConverter.exe' rename='SongConverter.exe' />
<!-- <postbuild command='ren export/songShit/bin export/songShit/tools '/> -->
<!-- <postbuild command='move export/songShit/tools export/release/windows/bin'/> -->
</section>
</project>
</project>

View file

@ -518,7 +518,6 @@ class FreeplayState extends MusicBeatSubstate
if (controls.BACK)
{
FlxG.sound.play(Paths.sound('cancelMenu'));
// close();
FlxG.switchState(new MainMenuState());
}

View file

@ -1,17 +1,12 @@
package;
import flixel.FlxSprite;
import flixel.graphics.frames.FlxAtlasFrames;
import flixel.math.FlxMath;
import flixel.util.FlxColor;
import flixel.util.FlxTimer;
import shaderslmfao.ColorSwap;
import ui.PreferencesMenu;
using StringTools;
import polymod.format.ParseRules.TargetSignatureElement;
class Note extends FlxSprite
{
public var data = new NoteData();

View file

@ -1,25 +1,17 @@
package;
import shaderslmfao.WiggleEffect;
import play.stage.StageData;
import play.stage.Stage;
import Note;
import Section.SwagSection;
import SongLoad.SwagSong;
import charting.ChartingState;
import flixel.addons.effects.FlxTrail;
import flixel.addons.transition.FlxTransitionableState;
import flixel.FlxCamera;
import flixel.FlxObject;
import flixel.FlxSprite;
import flixel.FlxState;
import flixel.FlxSubState;
import flixel.addons.effects.FlxTrail;
import flixel.addons.transition.FlxTransitionableState;
import flixel.group.FlxGroup;
import flixel.math.FlxAngle;
import flixel.math.FlxMath;
import flixel.math.FlxPoint;
import flixel.math.FlxRect;
import flixel.system.FlxSound;
import flixel.text.FlxText;
import flixel.tweens.FlxEase;
import flixel.tweens.FlxTween;
@ -30,9 +22,12 @@ import flixel.util.FlxTimer;
import haxe.Json;
import lime.ui.Haptic;
import lime.utils.Assets;
import shaderslmfao.BuildingShaders;
import Note;
import play.stage.Stage;
import play.stage.StageData;
import Section.SwagSection;
import shaderslmfao.ColorSwap;
import shaderslmfao.OverlayBlend;
import SongLoad.SwagSong;
import ui.PopUpStuff;
import ui.PreferencesMenu;
@ -106,11 +101,6 @@ class PlayState extends MusicBeatState
public static var seenCutscene:Bool = false;
var halloweenBG:FlxSprite;
var isHalloween:Bool = false;
var foregroundSprites:FlxTypedGroup<BGSprite>;
var talking:Bool = true;
var songScore:Int = 0;
var scoreTxt:FlxText;
@ -158,8 +148,6 @@ class PlayState extends MusicBeatState
Conductor.mapBPMChanges(SONG);
Conductor.changeBPM(SONG.bpm);
foregroundSprites = new FlxTypedGroup<BGSprite>();
// dialogue init shit, just for week 5 really (for now...?)
switch (SONG.song.toLowerCase())
{
@ -175,11 +163,9 @@ class PlayState extends MusicBeatState
initDiscord();
#end
initStageBullshit();
initStage();
initCharacters();
add(foregroundSprites);
if (dialogue != null)
{
doof = new DialogueBox(false, dialogue);
@ -368,56 +354,35 @@ class PlayState extends MusicBeatState
FlxG.cameras.add(camHUD, false);
}
// a lot of this stage code will be cleaned up more when the stage load shit is more fleshed out! For now it's still a lot of hardcoded shit!!
function initStageBullshit()
function initStage()
{
// TODO: Move stageId to the song file.
switch (SONG.song.toLowerCase())
{
case 'spookeez' | 'monster' | 'south':
curStageId = "spookyMansion";
loadStage(curStageId);
case 'pico' | 'blammed' | 'philly':
curStageId = 'phillyTrain';
loadStage(curStageId);
case "milf" | 'satin-panties' | 'high':
curStageId = 'limoRide';
loadStage(curStageId);
case "cocoa" | 'eggnog':
curStageId = 'mallXmas';
loadStage(curStageId);
case 'winter-horrorland':
curStageId = 'mallEvil';
loadStage(curStageId);
case 'pyro':
curStageId = 'pyro';
loadStage(curStageId);
case 'senpai' | 'roses':
curStageId = 'school';
loadStage(curStageId);
case "darnell":
curStageId = 'phillyStreets';
loadStage(curStageId);
case 'thorns':
curStageId = 'schoolEvil';
loadStage(curStageId);
case 'guns' | 'stress' | 'ugh':
curStageId = 'tankmanBattlefield';
loadStage(curStageId);
default:
curStageId = "mainStage";
loadStage(curStageId);
}
loadStage(curStageId);
}
function initCharacters()
@ -640,6 +605,8 @@ class PlayState extends MusicBeatState
*
* This is useful for when you want to edit a stage without reloading the whole game.
* Reloading works on both the JSON and the HXC, if applicable.
*
* Call this by pressing F5 on a debug build.
*/
function debug_refreshStages()
{
@ -687,45 +654,6 @@ class PlayState extends MusicBeatState
}
}
function loadStageOld(path:String)
{
curStageId = path;
var json = Assets.getText(Paths.file('data/stagedata/${curStageId}Stage.json'));
var parsed:StageData = cast Json.parse(json);
defaultCamZoom *= parsed.camZoom;
for (prop in parsed.propsBackground)
{
var funnyProp:BGSprite = new BGSprite(prop.path, prop.x, prop.y, prop.scrollX, prop.scrollY, null, false, false);
if (prop.animBullshit != null)
funnyProp.setupSparrow(prop.path, prop.animBullshit.anims, prop.animBullshit.isLooping);
else
funnyProp.justLoadImage(prop.path);
if (prop.updateHitbox != null && !prop.updateHitbox)
{
funnyProp.scale.set(prop.scaleX, prop.scaleY);
}
else
{
funnyProp.setGraphicSize(Std.int(funnyProp.width * prop.scaleX), Std.int(funnyProp.height * prop.scaleY));
funnyProp.updateHitbox();
}
if (prop.antialiasing != null)
funnyProp.antialiasing = prop.antialiasing;
funnyProp.scrollFactor.set(prop.scrollX, prop.scrollY);
add(funnyProp);
}
trace(parsed.propsBackground);
}
function gunsIntro()
{
inCutscene = true;
@ -1384,8 +1312,6 @@ class PlayState extends MusicBeatState
var swagNote:Note = new Note(daStrumTime, daNoteData, oldNote);
swagNote.data = songNotes;
// swagNote.data.sustainLength = songNotes.sustainLength;
// swagNote.data.altNote = songNotes.altNote;
swagNote.scrollFactor.set(0, 0);
var susLength:Float = swagNote.data.sustainLength;
@ -1728,9 +1654,11 @@ class PlayState extends MusicBeatState
persistentDraw = true;
paused = true;
// There is a 1/1000 change to use a special pause menu.
// This prevents the player from resuming, but that's the point.
// It's a reference to Gitaroo Man, which doesn't let you pause the game.
if (FlxG.random.bool(1 / 1000))
{
// gitaroo man easter egg
FlxG.switchState(new GitarooPause());
}
else
@ -1762,7 +1690,6 @@ class PlayState extends MusicBeatState
if (FlxG.keys.justPressed.EIGHT)
FlxG.switchState(new ui.animDebugShit.DebugBoundingState());
// get it like refreshing a browser
if (FlxG.keys.justPressed.F5)
debug_refreshStages();
@ -2001,11 +1928,7 @@ class PlayState extends MusicBeatState
curStage.onNoteMiss(daNote);
}
health -= 0.0775;
// Practice mode doesn't mute the vocals on miss.
if (!practiceMode)
{
vocals.volume = 0;
}
vocals.volume = 0;
killCombo();
}
@ -2497,12 +2420,8 @@ class PlayState extends MusicBeatState
if (!practiceMode)
songScore -= 10;
// Practice mode doesn't mute the vocals on miss.
if (!practiceMode)
{
vocals.volume = 0;
FlxG.sound.play(Paths.soundRandom('missnote', 1, 3), FlxG.random.float(0.1, 0.2));
}
vocals.volume = 0;
FlxG.sound.play(Paths.soundRandom('missnote', 1, 3), FlxG.random.float(0.1, 0.2));
/* boyfriend.stunned = true;

View file

@ -1 +1,3 @@
i18n is short for internationalization.
# i18n
This package contains functions used for internationalization (i18n).

View file

@ -1,12 +0,0 @@
package modding.base;
import flixel.FlxState;
import modding.IHook;
// TODO: Polymod is having trouble with this one.
// Maybe there's a type parameter that's nested too much?
// @:hscriptClass
// class ScriptedFlxState extends FlxState implements IHook
// {
// // No body needed for this class, it's magic ;)
// }

View file

@ -1,12 +0,0 @@
package modding.base;
import flixel.FlxSubState;
import modding.IHook;
// TODO: Polymod is having trouble with this one.
// Maybe there's a type parameter that's nested too much?
// @:hscriptClass
// class ScriptedFlxSubState extends FlxSubState implements IHook
// {
// // No body needed for this class, it's magic ;)
// }

View file

@ -201,13 +201,11 @@ class Stage extends FlxSpriteGroup implements IHook
}
/**
* A function that gets called every frame.
* @param elapsed The number of
* A function that should get called every frame.
*/
public function onUpdate(elapsed:Float):Void
{
// Override me in your scripted stage to perform custom behavior!
// trace('Stage.onUpdate(${elapsed})');
}
/**
@ -303,8 +301,6 @@ class Stage extends FlxSpriteGroup implements IHook
/**
* Retrieves a given character from the stage.
* @param id
* @return Character
*/
public function getCharacter(id:String):Character
{