Ejemplo n.º 1
0
    /*private VigObject FUN_2BF44(ConfigContainer container, Type component)
     * {
     *  obj[currentID].flags = (uint)((configContainers[container].flag & 0x800) != 0 ? 1 : 0) << 4;
     *  obj[currentID].vr = configContainers[container].v3_2;
     *  obj[currentID].screen = configContainers[container].v3_1;
     *  obj[currentID].vData = this;
     *
     *  if ((configContainers[container].flag & 0x7FF) < 0x7FF)
     *  {
     *      //apply 3d model; not necessery since it's been applied from the inspector
     *  }
     *
     *  if (-1 < configContainers[container].colliderID)
     *  {
     *      //apply collider; not necessery since it's been applied from the inspector
     *  }
     *
     *  return obj[currentID];
     * }*/

    public VigObject FUN_2BF44(ConfigContainer container, Type component)
    {
        ushort    uVar2;
        VigObject oVar3;
        VigMesh   mVar4;

        GameObject obj = new GameObject();

        oVar3        = obj.AddComponent(component) as VigObject;
        uVar2        = container.flag;
        oVar3.flags  = (uint)((uVar2 & 0x800) != 0 ? 1 : 0) << 4;
        oVar3.vr     = container.v3_2;
        oVar3.screen = container.v3_1;
        oVar3.vData  = xobf;

        if ((uVar2 & 0x7ff) < 0x7ff)
        {
            mVar4       = xobf.FUN_1FD18(obj, (uint)(uVar2 & 0x7ff), true);
            oVar3.vMesh = mVar4;
        }

        if (-1 < container.colliderID)
        {
            VigCollider vCollider = xobf.cbbList[container.colliderID];
            oVar3.vCollider = new VigCollider(vCollider.buffer);
        }

        return(oVar3);
    }
Ejemplo n.º 2
0
    private static void FUN_1E78()
    {
        VigObject       oVar1;
        ConfigContainer ccVar2;
        LaunchRocket3   ppcVar3;
        VigCollider     pcVar4;
        int             iVar5;

        oVar1 = GameManager.instance.FUN_318D0(49);
        iVar5 = 0;

        if (oVar1 != null)
        {
            do
            {
                ccVar2 = oVar1.FUN_2C5F4((ushort)(iVar5 - 0x8000 & 0xffff));

                if (ccVar2 != null)
                {
                    GameObject obj = new GameObject();
                    ppcVar3 = obj.AddComponent <LaunchRocket3>();

                    if (ppcVar3 != null)
                    {
                        pcVar4 = null;

                        if (-1 < ccVar2.colliderID)
                        {
                            pcVar4 = new VigCollider(oVar1.vData.cbbList[ccVar2.colliderID].buffer);
                        }

                        ppcVar3.vCollider  = pcVar4;
                        ppcVar3.vTransform = GameManager.instance.FUN_2CEAC(oVar1, ccVar2);
                        ppcVar3.flags      = 0x182;
                        ppcVar3.type       = 3;
                        ppcVar3.FUN_305FC();
                        ppcVar3.DAT_58 = 0xd0000;
                        GameManager.instance.FUN_30CB0(ppcVar3, 180);
                    }
                }

                iVar5++;
            } while (iVar5 < 2);
        }
    }
