Flow of control ===================================== "autolaunch level=Load_Sch game=career" script autolaunch script request_level level= ScriptRequestLevel -set Skate::m_requested_level script cleanup_before_loading_level ScriptCleanup -skate_mod->Cleanup( ) -skate_mod->GetGoalManager()->RemoveAllGoals() -particle_manager->DestroyAllSystems(); -ParticleFX::BloodSplatDestroy(); -SkateScript::ClearNodeNameHashTable(); -ParticleFX::DestroyTerrainEffectProperties(); -gfx_man->DisableFog(); -Script::KillStoppedScripts(); -sk3_sfx_manager->Reset( ); -sfx_manager->CleanUp( ); -ass_manager->UnloadAllTables( ); -Script::CSymbolTableEntry *p_sym=Script::LookUpSymbol("NodeArray"); -if (p_sym) SkateScript::UnloadQB(p_sym->mSourceFileNameChecksum); -SkateScript::UnloadQB(s_level_specific_qb); -ScriptUnloadAllLevelGeometry(NULL,NULL); -skate_mod->UnloadSkaters(); -Mem::Manager::sHandle().DeleteSkaterHeaps(); script load_requested_level level=load_sch script LoadLevel script PreLevelLoad -does nothing ScriptLaunchLevel level=load_sch -Skate::OpenLevel() -Script::RunScript(level_script); script Load_Sch script load_level level_sch -see below.... PostLevelLoad -does nothing gameflow StandardGameFlow skate_mod->mp_gameFlow->Reset( ScriptChecksum ) -set m_requestedScript Later... CGameFlow::Update() GameFlow_Startup -reset panel, sound stuff -maybe enter free skate in network game -choose game mode -Put skaters in world -Set screen mode -Run intro script -repeat: GameFlow_StartRun GameFlow_PlayRun GameFlow_WaitEnd -and other shit ===================================== ----------------------- "load_level level_sch" Level_Sch = { loading_screen = "loadscrn_generic" pre = "sch.pre" scnpre = "schscn.pre" Level = "sch" Sky = "sf2_Sky" qb = "levels\sch\sch.qb" colpre = "schcol.pre" level_qb = "levels\sch\sch_scripts.qb" startup_script = sch_Startup default_stats = 5 } Level_Sk4Ed = { loading_screen = "loadscrn_generic" pre = "sk4ed.pre" scnpre = "sk4edscn.pre" Level = "sk4ed" Sky = "can_Sky" qb = "levels\sk4ed\sk4ed.qb" colpre = "sk4edcol.pre" level_qb = "levels\sk4ed\sk4ed_scripts.qb" startup_script = Sk4Ed_Startup default_stats = 8 level_number = LevelNum_Lon park_editor } ----------------------- script load_level level_sch DisplayLoadingScreen *** Park editor yes *** script LoadLevelPreFile ScriptLoadPreFile *** Park editor, need special flag *** ScriptLoadScene scene= (for sky, then world) Nx::CTexDictManager::sLoadTextureDictionary(p_scene_name) Nx::CEngine::sLoadScene(p_scene_name, p_tex_dict); ScriptUnloadPreFile *** Park editor maybe *** script LoadLevelPreFile ScriptLoadCollision scene= p_scene->LoadCollision(p_scene_name) ScriptUnloadPreFile *** Park editor yes *** script LoadLevelPreFile
	ScriptLoadQB 
		SkateScript::LoadQB
			Script::LoadQB
				-load it into memory
				ParseQB()
				-restart all scripts referring to symbols
			-do symbol table processing
				-do following just for NodeArray symbol
				- can reference nodes by name or prefix
				CreateNodeNameHashTab
				GeneratePrefixInfo();
	*** don't call ScriptParseNodeArray for park editor, I don't think ***
	*** duplicate some functionality ***
	ScriptLoadNodeArray 
		SkateScript::LoadQB (see above)
		ScriptParseNodeArray
			-does a lot of stuff...
	LoadTerrain
		-doesn't seem to exist
	CC_Startup
		-loads some test camera stuff
	run  (sch_startup)       
	ScriptUnloadPreFile