using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x02000225 RID: 549
[Token(Token = "0x2000225")]
public class ScriptMode
{
	// Token: 0x06001593 RID: 5523 RVA: 0x00030C90 File Offset: 0x0002EE90
	[Token(Token = "0x6001593")]
	[Address(RVA = "0x5179A0", Offset = "0x5169A0", VA = "0x1805179A0")]
	public void Init()
	{
		NobetaAnimatorController animatorController = Game.GetPlayerManager().GetAnimatorController();
		this.g_PlayerAni = animatorController;
		PlayerCamera camera = Game.GetPlayerManager().GetCamera();
		this.g_CameraEff = camera;
		this.g_bSwitchScene = false;
		this.g_iSkipID = (int)((ulong)0L);
		this.g_iVoiceIndex = (int)((ulong)4294967294L);
	}

	// Token: 0x06001594 RID: 5524 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001594")]
	[Address(RVA = "0x51AEB0", Offset = "0x519EB0", VA = "0x18051AEB0")]
	public void Update(float fDeltaTime)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001595 RID: 5525 RVA: 0x00030CEC File Offset: 0x0002EEEC
	[Token(Token = "0x6001595")]
	[Address(RVA = "0x517FC0", Offset = "0x516FC0", VA = "0x180517FC0")]
	public void ReceiveConfirm()
	{
		int num = this.g_iStepMax;
		if (this.g_iStep >= num || this.g_bAutoStep)
		{
			return;
		}
		if (!this.g_bDialog)
		{
			Game.SetDialogArrowEnable(false);
			int num2 = this.g_iStep;
			num2++;
			this.g_iStep = num2;
			this.RunStep(num2);
			return;
		}
		string text = this.g_sDialogText;
		int stringLength = text.m_stringLength;
		int num3 = 0;
		string text2 = this.g_sDialogSpeaker;
		this.g_sDialogTextNum = stringLength;
		string text3 = text.Substring(num3, stringLength);
		Game.SetDialogText(text2, text3);
		this.g_bDialog = false;
		while (this.g_bAutoStep)
		{
		}
		Game.SetDialogArrowEnable(true);
	}

	// Token: 0x06001596 RID: 5526 RVA: 0x00030D8C File Offset: 0x0002EF8C
	[Token(Token = "0x6001596")]
	[Address(RVA = "0x51AE10", Offset = "0x519E10", VA = "0x18051AE10")]
	public void SkipScript()
	{
		int num = this.g_iSkipID;
		if (num > 1)
		{
			this.g_iStep = num;
			this.RunStep(num);
			return;
		}
	}

	// Token: 0x06001597 RID: 5527 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001597")]
	[Address(RVA = "0x5180F0", Offset = "0x5170F0", VA = "0x1805180F0")]
	public void RunStep(int iStep)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001598 RID: 5528 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001598")]
	[Address(RVA = "0x51AE30", Offset = "0x519E30", VA = "0x18051AE30")]
	private void UpdateDialogueContents(string[] content)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001599 RID: 5529 RVA: 0x00030DB4 File Offset: 0x0002EFB4
	[Token(Token = "0x6001599")]
	[Address(RVA = "0x517A60", Offset = "0x516A60", VA = "0x180517A60")]
	public bool LoadScript(LoadScript LS)
	{
		string scriptName = LS.ScriptName;
		string text = "Script/" + scriptName;
		SceneEvent[] @event = LS.Event;
		this.g_Event = @event;
		Transform[] camera = LS.Camera;
		this.g_Camera = camera;
		Transform[] playerPosition = LS.PlayerPosition;
		this.g_Position = playerPosition;
		CSVData csvdata = new CSVData(text);
		this.g_ScriptData = csvdata;
		CSVData csvdata2 = this.g_ScriptData;
		if (csvdata2.loadDataCompleted)
		{
			int columnLength = csvdata2.GetColumnLength();
			this.g_iStepMax = columnLength;
			if (columnLength > 1)
			{
				CSVData csvdata3 = this.g_ScriptData;
				int num = 0;
				int num2 = 0;
				string @string = csvdata3.GetString(num2, num);
				string text2 = this.g_sVersionText;
				if (!(@string != text2))
				{
					if (string.IsNullOrEmpty(LS.ScriptLanugageFileName))
					{
					}
					GameTextDataAdvance storyText = Game.GetStoryText(LS.ScriptLanugageFileName);
					this.dialogueText = storyText;
					this.g_iStep = (int)((ulong)1L);
					this.g_bStop = false;
					this.RunStep(1);
					return true;
				}
			}
		}
		Debug.LogError("無法讀取腳本:" + text);
		throw new NullReferenceException();
	}