Ejemplo n.º 3
0
    public override uint UpdateW(VigObject arg1, int arg2, int arg3)
    {
        sbyte           sVar1;
        int             iVar2;
        TileData        tVar2;
        VigObject       oVar2;
        VigCamera       cVar2;
        VigObject       oVar3;
        Spark           puVar4;
        VigObject       oVar5;
        int             iVar6;
        ConfigContainer ccVar6;
        VigCollider     cVar6;
        Vehicle         vVar7;
        VigCamera       cVar8;
        Vector3Int      local_18;

        switch (arg2)
        {
        case 18:
            if (arg3 != 0 && arg1.type == 8)
            {
                tVar2 = GameManager.instance.terrain.GetTileByPosition((uint)arg1.vTransform.position.x, (uint)arg1.vTransform.position.z);

                if (tVar2.DAT_10[3] == 1)
                {
                    GameObject obj = new GameObject();
                    puVar4 = obj.AddComponent <Spark>();
                    oVar2  = LevelManager.instance.xobfList[19].ini.FUN_2C17C(153, typeof(VigObject), 8);
                    Utilities.ParentChildren(oVar2, oVar2);
                    oVar3 = LevelManager.instance.xobfList[19].ini.FUN_2C17C(51, typeof(VigObject), 8);
                    Utilities.ParentChildren(oVar3, oVar3);
                    oVar5            = GameManager.instance.FUN_320DC(arg1.vTransform.position, 0);
                    oVar3.vTransform = GameManager.FUN_2A39C();
                    oVar2.vTransform = GameManager.FUN_2A39C();
                    oVar2.flags      = 0x10;
                    Utilities.FUN_2CC9C(puVar4, oVar2);
                    oVar2.transform.parent = puVar4.transform;
                    Utilities.FUN_2CC9C(puVar4, oVar3);
                    oVar3.transform.parent = puVar4.transform;
                    puVar4.flags           = 0x84;
                    puVar4.type            = 3;
                    puVar4.screen          = arg1.vTransform.position;
                    cVar6 = new VigCollider(oVar2.vCollider.reader.GetBuffer());
                    puVar4.physics1.M6 = 0x1000;
                    puVar4.vCollider   = cVar6;
                    Utilities.FUN_2A168(out local_18, arg1.vTransform.position, oVar5.vTransform.position);     //originally - oVar5.screen
                    iVar2 = local_18.x * 3051;

                    if (iVar2 < 0)
                    {
                        iVar2 += 4095;
                    }

                    puVar4.physics1.X = iVar2 >> 12;
                    puVar4.physics1.Y = 0;
                    iVar2             = local_18.z * 3051;

                    if (iVar2 < 0)
                    {
                        iVar2 += 4095;
                    }

                    puVar4.physics1.Z = iVar2 >> 12;
                    puVar4.FUN_3066C();
                    sVar1         = (sbyte)GameManager.instance.FUN_1DD9C();
                    puVar4.DAT_18 = sVar1;
                    GameManager.instance.FUN_1E580(sVar1, LevelManager.instance.xobfList[42].sndList, 0, arg1.vTransform.position, true);
                    return(0);
                }
            }

            GameManager.instance.FUN_327CC(arg1);
            return(0);

        case 19:
            iVar2           = (int)GameManager.FUN_2AC5C();
            oVar3           = GameManager.instance.FUN_318D0((iVar2 * 3 >> 15) + 40);
            ccVar6          = oVar3.FUN_2C5F4(0x8000);
            arg1.vTransform = GameManager.instance.FUN_2CEAC(oVar3, ccVar6);
            arg1.screen     = arg1.vTransform.position;
            iVar2           = arg1.vTransform.rotation.V02 * 7629;
            arg1.flags     |= 0x20;

            if (iVar2 < 0)
            {
                iVar2 += 31;
            }

            arg1.physics1.X = iVar2 >> 5;
            iVar2           = arg1.vTransform.rotation.V12 * 7629;

            if (iVar2 < 0)
            {
                iVar2 += 31;
            }

            arg1.physics1.Y = iVar2 >> 5;
            iVar2           = arg1.vTransform.rotation.V22 * 7629;

            if (iVar2 < 0)
            {
                iVar2 += 31;
            }

            arg1.physics1.Z = iVar2 >> 5;
            arg1.physics2.X = 0;
            arg1.physics2.Y = 0;
            arg1.physics2.Z = 0;
            iVar6           = GameManager.instance.FUN_1DD9C();
            GameManager.instance.FUN_1E580(iVar6, GameManager.instance.DAT_C2C, 37, arg1.vTransform.position);
            vVar7 = (Vehicle)arg1;
            cVar2 = vVar7.vCamera;

            if (cVar2 != null)
            {
                oVar3               = GameManager.instance.FUN_30250(GameManager.instance.DAT_1078, oVar3.id + 472);
                oVar3.tags          = 90;
                oVar3.maxHalfHealth = 0x100;
                GameManager.instance.FUN_30CB0(cVar2, oVar3.tags);
                cVar2.screen  = oVar3.screen;
                cVar8         = LevelManager.instance.FUN_4B984(vVar7, oVar3);
                vVar7.vCamera = cVar8;
                LevelManager.instance.defaultCamera.transform.SetParent(cVar8.transform, false);
                cVar8.FUN_30B78();
            }

            vVar7.state = _VEHICLE_TYPE.MilTunnel;
            GameManager.instance.FUN_30CB0(vVar7, 30);
            return(0xffffffff);
        }

        return(0);
    }
