/// <summary> /// Creates a new SubRoutine instance. /// </summary> /// <param name="TID">ID of the track for this SubRoutine.</param> /// <param name="Address">Address of this SubRoutine in HIT.</param> /// <param name="Parent">The HIT that contains this SubRoutine.</param> public SubRoutine(uint TID, uint Address, Hit Parent) { HitParent = Parent; TrackID = TID; if (Address != 0) m_InstCounter = Address; else { m_Track = FileManager.GetTRK(TrackID); m_SoundID = m_Track.SoundID; SimpleMode = true; } m_Registers.Add(0x5, 0); //v1 m_Registers.Add(0x6, 0); //v2 m_Registers.Add(0x7, 0); //v3 m_Registers.Add(0x8, 0); //v4 m_Registers.Add(0x9, 0); //v5 m_Registers.Add(0xa, 0); //v6 m_Registers.Add(0xb, 0); //v7 m_Registers.Add(0xc, 0); //v8 m_Registers.Add(0xd, 0); //h1 m_Registers.Add(0xe, 0); //h2 m_Registers.Add(0xf, 0); //h3 m_Registers.Add(0x10, 0); //h4 m_LocalVars.Add(0x10, 0); //argstype m_LocalVars.Add(0x11, 0); //trackdatasource m_LocalVars.Add(0x12, 0); //patch m_LocalVars.Add(0x13, 0); //priority m_LocalVars.Add(0x14, 0); //vol m_LocalVars.Add(0x15, 0); //extvol m_LocalVars.Add(0x16, 0); //pan m_LocalVars.Add(0x17, 0); //pitch m_LocalVars.Add(0x18, 0); //paused m_LocalVars.Add(0x19, 0); //fxtype m_LocalVars.Add(0x1a, 0); //fxlevel m_LocalVars.Add(0x1b, 0); //duckpri m_LocalVars.Add(0x1c, 0); //Is3d m_LocalVars.Add(0x1d, 0); //IsHeadRelative //m_LocalVars.Add(0x1d, 0); //HeadRelative m_LocalVars.Add(0x1e, 0); //MinDistance m_LocalVars.Add(0x1f, 0); //MaxDistance m_LocalVars.Add(0x20, 0); //X m_LocalVars.Add(0x21, 0); //Y m_LocalVars.Add(0x22, 0); //Z m_LocalVars.Add(0x23, 0); //attack m_LocalVars.Add(0x24, 0); //decay m_LocalVars.Add(0x25, 0); //isStreamed //m_LocalVars.Add(0x25, 0); //stream m_LocalVars.Add(0x26, 0); //bufsizemult m_LocalVars.Add(0x27, 0); //fade_dest m_LocalVars.Add(0x28, 0); //fade_var m_LocalVars.Add(0x29, 0); //fade_speed m_LocalVars.Add(0x2a, 0); //fade_on m_LocalVars.Add(0x2b, 0); //Preload m_LocalVars.Add(0x2c, 0); //isplaying m_LocalVars.Add(0x2d, 0); //whattodowithupdate m_LocalVars.Add(0x2e, 0); //tempo m_LocalVars.Add(0x2f, 0); //target m_LocalVars.Add(0x30, 0); //ctrlgroup m_LocalVars.Add(0x31, 0); //interrupt m_LocalVars.Add(0x32, 0); //ispositioned m_LocalVars.Add(0x33, 0); //loop m_LocalVars.Add(0x34, 0); //source //m_LocalVars.Add(0x34, 0); //AppObjectId m_LocalVars.Add(0x35, 0); //callbackarg m_LocalVars.Add(0x36, 0); //pitchrandmin m_LocalVars.Add(0x37, 0); //pitchrandmax m_LocalVars.Add(0x38, 0); //spl m_LocalVars.Add(0x39, 0); //sem m_LocalVars.Add(0x3a, 0); //starttrackid m_LocalVars.Add(0x3b, 0); //endtrackid m_LocalVars.Add(0x3c, 0); //startdelay m_LocalVars.Add(0x3d, 0); //fadeinspeed m_LocalVars.Add(0x3e, 0); //fadeoutspeed m_LocalVars.Add(0x3f, 0); //hitlist m_LocalVars.Add(0x40, 0); //velocx m_LocalVars.Add(0x41, 0); //velocy m_LocalVars.Add(0x42, 0); //velocz m_LocalVars.Add(0x43, 0); //orientx m_LocalVars.Add(0x44, 0); //orienty m_LocalVars.Add(0x45, 0); //orientz m_ObjectVars.Add(0x271a, 0); //IsInsideViewFrustum m_ObjectVars.Add(0x271b, 0); //PositionX m_ObjectVars.Add(0x271c, 0); //PositionY m_ObjectVars.Add(0x271d, 0); //PositionZ m_ObjectVars.Add(0x271e, 0); //OrientationX m_ObjectVars.Add(0x271f, 0); //OrientationY m_ObjectVars.Add(0x2720, 0); //OrientationZ m_ObjectVars.Add(0x2721, 0); //ViewUpX m_ObjectVars.Add(0x2722, 0); //ViewUpY m_ObjectVars.Add(0x2723, 0); //ViewUpZ m_ObjectVars.Add(0x2725, 0); //IsObscured m_ObjectVars.Add(0x2726, 0); //Gender m_ObjectVars.Add(0x2727, 0); //Age m_ObjectVars.Add(0x2728, 0); //CookingSkill m_ObjectVars.Add(0x2729, 0); //CleaningSkill m_ObjectVars.Add(0x272a, 0); //CreativitySkill m_ObjectVars.Add(0x272b, 0); //RepairSkill m_ObjectVars.Add(0x272c, 0); //GardeningSkill m_ObjectVars.Add(0x272d, 0); //MusiccSkillSkill m_ObjectVars.Add(0x272e, 0); //LiteracySkill m_ObjectVars.Add(0x272f, 0); //LogicSkill m_ObjectVars.Add(0x2730, 0); //Mood m_ObjectVars.Add(0x2731, 0); //Niceness m_ObjectVars.Add(0x2732, 0); //Activeness m_ObjectVars.Add(0x2733, 0); //Generousness m_ObjectVars.Add(0x2734, 0); //Playfulness m_ObjectVars.Add(0x2735, 0); //Outgoingness m_ObjectVars.Add(0x2736, 0); //Neatness m_Args.Add(0x0, 0); //arg0 m_Args.Add(0x1, 0); //arg1 m_Args.Add(0x2, 0); //arg2 m_Args.Add(0x3, 0); //arg3 m_Args.Add(0x4, 0); //arg4 }
/// <summary> /// Sets a track for this Subroutine. /// </summary> /// <param name="Index">The ID of a Hitlist to load.</param> /// <returns>The ID of the track that was set.</returns> private uint SetTrack(uint Index) { m_Hitlist = FileManager.GetHLS(Index); m_Track = FileManager.GetTRK(m_Hitlist.SoundsAndHitlists[(int)Index]); m_SoundID = m_Track.SoundID; return m_Hitlist.SoundsAndHitlists[(int)Index]; }