text: #include <hxcpp.h>
  
  #ifndef INCLUDED_95f339a1d026d52c
  #define INCLUDED_95f339a1d026d52c
  #include "hxMath.h"
  #endif
  #ifndef INCLUDED_ChartingState
  #include <ChartingState.h>
  #endif
  #ifndef INCLUDED_Conductor
  #include <Conductor.h>
  #endif
  #ifndef INCLUDED_Controls
  #include <Controls.h>
  #endif
  #ifndef INCLUDED_CoolUtil
  #include <CoolUtil.h>
  #endif
  #ifndef INCLUDED_DokiFreeplayState
  #include <DokiFreeplayState.h>
  #endif
  #ifndef INCLUDED_HealthIcon
  #include <HealthIcon.h>
  #endif
  #ifndef INCLUDED_Highscore
  #include <Highscore.h>
  #endif
  #ifndef INCLUDED_LangUtil
  #include <LangUtil.h>
  #endif
  #ifndef INCLUDED_LoadingState
  #include <LoadingState.h>
  #endif
  #ifndef INCLUDED_MainMenuState
  #include <MainMenuState.h>
  #endif
  #ifndef INCLUDED_MusicBeatState
  #include <MusicBeatState.h>
  #endif
  #ifndef INCLUDED_Paths
  #include <Paths.h>
  #endif
  #ifndef INCLUDED_PlayState
  #include <PlayState.h>
  #endif
  #ifndef INCLUDED_PlayerSettings
  #include <PlayerSettings.h>
  #endif
  #ifndef INCLUDED_Song
  #include <Song.h>
  #endif
  #ifndef INCLUDED_SongMetadatatwo
  #include <SongMetadatatwo.h>
  #endif
  #ifndef INCLUDED_Std
  #include <Std.h>
  #endif
  #ifndef INCLUDED_flixel_FlxBasic
  #include <flixel/FlxBasic.h>
  #endif
  #ifndef INCLUDED_flixel_FlxG
  #include <flixel/FlxG.h>
  #endif
  #ifndef INCLUDED_flixel_FlxGame
  #include <flixel/FlxGame.h>
  #endif
  #ifndef INCLUDED_flixel_FlxObject
  #include <flixel/FlxObject.h>
  #endif
  #ifndef INCLUDED_flixel_FlxSprite
  #include <flixel/FlxSprite.h>
  #endif
  #ifndef INCLUDED_flixel_FlxState
  #include <flixel/FlxState.h>
  #endif
  #ifndef INCLUDED_flixel_addons_transition_FlxTransitionableState
  #include <flixel/addons/transition/FlxTransitionableState.h>
  #endif
  #ifndef INCLUDED_flixel_addons_transition_TransitionData
  #include <flixel/addons/transition/TransitionData.h>
  #endif
  #ifndef INCLUDED_flixel_addons_ui_FlxUIState
  #include <flixel/addons/ui/FlxUIState.h>
  #endif
  #ifndef INCLUDED_flixel_addons_ui_interfaces_IEventGetter
  #include <flixel/addons/ui/interfaces/IEventGetter.h>
  #endif
  #ifndef INCLUDED_flixel_addons_ui_interfaces_IFlxUIState
  #include <flixel/addons/ui/interfaces/IFlxUIState.h>
  #endif
  #ifndef INCLUDED_flixel_animation_FlxAnimationController
  #include <flixel/animation/FlxAnimationController.h>
  #endif
  #ifndef INCLUDED_flixel_effects_FlxFlicker
  #include <flixel/effects/FlxFlicker.h>
  #endif
  #ifndef INCLUDED_flixel_graphics_FlxGraphic
  #include <flixel/graphics/FlxGraphic.h>
  #endif
  #ifndef INCLUDED_flixel_graphics_frames_FlxAtlasFrames
  #include <flixel/graphics/frames/FlxAtlasFrames.h>
  #endif
  #ifndef INCLUDED_flixel_graphics_frames_FlxFramesCollection
  #include <flixel/graphics/frames/FlxFramesCollection.h>
  #endif
  #ifndef INCLUDED_flixel_group_FlxTypedGroup
  #include <flixel/group/FlxTypedGroup.h>
  #endif
  #ifndef INCLUDED_flixel_input_FlxBaseKeyList
  #include <flixel/input/FlxBaseKeyList.h>
  #endif
  #ifndef INCLUDED_flixel_input_FlxKeyManager
  #include <flixel/input/FlxKeyManager.h>
  #endif
  #ifndef INCLUDED_flixel_input_IFlxInputManager
  #include <flixel/input/IFlxInputManager.h>
  #endif
  #ifndef INCLUDED_flixel_input_actions_FlxAction
  #include <flixel/input/actions/FlxAction.h>
  #endif
  #ifndef INCLUDED_flixel_input_actions_FlxActionDigital
  #include <flixel/input/actions/FlxActionDigital.h>
  #endif
  #ifndef INCLUDED_flixel_input_actions_FlxActionSet
  #include <flixel/input/actions/FlxActionSet.h>
  #endif
  #ifndef INCLUDED_flixel_input_keyboard_FlxKeyList
  #include <flixel/input/keyboard/FlxKeyList.h>
  #endif
  #ifndef INCLUDED_flixel_input_keyboard_FlxKeyboard
  #include <flixel/input/keyboard/FlxKeyboard.h>
  #endif
  #ifndef INCLUDED_flixel_math_FlxPoint
  #include <flixel/math/FlxPoint.h>
  #endif
  #ifndef INCLUDED_flixel_system_FlxSound
  #include <flixel/system/FlxSound.h>
  #endif
  #ifndef INCLUDED_flixel_system_FlxSoundGroup
  #include <flixel/system/FlxSoundGroup.h>
  #endif
  #ifndef INCLUDED_flixel_system_frontEnds_SoundFrontEnd
  #include <flixel/system/frontEnds/SoundFrontEnd.h>
  #endif
  #ifndef INCLUDED_flixel_text_FlxText
  #include <flixel/text/FlxText.h>
  #endif
  #ifndef INCLUDED_flixel_text_FlxTextBorderStyle
  #include <flixel/text/FlxTextBorderStyle.h>
  #endif
  #ifndef INCLUDED_flixel_tweens_FlxEase
  #include <flixel/tweens/FlxEase.h>
  #endif
  #ifndef INCLUDED_flixel_tweens_FlxTween
  #include <flixel/tweens/FlxTween.h>
  #endif
  #ifndef INCLUDED_flixel_tweens_misc_VarTween
  #include <flixel/tweens/misc/VarTween.h>
  #endif
  #ifndef INCLUDED_flixel_util_FlxSave
  #include <flixel/util/FlxSave.h>
  #endif
  #ifndef INCLUDED_flixel_util_FlxTimer
  #include <flixel/util/FlxTimer.h>
  #endif
  #ifndef INCLUDED_flixel_util_FlxTimerManager
  #include <flixel/util/FlxTimerManager.h>
  #endif
  #ifndef INCLUDED_flixel_util_IFlxDestroyable
  #include <flixel/util/IFlxDestroyable.h>
  #endif
  #ifndef INCLUDED_flixel_util_IFlxPooled
  #include <flixel/util/IFlxPooled.h>
  #endif
  #ifndef INCLUDED_haxe_IMap
  #include <haxe/IMap.h>
  #endif
  #ifndef INCLUDED_haxe_Log
  #include <haxe/Log.h>
  #endif
  #ifndef INCLUDED_haxe_ds_StringMap
  #include <haxe/ds/StringMap.h>
  #endif
  #ifndef INCLUDED_openfl_display_DisplayObject
  #include <openfl/display/DisplayObject.h>
  #endif
  #ifndef INCLUDED_openfl_display_DisplayObjectContainer
  #include <openfl/display/DisplayObjectContainer.h>
  #endif
  #ifndef INCLUDED_openfl_display_IBitmapDrawable
  #include <openfl/display/IBitmapDrawable.h>
  #endif
  #ifndef INCLUDED_openfl_display_InteractiveObject
  #include <openfl/display/InteractiveObject.h>
  #endif
  #ifndef INCLUDED_openfl_display_Sprite
  #include <openfl/display/Sprite.h>
  #endif
  #ifndef INCLUDED_openfl_events_EventDispatcher
  #include <openfl/events/EventDispatcher.h>
  #endif
  #ifndef INCLUDED_openfl_events_IEventDispatcher
  #include <openfl/events/IEventDispatcher.h>
  #endif
  #ifndef INCLUDED_openfl_utils_Assets
  #include <openfl/utils/Assets.h>
  #endif
  
  HX_DEFINE_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_21_new,"DokiFreeplayState","new",0x0733fa7a,"DokiFreeplayState.new","DokiFreeplayState.hx",21,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_61_create,"DokiFreeplayState","create",0xd5550922,"DokiFreeplayState.create","DokiFreeplayState.hx",61,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_184_addSong,"DokiFreeplayState","addSong",0x4c3da5b0,"DokiFreeplayState.addSong","DokiFreeplayState.hx",184,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_342_update,"DokiFreeplayState","update",0xe04b282f,"DokiFreeplayState.update","DokiFreeplayState.hx",342,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_190_update,"DokiFreeplayState","update",0xe04b282f,"DokiFreeplayState.update","DokiFreeplayState.hx",190,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_357_startsong,"DokiFreeplayState","startsong",0x47fc2ad1,"DokiFreeplayState.startsong","DokiFreeplayState.hx",357,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_363_startsong,"DokiFreeplayState","startsong",0x47fc2ad1,"DokiFreeplayState.startsong","DokiFreeplayState.hx",363,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_373_startsong,"DokiFreeplayState","startsong",0x47fc2ad1,"DokiFreeplayState.startsong","DokiFreeplayState.hx",373,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_380_startsong,"DokiFreeplayState","startsong",0x47fc2ad1,"DokiFreeplayState.startsong","DokiFreeplayState.hx",380,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_348_startsong,"DokiFreeplayState","startsong",0x47fc2ad1,"DokiFreeplayState.startsong","DokiFreeplayState.hx",348,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_388_loadSong,"DokiFreeplayState","loadSong",0x2c86ecc1,"DokiFreeplayState.loadSong","DokiFreeplayState.hx",388,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_406_changeDiff,"DokiFreeplayState","changeDiff",0xc7ab3ebb,"DokiFreeplayState.changeDiff","DokiFreeplayState.hx",406,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_466_changeItem,"DokiFreeplayState","changeItem",0xcb01a7c9,"DokiFreeplayState.changeItem","DokiFreeplayState.hx",466,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_430_changeItem,"DokiFreeplayState","changeItem",0xcb01a7c9,"DokiFreeplayState.changeItem","DokiFreeplayState.hx",430,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_479_changePage,"DokiFreeplayState","changePage",0xcf93bd05,"DokiFreeplayState.changePage","DokiFreeplayState.hx",479,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_50_loadDiff,"DokiFreeplayState","loadDiff",0x229824f1,"DokiFreeplayState.loadDiff","DokiFreeplayState.hx",50,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_28_boot,"DokiFreeplayState","boot",0x3e6030d8,"DokiFreeplayState.boot","DokiFreeplayState.hx",28,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_29_boot,"DokiFreeplayState","boot",0x3e6030d8,"DokiFreeplayState.boot","DokiFreeplayState.hx",29,0xd6b47236)
  HX_LOCAL_STACK_FRAME(_hx_pos_0c20f26e1a60cbc3_46_boot,"DokiFreeplayState","boot",0x3e6030d8,"DokiFreeplayState.boot","DokiFreeplayState.hx",46,0xd6b47236)
  
  void DokiFreeplayState_obj::__construct( ::flixel::addons::transition::TransitionData TransIn, ::flixel::addons::transition::TransitionData TransOut){
              	HX_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_21_new)
  HXLINE( 187)		this->selectedSomethin = false;
  HXLINE(  44)		this->iconArray = ::Array_obj< ::Dynamic>::__new(0);
  HXLINE(  42)		this->curPlaying = false;
  HXLINE(  37)		this->intendedScore = 0;
  HXLINE(  36)		this->lerpScore = 0;
  HXLINE(  33)		this->diffselect = false;
  HXLINE(  32)		this->goku = false;
  HXLINE(  31)		this->curDifficulty = 1;
  HXLINE(  26)		this->curSelected = 0;
  HXLINE(  23)		this->songs = ::Array_obj< ::Dynamic>::__new(0);
  HXLINE(  21)		super::__construct(TransIn,TransOut);
              	}
  
  Dynamic DokiFreeplayState_obj::__CreateEmpty() { return new DokiFreeplayState_obj; }
  
  void *DokiFreeplayState_obj::_hx_vtable = 0;
  
  Dynamic DokiFreeplayState_obj::__Create(::hx::DynamicArray inArgs)
  {
  	::hx::ObjectPtr< DokiFreeplayState_obj > _hx_result = new DokiFreeplayState_obj();
  	_hx_result->__construct(inArgs[0],inArgs[1]);
  	return _hx_result;
  }
  
  bool DokiFreeplayState_obj::_hx_isInstanceOf(int inClassId) {
  	if (inClassId<=(int)0x4875aac8) {
  		if (inClassId<=(int)0x2f064378) {
  			if (inClassId<=(int)0x23a57bae) {
  				return inClassId==(int)0x00000001 || inClassId==(int)0x23a57bae;
  			} else {
  				return inClassId==(int)0x2f064378;
  			}
  		} else {
  			return inClassId==(int)0x3f706236 || inClassId==(int)0x4875aac8;
  		}
  	} else {
  		if (inClassId<=(int)0x7c795c9f) {
  			return inClassId==(int)0x62817b24 || inClassId==(int)0x7c795c9f;
  		} else {
  			return inClassId==(int)0x7ccf8994;
  		}
  	}
  }
  
  void DokiFreeplayState_obj::create(){
              	HX_GC_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_61_create)
  HXLINE(  70)		if (::DokiFreeplayState_obj::pageFlipped) {
  HXLINE(  71)			 ::flixel::_hx_system::frontEnds::SoundFrontEnd _hx_tmp = ::flixel::FlxG_obj::sound;
  HXDLIN(  71)			_hx_tmp->play(::Paths_obj::sound(HX_("flip_page",61,10,21,01),null()),null(),null(),null(),null(),null());
              		}
  HXLINE(  73)		::String key = (HX_("data/Page",b4,5b,c2,f7) + (::DokiFreeplayState_obj::curPage + 1));
  HXDLIN(  73)		::String library = null();
  HXDLIN(  73)		::String initSonglist = ::Paths_obj::getPath(((HX_("",00,00,00,00) + key) + HX_(".txt",02,3f,c0,1e)),HX_("TEXT",ad,94,ba,37),library);
  HXDLIN(  73)		::Array< ::String > initSonglist1 = ::CoolUtil_obj::coolTextFile(initSonglist);
  HXLINE(  75)		{
  HXLINE(  75)			int _g = 0;
  HXDLIN(  75)			int _g1 = initSonglist1->length;
  HXDLIN(  75)			while((_g < _g1)){
  HXLINE(  75)				_g = (_g + 1);
  HXDLIN(  75)				int i = (_g - 1);
  HXLINE(  77)				::Array< ::String > data = initSonglist1->__get(i).split(HX_(":",3a,00,00,00));
  HXLINE(  78)				::String data1 = data->__get(0);
  HXDLIN(  78)				 ::Dynamic meta = ::Std_obj::parseInt(data->__get(2));
  HXDLIN(  78)				 ::SongMetadatatwo meta1 =  ::SongMetadatatwo_obj::__alloc( HX_CTX ,data1,( (int)(meta) ),data->__get(1));
  HXLINE(  80)				bool _hx_tmp;
  HXDLIN(  80)				if (!(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("monibeaten",3c,53,44,8f),::hx::paccDynamic)) ))) {
  HXLINE(  80)					_hx_tmp = (data->__get(0).toLowerCase() == HX_("your reality",23,d6,ee,f3));
              				}
              				else {
  HXLINE(  80)					_hx_tmp = false;
              				}
  HXDLIN(  80)				if (_hx_tmp) {
  HXLINE(  81)					continue;
              				}
  HXLINE(  83)				bool _hx_tmp1;
  HXDLIN(  83)				 ::Dynamic _hx_tmp2 = ::Std_obj::parseInt(data->__get(2));
  HXDLIN(  83)				if (!(::hx::IsLessEq( _hx_tmp2,(( (Float)(::flixel::FlxG_obj::save->data->__Field(HX_("weekUnlocked",37,64,c4,a5),::hx::paccDynamic)) ) - ( (Float)(1) )) ))) {
  HXLINE(  83)					_hx_tmp1 = ::hx::IsEq( ::Std_obj::parseInt(data->__get(2)),1 );
              				}
              				else {
  HXLINE(  83)					_hx_tmp1 = true;
              				}
  HXDLIN(  83)				if (_hx_tmp1) {
  HXLINE(  84)					this->songs->push(meta1);
              				}
  HXLINE(  86)				::Array< ::Dynamic> diffs = ::Array_obj< ::Dynamic>::__new(0);
  HXLINE(  87)				::DokiFreeplayState_obj::loadDiff(0,meta1->songName,diffs);
  HXLINE(  88)				::DokiFreeplayState_obj::loadDiff(1,meta1->songName,diffs);
  HXLINE(  89)				::DokiFreeplayState_obj::loadDiff(2,meta1->songName,diffs);
  HXLINE(  90)				::DokiFreeplayState_obj::songData->set(meta1->songName,diffs);
              			}
              		}
  HXLINE(  94)		this->persistentUpdate = (this->persistentDraw = true);
  HXLINE(  96)		 ::flixel::FlxSprite _hx_tmp =  ::flixel::FlxSprite_obj::__alloc( HX_CTX ,null(),null(),null());
  HXDLIN(  96)		::String key1 = (HX_("freeplay/freeplaybook",d8,7a,91,2d) + (::DokiFreeplayState_obj::curPage + 1));
  HXDLIN(  96)		::String library1 = null();
  HXDLIN(  96)		::String _hx_tmp1 = ::Paths_obj::getPath(((HX_("images/",77,50,74,c1) + key1) + HX_(".png",3b,2d,bd,1e)),HX_("IMAGE",3b,57,57,3b),library1);
  HXDLIN(  96)		this->bg = _hx_tmp->loadGraphic(_hx_tmp1,null(),null(),null(),null(),null());
  HXLINE(  97)		this->bg->set_antialiasing(true);
  HXLINE(  98)		this->add(this->bg);
  HXLINE( 100)		{
  HXLINE( 100)			int _g2 = 0;
  HXDLIN( 100)			int _g3 = this->songs->length;
  HXDLIN( 100)			while((_g2 < _g3)){
  HXLINE( 100)				_g2 = (_g2 + 1);
  HXDLIN( 100)				int i = (_g2 - 1);
  HXLINE( 102)				 ::HealthIcon icon =  ::HealthIcon_obj::__alloc( HX_CTX ,this->songs->__get(i).StaticCast<  ::SongMetadatatwo >()->songCharacter,null());
  HXLINE( 103)				this->iconArray->push(icon);
  HXLINE( 104)				icon->set_x(( (Float)(1060) ));
  HXLINE( 105)				icon->set_y(( (Float)(550) ));
  HXLINE( 106)				icon->scale->set(((Float)1.6),((Float)1.6));
  HXLINE( 107)				icon->set_angle(( (Float)(30) ));
  HXLINE( 109)				bool _hx_tmp;
  HXDLIN( 109)				bool _hx_tmp1;
  HXDLIN( 109)				if ((::DokiFreeplayState_obj::curPage == 1)) {
  HXLINE( 109)					_hx_tmp1 = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("monibeaten",3c,53,44,8f),::hx::paccDynamic)) ));
              				}
              				else {
  HXLINE( 109)					_hx_tmp1 = false;
              				}
  HXDLIN( 109)				if (!(_hx_tmp1)) {
  HXLINE( 109)					if ((::DokiFreeplayState_obj::curPage == 2)) {
  HXLINE( 109)						_hx_tmp = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("extra2beaten",81,0c,3e,cc),::hx::paccDynamic)) ));
              					}
              					else {
  HXLINE( 109)						_hx_tmp = false;
              					}
              				}
              				else {
  HXLINE( 109)					_hx_tmp = true;
              				}
  HXDLIN( 109)				if (!(_hx_tmp)) {
  HXLINE( 114)					this->add(icon);
              				}
              			}
              		}
  HXLINE( 118)		this->grpSongs =  ::flixel::group::FlxTypedGroup_obj::__alloc( HX_CTX ,null());
  HXLINE( 120)		bool _hx_tmp2;
  HXDLIN( 120)		bool _hx_tmp3;
  HXDLIN( 120)		if ((::DokiFreeplayState_obj::curPage == 1)) {
  HXLINE( 120)			_hx_tmp3 = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("monibeaten",3c,53,44,8f),::hx::paccDynamic)) ));
              		}
              		else {
  HXLINE( 120)			_hx_tmp3 = false;
              		}
  HXDLIN( 120)		if (!(_hx_tmp3)) {
  HXLINE( 120)			if ((::DokiFreeplayState_obj::curPage == 2)) {
  HXLINE( 120)				_hx_tmp2 = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("extra2beaten",81,0c,3e,cc),::hx::paccDynamic)) ));
              			}
              			else {
  HXLINE( 120)				_hx_tmp2 = false;
              			}
              		}
              		else {
  HXLINE( 120)			_hx_tmp2 = true;
              		}
  HXDLIN( 120)		if (!(_hx_tmp2)) {
  HXLINE( 125)			this->add(this->grpSongs);
              		}
  HXLINE( 128)		this->scoreText =  ::flixel::text::FlxText_obj::__alloc( HX_CTX ,(( (Float)(::flixel::FlxG_obj::width) ) * ((Float)0.7)),5,0,HX_("",00,00,00,00),8,null());
  HXLINE( 130)		 ::flixel::text::FlxText _hx_tmp4 = this->scoreText;
  HXDLIN( 130)		_hx_tmp4->setFormat(::LangUtil_obj::getFont(null()),32,-16777216,HX_("right",dc,0b,64,e9),null(),null(),null());
  HXLINE( 132)		 ::flixel::text::FlxText fh = this->scoreText;
  HXDLIN( 132)		fh->set_x((fh->x - ( (Float)(460) )));
  HXLINE( 133)		 ::flixel::text::FlxText fh1 = this->scoreText;
  HXDLIN( 133)		fh1->set_y((fh1->y + 45));
  HXLINE( 134)		this->add(this->scoreText);
  HXLINE( 136)		this->menu_character =  ::flixel::FlxSprite_obj::__alloc( HX_CTX ,40,500,null());
  HXLINE( 137)		 ::flixel::FlxSprite _hx_tmp5 = this->menu_character;
  HXDLIN( 137)		::String library2 = null();
  HXDLIN( 137)		bool isLocale = false;
  HXDLIN( 137)		 ::flixel::graphics::frames::FlxAtlasFrames _hx_tmp6;
  HXDLIN( 137)		if (isLocale) {
  HXLINE( 137)			if (::openfl::utils::Assets_obj::exists(::Paths_obj::getPath(((HX_("locale/",55,92,c6,2d) + ::Std_obj::string( ::Dynamic(::flixel::FlxG_obj::save->data->__Field(HX_("language",58,80,11,7a),::hx::paccDynamic)))) + ((HX_("/images/",28,44,b7,41) + HX_("freeplay/chibidorks",73,5f,65,36)) + HX_(".xml",69,3e,c3,1e))),HX_("TEXT",ad,94,ba,37),library2),null())) {
  HXLINE( 137)				 ::flixel::graphics::FlxGraphic _hx_tmp = ::Paths_obj::loadImage(HX_("freeplay/chibidorks",73,5f,65,36),library2,isLocale);
  HXDLIN( 137)				_hx_tmp6 = ::flixel::graphics::frames::FlxAtlasFrames_obj::fromSparrow(_hx_tmp,::Paths_obj::getPath(((HX_("locale/",55,92,c6,2d) + ::Std_obj::string( ::Dynamic(::flixel::FlxG_obj::save->data->__Field(HX_("language",58,80,11,7a),::hx::paccDynamic)))) + ((HX_("/images/",28,44,b7,41) + HX_("freeplay/chibidorks",73,5f,65,36)) + HX_(".xml",69,3e,c3,1e))),HX_("TEXT",ad,94,ba,37),library2));
              			}
              			else {
  HXLINE( 137)				 ::flixel::graphics::FlxGraphic _hx_tmp = ::Paths_obj::loadImage(HX_("freeplay/chibidorks",73,5f,65,36),library2,isLocale);
  HXDLIN( 137)				_hx_tmp6 = ::flixel::graphics::frames::FlxAtlasFrames_obj::fromSparrow(_hx_tmp,::Paths_obj::getPath(((HX_("locale/en-US/images/",b5,71,94,96) + HX_("freeplay/chibidorks",73,5f,65,36)) + HX_(".xml",69,3e,c3,1e)),HX_("TEXT",ad,94,ba,37),library2));
              			}
              		}
              		else {
  HXLINE( 137)			 ::flixel::graphics::FlxGraphic _hx_tmp = ::Paths_obj::loadImage(HX_("freeplay/chibidorks",73,5f,65,36),library2,null());
  HXDLIN( 137)			_hx_tmp6 = ::flixel::graphics::frames::FlxAtlasFrames_obj::fromSparrow(_hx_tmp,::Paths_obj::getPath(((HX_("images/",77,50,74,c1) + HX_("freeplay/chibidorks",73,5f,65,36)) + HX_(".xml",69,3e,c3,1e)),HX_("TEXT",ad,94,ba,37),library2));
              		}
  HXDLIN( 137)		_hx_tmp5->set_frames(_hx_tmp6);
  HXLINE( 138)		this->menu_character->set_antialiasing(true);
  HXLINE( 139)		this->menu_character->animation->addByPrefix(HX_("idle",14,a7,b3,45),HX_("FreeplayChibiIdle",bf,c0,cb,64),24,false,null(),null());
  HXLINE( 140)		this->menu_character->animation->addByPrefix(HX_("pop_off",81,d2,01,4f),HX_("FreeplayChibiCheer",82,f6,b4,5b),24,false,null(),null());
  HXLINE( 141)		this->menu_character->updateHitbox();
  HXLINE( 142)		this->menu_character->animation->play(HX_("idle",14,a7,b3,45),null(),null(),null());
  HXLINE( 144)		if ((::DokiFreeplayState_obj::curPage != 3)) {
  HXLINE( 145)			this->add(this->menu_character);
              		}
  HXLINE( 147)		this->diff =  ::flixel::FlxSprite_obj::__alloc( HX_CTX ,453,580,null());
  HXLINE( 148)		 ::flixel::FlxSprite _hx_tmp7 = this->diff;
  HXDLIN( 148)		 ::flixel::graphics::frames::FlxAtlasFrames _hx_tmp8;
  HXDLIN( 148)		if (::openfl::utils::Assets_obj::exists(::Paths_obj::getPath(((HX_("locale/",55,92,c6,2d) + ::Std_obj::string( ::Dynamic(::flixel::FlxG_obj::save->data->__Field(HX_("language",58,80,11,7a),::hx::paccDynamic)))) + ((HX_("/images/",28,44,b7,41) + HX_("dokistory/difficulties",1c,45,45,3a)) + HX_(".xml",69,3e,c3,1e))),HX_("TEXT",ad,94,ba,37),HX_("preload",c9,47,43,35)),null())) {
  HXLINE( 148)			 ::flixel::graphics::FlxGraphic _hx_tmp = ::Paths_obj::loadImage(HX_("dokistory/difficulties",1c,45,45,3a),HX_("preload",c9,47,43,35),true);
  HXDLIN( 148)			_hx_tmp8 = ::flixel::graphics::frames::FlxAtlasFrames_obj::fromSparrow(_hx_tmp,::Paths_obj::getPath(((HX_("locale/",55,92,c6,2d) + ::Std_obj::string( ::Dynamic(::flixel::FlxG_obj::save->data->__Field(HX_("language",58,80,11,7a),::hx::paccDynamic)))) + ((HX_("/images/",28,44,b7,41) + HX_("dokistory/difficulties",1c,45,45,3a)) + HX_(".xml",69,3e,c3,1e))),HX_("TEXT",ad,94,ba,37),HX_("preload",c9,47,43,35)));
              		}
              		else {
  HXLINE( 148)			 ::flixel::graphics::FlxGraphic _hx_tmp = ::Paths_obj::loadImage(HX_("dokistory/difficulties",1c,45,45,3a),HX_("preload",c9,47,43,35),true);
  HXDLIN( 148)			_hx_tmp8 = ::flixel::graphics::frames::FlxAtlasFrames_obj::fromSparrow(_hx_tmp,::Paths_obj::getPath(((HX_("locale/en-US/images/",b5,71,94,96) + HX_("dokistory/difficulties",1c,45,45,3a)) + HX_(".xml",69,3e,c3,1e)),HX_("TEXT",ad,94,ba,37),HX_("preload",c9,47,43,35)));
              		}
  HXDLIN( 148)		_hx_tmp7->set_frames(_hx_tmp8);
  HXLINE( 149)		this->diff->set_antialiasing(true);
  HXLINE( 150)		this->diff->animation->addByPrefix(HX_("easy",02,8c,0c,43),HX_("Easy",22,b8,e5,2d),24,null(),null(),null());
  HXLINE( 151)		this->diff->animation->addByPrefix(HX_("normal",27,72,69,30),HX_("Normal",47,e6,fd,64),24,null(),null(),null());
  HXLINE( 152)		this->diff->animation->addByPrefix(HX_("hard",eb,2e,08,45),HX_("Hard",0b,5b,e1,2f),24,null(),null(),null());
  HXLINE( 153)		this->diff->animation->play(HX_("normal",27,72,69,30),null(),null(),null());
  HXLINE( 154)		this->diff->updateHitbox();
  HXLINE( 155)		this->diff->set_visible(false);
  HXLINE( 156)		this->add(this->diff);
  HXLINE( 158)		::String library3 = null();
  HXDLIN( 158)		bool isLocale1 = false;
  HXDLIN( 158)		 ::flixel::graphics::frames::FlxAtlasFrames tex;
  HXDLIN( 158)		if (isLocale1) {
  HXLINE( 158)			if (::openfl::utils::Assets_obj::exists(::Paths_obj::getPath(((HX_("locale/",55,92,c6,2d) + ::Std_obj::string( ::Dynamic(::flixel::FlxG_obj::save->data->__Field(HX_("language",58,80,11,7a),::hx::paccDynamic)))) + ((HX_("/images/",28,44,b7,41) + HX_("freeplay/songlist_page_1",9e,4b,2a,a0)) + HX_(".xml",69,3e,c3,1e))),HX_("TEXT",ad,94,ba,37),library3),null())) {
  HXLINE( 158)				 ::flixel::graphics::FlxGraphic tex1 = ::Paths_obj::loadImage(HX_("freeplay/songlist_page_1",9e,4b,2a,a0),library3,isLocale1);
  HXDLIN( 158)				tex = ::flixel::graphics::frames::FlxAtlasFrames_obj::fromSparrow(tex1,::Paths_obj::getPath(((HX_("locale/",55,92,c6,2d) + ::Std_obj::string( ::Dynamic(::flixel::FlxG_obj::save->data->__Field(HX_("language",58,80,11,7a),::hx::paccDynamic)))) + ((HX_("/images/",28,44,b7,41) + HX_("freeplay/songlist_page_1",9e,4b,2a,a0)) + HX_(".xml",69,3e,c3,1e))),HX_("TEXT",ad,94,ba,37),library3));
              			}
              			else {
  HXLINE( 158)				 ::flixel::graphics::FlxGraphic tex1 = ::Paths_obj::loadImage(HX_("freeplay/songlist_page_1",9e,4b,2a,a0),library3,isLocale1);
  HXDLIN( 158)				tex = ::flixel::graphics::frames::FlxAtlasFrames_obj::fromSparrow(tex1,::Paths_obj::getPath(((HX_("locale/en-US/images/",b5,71,94,96) + HX_("freeplay/songlist_page_1",9e,4b,2a,a0)) + HX_(".xml",69,3e,c3,1e)),HX_("TEXT",ad,94,ba,37),library3));
              			}
              		}
              		else {
  HXLINE( 158)			 ::flixel::graphics::FlxGraphic tex1 = ::Paths_obj::loadImage(HX_("freeplay/songlist_page_1",9e,4b,2a,a0),library3,null());
  HXDLIN( 158)			tex = ::flixel::graphics::frames::FlxAtlasFrames_obj::fromSparrow(tex1,::Paths_obj::getPath(((HX_("images/",77,50,74,c1) + HX_("freeplay/songlist_page_1",9e,4b,2a,a0)) + HX_(".xml",69,3e,c3,1e)),HX_("TEXT",ad,94,ba,37),library3));
              		}
  HXLINE( 160)		{
  HXLINE( 160)			int _g4 = 0;
  HXDLIN( 160)			int _g5 = this->songs->length;
  HXDLIN( 160)			while((_g4 < _g5)){
  HXLINE( 160)				_g4 = (_g4 + 1);
  HXDLIN( 160)				int i = (_g4 - 1);
  HXLINE( 162)				 ::flixel::FlxSprite songText =  ::flixel::FlxSprite_obj::__alloc( HX_CTX ,442,(114 + (( (Float)(i) ) * ((Float)47.5))),null());
  HXLINE( 163)				if ((::DokiFreeplayState_obj::curPage == 3)) {
  HXLINE( 165)					songText->set_x(( (Float)(588) ));
  HXLINE( 166)					songText->set_y(( (Float)(390) ));
              				}
  HXLINE( 168)				songText->set_frames(tex);
  HXLINE( 169)				songText->set_antialiasing(true);
  HXLINE( 170)				songText->animation->addByPrefix(HX_("idle",14,a7,b3,45),(this->songs->__get(i).StaticCast<  ::SongMetadatatwo >()->songName + HX_(" idle",34,37,86,b2)),24,null(),null(),null());
  HXLINE( 171)				songText->animation->addByPrefix(HX_("selected",5b,2a,6d,b1),(this->songs->__get(i).StaticCast<  ::SongMetadatatwo >()->songName + HX_(" selected",7b,4a,9a,0f)),24,null(),null(),null());
  HXLINE( 172)				songText->animation->play(HX_("idle",14,a7,b3,45),null(),null(),null());
  HXLINE( 173)				songText->ID = i;
  HXLINE( 174)				this->grpSongs->add(songText).StaticCast<  ::flixel::FlxSprite >();
              			}
              		}
  HXLINE( 177)		this->changeItem(null());
  HXLINE( 179)		this->super::create();
              	}
  
  
  void DokiFreeplayState_obj::addSong(::String songName,int weekNum,::String songCharacter){
              	HX_GC_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_184_addSong)
  HXDLIN( 184)		::Array< ::Dynamic> _hx_tmp = this->songs;
  HXDLIN( 184)		_hx_tmp->push( ::SongMetadatatwo_obj::__alloc( HX_CTX ,songName,weekNum,songCharacter));
              	}
  
  
  HX_DEFINE_DYNAMIC_FUNC3(DokiFreeplayState_obj,addSong,(void))
  
  void DokiFreeplayState_obj::update(Float elapsed){
              		HX_BEGIN_LOCAL_FUNC_S0(::hx::LocalFunc,_hx_Closure_0) HXARGC(1)
              		void _hx_run( ::flixel::FlxSprite spr){
              			HX_GC_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_342_update)
              		}
              		HX_END_LOCAL_FUNC1((void))
  
              	HX_GC_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_190_update)
  HXLINE( 191)		::haxe::Log_obj::trace((::DokiFreeplayState_obj::curPage + HX_(" hewwo",52,21,35,f0)),::hx::SourceInfo(HX_("source/DokiFreeplayState.hx",2a,33,76,01),191,HX_("DokiFreeplayState",88,f5,da,f8),HX_("update",09,86,05,87)));
  HXLINE( 193)		Float a = ( (Float)(this->lerpScore) );
  HXDLIN( 193)		this->lerpScore = ::Math_obj::floor((a + (((Float)0.4) * (( (Float)(this->intendedScore) ) - a))));
  HXLINE( 195)		if ((::Math_obj::abs(( (Float)((this->lerpScore - this->intendedScore)) )) <= 10)) {
  HXLINE( 196)			this->lerpScore = this->intendedScore;
              		}
  HXLINE( 198)		 ::flixel::text::FlxText _hx_tmp = this->scoreText;
  HXDLIN( 198)		::String _hx_tmp1 = (::LangUtil_obj::getString(HX_("cmnPB",76,6d,0b,49)) + HX_(":",3a,00,00,00));
  HXDLIN( 198)		_hx_tmp->set_text((_hx_tmp1 + this->lerpScore));
  HXLINE( 200)		bool upP = ::PlayerSettings_obj::player1->controls->_upP->check();
  HXLINE( 201)		bool downP = ::PlayerSettings_obj::player1->controls->_downP->check();
  HXLINE( 202)		bool accepted = ::PlayerSettings_obj::player1->controls->_accept->check();
  HXLINE( 204)		if ((::flixel::FlxG_obj::sound->music->_volume < ((Float)0.8))) {
  HXLINE( 206)			 ::flixel::_hx_system::FlxSound fh = ::flixel::FlxG_obj::sound->music;
  HXDLIN( 206)			fh->set_volume((fh->_volume + (((Float)0.5) * ::flixel::FlxG_obj::elapsed)));
              		}
  HXLINE( 209)		bool _hx_tmp2;
  HXDLIN( 209)		bool _hx_tmp3;
  HXDLIN( 209)		if ((::DokiFreeplayState_obj::curPage == 1)) {
  HXLINE( 209)			_hx_tmp3 = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("monibeaten",3c,53,44,8f),::hx::paccDynamic)) ));
              		}
              		else {
  HXLINE( 209)			_hx_tmp3 = false;
              		}
  HXDLIN( 209)		if (!(_hx_tmp3)) {
  HXLINE( 209)			if ((::DokiFreeplayState_obj::curPage == 2)) {
  HXLINE( 209)				_hx_tmp2 = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("extra2beaten",81,0c,3e,cc),::hx::paccDynamic)) ));
              			}
              			else {
  HXLINE( 209)				_hx_tmp2 = false;
              			}
              		}
              		else {
  HXLINE( 209)			_hx_tmp2 = true;
              		}
  HXDLIN( 209)		if (!(_hx_tmp2)) {
  HXLINE( 214)			{
  HXLINE( 214)				int _g = 0;
  HXDLIN( 214)				int _g1 = this->iconArray->length;
  HXDLIN( 214)				while((_g < _g1)){
  HXLINE( 214)					_g = (_g + 1);
  HXDLIN( 214)					int i = (_g - 1);
  HXLINE( 216)					this->iconArray->__get(i).StaticCast<  ::HealthIcon >()->set_alpha(( (Float)(0) ));
              				}
              			}
  HXLINE( 219)			if ((this->iconArray->length > 0)) {
  HXLINE( 220)				this->iconArray->__get(this->curSelected).StaticCast<  ::HealthIcon >()->set_alpha(( (Float)(1) ));
              			}
              		}
  HXLINE( 223)		if (!(this->selectedSomethin)) {
  HXLINE( 225)			bool _hx_tmp;
  HXDLIN( 225)			bool _hx_tmp1;
  HXDLIN( 225)			if (::PlayerSettings_obj::player1->controls->_upP->check()) {
  HXLINE( 225)				_hx_tmp1 = !(this->diffselect);
              			}
              			else {
  HXLINE( 225)				_hx_tmp1 = false;
              			}
  HXDLIN( 225)			if (_hx_tmp1) {
  HXLINE( 225)				_hx_tmp = (::DokiFreeplayState_obj::curPage != 3);
              			}
              			else {
  HXLINE( 225)				_hx_tmp = false;
              			}
  HXDLIN( 225)			if (_hx_tmp) {
  HXLINE( 227)				bool _hx_tmp;
  HXDLIN( 227)				bool _hx_tmp1;
  HXDLIN( 227)				if ((::DokiFreeplayState_obj::curPage == 1)) {
  HXLINE( 227)					_hx_tmp1 = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("monibeaten",3c,53,44,8f),::hx::paccDynamic)) ));
              				}
              				else {
  HXLINE( 227)					_hx_tmp1 = false;
              				}
  HXDLIN( 227)				if (!(_hx_tmp1)) {
  HXLINE( 227)					if ((::DokiFreeplayState_obj::curPage == 2)) {
  HXLINE( 227)						_hx_tmp = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("extra2beaten",81,0c,3e,cc),::hx::paccDynamic)) ));
              					}
              					else {
  HXLINE( 227)						_hx_tmp = false;
              					}
              				}
              				else {
  HXLINE( 227)					_hx_tmp = true;
              				}
  HXDLIN( 227)				if (!(_hx_tmp)) {
  HXLINE( 232)					 ::flixel::_hx_system::frontEnds::SoundFrontEnd _hx_tmp = ::flixel::FlxG_obj::sound;
  HXDLIN( 232)					_hx_tmp->play(::Paths_obj::sound(HX_("scrollMenu",4c,d4,18,06),null()),null(),null(),null(),null(),null());
  HXLINE( 233)					this->changeItem(-1);
              				}
              			}
  HXLINE( 237)			bool _hx_tmp2;
  HXDLIN( 237)			bool _hx_tmp3;
  HXDLIN( 237)			if (::PlayerSettings_obj::player1->controls->_downP->check()) {
  HXLINE( 237)				_hx_tmp3 = !(this->diffselect);
              			}
              			else {
  HXLINE( 237)				_hx_tmp3 = false;
              			}
  HXDLIN( 237)			if (_hx_tmp3) {
  HXLINE( 237)				_hx_tmp2 = (::DokiFreeplayState_obj::curPage != 3);
              			}
              			else {
  HXLINE( 237)				_hx_tmp2 = false;
              			}
  HXDLIN( 237)			if (_hx_tmp2) {
  HXLINE( 239)				bool _hx_tmp;
  HXDLIN( 239)				bool _hx_tmp1;
  HXDLIN( 239)				if ((::DokiFreeplayState_obj::curPage == 1)) {
  HXLINE( 239)					_hx_tmp1 = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("monibeaten",3c,53,44,8f),::hx::paccDynamic)) ));
              				}
              				else {
  HXLINE( 239)					_hx_tmp1 = false;
              				}
  HXDLIN( 239)				if (!(_hx_tmp1)) {
  HXLINE( 239)					if ((::DokiFreeplayState_obj::curPage == 2)) {
  HXLINE( 239)						_hx_tmp = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("extra2beaten",81,0c,3e,cc),::hx::paccDynamic)) ));
              					}
              					else {
  HXLINE( 239)						_hx_tmp = false;
              					}
              				}
              				else {
  HXLINE( 239)					_hx_tmp = true;
              				}
  HXDLIN( 239)				if (!(_hx_tmp)) {
  HXLINE( 244)					 ::flixel::_hx_system::frontEnds::SoundFrontEnd _hx_tmp = ::flixel::FlxG_obj::sound;
  HXDLIN( 244)					_hx_tmp->play(::Paths_obj::sound(HX_("scrollMenu",4c,d4,18,06),null()),null(),null(),null(),null(),null());
  HXLINE( 245)					this->changeItem(1);
              				}
              			}
  HXLINE( 249)			bool _hx_tmp4;
  HXDLIN( 249)			if (::PlayerSettings_obj::player1->controls->_leftP->check()) {
  HXLINE( 249)				_hx_tmp4 = !(this->diffselect);
              			}
              			else {
  HXLINE( 249)				_hx_tmp4 = false;
              			}
  HXDLIN( 249)			if (_hx_tmp4) {
  HXLINE( 252)				::flixel::addons::transition::FlxTransitionableState_obj::skipNextTransIn = true;
  HXLINE( 253)				::flixel::addons::transition::FlxTransitionableState_obj::skipNextTransOut = true;
  HXLINE( 254)				this->changePage(-1);
  HXLINE( 255)				{
  HXLINE( 255)					 ::flixel::FlxState nextState = ::LoadingState_obj::getNextState(( ( ::flixel::FlxState)( ::DokiFreeplayState_obj::__alloc( HX_CTX ,null(),null())) ),false);
  HXDLIN( 255)					if (::flixel::FlxG_obj::game->_state->switchTo(nextState)) {
  HXLINE( 255)						::flixel::FlxG_obj::game->_requestedState = nextState;
              					}
              				}
              			}
  HXLINE( 258)			bool _hx_tmp5;
  HXDLIN( 258)			if (::PlayerSettings_obj::player1->controls->_rightP->check()) {
  HXLINE( 258)				_hx_tmp5 = !(this->diffselect);
              			}
              			else {
  HXLINE( 258)				_hx_tmp5 = false;
              			}
  HXDLIN( 258)			if (_hx_tmp5) {
  HXLINE( 261)				::flixel::addons::transition::FlxTransitionableState_obj::skipNextTransIn = true;
  HXLINE( 262)				::flixel::addons::transition::FlxTransitionableState_obj::skipNextTransOut = true;
  HXLINE( 263)				this->changePage(1);
  HXLINE( 264)				{
  HXLINE( 264)					 ::flixel::FlxState nextState = ::LoadingState_obj::getNextState(( ( ::flixel::FlxState)( ::DokiFreeplayState_obj::__alloc( HX_CTX ,null(),null())) ),false);
  HXDLIN( 264)					if (::flixel::FlxG_obj::game->_state->switchTo(nextState)) {
  HXLINE( 264)						::flixel::FlxG_obj::game->_requestedState = nextState;
              					}
              				}
              			}
  HXLINE( 267)			if (::PlayerSettings_obj::player1->controls->_back->check()) {
  HXLINE( 269)				if (this->diffselect) {
  HXLINE( 272)					this->diff->set_visible(false);
  HXLINE( 273)					this->diffselect = false;
              				}
              				else {
  HXLINE( 275)					this->selectedSomethin = true;
  HXLINE( 276)					::DokiFreeplayState_obj::pageFlipped = false;
  HXLINE( 277)					::DokiFreeplayState_obj::curPage = 0;
  HXLINE( 278)					 ::flixel::_hx_system::frontEnds::SoundFrontEnd _hx_tmp = ::flixel::FlxG_obj::sound;
  HXDLIN( 278)					_hx_tmp->play(::Paths_obj::sound(HX_("cancelMenu",39,a4,43,b7),null()),null(),null(),null(),null(),null());
  HXLINE( 279)					{
  HXLINE( 279)						 ::flixel::FlxState nextState =  ::MainMenuState_obj::__alloc( HX_CTX ,null(),null());
  HXDLIN( 279)						if (::flixel::FlxG_obj::game->_state->switchTo(nextState)) {
  HXLINE( 279)							::flixel::FlxG_obj::game->_requestedState = nextState;
              						}
              					}
              				}
              			}
  HXLINE( 283)			bool _hx_tmp6;
  HXDLIN( 283)			if (::PlayerSettings_obj::player1->controls->_leftP->check()) {
  HXLINE( 283)				_hx_tmp6 = this->diffselect;
              			}
              			else {
  HXLINE( 283)				_hx_tmp6 = false;
              			}
  HXDLIN( 283)			if (_hx_tmp6) {
  HXLINE( 285)				 ::flixel::_hx_system::frontEnds::SoundFrontEnd _hx_tmp = ::flixel::FlxG_obj::sound;
  HXDLIN( 285)				_hx_tmp->play(::Paths_obj::sound(HX_("scrollMenu",4c,d4,18,06),null()),null(),null(),null(),null(),null());
  HXLINE( 286)				this->changeDiff(-1);
              			}
  HXLINE( 289)			bool _hx_tmp7;
  HXDLIN( 289)			if (::PlayerSettings_obj::player1->controls->_rightP->check()) {
  HXLINE( 289)				_hx_tmp7 = this->diffselect;
              			}
              			else {
  HXLINE( 289)				_hx_tmp7 = false;
              			}
  HXDLIN( 289)			if (_hx_tmp7) {
  HXLINE( 291)				 ::flixel::_hx_system::frontEnds::SoundFrontEnd _hx_tmp = ::flixel::FlxG_obj::sound;
  HXDLIN( 291)				_hx_tmp->play(::Paths_obj::sound(HX_("scrollMenu",4c,d4,18,06),null()),null(),null(),null(),null(),null());
  HXLINE( 292)				this->changeDiff(1);
              			}
  HXLINE( 295)			bool _hx_tmp8;
  HXDLIN( 295)			bool _hx_tmp9;
  HXDLIN( 295)			 ::flixel::input::keyboard::FlxKeyList _this = ( ( ::flixel::input::keyboard::FlxKeyList)(::flixel::FlxG_obj::keys->justPressed) );
  HXDLIN( 295)			if (_this->keyManager->checkStatus(55,_this->status)) {
  HXLINE( 295)				_hx_tmp9 = this->diffselect;
              			}
              			else {
  HXLINE( 295)				_hx_tmp9 = false;
              			}
  HXDLIN( 295)			if (_hx_tmp9) {
  HXLINE( 295)				_hx_tmp8 = ( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("unlockepip",d6,39,27,23),::hx::paccDynamic)) );
              			}
              			else {
  HXLINE( 295)				_hx_tmp8 = false;
              			}
  HXDLIN( 295)			if (_hx_tmp8) {
  HXLINE( 296)				this->loadSong(true);
              			}
  HXLINE( 298)			bool _hx_tmp10;
  HXDLIN( 298)			if (::PlayerSettings_obj::player1->controls->_accept->check()) {
  HXLINE( 298)				_hx_tmp10 = (this->songs->__get(this->curSelected).StaticCast<  ::SongMetadatatwo >()->songName.toLowerCase() == HX_("your reality",23,d6,ee,f3));
              			}
              			else {
  HXLINE( 298)				_hx_tmp10 = false;
              			}
  HXDLIN( 298)			if (_hx_tmp10) {
  HXLINE( 300)				this->curDifficulty = 1;
  HXLINE( 301)				this->startsong();
              			}
  HXLINE( 304)			bool _hx_tmp11;
  HXDLIN( 304)			if (::PlayerSettings_obj::player1->controls->_accept->check()) {
  HXLINE( 304)				_hx_tmp11 = (this->songs->__get(this->curSelected).StaticCast<  ::SongMetadatatwo >()->songName.toLowerCase() == HX_("epiphany",96,01,ad,7f));
              			}
              			else {
  HXLINE( 304)				_hx_tmp11 = false;
              			}
  HXDLIN( 304)			if (_hx_tmp11) {
  HXLINE( 307)				this->curDifficulty = 1;
  HXLINE( 308)				this->startsong();
              			}
  HXLINE( 311)			bool _hx_tmp12;
  HXDLIN( 311)			if (::PlayerSettings_obj::player1->controls->_accept->check()) {
  HXLINE( 312)				if ((this->songs->__get(this->curSelected).StaticCast<  ::SongMetadatatwo >()->songName.toLowerCase() != HX_("your reality",23,d6,ee,f3))) {
  HXLINE( 311)					_hx_tmp12 = (this->songs->__get(this->curSelected).StaticCast<  ::SongMetadatatwo >()->songName.toLowerCase() != HX_("epiphany",96,01,ad,7f));
              				}
              				else {
  HXLINE( 311)					_hx_tmp12 = false;
              				}
              			}
              			else {
  HXLINE( 311)				_hx_tmp12 = false;
              			}
  HXDLIN( 311)			if (_hx_tmp12) {
  HXLINE( 315)				bool _hx_tmp;
  HXDLIN( 315)				bool _hx_tmp1;
  HXDLIN( 315)				if ((::DokiFreeplayState_obj::curPage == 1)) {
  HXLINE( 315)					_hx_tmp1 = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("monibeaten",3c,53,44,8f),::hx::paccDynamic)) ));
              				}
              				else {
  HXLINE( 315)					_hx_tmp1 = false;
              				}
  HXDLIN( 315)				if (!(_hx_tmp1)) {
  HXLINE( 315)					if ((::DokiFreeplayState_obj::curPage == 2)) {
  HXLINE( 315)						_hx_tmp = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("extra2beaten",81,0c,3e,cc),::hx::paccDynamic)) ));
              					}
              					else {
  HXLINE( 315)						_hx_tmp = false;
              					}
              				}
              				else {
  HXLINE( 315)					_hx_tmp = true;
              				}
  HXDLIN( 315)				if (!(_hx_tmp)) {
  HXLINE( 320)					if (this->diffselect) {
  HXLINE( 330)						this->startsong();
              					}
              					else {
  HXLINE( 324)						 ::flixel::_hx_system::frontEnds::SoundFrontEnd _hx_tmp = ::flixel::FlxG_obj::sound;
  HXDLIN( 324)						_hx_tmp->play(::Paths_obj::sound(HX_("confirmMenu",bf,8e,fe,3c),null()),null(),null(),null(),null(),null());
  HXLINE( 325)						this->diff->set_visible(true);
  HXLINE( 326)						this->diffselect = true;
              					}
              				}
              			}
              		}
  HXLINE( 337)		if (::hx::IsNotNull( ::flixel::FlxG_obj::sound->music )) {
  HXLINE( 338)			::Conductor_obj::songPosition = ::flixel::FlxG_obj::sound->music->_time;
              		}
  HXLINE( 340)		this->super::update(elapsed);
  HXLINE( 341)		this->grpSongs->forEach( ::Dynamic(new _hx_Closure_0()),null());
              	}
  
  
  void DokiFreeplayState_obj::startsong(){
              		HX_BEGIN_LOCAL_FUNC_S1(::hx::LocalFunc,_hx_Closure_3, ::DokiFreeplayState,_gthis) HXARGC(1)
              		void _hx_run( ::flixel::FlxSprite spr){
              			HX_GC_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_357_startsong)
  HXLINE( 357)			if ((_gthis->curSelected != spr->ID)) {
              				HX_BEGIN_LOCAL_FUNC_S1(::hx::LocalFunc,_hx_Closure_0, ::flixel::FlxSprite,spr) HXARGC(1)
              				void _hx_run( ::flixel::tweens::FlxTween twn){
              					HX_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_363_startsong)
  HXLINE( 363)					spr->kill();
              				}
              				HX_END_LOCAL_FUNC1((void))
  
  HXLINE( 359)				::flixel::tweens::FlxTween_obj::tween(spr, ::Dynamic(::hx::Anon_obj::Create(1)
              					->setFixed(0,HX_("alpha",5e,a7,96,21),0)),((Float)1.3), ::Dynamic(::hx::Anon_obj::Create(2)
              					->setFixed(0,HX_("ease",ee,8b,0c,43),::flixel::tweens::FlxEase_obj::quadOut_dyn())
              					->setFixed(1,HX_("onComplete",f8,d4,7e,5d), ::Dynamic(new _hx_Closure_0(spr)))));
              			}
              			else {
  HXLINE( 369)				if (( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("flashing",32,85,e8,99),::hx::paccDynamic)) )) {
              					HX_BEGIN_LOCAL_FUNC_S1(::hx::LocalFunc,_hx_Closure_1, ::DokiFreeplayState,_gthis) HXARGC(1)
              					void _hx_run( ::flixel::effects::FlxFlicker flick){
              						HX_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_373_startsong)
  HXLINE( 373)						_gthis->loadSong(null());
              					}
              					HX_END_LOCAL_FUNC1((void))
  
  HXLINE( 371)					::flixel::effects::FlxFlicker_obj::flicker(spr,1,((Float)0.06),false,false, ::Dynamic(new _hx_Closure_1(_gthis)),null());
              				}
              				else {
              					HX_BEGIN_LOCAL_FUNC_S1(::hx::LocalFunc,_hx_Closure_2, ::DokiFreeplayState,_gthis) HXARGC(1)
              					void _hx_run( ::flixel::util::FlxTimer tmr){
              						HX_GC_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_380_startsong)
  HXLINE( 380)						_gthis->loadSong(null());
              					}
              					HX_END_LOCAL_FUNC1((void))
  
  HXLINE( 378)					 ::flixel::util::FlxTimer_obj::__alloc( HX_CTX ,null())->start(1, ::Dynamic(new _hx_Closure_2(_gthis)),null());
              				}
              			}
              		}
              		HX_END_LOCAL_FUNC1((void))
  
              	HX_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_348_startsong)
  HXDLIN( 348)		 ::DokiFreeplayState _gthis = ::hx::ObjectPtr<OBJ_>(this);
  HXLINE( 349)		::DokiFreeplayState_obj::pageFlipped = false;
  HXLINE( 350)		::DokiFreeplayState_obj::curPage = 0;
  HXLINE( 351)		this->selectedSomethin = true;
  HXLINE( 352)		 ::flixel::_hx_system::frontEnds::SoundFrontEnd _hx_tmp = ::flixel::FlxG_obj::sound;
  HXDLIN( 352)		_hx_tmp->play(::Paths_obj::sound(HX_("confirmMenu",bf,8e,fe,3c),null()),null(),null(),null(),null(),null());
  HXLINE( 353)		 ::flixel::FlxSprite fh = this->menu_character;
  HXDLIN( 353)		fh->set_y((fh->y - ( (Float)(31) )));
  HXLINE( 354)		this->menu_character->animation->play(HX_("pop_off",81,d2,01,4f),null(),null(),null());
  HXLINE( 355)		this->grpSongs->forEach( ::Dynamic(new _hx_Closure_3(_gthis)),null());
              	}
  
  
  HX_DEFINE_DYNAMIC_FUNC0(DokiFreeplayState_obj,startsong,(void))
  
  void DokiFreeplayState_obj::loadSong(::hx::Null< bool >  __o_isCharting){
              		bool isCharting = __o_isCharting.Default(false);
              	HX_GC_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_388_loadSong)
  HXLINE( 389)		::String poop = this->songs->__get(this->curSelected).StaticCast<  ::SongMetadatatwo >()->songName.toLowerCase();
  HXDLIN( 389)		::String poop1 = ::Highscore_obj::formatSong(poop,this->curDifficulty);
  HXLINE( 391)		::haxe::Log_obj::trace(poop1,::hx::SourceInfo(HX_("source/DokiFreeplayState.hx",2a,33,76,01),391,HX_("DokiFreeplayState",88,f5,da,f8),HX_("loadSong",1b,f5,f7,bc)));
  HXLINE( 393)		::PlayState_obj::SONG = ::Song_obj::loadFromJson(poop1,this->songs->__get(this->curSelected).StaticCast<  ::SongMetadatatwo >()->songName.toLowerCase());
  HXLINE( 394)		::PlayState_obj::isStoryMode = false;
  HXLINE( 395)		::PlayState_obj::storyDifficulty = this->curDifficulty;
  HXLINE( 396)		::PlayState_obj::storyWeek = this->songs->__get(this->curSelected).StaticCast<  ::SongMetadatatwo >()->week;
  HXLINE( 397)		::haxe::Log_obj::trace((HX_("CUR WEEK",b4,9a,a0,36) + ::PlayState_obj::storyWeek),::hx::SourceInfo(HX_("source/DokiFreeplayState.hx",2a,33,76,01),397,HX_("DokiFreeplayState",88,f5,da,f8),HX_("loadSong",1b,f5,f7,bc)));
  HXLINE( 399)		if (isCharting) {
  HXLINE( 400)			 ::flixel::FlxState nextState = ::LoadingState_obj::getNextState(( ( ::flixel::FlxState)( ::ChartingState_obj::__alloc( HX_CTX ,null(),null())) ),false);
  HXDLIN( 400)			if (::flixel::FlxG_obj::game->_state->switchTo(nextState)) {
  HXLINE( 400)				::flixel::FlxG_obj::game->_requestedState = nextState;
              			}
              		}
              		else {
  HXLINE( 402)			 ::flixel::FlxState nextState = ::LoadingState_obj::getNextState(( ( ::flixel::FlxState)( ::PlayState_obj::__alloc( HX_CTX ,null(),null())) ),false);
  HXDLIN( 402)			if (::flixel::FlxG_obj::game->_state->switchTo(nextState)) {
  HXLINE( 402)				::flixel::FlxG_obj::game->_requestedState = nextState;
              			}
              		}
              	}
  
  
  HX_DEFINE_DYNAMIC_FUNC1(DokiFreeplayState_obj,loadSong,(void))
  
  void DokiFreeplayState_obj::changeDiff(::hx::Null< int >  __o_change){
              		int change = __o_change.Default(0);
              	HX_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_406_changeDiff)
  HXLINE( 407)		 ::DokiFreeplayState _hx_tmp = ::hx::ObjectPtr<OBJ_>(this);
  HXDLIN( 407)		_hx_tmp->curDifficulty = (_hx_tmp->curDifficulty + change);
  HXLINE( 409)		if ((this->curDifficulty < 0)) {
  HXLINE( 410)			this->curDifficulty = 2;
              		}
  HXLINE( 411)		if ((this->curDifficulty > 2)) {
  HXLINE( 412)			this->curDifficulty = 0;
              		}
  HXLINE( 415)		this->intendedScore = ::Highscore_obj::getScore(this->songs->__get(this->curSelected).StaticCast<  ::SongMetadatatwo >()->songName,this->curDifficulty);
  HXLINE( 418)		switch((int)(this->curDifficulty)){
              			case (int)0: {
  HXLINE( 421)				this->diff->animation->play(HX_("easy",02,8c,0c,43),null(),null(),null());
              			}
              			break;
              			case (int)1: {
  HXLINE( 423)				this->diff->animation->play(HX_("normal",27,72,69,30),null(),null(),null());
              			}
              			break;
              			case (int)2: {
  HXLINE( 425)				this->diff->animation->play(HX_("hard",eb,2e,08,45),null(),null(),null());
              			}
              			break;
              		}
              	}
  
  
  HX_DEFINE_DYNAMIC_FUNC1(DokiFreeplayState_obj,changeDiff,(void))
  
  void DokiFreeplayState_obj::changeItem(::hx::Null< int >  __o_huh){
              		HX_BEGIN_LOCAL_FUNC_S1(::hx::LocalFunc,_hx_Closure_0, ::DokiFreeplayState,_gthis) HXARGC(1)
              		void _hx_run( ::flixel::FlxSprite spr){
              			HX_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_466_changeItem)
  HXLINE( 467)			spr->animation->play(HX_("idle",14,a7,b3,45),null(),null(),null());
  HXLINE( 469)			if ((spr->ID == _gthis->curSelected)) {
  HXLINE( 471)				spr->animation->play(HX_("selected",5b,2a,6d,b1),null(),null(),null());
              			}
  HXLINE( 474)			spr->updateHitbox();
              		}
              		HX_END_LOCAL_FUNC1((void))
  
              		int huh = __o_huh.Default(0);
              	HX_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_430_changeItem)
  HXDLIN( 430)		 ::DokiFreeplayState _gthis = ::hx::ObjectPtr<OBJ_>(this);
  HXLINE( 431)		 ::DokiFreeplayState _hx_tmp = ::hx::ObjectPtr<OBJ_>(this);
  HXDLIN( 431)		_hx_tmp->curSelected = (_hx_tmp->curSelected + huh);
  HXLINE( 433)		if ((this->curSelected >= this->songs->length)) {
  HXLINE( 434)			this->curSelected = 0;
              		}
  HXLINE( 435)		if ((this->curSelected < 0)) {
  HXLINE( 436)			this->curSelected = (this->songs->length - 1);
              		}
  HXLINE( 438)		bool _hx_tmp1;
  HXDLIN( 438)		bool _hx_tmp2;
  HXDLIN( 438)		if ((::DokiFreeplayState_obj::curPage == 1)) {
  HXLINE( 438)			_hx_tmp2 = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("monibeaten",3c,53,44,8f),::hx::paccDynamic)) ));
              		}
              		else {
  HXLINE( 438)			_hx_tmp2 = false;
              		}
  HXDLIN( 438)		if (!(_hx_tmp2)) {
  HXLINE( 438)			if ((::DokiFreeplayState_obj::curPage == 2)) {
  HXLINE( 438)				_hx_tmp1 = !(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("extra2beaten",81,0c,3e,cc),::hx::paccDynamic)) ));
              			}
              			else {
  HXLINE( 438)				_hx_tmp1 = false;
              			}
              		}
              		else {
  HXLINE( 438)			_hx_tmp1 = true;
              		}
  HXDLIN( 438)		if (_hx_tmp1) {
  HXLINE( 440)			::haxe::Log_obj::trace(HX_("look at me I am not beaten",2d,d3,80,76),::hx::SourceInfo(HX_("source/DokiFreeplayState.hx",2a,33,76,01),440,HX_("DokiFreeplayState",88,f5,da,f8),HX_("changeItem",a3,fa,08,20)));
              		}
              		else {
  HXLINE( 445)			this->intendedScore = ::Highscore_obj::getScore(this->songs->__get(this->curSelected).StaticCast<  ::SongMetadatatwo >()->songName,this->curDifficulty);
  HXLINE( 450)			 ::flixel::_hx_system::frontEnds::SoundFrontEnd _hx_tmp = ::flixel::FlxG_obj::sound;
  HXDLIN( 450)			::String result = (((HX_("songs:assets/songs/",c1,ed,e6,7e) + this->songs->__get(this->curSelected).StaticCast<  ::SongMetadatatwo >()->songName.toLowerCase()) + HX_("/Inst.",f9,6e,13,1c)) + HX_("ogg",4f,94,54,00));
  HXDLIN( 450)			::String _hx_tmp1;
  HXDLIN( 450)			if (::Paths_obj::doesSoundAssetExist(result)) {
  HXLINE( 450)				_hx_tmp1 = result;
              			}
              			else {
  HXLINE( 450)				_hx_tmp1 = null();
              			}
  HXDLIN( 450)			_hx_tmp->playMusic(_hx_tmp1,0,null(),null());
  HXLINE( 452)			 ::Dynamic hmm;
  HXLINE( 453)			try {
              				HX_STACK_CATCHABLE( ::Dynamic, 0);
  HXLINE( 455)				hmm = ::DokiFreeplayState_obj::songData->get(this->songs->__get(this->curSelected).StaticCast<  ::SongMetadatatwo >()->songName)->__GetItem(this->curDifficulty);
  HXLINE( 456)				if (::hx::IsNotNull( hmm )) {
  HXLINE( 457)					::Conductor_obj::changeBPM(( (Float)(hmm->__Field(HX_("bpm",df,be,4a,00),::hx::paccDynamic)) ));
              				}
              			} catch( ::Dynamic _hx_e) {
              				if (_hx_e.IsClass<  ::Dynamic >() ){
              					HX_STACK_BEGIN_CATCH
              					 ::Dynamic _g = _hx_e;
              				}
              				else {
              					HX_STACK_DO_THROW(_hx_e);
              				}
              			}
              		}
  HXLINE( 465)		this->grpSongs->forEach( ::Dynamic(new _hx_Closure_0(_gthis)),null());
              	}
  
  
  HX_DEFINE_DYNAMIC_FUNC1(DokiFreeplayState_obj,changeItem,(void))
  
  void DokiFreeplayState_obj::changePage(::hx::Null< int >  __o_huh){
              		int huh = __o_huh.Default(0);
              	HX_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_479_changePage)
  HXLINE( 480)		::DokiFreeplayState_obj::pageFlipped = true;
  HXLINE( 481)		 ::Dynamic _hx_tmp = ::hx::ClassOf< ::DokiFreeplayState >();
  HXDLIN( 481)		::DokiFreeplayState_obj::curPage = (::DokiFreeplayState_obj::curPage + huh);
  HXLINE( 483)		if (!(( (bool)(::flixel::FlxG_obj::save->data->__Field(HX_("unlockepip",d6,39,27,23),::hx::paccDynamic)) ))) {
  HXLINE( 485)			if ((::DokiFreeplayState_obj::curPage >= 3)) {
  HXLINE( 486)				::DokiFreeplayState_obj::curPage = 0;
              			}
  HXLINE( 487)			if ((::DokiFreeplayState_obj::curPage < 0)) {
  HXLINE( 488)				::DokiFreeplayState_obj::curPage = 2;
              			}
              		}
              		else {
  HXLINE( 492)			if ((::DokiFreeplayState_obj::curPage >= 4)) {
  HXLINE( 493)				::DokiFreeplayState_obj::curPage = 0;
              			}
  HXLINE( 494)			if ((::DokiFreeplayState_obj::curPage < 0)) {
  HXLINE( 495)				::DokiFreeplayState_obj::curPage = 3;
              			}
              		}
              	}
  
  
  HX_DEFINE_DYNAMIC_FUNC1(DokiFreeplayState_obj,changePage,(void))
  
  int DokiFreeplayState_obj::curPage;
  
  bool DokiFreeplayState_obj::pageFlipped;
  
   ::haxe::ds::StringMap DokiFreeplayState_obj::songData;
  
  void DokiFreeplayState_obj::loadDiff(int diff,::String name,::Array< ::Dynamic> array){
              	HX_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_50_loadDiff)
  HXDLIN(  50)		try {
              			HX_STACK_CATCHABLE( ::Dynamic, 0);
  HXLINE(  52)			array->push(::Song_obj::loadFromJson(::Highscore_obj::formatSong(name,diff),name));
              		} catch( ::Dynamic _hx_e) {
              			if (_hx_e.IsClass<  ::Dynamic >() ){
              				HX_STACK_BEGIN_CATCH
              				 ::Dynamic _g = _hx_e;
              			}
              			else {
              				HX_STACK_DO_THROW(_hx_e);
              			}
              		}
              	}
  
  
  STATIC_HX_DEFINE_DYNAMIC_FUNC3(DokiFreeplayState_obj,loadDiff,(void))
  
  
  ::hx::ObjectPtr< DokiFreeplayState_obj > DokiFreeplayState_obj::__new( ::flixel::addons::transition::TransitionData TransIn, ::flixel::addons::transition::TransitionData TransOut) {
  	::hx::ObjectPtr< DokiFreeplayState_obj > __this = new DokiFreeplayState_obj();
  	__this->__construct(TransIn,TransOut);
  	return __this;
  }
  
  ::hx::ObjectPtr< DokiFreeplayState_obj > DokiFreeplayState_obj::__alloc(::hx::Ctx *_hx_ctx, ::flixel::addons::transition::TransitionData TransIn, ::flixel::addons::transition::TransitionData TransOut) {
  	DokiFreeplayState_obj *__this = (DokiFreeplayState_obj*)(::hx::Ctx::alloc(_hx_ctx, sizeof(DokiFreeplayState_obj), true, "DokiFreeplayState"));
  	*(void **)__this = DokiFreeplayState_obj::_hx_vtable;
  	__this->__construct(TransIn,TransOut);
  	return __this;
  }
  
  DokiFreeplayState_obj::DokiFreeplayState_obj()
  {
  }
  
  void DokiFreeplayState_obj::__Mark(HX_MARK_PARAMS)
  {
  	HX_MARK_BEGIN_CLASS(DokiFreeplayState);
  	HX_MARK_MEMBER_NAME(songs,"songs");
  	HX_MARK_MEMBER_NAME(menu_character,"menu_character");
  	HX_MARK_MEMBER_NAME(selector,"selector");
  	HX_MARK_MEMBER_NAME(curSelected,"curSelected");
  	HX_MARK_MEMBER_NAME(curDifficulty,"curDifficulty");
  	HX_MARK_MEMBER_NAME(goku,"goku");
  	HX_MARK_MEMBER_NAME(diffselect,"diffselect");
  	HX_MARK_MEMBER_NAME(scoreText,"scoreText");
  	HX_MARK_MEMBER_NAME(diffText,"diffText");
  	HX_MARK_MEMBER_NAME(lerpScore,"lerpScore");
  	HX_MARK_MEMBER_NAME(intendedScore,"intendedScore");
  	HX_MARK_MEMBER_NAME(diff,"diff");
  	HX_MARK_MEMBER_NAME(bg,"bg");
  	HX_MARK_MEMBER_NAME(grpSongs,"grpSongs");
  	HX_MARK_MEMBER_NAME(curPlaying,"curPlaying");
  	HX_MARK_MEMBER_NAME(iconArray,"iconArray");
  	HX_MARK_MEMBER_NAME(selectedSomethin,"selectedSomethin");
  	 ::MusicBeatState_obj::__Mark(HX_MARK_ARG);
  	HX_MARK_END_CLASS();
  }
  
  void DokiFreeplayState_obj::__Visit(HX_VISIT_PARAMS)
  {
  	HX_VISIT_MEMBER_NAME(songs,"songs");
  	HX_VISIT_MEMBER_NAME(menu_character,"menu_character");
  	HX_VISIT_MEMBER_NAME(selector,"selector");
  	HX_VISIT_MEMBER_NAME(curSelected,"curSelected");
  	HX_VISIT_MEMBER_NAME(curDifficulty,"curDifficulty");
  	HX_VISIT_MEMBER_NAME(goku,"goku");
  	HX_VISIT_MEMBER_NAME(diffselect,"diffselect");
  	HX_VISIT_MEMBER_NAME(scoreText,"scoreText");
  	HX_VISIT_MEMBER_NAME(diffText,"diffText");
  	HX_VISIT_MEMBER_NAME(lerpScore,"lerpScore");
  	HX_VISIT_MEMBER_NAME(intendedScore,"intendedScore");
  	HX_VISIT_MEMBER_NAME(diff,"diff");
  	HX_VISIT_MEMBER_NAME(bg,"bg");
  	HX_VISIT_MEMBER_NAME(grpSongs,"grpSongs");
  	HX_VISIT_MEMBER_NAME(curPlaying,"curPlaying");
  	HX_VISIT_MEMBER_NAME(iconArray,"iconArray");
  	HX_VISIT_MEMBER_NAME(selectedSomethin,"selectedSomethin");
  	 ::MusicBeatState_obj::__Visit(HX_VISIT_ARG);
  }
  
  ::hx::Val DokiFreeplayState_obj::__Field(const ::String &inName,::hx::PropertyAccess inCallProp)
  {
  	switch(inName.length) {
  	case 2:
  		if (HX_FIELD_EQ(inName,"bg") ) { return ::hx::Val( bg ); }
  		break;
  	case 4:
  		if (HX_FIELD_EQ(inName,"goku") ) { return ::hx::Val( goku ); }
  		if (HX_FIELD_EQ(inName,"diff") ) { return ::hx::Val( diff ); }
  		break;
  	case 5:
  		if (HX_FIELD_EQ(inName,"songs") ) { return ::hx::Val( songs ); }
  		break;
  	case 6:
  		if (HX_FIELD_EQ(inName,"create") ) { return ::hx::Val( create_dyn() ); }
  		if (HX_FIELD_EQ(inName,"update") ) { return ::hx::Val( update_dyn() ); }
  		break;
  	case 7:
  		if (HX_FIELD_EQ(inName,"addSong") ) { return ::hx::Val( addSong_dyn() ); }
  		break;
  	case 8:
  		if (HX_FIELD_EQ(inName,"selector") ) { return ::hx::Val( selector ); }
  		if (HX_FIELD_EQ(inName,"diffText") ) { return ::hx::Val( diffText ); }
  		if (HX_FIELD_EQ(inName,"grpSongs") ) { return ::hx::Val( grpSongs ); }
  		if (HX_FIELD_EQ(inName,"loadSong") ) { return ::hx::Val( loadSong_dyn() ); }
  		break;
  	case 9:
  		if (HX_FIELD_EQ(inName,"scoreText") ) { return ::hx::Val( scoreText ); }
  		if (HX_FIELD_EQ(inName,"lerpScore") ) { return ::hx::Val( lerpScore ); }
  		if (HX_FIELD_EQ(inName,"iconArray") ) { return ::hx::Val( iconArray ); }
  		if (HX_FIELD_EQ(inName,"startsong") ) { return ::hx::Val( startsong_dyn() ); }
  		break;
  	case 10:
  		if (HX_FIELD_EQ(inName,"diffselect") ) { return ::hx::Val( diffselect ); }
  		if (HX_FIELD_EQ(inName,"curPlaying") ) { return ::hx::Val( curPlaying ); }
  		if (HX_FIELD_EQ(inName,"changeDiff") ) { return ::hx::Val( changeDiff_dyn() ); }
  		if (HX_FIELD_EQ(inName,"changeItem") ) { return ::hx::Val( changeItem_dyn() ); }
  		if (HX_FIELD_EQ(inName,"changePage") ) { return ::hx::Val( changePage_dyn() ); }
  		break;
  	case 11:
  		if (HX_FIELD_EQ(inName,"curSelected") ) { return ::hx::Val( curSelected ); }
  		break;
  	case 13:
  		if (HX_FIELD_EQ(inName,"curDifficulty") ) { return ::hx::Val( curDifficulty ); }
  		if (HX_FIELD_EQ(inName,"intendedScore") ) { return ::hx::Val( intendedScore ); }
  		break;
  	case 14:
  		if (HX_FIELD_EQ(inName,"menu_character") ) { return ::hx::Val( menu_character ); }
  		break;
  	case 16:
  		if (HX_FIELD_EQ(inName,"selectedSomethin") ) { return ::hx::Val( selectedSomethin ); }
  	}
  	return super::__Field(inName,inCallProp);
  }
  
  bool DokiFreeplayState_obj::__GetStatic(const ::String &inName, Dynamic &outValue, ::hx::PropertyAccess inCallProp)
  {
  	switch(inName.length) {
  	case 7:
  		if (HX_FIELD_EQ(inName,"curPage") ) { outValue = ( curPage ); return true; }
  		break;
  	case 8:
  		if (HX_FIELD_EQ(inName,"songData") ) { outValue = ( songData ); return true; }
  		if (HX_FIELD_EQ(inName,"loadDiff") ) { outValue = loadDiff_dyn(); return true; }
  		break;
  	case 11:
  		if (HX_FIELD_EQ(inName,"pageFlipped") ) { outValue = ( pageFlipped ); return true; }
  	}
  	return false;
  }
  
  ::hx::Val DokiFreeplayState_obj::__SetField(const ::String &inName,const ::hx::Val &inValue,::hx::PropertyAccess inCallProp)
  {
  	switch(inName.length) {
  	case 2:
  		if (HX_FIELD_EQ(inName,"bg") ) { bg=inValue.Cast<  ::flixel::FlxSprite >(); return inValue; }
  		break;
  	case 4:
  		if (HX_FIELD_EQ(inName,"goku") ) { goku=inValue.Cast< bool >(); return inValue; }
  		if (HX_FIELD_EQ(inName,"diff") ) { diff=inValue.Cast<  ::flixel::FlxSprite >(); return inValue; }
  		break;
  	case 5:
  		if (HX_FIELD_EQ(inName,"songs") ) { songs=inValue.Cast< ::Array< ::Dynamic> >(); return inValue; }
  		break;
  	case 8:
  		if (HX_FIELD_EQ(inName,"selector") ) { selector=inValue.Cast<  ::flixel::text::FlxText >(); return inValue; }
  		if (HX_FIELD_EQ(inName,"diffText") ) { diffText=inValue.Cast<  ::flixel::text::FlxText >(); return inValue; }
  		if (HX_FIELD_EQ(inName,"grpSongs") ) { grpSongs=inValue.Cast<  ::flixel::group::FlxTypedGroup >(); return inValue; }
  		break;
  	case 9:
  		if (HX_FIELD_EQ(inName,"scoreText") ) { scoreText=inValue.Cast<  ::flixel::text::FlxText >(); return inValue; }
  		if (HX_FIELD_EQ(inName,"lerpScore") ) { lerpScore=inValue.Cast< int >(); return inValue; }
  		if (HX_FIELD_EQ(inName,"iconArray") ) { iconArray=inValue.Cast< ::Array< ::Dynamic> >(); return inValue; }
  		break;
  	case 10:
  		if (HX_FIELD_EQ(inName,"diffselect") ) { diffselect=inValue.Cast< bool >(); return inValue; }
  		if (HX_FIELD_EQ(inName,"curPlaying") ) { curPlaying=inValue.Cast< bool >(); return inValue; }
  		break;
  	case 11:
  		if (HX_FIELD_EQ(inName,"curSelected") ) { curSelected=inValue.Cast< int >(); return inValue; }
  		break;
  	case 13:
  		if (HX_FIELD_EQ(inName,"curDifficulty") ) { curDifficulty=inValue.Cast< int >(); return inValue; }
  		if (HX_FIELD_EQ(inName,"intendedScore") ) { intendedScore=inValue.Cast< int >(); return inValue; }
  		break;
  	case 14:
  		if (HX_FIELD_EQ(inName,"menu_character") ) { menu_character=inValue.Cast<  ::flixel::FlxSprite >(); return inValue; }
  		break;
  	case 16:
  		if (HX_FIELD_EQ(inName,"selectedSomethin") ) { selectedSomethin=inValue.Cast< bool >(); return inValue; }
  	}
  	return super::__SetField(inName,inValue,inCallProp);
  }
  
  bool DokiFreeplayState_obj::__SetStatic(const ::String &inName,Dynamic &ioValue,::hx::PropertyAccess inCallProp)
  {
  	switch(inName.length) {
  	case 7:
  		if (HX_FIELD_EQ(inName,"curPage") ) { curPage=ioValue.Cast< int >(); return true; }
  		break;
  	case 8:
  		if (HX_FIELD_EQ(inName,"songData") ) { songData=ioValue.Cast<  ::haxe::ds::StringMap >(); return true; }
  		break;
  	case 11:
  		if (HX_FIELD_EQ(inName,"pageFlipped") ) { pageFlipped=ioValue.Cast< bool >(); return true; }
  	}
  	return false;
  }
  
  void DokiFreeplayState_obj::__GetFields(Array< ::String> &outFields)
  {
  	outFields->push(HX_("songs",fe,36,c7,80));
  	outFields->push(HX_("menu_character",c9,79,1a,2c));
  	outFields->push(HX_("selector",1f,33,6d,b1));
  	outFields->push(HX_("curSelected",fb,eb,ab,32));
  	outFields->push(HX_("curDifficulty",db,b7,38,a7));
  	outFields->push(HX_("goku",d2,91,69,44));
  	outFields->push(HX_("diffselect",c1,c8,f4,67));
  	outFields->push(HX_("scoreText",1f,7d,bd,dc));
  	outFields->push(HX_("diffText",52,3b,1b,21));
  	outFields->push(HX_("lerpScore",5b,81,4d,e7));
  	outFields->push(HX_("intendedScore",a7,fd,7c,89));
  	outFields->push(HX_("diff",05,5c,69,42));
  	outFields->push(HX_("bg",c5,55,00,00));
  	outFields->push(HX_("grpSongs",d9,dc,c7,63));
  	outFields->push(HX_("curPlaying",ce,61,01,95));
  	outFields->push(HX_("iconArray",60,3f,53,5f));
  	outFields->push(HX_("selectedSomethin",c8,ec,fb,99));
  	super::__GetFields(outFields);
  };
  
  #ifdef HXCPP_SCRIPTABLE
  static ::hx::StorageInfo DokiFreeplayState_obj_sMemberStorageInfo[] = {
  	{::hx::fsObject /* ::Array< ::Dynamic> */ ,(int)offsetof(DokiFreeplayState_obj,songs),HX_("songs",fe,36,c7,80)},
  	{::hx::fsObject /*  ::flixel::FlxSprite */ ,(int)offsetof(DokiFreeplayState_obj,menu_character),HX_("menu_character",c9,79,1a,2c)},
  	{::hx::fsObject /*  ::flixel::text::FlxText */ ,(int)offsetof(DokiFreeplayState_obj,selector),HX_("selector",1f,33,6d,b1)},
  	{::hx::fsInt,(int)offsetof(DokiFreeplayState_obj,curSelected),HX_("curSelected",fb,eb,ab,32)},
  	{::hx::fsInt,(int)offsetof(DokiFreeplayState_obj,curDifficulty),HX_("curDifficulty",db,b7,38,a7)},
  	{::hx::fsBool,(int)offsetof(DokiFreeplayState_obj,goku),HX_("goku",d2,91,69,44)},
  	{::hx::fsBool,(int)offsetof(DokiFreeplayState_obj,diffselect),HX_("diffselect",c1,c8,f4,67)},
  	{::hx::fsObject /*  ::flixel::text::FlxText */ ,(int)offsetof(DokiFreeplayState_obj,scoreText),HX_("scoreText",1f,7d,bd,dc)},
  	{::hx::fsObject /*  ::flixel::text::FlxText */ ,(int)offsetof(DokiFreeplayState_obj,diffText),HX_("diffText",52,3b,1b,21)},
  	{::hx::fsInt,(int)offsetof(DokiFreeplayState_obj,lerpScore),HX_("lerpScore",5b,81,4d,e7)},
  	{::hx::fsInt,(int)offsetof(DokiFreeplayState_obj,intendedScore),HX_("intendedScore",a7,fd,7c,89)},
  	{::hx::fsObject /*  ::flixel::FlxSprite */ ,(int)offsetof(DokiFreeplayState_obj,diff),HX_("diff",05,5c,69,42)},
  	{::hx::fsObject /*  ::flixel::FlxSprite */ ,(int)offsetof(DokiFreeplayState_obj,bg),HX_("bg",c5,55,00,00)},
  	{::hx::fsObject /*  ::flixel::group::FlxTypedGroup */ ,(int)offsetof(DokiFreeplayState_obj,grpSongs),HX_("grpSongs",d9,dc,c7,63)},
  	{::hx::fsBool,(int)offsetof(DokiFreeplayState_obj,curPlaying),HX_("curPlaying",ce,61,01,95)},
  	{::hx::fsObject /* ::Array< ::Dynamic> */ ,(int)offsetof(DokiFreeplayState_obj,iconArray),HX_("iconArray",60,3f,53,5f)},
  	{::hx::fsBool,(int)offsetof(DokiFreeplayState_obj,selectedSomethin),HX_("selectedSomethin",c8,ec,fb,99)},
  	{ ::hx::fsUnknown, 0, null()}
  };
  static ::hx::StaticInfo DokiFreeplayState_obj_sStaticStorageInfo[] = {
  	{::hx::fsInt,(void *) &DokiFreeplayState_obj::curPage,HX_("curPage",ef,4b,67,b5)},
  	{::hx::fsBool,(void *) &DokiFreeplayState_obj::pageFlipped,HX_("pageFlipped",b3,31,68,fa)},
  	{::hx::fsObject /*  ::haxe::ds::StringMap */ ,(void *) &DokiFreeplayState_obj::songData,HX_("songData",9f,b4,3b,30)},
  	{ ::hx::fsUnknown, 0, null()}
  };
  #endif
  
  static ::String DokiFreeplayState_obj_sMemberFields[] = {
  	HX_("songs",fe,36,c7,80),
  	HX_("menu_character",c9,79,1a,2c),
  	HX_("selector",1f,33,6d,b1),
  	HX_("curSelected",fb,eb,ab,32),
  	HX_("curDifficulty",db,b7,38,a7),
  	HX_("goku",d2,91,69,44),
  	HX_("diffselect",c1,c8,f4,67),
  	HX_("scoreText",1f,7d,bd,dc),
  	HX_("diffText",52,3b,1b,21),
  	HX_("lerpScore",5b,81,4d,e7),
  	HX_("intendedScore",a7,fd,7c,89),
  	HX_("diff",05,5c,69,42),
  	HX_("bg",c5,55,00,00),
  	HX_("grpSongs",d9,dc,c7,63),
  	HX_("curPlaying",ce,61,01,95),
  	HX_("iconArray",60,3f,53,5f),
  	HX_("create",fc,66,0f,7c),
  	HX_("addSong",96,66,95,88),
  	HX_("selectedSomethin",c8,ec,fb,99),
  	HX_("update",09,86,05,87),
  	HX_("startsong",37,71,72,1a),
  	HX_("loadSong",1b,f5,f7,bc),
  	HX_("changeDiff",95,91,b2,1c),
  	HX_("changeItem",a3,fa,08,20),
  	HX_("changePage",df,0f,9b,24),
  	::String(null()) };
  
  static void DokiFreeplayState_obj_sMarkStatics(HX_MARK_PARAMS) {
  	HX_MARK_MEMBER_NAME(DokiFreeplayState_obj::curPage,"curPage");
  	HX_MARK_MEMBER_NAME(DokiFreeplayState_obj::pageFlipped,"pageFlipped");
  	HX_MARK_MEMBER_NAME(DokiFreeplayState_obj::songData,"songData");
  };
  
  #ifdef HXCPP_VISIT_ALLOCS
  static void DokiFreeplayState_obj_sVisitStatics(HX_VISIT_PARAMS) {
  	HX_VISIT_MEMBER_NAME(DokiFreeplayState_obj::curPage,"curPage");
  	HX_VISIT_MEMBER_NAME(DokiFreeplayState_obj::pageFlipped,"pageFlipped");
  	HX_VISIT_MEMBER_NAME(DokiFreeplayState_obj::songData,"songData");
  };
  
  #endif
  
  ::hx::Class DokiFreeplayState_obj::__mClass;
  
  static ::String DokiFreeplayState_obj_sStaticFields[] = {
  	HX_("curPage",ef,4b,67,b5),
  	HX_("pageFlipped",b3,31,68,fa),
  	HX_("songData",9f,b4,3b,30),
  	HX_("loadDiff",4b,2d,09,b3),
  	::String(null())
  };
  
  void DokiFreeplayState_obj::__register()
  {
  	DokiFreeplayState_obj _hx_dummy;
  	DokiFreeplayState_obj::_hx_vtable = *(void **)&_hx_dummy;
  	::hx::Static(__mClass) = new ::hx::Class_obj();
  	__mClass->mName = HX_("DokiFreeplayState",88,f5,da,f8);
  	__mClass->mSuper = &super::__SGetClass();
  	__mClass->mConstructEmpty = &__CreateEmpty;
  	__mClass->mConstructArgs = &__Create;
  	__mClass->mGetStaticField = &DokiFreeplayState_obj::__GetStatic;
  	__mClass->mSetStaticField = &DokiFreeplayState_obj::__SetStatic;
  	__mClass->mMarkFunc = DokiFreeplayState_obj_sMarkStatics;
  	__mClass->mStatics = ::hx::Class_obj::dupFunctions(DokiFreeplayState_obj_sStaticFields);
  	__mClass->mMembers = ::hx::Class_obj::dupFunctions(DokiFreeplayState_obj_sMemberFields);
  	__mClass->mCanCast = ::hx::TCanCast< DokiFreeplayState_obj >;
  #ifdef HXCPP_VISIT_ALLOCS
  	__mClass->mVisitFunc = DokiFreeplayState_obj_sVisitStatics;
  #endif
  #ifdef HXCPP_SCRIPTABLE
  	__mClass->mMemberStorageInfo = DokiFreeplayState_obj_sMemberStorageInfo;
  #endif
  #ifdef HXCPP_SCRIPTABLE
  	__mClass->mStaticStorageInfo = DokiFreeplayState_obj_sStaticStorageInfo;
  #endif
  	::hx::_hx_RegisterClass(__mClass->mName, __mClass);
  }
  
  void DokiFreeplayState_obj::__boot()
  {
  {
              	HX_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_28_boot)
  HXDLIN(  28)		curPage = 0;
              	}
  {
              	HX_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_29_boot)
  HXDLIN(  29)		pageFlipped = false;
              	}
  {
              	HX_GC_STACKFRAME(&_hx_pos_0c20f26e1a60cbc3_46_boot)
  HXDLIN(  46)		songData =  ::haxe::ds::StringMap_obj::__alloc( HX_CTX );
              	}
  }
  
  