Ejemplo n.º 4
0
    public new VigObject FUN_2C344(XOBF_DB param1, ushort param2, uint param3)
    {
        VigMesh              mVar1;
        int                  iVar2;
        VigObject            oVar3;
        BufferedBinaryReader brVar4;
        ConfigContainer      puVar5;

        puVar5 = param1.ini.configContainers[param2];

        if ((puVar5.flag & 0x7ff) == 0x7ff)
        {
            vMesh = null;
        }
        else
        {
            mVar1 = param1.FUN_1FD18(gameObject, puVar5.flag & 0x7ffU, true);
            vMesh = mVar1;
        }

        if (puVar5.colliderID < 0)
        {
            vCollider = null;
        }
        else
        {
            VigCollider collider = param1.cbbList[puVar5.colliderID];
            vCollider = new VigCollider(collider.buffer);
        }

        vData  = param1;
        DAT_1A = (short)param2;

        if ((param3 & 8) == 0)
        {
            vAnim = null;
        }
        else
        {
            brVar4 = new BufferedBinaryReader(param1.animations);

            if (brVar4.GetBuffer() != null)
            {
                iVar2 = brVar4.ReadInt32(param2 * 4 + 4);

                if (iVar2 != 0)
                {
                    brVar4.Seek(iVar2, SeekOrigin.Begin);
                }
                else
                {
                    brVar4 = null;
                }
            }
            else
            {
                brVar4 = null;
            }

            vAnim = brVar4;
        }

        DAT_4A = GameManager.instance.timer;

        if ((param3 & 2) == 0 && puVar5.next != 0xffff)
        {
            oVar3  = param1.ini.FUN_2C17C_3(puVar5.next, typeof(WheelChild), param3 | 0x21);
            child2 = oVar3;

            if (oVar3 != null)
            {
                oVar3.ApplyTransformation();
                child2.parent = this;
            }
        }
        else
        {
            child2 = null;
        }

        return(this);
    }