	// Token: 0x0600159A RID: 5530 RVA: 0x00030EBC File Offset: 0x0002F0BC
	[Token(Token = "0x600159A")]
	[Address(RVA = "0x475600", Offset = "0x474600", VA = "0x180475600")]
	public void GetVoice(VoiceController Voice)
	{
		/*
An exception occurred when decompiling this method (0600159A)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void ScriptMode::GetVoice(VoiceController)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:VoiceController(ScriptMode::g_Voice, ldloc:ScriptMode(this), ldloc:VoiceController(Voice)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
	}

	// Token: 0x0600159B RID: 5531 RVA: 0x00030ED0 File Offset: 0x0002F0D0
	[Token(Token = "0x600159B")]
	[Address(RVA = "0x517990", Offset = "0x516990", VA = "0x180517990")]
	public bool GetIsSkip()
	{
		return this.g_iSkipID > 0;
	}

	// Token: 0x0600159C RID: 5532 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600159C")]
	[Address(RVA = "0x517CA0", Offset = "0x516CA0", VA = "0x180517CA0")]
	private float ParseFloat(string content)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600159D RID: 5533 RVA: 0x00030EE8 File Offset: 0x0002F0E8
	[Token(Token = "0x600159D")]
	[Address(RVA = "0x51B430", Offset = "0x51A430", VA = "0x18051B430")]
	public ScriptMode()
	{
	}

	// Token: 0x040020AD RID: 8365
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x40020AD")]
	private NobetaAnimatorController g_PlayerAni;

	// Token: 0x040020AE RID: 8366
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x40020AE")]
	private VoiceController g_Voice;

	// Token: 0x040020AF RID: 8367
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x40020AF")]
	private PlayerCamera g_CameraEff;

	// Token: 0x040020B0 RID: 8368
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x40020B0")]
	private SceneEvent[] g_Event;

	// Token: 0x040020B1 RID: 8369
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x40020B1")]
	private Transform[] g_Camera;

	// Token: 0x040020B2 RID: 8370
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x40020B2")]
	private Transform[] g_Position;

	// Token: 0x040020B3 RID: 8371
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x40020B3")]
	private CSVData g_ScriptData;

	// Token: 0x040020B4 RID: 8372
	[FieldOffset(Offset = "0x48")]
	[Token(Token = "0x40020B4")]
	private GameTextDataAdvance dialogueText;

	// Token: 0x040020B5 RID: 8373
	[FieldOffset(Offset = "0x50")]
	[Token(Token = "0x40020B5")]
	private int g_iStep;

	// Token: 0x040020B6 RID: 8374
	[FieldOffset(Offset = "0x54")]
	[Token(Token = "0x40020B6")]
	private int g_iStepMax;

	// Token: 0x040020B7 RID: 8375
	[FieldOffset(Offset = "0x58")]
	[Token(Token = "0x40020B7")]
	private bool g_bAutoStep;

	// Token: 0x040020B8 RID: 8376
	[FieldOffset(Offset = "0x5C")]
	[Token(Token = "0x40020B8")]
	private float g_fAutoStep;

	// Token: 0x040020B9 RID: 8377
	[FieldOffset(Offset = "0x60")]
	[Token(Token = "0x40020B9")]
	private bool g_bMove;

	// Token: 0x040020BA RID: 8378
	[FieldOffset(Offset = "0x64")]
	[Token(Token = "0x40020BA")]
	private int g_iMoveSpeed;

	// Token: 0x040020BB RID: 8379
	[FieldOffset(Offset = "0x68")]
	[Token(Token = "0x40020BB")]
	private Vector3 g_v3MovePosition;

	// Token: 0x040020BC RID: 8380
	[FieldOffset(Offset = "0x74")]
	[Token(Token = "0x40020BC")]
	private bool g_bDialog;

	// Token: 0x040020BD RID: 8381
	[FieldOffset(Offset = "0x78")]
	[Token(Token = "0x40020BD")]
	private string g_sDialogText;

	// Token: 0x040020BE RID: 8382
	[FieldOffset(Offset = "0x80")]
	[Token(Token = "0x40020BE")]
	private string g_sDialogSpeaker;

	// Token: 0x040020BF RID: 8383
	[FieldOffset(Offset = "0x88")]
	[Token(Token = "0x40020BF")]
	private int g_sDialogTextNum;

	// Token: 0x040020C0 RID: 8384
	[FieldOffset(Offset = "0x8C")]
	[Token(Token = "0x40020C0")]
	private float g_fDialogSpeed;

	// Token: 0x040020C1 RID: 8385
	[FieldOffset(Offset = "0x90")]
	[Token(Token = "0x40020C1")]
	private float g_fDialogSpeedVal;

	// Token: 0x040020C2 RID: 8386
	[FieldOffset(Offset = "0x98")]
	[Token(Token = "0x40020C2")]
	private NPCManage[] g_EnemySpeak;

	// Token: 0x040020C3 RID: 8387
	[FieldOffset(Offset = "0xA0")]
	[Token(Token = "0x40020C3")]
	private NPC g_NPCSpeak;

	// Token: 0x040020C4 RID: 8388
	[FieldOffset(Offset = "0xA8")]
	[Token(Token = "0x40020C4")]
	private int g_iVoiceIndex;

	// Token: 0x040020C5 RID: 8389
	[FieldOffset(Offset = "0xAC")]
	[Token(Token = "0x40020C5")]
	private int g_iSkipID;

	// Token: 0x040020C6 RID: 8390
	[FieldOffset(Offset = "0xB0")]
	[Token(Token = "0x40020C6")]
	private bool g_bSwitchScene;

	// Token: 0x040020C7 RID: 8391
	[FieldOffset(Offset = "0xB1")]
	[Token(Token = "0x40020C7")]
	private bool g_bStop;

	// Token: 0x040020C8 RID: 8392
	[FieldOffset(Offset = "0xB2")]
	[Token(Token = "0x40020C8")]
	private bool g_bAniSpeak;

	// Token: 0x040020C9 RID: 8393
	[FieldOffset(Offset = "0xB8")]
	[Token(Token = "0x40020C9")]
	private AudioSource g_asSpeakVoice;

	// Token: 0x040020CA RID: 8394
	[FieldOffset(Offset = "0xC0")]
	[Token(Token = "0x40020CA")]
	private string g_sVersionText = "V011";
}
