QuestStruct.SubQuest mSubQuest = new QuestStruct.SubQuest();
                QuestStruct.Goto_SubQuest gSubQuest = new QuestStruct.Goto_SubQuest();
                QuestStruct.Get_SubQuest getSubQuest = new QuestStruct.Get_SubQuest();
                QuestStruct.Kill_SubQuest kSubQuest = new QuestStruct.Kill_SubQuest();
                QuestStruct.movement_SubQuest movSubQuest = new QuestStruct.movement_SubQuest();
                QuestStruct.dlglisten_SubQuest dlgSubQuest = new QuestStruct.dlglisten_SubQuest();

                mSubQuest.qtype = in.readByte();
                mSubQuest.m_subQuestType = in.readByte();
                mSubQuest.m_SubQuestID = in.readByte();
                mSubQuest.prevcnt = readShort(in);

                System.out.printf("qtype = %d\r\n", mSubQuest.qtype);
                System.out.printf("m_SubQuestType = %d\r\n", mSubQuest.m_subQuestType);
                System.out.printf("m_SubQuestID = %d\r\n", mSubQuest.m_SubQuestID);
                System.out.printf("prevcnt = %d\r\n", mSubQuest.prevcnt);

                if (mSubQuest.prevcnt > 0)
                    System.out.printf("\r\n---- Start prevcnt ----\r\n");


                for (int t = 0; t < mSubQuest.prevcnt; ++t) {
                    byte nSubid;
                    nSubid = in.readByte();
                    System.out.printf("subid = %d\r\n", nSubid);
                    //getchar();
                    mSubQuest.subids.add(nSubid);
                }
                if( mSubQuest.prevcnt > 0 )
                    System.out.printf("\r\n---- End prevcnt ----\r\n");
                mSubQuest.m_NextSubQuestID = in.readByte();
                mSubQuest.m_ParentQuestID = readInt(in);

                System.out.printf("m_NextSubQuestID = %d\r\n", mSubQuest.m_NextSubQuestID);
                System.out.printf("m_ParentQuestID = %d\r\n", mSubQuest.m_ParentQuestID);

                mSubQuest.m_subQuestTitle_Len = readInt(in);
                mSubQuest.m_subQuestTitle = getString(mSubQuest.m_subQuestTitle_Len, in);
                System.out.printf("m_SubQuestTitle = %s\r\n", mSubQuest.m_subQuestTitle);

                mSubQuest.m_immediateReward = in.readByte();
                mSubQuest.m_reward_xp = readInt(in);
                mSubQuest.m_reward_money = readInt(in);
                mSubQuest.m_iTimeLimit = readInt(in);


                System.out.printf( "m_immediateReward = %d\r\n", mSubQuest.m_immediateReward );
                System.out.printf( "m_reward_xp = %d\r\n", mSubQuest.m_reward_xp );
                System.out.printf( "m_reward_money = %d\r\n", mSubQuest.m_reward_money );
                System.out.printf( "m_iTimeLimit = %d\r\n", mSubQuest.m_iTimeLimit );