Ejemplo n.º 5
0
    private void FUN_1BB4()
    {
        sbyte           sVar1;
        VigTransform    puVar2;
        LaunchRocket    ppcVar3;
        LaunchRocket2   ppcVar4;
        ConfigContainer ccVar5;
        VigCollider     pcVar6;
        LaunchRocket3   ppcVar6;
        sbyte           sVar7;
        VigObject       oVar11;
        ConfigContainer ccVar11;
        int             iVar12;

        oVar11 = child2;

        if (oVar11 != null)
        {
            do
            {
                if (oVar11.id == 1)
                {
                    break;
                }

                oVar11 = oVar11.child;
            } while (oVar11 != null);

            if (oVar11 != null)
            {
                puVar2            = GameManager.instance.FUN_2CDF4(oVar11);
                oVar11.vTransform = puVar2;
                oVar11.FUN_2CCBC();
                ppcVar3        = Utilities.FUN_52188(oVar11, typeof(LaunchRocket)) as LaunchRocket;
                ppcVar3.flags |= 0x80;
                sVar7          = 0;

                if (tags == 5)
                {
                    sVar7 = 10;
                }

                ppcVar3.tags = sVar7;
                ppcVar3.FUN_305FC();
                GameManager.instance.FUN_30CB0(ppcVar3, 60);
                sVar1          = (sbyte)GameManager.instance.FUN_1DD9C();
                ppcVar3.DAT_18 = sVar1;
                GameManager.instance.FUN_1E628(sVar1, ppcVar3.vData.sndList, 2, vTransform.position, true);
                ccVar11 = ppcVar3.FUN_2C5F4(0x8000);

                if (ccVar11 != null)
                {
                    ppcVar4 = ppcVar3.vData.ini.FUN_2C17C(25, typeof(LaunchRocket2), 8) as LaunchRocket2;

                    if (ppcVar4 != null)
                    {
                        ppcVar4.type = 3;
                        Utilities.FUN_2CA94(ppcVar3, ccVar11, ppcVar4);
                        Utilities.ParentChildren(ppcVar3, ppcVar3);
                        ppcVar4.FUN_30BF0();
                        sVar1          = (sbyte)GameManager.instance.FUN_1DD9C();
                        ppcVar4.DAT_18 = sVar1;
                        GameManager.instance.FUN_1E580(sVar1, ppcVar4.vData.sndList, 2, ppcVar4.vTransform.position, true);
                    }
                }

                if (tags != 5)
                {
                    oVar11 = GameManager.instance.FUN_318D0(49);
                    iVar12 = 0;

                    if (oVar11 != null)
                    {
                        do
                        {
                            ccVar5 = oVar11.FUN_2C5F4((ushort)(iVar12 - 0x8000 & 0xffff));

                            if (ccVar5 != null)
                            {
                                GameObject obj = new GameObject();
                                ppcVar6 = obj.AddComponent <LaunchRocket3>();

                                if (ppcVar6 != null)
                                {
                                    pcVar6 = null;

                                    if (-1 < ccVar5.colliderID)
                                    {
                                        pcVar6 = new VigCollider(oVar11.vData.cbbList[ccVar5.colliderID].buffer);
                                    }

                                    ppcVar6.vCollider  = pcVar6;
                                    ppcVar6.vTransform = GameManager.instance.FUN_2CEAC(oVar11, ccVar5);
                                    ppcVar6.flags      = 0x182;
                                    ppcVar6.type       = 3;
                                    ppcVar6.FUN_305FC();
                                    ppcVar6.DAT_58 = 0xd0000;
                                    GameManager.instance.FUN_30CB0(ppcVar6, 180);
                                }
                            }

                            iVar12++;
                        } while (iVar12 < 2);
                    }
                }

                //FUN_326B0
                //FUN_32758
            }
        }
    }
