public override void Init(StoC_0x81_ShowDialog pak)
 {
 }
 abstract public void Init(StoC_0x81_ShowDialog pak);
 public override void Init(StoC_0x81_ShowDialog pak)
 {
     message = pak.ReadString();                 // 0x0C+
 }
			public override void Init(StoC_0x81_ShowDialog pak)
			{
				questName = pak.ReadPascalString(); // 0x0c
				questDesc = pak.ReadPascalString();
				dialogLen = pak.ReadShort();
				message = pak.ReadString(dialogLen);
				questID = pak.ReadShort();
				goalsCount = pak.ReadByte();
				goals = new string[goalsCount];
				for (int i = 0; i < goalsCount; i++)
				{
#if SKIP_CR_IN_DESCRIPTION
					questLevel = pak.ReadByte(); // temporary used
					goals[i] = pak.ReadString(questLevel - 1); // 0x0A on end string
					pak.Skip(1);// skip 0x0A on end string
#else
					goals[i] = pak.ReadPascalString();
#endif
				}
				unk1_194 = pak.ReadShort();
				questLevel = pak.ReadByte();
				rewardGold = pak.ReadByte();
				rewardExp = pak.ReadByte();
				baseRewardsCount = pak.ReadByte();
				baseRewards = new StoC_0x02_InventoryUpdate.Item[baseRewardsCount];
				for (int i = 0; i < baseRewardsCount; i++)
				{
					StoC_0x02_InventoryUpdate.Item item = new StoC_0x02_InventoryUpdate.Item();
					item.unk1_1115 = pak.ReadShort();
					item.level = pak.ReadByte();

					item.value1 = pak.ReadByte();
					item.value2 = pak.ReadByte();

					item.hand = pak.ReadByte();
					byte temp = pak.ReadByte(); //WriteByte((byte) ((item.Type_Damage*64) + item.Object_Type));
					item.damageType = (byte)(temp >> 6);
					item.objectType = (byte)(temp & 0x3F);
					item.unk1_1112 = pak.ReadByte();
					item.weight = pak.ReadShort();
					item.condition = pak.ReadByte();
					item.durability = pak.ReadByte();
					item.quality = pak.ReadByte();
					item.bonus = pak.ReadByte();
					item.unk2_1112 = pak.ReadByte();
					item.model = pak.ReadShort();
					item.extension = pak.ReadByte();
					item.color = pak.ReadShort();
					item.flag = pak.ReadByte();
					if ((item.flag & 0x08) == 0x08)
					{
						item.effectIcon = pak.ReadShort();
						item.effectName = pak.ReadPascalString();
					}
					if ((item.flag & 0x10) == 0x10)
					{
						item.effectIcon2 = pak.ReadShort();
						item.effectName2 = pak.ReadPascalString();
					}
					item.effect = pak.ReadByte();
					item.name = pak.ReadPascalString();
					baseRewards[i] = item;
				}
				optionalRewardsChoiceMax = pak.ReadByte();
				optionalRewardsCount = pak.ReadByte();
				optionalRewards = new StoC_0x02_InventoryUpdate.Item[optionalRewardsCount];
				for (int i = 0; i < optionalRewardsCount; i++)
				{
					StoC_0x02_InventoryUpdate.Item item = new StoC_0x02_InventoryUpdate.Item();
					item.unk1_1115 = pak.ReadShort();
					item.level = pak.ReadByte();

					item.value1 = pak.ReadByte();
					item.value2 = pak.ReadByte();

					item.hand = pak.ReadByte();
					byte temp = pak.ReadByte(); //WriteByte((byte) ((item.Type_Damage*64) + item.Object_Type));
					item.damageType = (byte)(temp >> 6);
					item.objectType = (byte)(temp & 0x3F);
					item.unk1_1112 = pak.ReadByte();
					item.weight = pak.ReadShort();
					item.condition = pak.ReadByte();
					item.durability = pak.ReadByte();
					item.quality = pak.ReadByte();
					item.bonus = pak.ReadByte();
					item.unk2_1112 = pak.ReadByte();
					item.model = pak.ReadShort();
					item.extension = pak.ReadByte();
					item.color = pak.ReadShort();
					item.flag = pak.ReadByte();
					if ((item.flag & 0x08) == 0x08)
					{
						item.effectIcon = pak.ReadShort();
						item.effectName = pak.ReadPascalString();
					}
					if ((item.flag & 0x10) == 0x10)
					{
						item.effectIcon2 = pak.ReadShort();
						item.effectName2 = pak.ReadPascalString();
					}
					item.effect = pak.ReadByte();
					item.name = pak.ReadPascalString();
					optionalRewards[i] = item;
				}
			}
            public override void Init(StoC_0x81_ShowDialog pak)
            {
                questName  = pak.ReadPascalString();
                questDesc  = pak.ReadPascalString();
                dialogLen  = pak.ReadShort();
                message    = pak.ReadString(dialogLen);
                questID    = pak.ReadShort();
                goalsCount = pak.ReadByte();
                goals      = new string[goalsCount];
                for (int i = 0; i < goalsCount; i++)
                {
#if SKIP_CR_IN_DESCRIPTION
                    questLevel = pak.ReadByte();                 // temporary used
                    goals[i]   = pak.ReadString(questLevel - 1); // 0x0A on end string
                    pak.Skip(1);                                 // skip 0x0A on end string
#else
                    goals[i] = pak.ReadPascalString();
#endif
                }
                questLevel       = pak.ReadByte();
                rewardGold       = pak.ReadByte();
                rewardExp        = pak.ReadByte();
                baseRewardsCount = pak.ReadByte();
                baseRewards      = new StoC_0x02_InventoryUpdate.Item[baseRewardsCount];
                for (int i = 0; i < baseRewardsCount; i++)
                {
                    StoC_0x02_InventoryUpdate.Item item = new StoC_0x02_InventoryUpdate.Item();
                    item.level = pak.ReadByte();

                    item.value1 = pak.ReadByte();
                    item.value2 = pak.ReadByte();

                    item.hand = pak.ReadByte();
                    byte temp = pak.ReadByte();                     //WriteByte((byte) ((item.Type_Damage*64) + item.Object_Type));
                    item.damageType = (byte)(temp >> 6);
                    item.objectType = (byte)(temp & 0x3F);
                    item.weight     = pak.ReadShort();
                    item.condition  = pak.ReadByte();
                    item.durability = pak.ReadByte();
                    item.quality    = pak.ReadByte();
                    item.bonus      = pak.ReadByte();
                    item.model      = pak.ReadShort();
                    item.extension  = pak.ReadByte();
                    item.color      = pak.ReadShort();
                    item.flag       = pak.ReadByte();
                    if ((item.flag & 0x08) == 0x08)
                    {
                        item.effectIcon = pak.ReadShort();
                        item.effectName = pak.ReadPascalString();
                    }
                    if ((item.flag & 0x10) == 0x10)
                    {
                        item.effectIcon2 = pak.ReadShort();
                        item.effectName2 = pak.ReadPascalString();
                    }
                    item.effect    = pak.ReadByte();
                    item.name      = pak.ReadPascalString();
                    baseRewards[i] = item;
                }
                optionalRewardsChoiceMax = pak.ReadByte();
                optionalRewardsCount     = pak.ReadByte();
                optionalRewards          = new StoC_0x02_InventoryUpdate.Item[optionalRewardsCount];
                for (int i = 0; i < optionalRewardsCount; i++)
                {
                    StoC_0x02_InventoryUpdate.Item item = new StoC_0x02_InventoryUpdate.Item();
                    item.level = pak.ReadByte();

                    item.value1 = pak.ReadByte();
                    item.value2 = pak.ReadByte();

                    item.hand = pak.ReadByte();
                    byte temp = pak.ReadByte();                     //WriteByte((byte) ((item.Type_Damage*64) + item.Object_Type));
                    item.damageType = (byte)(temp >> 6);
                    item.objectType = (byte)(temp & 0x3F);
                    item.weight     = pak.ReadShort();
                    item.condition  = pak.ReadByte();
                    item.durability = pak.ReadByte();
                    item.quality    = pak.ReadByte();
                    item.bonus      = pak.ReadByte();
                    item.model      = pak.ReadShort();
                    item.extension  = pak.ReadByte();
                    item.color      = pak.ReadShort();
                    item.flag       = pak.ReadByte();
                    if ((item.flag & 0x08) == 0x08)
                    {
                        item.effectIcon = pak.ReadShort();
                        item.effectName = pak.ReadPascalString();
                    }
                    if ((item.flag & 0x10) == 0x10)
                    {
                        item.effectIcon2 = pak.ReadShort();
                        item.effectName2 = pak.ReadPascalString();
                    }
                    item.effect        = pak.ReadByte();
                    item.name          = pak.ReadPascalString();
                    optionalRewards[i] = item;
                }
            }
 public override void Init(StoC_0x81_ShowDialog pak)
 {
 }
 public override void Init(StoC_0x81_ShowDialog pak)
 {
     message = pak.ReadString(); // 0x0C+
 }
 public abstract void Init(StoC_0x81_ShowDialog pak);