Ejemplo n.º 6
0
    public override uint UpdateW(int arg1, int arg2)
    {
        short           sVar1;
        short           sVar2;
        ushort          uVar2;
        uint            uVar3;
        int             iVar4;
        ConfigContainer ccVar4;
        Laser2          ppcVar5;
        Vector3Int      local_88;

        if (arg1 < 4)
        {
            uVar3 = 0;

            if (arg1 == 0)
            {
                vTransform.position.x += physics1.Z;
                vTransform.position.y += physics1.W;
                vTransform.position.z += physics2.X;
                screen      = vTransform.position;
                sVar1       = physics2.M3;
                physics2.M3 = (short)(sVar1 - 1);
                uVar3       = 0;

                if (sVar1 == 1)
                {
                    if (physics2.M2 == 0)
                    {
                        uVar3 = 0;
                    }
                    else
                    {
                        local_88 = Utilities.FUN_24148(vTransform, new Vector3Int(0xf, 0x16, 0x18b81));
                        iVar4    = GameManager.instance.terrain.FUN_1B750((uint)local_88.x, (uint)local_88.z);

                        if (local_88.y < iVar4)
                        {
                            ppcVar5               = vData.ini.FUN_2C17C((ushort)DAT_1A, typeof(Laser2), 8) as Laser2;
                            sVar2                 = id;
                            ppcVar5.type          = 8;
                            ppcVar5.flags         = 0x84;
                            ppcVar5.id            = sVar2;
                            uVar2                 = maxHalfHealth;
                            ppcVar5.maxHalfHealth = uVar2;
                            ppcVar5.FUN_3066C();
                            sVar1 = physics2.M2;
                            ppcVar5.physics2.M3         = 3;
                            ppcVar5.physics2.M2         = (short)(sVar1 - 1);
                            ppcVar5.physics1.Z          = physics1.Z;
                            ppcVar5.physics1.W          = physics1.W;
                            ppcVar5.physics2.X          = physics2.X;
                            ppcVar5.DAT_80              = DAT_80;
                            ppcVar5.vTransform          = vTransform;
                            ppcVar5.vTransform.position = local_88;
                            uVar3 = 0;
                        }
                        else
                        {
                            local_88.y = iVar4;
                            LevelManager.instance.FUN_4DE54(local_88, 143);
                            uVar3 = 0;
                        }
                    }
                }
            }

            if (arg1 == 1)
            {
                vCollider = new VigCollider(COLLDR);
            }
        }
        else
        {
            uVar3 = 0;
        }

        return(uVar3);
    }
Ejemplo n.º 7
0
    public override uint UpdateW(int arg1, VigObject arg2)
    {
        VigTransform tVar1;
        int          iVar2;
        VigMesh      mVar2;
        VigObject    oVar3;
        Vector3Int   iStack24;
        Vector3Int   sStack8;

        if (arg1 == 5)
        {
            tVar1 = GameManager.instance.FUN_2CDF4(this);
            GameObject obj = new GameObject();
            oVar3 = obj.AddComponent <VigObject>();
            Utilities.FUN_2CC9C(this, oVar3);
            Utilities.ParentChildren(this, this);
            mVar2        = vMesh;
            oVar3.flags |= 0x410;
            //oVar3.vMesh = mVar2;
            oVar3.vTransform.rotation = vTransform.rotation;
            oVar3.vMesh = vData.FUN_1FD18(obj, mVar2.tmdID, true);
            Destroy(vMesh.GetRenderer());
            vMesh     = null;
            vCollider = new VigCollider(DAT_20);
            flags    |= 0x80;
            FUN_30C20();
            vTransform          = GameManager.FUN_2A39C();
            vTransform.position = tVar1.position;
            oVar3 = DAT_84;

            if (oVar3 == null)
            {
                Vector3Int v3 = Utilities.FUN_24094(tVar1.rotation, screen);
                physics1.Z = v3.x;
                physics1.W = v3.y;
                physics2.X = v3.z;
                physics1.Z = (physics1.Z << 9) >> 12;
                physics1.W = (physics1.W << 9) >> 12;
                physics2.X = (physics2.X << 9) >> 12;
            }
            else
            {
                iStack24   = new Vector3Int();
                iStack24.x = oVar3.screen.x - tVar1.position.x;
                iStack24.y = oVar3.screen.y - tVar1.position.y;
                iStack24.z = oVar3.screen.z - tVar1.position.z;
                Utilities.FUN_29FC8(iStack24, out sStack8);
                physics1.Z = sStack8.x * 0x5968 >> 12;
                physics1.W = sStack8.y * 0x5968 >> 12;
                physics2.X = sStack8.z * 0x5968 >> 12;
            }

            FUN_2CCBC();
            transform.parent = null;
            FUN_305FC();
            iVar2 = GameManager.instance.FUN_1DD9C();
            GameManager.instance.FUN_1E628(iVar2, vData.sndList, 3, tVar1.position);
            UIManager.instance.FUN_4E414(tVar1.position, DAT_950[tags]);
            return(0xffffffff);
        }

        return(0);
    }